nodeinfowidget.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef NODEINFOWIDGET_H
  2. #define NODEINFOWIDGET_H
  3. #include <QWidget>
  4. #include "notebook/node.h"
  5. class QLineEdit;
  6. class QLabel;
  7. class QFormLayout;
  8. class QComboBox;
  9. namespace vnotex
  10. {
  11. class Notebook;
  12. class NodeLabelWithUpButton;
  13. class NodeInfoWidget : public QWidget
  14. {
  15. Q_OBJECT
  16. public:
  17. enum Mode { Create, Edit };
  18. NodeInfoWidget(const Node *p_node, QWidget *p_parent = nullptr);
  19. NodeInfoWidget(const Node *p_parentNode,
  20. Node::Flags p_flags,
  21. QWidget *p_parent = nullptr);
  22. QLineEdit *getNameLineEdit() const;
  23. QString getName() const;
  24. const Notebook *getNotebook() const;
  25. const Node *getParentNode() const;
  26. // Allow upper level to add more widgets to the layout.
  27. QFormLayout *getMainLayout() const;
  28. signals:
  29. void inputEdited();
  30. private:
  31. void setupUI(const Node *p_parentNode, Node::Flags p_newNodeFlags);
  32. void setupFileTypeComboBox(QWidget *p_parent);
  33. void setupNameLineEdit(QWidget *p_parent);
  34. void setNode(const Node *p_node);
  35. Mode m_mode;
  36. QFormLayout *m_mainLayout = nullptr;
  37. QComboBox *m_fileTypeComboBox = nullptr;
  38. QLineEdit *m_nameLineEdit = nullptr;
  39. NodeLabelWithUpButton *m_parentNodeLabel = nullptr;
  40. QLabel *m_createdDateTimeLabel = nullptr;
  41. QLabel *m_modifiedDateTimeLabel = nullptr;
  42. const Node *m_node = nullptr;
  43. bool m_fileTypeComboBoxMuted = false;
  44. };
  45. } // ns vnotex
  46. #endif // NODEINFOWIDGET_H