Sun, 09 Apr 2023 15:59:08 +0300
Extracted the state of the program into a MainState structure, and extracted local functions of main() into static functions.
I was planning to make the core logic and state of the program into a Main class, which would be a QObject that would
have lots of signals and slots, but it looks like this works even without it
#pragma once #include "src/basics.h" #include "src/colors.h" #include <QPushButton> #include <QAbstractTableModel> #include <QDialog> #include <QGridLayout> class ColorSelectDialog : public QDialog { Q_OBJECT public: explicit ColorSelectDialog(const ColorTable& colorTable, QWidget* parent = nullptr); ~ColorSelectDialog(); void setCurrentColor(ColorIndex color); ldraw::Color currentColor() const; private Q_SLOTS: void populateColors(); void updateSelectedColorTexts(); void handleButtonClick(); void spinboxEdited(); void chooseDirectColor(); private: void makeColorButtons(); bool filterColor(ldraw::Color color) const; class Ui_ColorSelectDialog& ui; const ColorTable& colorTable; std::vector<QPushButton*> buttons; ColorIndex selectedColor = MAIN_COLOR; };