soundboard/include/buttonmanager.h

59 lines
1.1 KiB
C
Raw Normal View History

2021-12-21 15:44:51 +01:00
#pragma once
2021-12-21 01:30:18 +01:00
2021-12-21 15:44:51 +01:00
#include <QAbstractButton>
2021-12-21 01:30:18 +01:00
#include <QDialog>
2021-12-21 15:44:51 +01:00
#include <QTreeWidgetItem>
2021-12-21 01:30:18 +01:00
#include "config.h"
2021-12-21 15:44:51 +01:00
#include "buttonmanageritems.h"
#include "mainwindow.h"
2021-12-21 01:30:18 +01:00
namespace Ui {
class ButtonManager;
}
class ButtonManager : public QDialog
{
Q_OBJECT
public:
2021-12-21 15:44:51 +01:00
explicit ButtonManager(Config& conf, MainWindow *parent = nullptr);
2021-12-21 01:30:18 +01:00
~ButtonManager();
2021-12-21 15:44:51 +01:00
public slots:
virtual void accept();
virtual void reject();
private slots:
//buttons:
void addButton();
void editButton();
void deleteButton();
void upButton();
void downButton();
void itemSelected();
2021-12-21 20:19:24 +01:00
void itemChanged(QTreeWidgetItem* item, int column);
2021-12-22 12:52:25 +01:00
void itemDoubleClicked(QTreeWidgetItem* item);
2021-12-21 15:44:51 +01:00
void dialogButtonPressed(QAbstractButton* btn);
2021-12-21 01:30:18 +01:00
private:
Ui::ButtonManager *ui;
2021-12-21 15:44:51 +01:00
MainWindow* mainW = nullptr;
2021-12-21 01:30:18 +01:00
2021-12-21 15:44:51 +01:00
Config& mainConfig;
Config::RootConfig workingConfig;
2021-12-21 01:30:18 +01:00
2021-12-21 15:44:51 +01:00
void loadConfig();
void saveChanges();
void select(QTreeWidgetItem* item);
QTreeWidgetItem* getSelectedItem() const;
2021-12-21 20:19:24 +01:00
RowItem* getCurrentRow() const;
2021-12-22 02:53:03 +01:00
ButtonItem* getCurrentButton() const;
2021-12-21 15:44:51 +01:00
template<void (ButtonManagerItem::*T)()>
void perform();
};