Hexes/ruledialog.h

72 lines
1.6 KiB
C
Raw Normal View History

2024-10-28 19:15:40 -04:00
#ifndef RULEDIALOG_H
#define RULEDIALOG_H
#include "rule.h"
#include "blockvalue.h"
#include "rulepreview.h"
#include <QDialog>
#include <QQueue>
namespace Ui {
class RuleDialog;
}
class RuleDialog : public QDialog
{
Q_OBJECT
public:
explicit RuleDialog(QWidget *parent = nullptr);
~RuleDialog();
Rule GetRule();
void SetRule(const Rule rule);
2024-11-02 19:19:53 -04:00
void SetBaseDir(QString dir);
2024-10-28 19:15:40 -04:00
void SetRuleNames(QStringList ruleNames);
void SetVars(QMap<QString, BlockValue> vars);
private slots:
void pQueueRule();
void pClearRules();
void pSaveRules();
void pPopFirstRule();
void pPopLastRule();
void pCancelDialog();
2024-11-02 19:19:53 -04:00
void pImportSnippet();
void pExportSnippet();
2024-10-28 19:15:40 -04:00
void pTypeChanged(int index);
2024-11-02 19:19:53 -04:00
void pSkip_PrevVarToggled(bool toggled);
void pSkip_StaticValToggled(bool toggled);
2024-10-28 19:15:40 -04:00
void pPre_PrevVarToggled(bool toggled);
void pPre_StaticValToggled(bool toggled);
void pPost_PrevVarToggled(bool toggled);
void pPost_StaticValToggled(bool toggled);
2024-11-02 19:19:53 -04:00
void pRepeat_PrevVarToggled(bool toggled);
void pRepeat_StaticValToggled(bool toggled);
2024-10-28 19:15:40 -04:00
signals:
void RuleChanged(Rule rule);
void RulesChanged(QVector<Rule> rules);
2024-11-02 19:19:53 -04:00
void BaseDirChanged(QString dir);
2024-10-28 19:15:40 -04:00
protected:
void closeEvent(QCloseEvent *event) override;
private:
Ui::RuleDialog *ui;
Rule pRule;
QStringList pRuleNames;
QMap<QString, BlockValue> pVars;
int pDefaultRuleCount;
2024-11-02 19:19:53 -04:00
QQueue<Rule> pRules;
QString pSnippetDir;
2024-10-28 19:15:40 -04:00
void pHideLayout(QLayout *layout);
void pShowLayout(QLayout *layout);
};
#endif // RULEDIALOG_H