Finish new layout dialog redesign

This commit is contained in:
GriffinR
2024-11-21 15:04:42 -05:00
parent e7df829843
commit d0101d807e
16 changed files with 529 additions and 561 deletions

View File

@@ -32,11 +32,13 @@ public:
MapHeader headerData() const;
void setLocations(QStringList locations);
void setLocationsDisabled(bool disabled);
void setLocationDisabled(bool disabled);
bool isLocationDisabled() const { return m_locationDisabled; }
private:
Ui::MapHeaderForm *ui;
QPointer<MapHeader> m_header = nullptr;
bool m_locationDisabled = false;
void updateUi();
void updateSong();

View File

@@ -18,10 +18,11 @@ class NewLayoutDialog : public QDialog
{
Q_OBJECT
public:
explicit NewLayoutDialog(QWidget *parent = nullptr, Project *project = nullptr);
explicit NewLayoutDialog(Project *project, QWidget *parent = nullptr);
explicit NewLayoutDialog(Project *project, const Layout *layoutToCopy, QWidget *parent = nullptr);
~NewLayoutDialog();
void copyFrom(const Layout &);
void accept() override;
virtual void accept() override;
signals:
void applied(const QString &newLayoutId);
@@ -30,18 +31,21 @@ private:
Ui::NewLayoutDialog *ui;
Project *project;
Layout *importedLayout = nullptr;
Layout::Settings *settings = nullptr;
static Layout::Settings settings;
static bool initializedSettings;
// Each of these validation functions will allow empty names up until `OK` is selected,
// because clearing the text during editing is common and we don't want to flash errors for this.
bool validateLayoutID(bool allowEmpty = false);
bool validateName(bool allowEmpty = false);
void refresh();
void saveSettings();
bool isExistingLayout() const;
private slots:
//void on_comboBox_Layout_currentTextChanged(const QString &text);//TODO
void dialogButtonClicked(QAbstractButton *button);
void on_lineEdit_Name_textChanged(const QString &);
void on_lineEdit_LayoutID_textChanged(const QString &);

View File

@@ -18,12 +18,12 @@ class NewMapDialog : public QDialog
{
Q_OBJECT
public:
explicit NewMapDialog(QWidget *parent = nullptr, Project *project = nullptr);
explicit NewMapDialog(Project *project, QWidget *parent = nullptr);
explicit NewMapDialog(Project *project, int mapListTab, const QString &mapListItem, QWidget *parent = nullptr);
explicit NewMapDialog(Project *project, const Map *mapToCopy, QWidget *parent = nullptr);
~NewMapDialog();
void init();
void init(int tabIndex, QString data);
void init(Layout *);
void accept() override;
virtual void accept() override;
signals:
void applied(const QString &newMapName);
@@ -33,25 +33,29 @@ private:
Project *project;
CollapsibleSection *headerSection;
MapHeaderForm *headerForm;
Layout *importedLayout = nullptr;
Project::NewMapSettings *settings = nullptr;
Map *importedMap = nullptr;
static Project::NewMapSettings settings;
static bool initializedSettings;
// Each of these validation functions will allow empty names up until `OK` is selected,
// because clearing the text during editing is common and we don't want to flash errors for this.
bool validateMapID(bool allowEmpty = false);
bool validateName(bool allowEmpty = false);
bool validateGroup(bool allowEmpty = false);
bool validateLayoutID(bool allowEmpty = false);
void refresh();
void saveSettings();
bool isExistingLayout() const;
void useLayoutSettings(const Layout *mapLayout);
void useLayoutIdSettings(const QString &layoutId);
private slots:
void dialogButtonClicked(QAbstractButton *button);
void on_lineEdit_Name_textChanged(const QString &);
void on_lineEdit_MapID_textChanged(const QString &);
void on_comboBox_Group_currentTextChanged(const QString &text);
void on_comboBox_LayoutID_currentTextChanged(const QString &text);
};
#endif // NEWMAPDIALOG_H