123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #ifndef TEMPLATEMANAGER_H
- #define TEMPLATEMANAGER_H
- #include <QDialog>
- #include <QCheckBox>
- #include <QTableWidgetItem>
- #include <QMap>
- #include <QStyledItemDelegate>
- #include <QLineEdit>
- class TemplateItem;
- class OneTemplateInfo;
- class FromWebAPI;
- class OnePlanItemInfo;
- namespace Ui {
- class TemplateManager;
- }
- /* 限制QLineEdit字数的代理类 */
- class LineEditDelegate : public QStyledItemDelegate {
- public:
- explicit LineEditDelegate(int maxLength, QObject* parent = nullptr)
- : QStyledItemDelegate(parent), m_maxLength(maxLength) {}
- QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override
- {
- QLineEdit* editor = new QLineEdit(parent);
- /* 设置最大输入长度 */
- editor->setMaxLength(m_maxLength);
- return editor;
- }
- private:
- int m_maxLength;
- };
- class TemplateManager : public QDialog
- {
- Q_OBJECT
- public:
- explicit TemplateManager(QWidget *parent = nullptr);
- ~TemplateManager();
- /* 是否点下了OK */
- bool isOk() const { return m_isOk; }
- /* 获取的已删除的模板列表 */
- QList<OneTemplateInfo>& getDeleteTemplateList() { return m_listDeleteTemplate; }
- /* 获取已修改的模版列表 */
- QMap<OneTemplateInfo, QList<OnePlanItemInfo>>& getModifyTemplateList() { return m_mapModifyTemplate; }
- /* 获取修改名称的列表 */
- QMap<OneTemplateInfo, QString>& getModifyTemplateNameList() { return m_mapModifyTemplateName; }
- /* 设置模版列表 */
- void setTemplateList(const QMultiMap<int, OneTemplateInfo>& mapTemplate);
- /* 设置QSS */
- void setQSSPath(const QString& qssPath);
- /* 设置WebAPI指针 */
- void setWebAPI(FromWebAPI* webAPI);
-
- signals:
-
- private:
- /* 添加一行 */
- void createRow(const OneTemplateInfo& info);
- /* 修改模版 */
- void modifyTemplate(QTableWidgetItem* item);
- /* 删除模版 */
- void deleteTemplate(QTableWidgetItem* item);
- /* 预览 */
- void previewTemplate(QTableWidgetItem* item);
- private slots:
- /* 点击了OK */
- void do_ok();
- /* 点击了一个单元格 */
- void do_clickedItem(int row, int column);
- /* 单元格内容改变了 */
- void do_itemChanged(QTableWidgetItem* item);
- protected:
- /* 显示事件 */
- void showEvent(QShowEvent *event) override;
- /* 事件过滤器 */
- bool eventFilter(QObject *watched, QEvent *event) override;
- /* 鼠标点击事件 */
- void mousePressEvent(QMouseEvent *event) override;
- /* 鼠标移动事件 */
- void mouseMoveEvent(QMouseEvent *event) override;
- /* 鼠标释放事件 */
- void mouseReleaseEvent(QMouseEvent *event) override;
- private:
- Ui::TemplateManager *ui;
- FromWebAPI* m_fromWebAPI = nullptr; /* WebAPI操作类 */
- bool m_isOk = false; /* 是否点下了OK */
- // QString m_templateName; /* 模版名称 */
- int m_type = -1; /* 模版类型 */
- QPoint m_lastPos; /* 鼠标点击的位置 */
- const int m_roleChnID = Qt::UserRole + 1; /* 角色名称 */
- const int m_roleTemplateName = Qt::UserRole + 2; /* 模板名称,传进来的模板名称 */
- const int m_roleTemplateNameNow = Qt::UserRole + 3; /* 模板名称,当前的模板名称 */
- QList<OneTemplateInfo> m_listTemplate; /* 模版列表 */
- QList<OneTemplateInfo> m_listDeleteTemplate; /* 删除的模版列表 */
- QMap<OneTemplateInfo, QList<OnePlanItemInfo>> m_mapModifyTemplate; /* 修改的模版列表 */
- QMap<OneTemplateInfo, QString> m_mapModifyTemplateName; /* 修改的模版名称,OneTemplateInfo中的是原名,QString中的是新模板名字 */
- };
- #endif // TEMPLATEMANAGER_H
|