123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #ifndef NOTEBOOKINFOWIDGET_H
- #define NOTEBOOKINFOWIDGET_H
- #include <QWidget>
- class QComboBox;
- class QPushButton;
- class QLineEdit;
- class QGroupBox;
- namespace vnotex
- {
- class Notebook;
- class LineEditWithSnippet;
- class NotebookInfoWidget : public QWidget
- {
- Q_OBJECT
- public:
- enum Mode { Create, CreateFromFolder, Edit, Import, CreateFromLegacy };
- explicit NotebookInfoWidget(NotebookInfoWidget::Mode p_mode, QWidget *p_parent = nullptr);
- QLineEdit *getNameLineEdit() const;
- QLineEdit *getRootFolderPathLineEdit() const;
- void setRootFolderPath(const QString &p_path);
- QString getName() const;
- QString getDescription() const;
- QString getRootFolderPath() const;
- QIcon getIcon() const;
- QString getType() const;
- QString getConfigMgr() const;
- QString getVersionController() const;
- QString getBackend() const;
- void clear(bool p_skipRootFolder = false, bool p_skipBackend = false);
- void setMode(Mode p_mode);
- const Notebook *getNotebook() const;
- public slots:
- void setNotebook(const Notebook *p_notebook);
- signals:
- // Give caller a chance to change the name according to the root folder.
- void rootFolderEdited();
- // Emit when name, description, or root folder path is edited.
- void basicInfoEdited();
- void notebookBackendEdited();
- private:
- void setupUI();
- void setStateAccordingToMode();
- QGroupBox *setupBasicInfoGroupBox(QWidget *p_parent = nullptr);
- void setupNotebookTypeComboBox(QWidget *p_parent = nullptr);
- QLayout *setupNotebookRootFolderPath(QWidget *p_parent = nullptr);
- QGroupBox *setupAdvancedInfoGroupBox(QWidget *p_parent = nullptr);
- void setupConfigMgrComboBox(QWidget *p_parent = nullptr);
- void setupVersionControllerComboBox(QWidget *p_parent = nullptr);
- void setupBackendComboBox(QWidget *p_parent = nullptr);
- QLineEdit *getDescriptionLineEdit() const;
- QComboBox *getTypeComboBox() const;
- QComboBox *getConfigMgrComboBox() const;
- QComboBox *getVersionControllerComboBox() const;
- QComboBox *getBackendComboBox() const;
- Mode m_mode = Mode::Create;
- const Notebook *m_notebook = nullptr;
- LineEditWithSnippet *m_nameLineEdit = nullptr;
- QLineEdit *m_descriptionLineEdit = nullptr;
- QComboBox *m_typeComboBox = nullptr;
- QComboBox *m_configMgrComboBox = nullptr;
- QComboBox *m_versionControllerComboBox = nullptr;
- QComboBox *m_backendComboBox = nullptr;
- QLineEdit *m_rootFolderPathLineEdit = nullptr;
- QPushButton *m_rootFolderPathBrowseButton = nullptr;
- };
- } // ns vnotex
- #endif // NOTEBOOKINFOWIDGET_H
|