soundboard/include/buttonmanager.h

55 lines
921 B
C++

#pragma once
#include <QAbstractButton>
#include <QDialog>
#include <QTreeWidgetItem>
#include "config.h"
#include "buttonmanageritems.h"
#include "mainwindow.h"
namespace Ui {
class ButtonManager;
}
class ButtonManager : public QDialog
{
Q_OBJECT
public:
explicit ButtonManager(Config& conf, MainWindow *parent = nullptr);
~ButtonManager();
public slots:
virtual void accept();
virtual void reject();
private slots:
//buttons:
void addButton();
void editButton();
void deleteButton();
void upButton();
void downButton();
void itemSelected();
void dialogButtonPressed(QAbstractButton* btn);
private:
Ui::ButtonManager *ui;
MainWindow* mainW = nullptr;
Config& mainConfig;
Config::RootConfig workingConfig;
void loadConfig();
void saveChanges();
void select(QTreeWidgetItem* item);
QTreeWidgetItem* getSelectedItem() const;
template<void (ButtonManagerItem::*T)()>
void perform();
};