copytoother.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef COPYTOOTHER_H
  2. #define COPYTOOTHER_H
  3. #include "TransmitterSwitchInfo.h"
  4. #include <QDialog>
  5. #include <QCheckBox>
  6. #include <qboxlayout.h>
  7. #include <qlist.h>
  8. class TemplateItem;
  9. class OneShadow;
  10. class OneTemplateInfo;
  11. class QVBoxLayout;
  12. namespace Ui {
  13. class CopyToOther;
  14. }
  15. class CopyToOther : public QDialog
  16. {
  17. Q_OBJECT
  18. public:
  19. explicit CopyToOther(QWidget *parent = nullptr);
  20. ~CopyToOther();
  21. /* 设置频率列表 */
  22. void setFrequencyList(ChannelInfo& currChn, QMap<int, ChannelInfo>& list);
  23. /* 获取选中的频率列表 */
  24. QList<ChannelInfo>& getSelectedFrequencyList() { return m_listChannel; }
  25. /* 是否点下了OK */
  26. bool isOk() const { return m_isOk; }
  27. /* 设置QSS */
  28. void setQSSPath(const QString& qssPath);
  29. signals:
  30. /* 选择一个模版 */
  31. void signal_templateName(QString name);
  32. private:
  33. /* 添加一行 */
  34. void createRow(const ChannelInfo& info);
  35. private slots:
  36. void do_ok();
  37. /* 点击了全选按钮 */
  38. void do_checkBox_list_stateChanged(int state);
  39. /* 点击了一个checkBox */
  40. void do_checkBox_stateChanged(int state);
  41. protected:
  42. /* 显示事件 */
  43. void showEvent(QShowEvent *event) override;
  44. /* 事件过滤器 */
  45. bool eventFilter(QObject *watched, QEvent *event) override;
  46. /* 鼠标点击事件 */
  47. void mousePressEvent(QMouseEvent *event) override;
  48. /* 鼠标移动事件 */
  49. void mouseMoveEvent(QMouseEvent *event) override;
  50. /* 鼠标释放事件 */
  51. void mouseReleaseEvent(QMouseEvent *event) override;
  52. private:
  53. Ui::CopyToOther *ui;
  54. QString m_qss; /* 样式表 */
  55. QVBoxLayout* m_layout = nullptr; /* 垂直布局 */
  56. bool m_isOk = false; /* 是否点下了OK */
  57. QString m_templateName; /* 模版名称 */
  58. int m_type = -1; /* 模版类型 */
  59. QPoint m_lastPos; /* 鼠标点击的位置 */
  60. const std::string m_propertyChnID = "ChannelID"; /* 属性名称 */
  61. QList<QCheckBox*> m_listCheckBox; /* checkBox列表 */
  62. QList<ChannelInfo> m_listChannel; /* 频率列表 */
  63. };
  64. #endif // COPYTOOTHER_H