findresultwin.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include <QWidget>
  3. #include <QContextMenuEvent>
  4. #include <QMenu>
  5. #include "ui_findresultwin.h"
  6. class FindRecords;
  7. class QStandardItem;
  8. class NdStyledItemDelegate;
  9. class QStandardItemModel;
  10. struct FindRecord;
  11. class FindResultWin : public QWidget
  12. {
  13. Q_OBJECT
  14. public:
  15. FindResultWin(QWidget *parent = Q_NULLPTR);
  16. ~FindResultWin();
  17. void appendResultsToShow(FindRecords * record);
  18. void appendResultsToShow(QVector<FindRecords*>* record, int hits, QString whatFind);
  19. signals:
  20. void itemDoubleClicked(const QModelIndex &index);
  21. void showMsg(QString &msg);
  22. private slots:
  23. void slot_clearContents();
  24. void slot_selectAll();
  25. void slot_copyContents();
  26. void slot_copyItemContents();
  27. void slot_selectSection();
  28. public slots:
  29. void slot_clearAllContents();
  30. protected:
  31. void contextMenuEvent(QContextMenuEvent * event);
  32. private:
  33. void setItemBackground(QStandardItem* item, const QColor& color);
  34. void setItemForeground(QStandardItem * item, const QColor & color);
  35. void highlightFindText(int index, QString & srcText, QString & findText, Qt::CaseSensitivity cs);
  36. QString highlightFindText(FindRecord& record);
  37. private:
  38. Ui::FindResultWin ui;
  39. QMenu *m_menu;
  40. QAction* m_pSelectSectonAct;
  41. QStandardItemModel* m_model;
  42. NdStyledItemDelegate* m_delegate;
  43. };