mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 22:09:52 +08:00
114 lines
2.8 KiB
C++
114 lines
2.8 KiB
C++
#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
|