Change of plans – one function is bad idea

I wanted to write today about something different, but i found a bug. That bug is most likely a result of my lack of experience (like most of bugs here :). That bug is in function which is setting UI – setUi() function. I wanted to use it to create layout and later for changing in during application works, unfortunately that is not good way to do this and I learned the hard way 🙂

New plan – two functions

I decided to change that idea. New plan is to write two functions, one for creating the layout and second one for changing it. Old object for layouts was created on a heap as a dynamic memory, now all layouts object will be declared in the class definition. That allow to manipulate them after start of the application.

Example

#include ...

class DataTab {
    QGroupBox * startingPointGroupBox;
    QFormLayout * startingPointFormLayout;
    QGroupBox * coolingPointGroupBox;
    QFormLayout * coolingPointFormLayout;
    QGroupBox * exchangerPointGroupBox;
    QFormLayout * exchangerPointFormLayout;
    QGroupBox * heatingPointGroupBox;
    QFormLayout * heatingPointFormLayout;
    QGroupBox * humidifyierChoosingGroupBox;
    QVBoxLayout *humidifyierChoosingButtonLayout;
    QGroupBox * humidifyierPointGroupBox;
    QFormLayout * humidifyierPointFormLayout;
    QGroupBox * mixPointGroupBox;
    QFormLayout * mixPointFormLayout;
    QGroupBox * mixingPointGroupBox;
    QFormLayout * mixingPointFormLayout;
    QGroupBox * processingModelGroupBox;
    QVBoxLayout * processingModelLayout;
}

Code above shows declaration of every groupBox used in the app. Thanks to that I will be able to easily change layout attributes. But that is not everything what needs to be done. Next is splitting function setUI for creating UI and changing UI. I hope next time i will write about their implementation.

Image by title shows old/new UI 🙂

New code is available on GitHub.

Leave a Reply