mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 05:49:53 +08:00
75 lines
1.6 KiB
C++
75 lines
1.6 KiB
C++
#ifndef NODEINFOWIDGET_H
|
|
#define NODEINFOWIDGET_H
|
|
|
|
#include <QWidget>
|
|
|
|
#include <notebook/node.h>
|
|
|
|
class QLineEdit;
|
|
class QLabel;
|
|
class QFormLayout;
|
|
class QComboBox;
|
|
|
|
namespace vnotex
|
|
{
|
|
class Notebook;
|
|
class LevelLabelWithUpButton;
|
|
class LineEditWithSnippet;
|
|
|
|
class NodeInfoWidget : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
enum Mode { Create, Edit };
|
|
|
|
NodeInfoWidget(const Node *p_node, QWidget *p_parent = nullptr);
|
|
|
|
NodeInfoWidget(const Node *p_parentNode,
|
|
Node::Flags p_flags,
|
|
QWidget *p_parent = nullptr);
|
|
|
|
QLineEdit *getNameLineEdit() const;
|
|
|
|
QString getName() const;
|
|
|
|
const Notebook *getNotebook() const;
|
|
|
|
const Node *getParentNode() const;
|
|
|
|
// Allow upper level to add more widgets to the layout.
|
|
QFormLayout *getMainLayout() const;
|
|
|
|
signals:
|
|
void inputEdited();
|
|
|
|
private:
|
|
void setupUI(const Node *p_parentNode, Node::Flags p_newNodeFlags);
|
|
|
|
void setupFileTypeComboBox(QWidget *p_parent);
|
|
|
|
void setupNameLineEdit(QWidget *p_parent);
|
|
|
|
void setNode(const Node *p_node);
|
|
|
|
Mode m_mode = Mode::Create;
|
|
|
|
QFormLayout *m_mainLayout = nullptr;
|
|
|
|
QComboBox *m_fileTypeComboBox = nullptr;
|
|
|
|
LineEditWithSnippet *m_nameLineEdit = nullptr;
|
|
|
|
LevelLabelWithUpButton *m_parentNodeLabel = nullptr;
|
|
|
|
QLabel *m_createdDateTimeLabel = nullptr;
|
|
|
|
QLabel *m_modifiedDateTimeLabel = nullptr;
|
|
|
|
const Node *m_node = nullptr;
|
|
|
|
bool m_fileTypeComboBoxMuted = false;
|
|
};
|
|
} // ns vnotex
|
|
|
|
#endif // NODEINFOWIDGET_H
|