snippetpanel.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef SNIPPETPANEL_H
  2. #define SNIPPETPANEL_H
  3. #include <QFrame>
  4. class QListWidget;
  5. class QListWidgetItem;
  6. namespace vnotex
  7. {
  8. class TitleBar;
  9. class SnippetPanel : public QFrame
  10. {
  11. Q_OBJECT
  12. public:
  13. explicit SnippetPanel(QWidget *p_parent = nullptr);
  14. void initialize();
  15. signals:
  16. void applySnippetRequested(const QString &p_name);
  17. private slots:
  18. void newSnippet();
  19. void handleContextMenuRequested(const QPoint &p_pos);
  20. void removeSelectedSnippets();
  21. void applySnippet(const QListWidgetItem *p_item);
  22. private:
  23. void setupUI();
  24. void setupTitleBar(const QString &p_title, QWidget *p_parent = nullptr);
  25. void updateItemsCountLabel();
  26. void updateSnippetList();
  27. QString getSnippetName(const QListWidgetItem *p_item);
  28. void setBuiltInSnippetsVisible(bool p_visible);
  29. TitleBar *m_titleBar = nullptr;
  30. QListWidget *m_snippetList = nullptr;
  31. bool m_builtInSnippetsVisible = true;
  32. };
  33. }
  34. #endif // SNIPPETPANEL_H