soundboard/include/buttonmanager.h

58 lines
1.2 KiB
C
Raw Permalink 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>
#include <QTreeWidgetItem>
2021-12-21 01:30:18 +01:00
2022-04-02 23:42:56 +02:00
#include "configdialog.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;
}
2022-04-02 23:42:56 +02:00
class ButtonManager : public ConfigDialog
2021-12-21 01:30:18 +01:00
{
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
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
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
2022-04-02 23:42:56 +02:00
virtual void saveChanges() override;
virtual void loadConfig() override;
2021-12-21 01:30:18 +01:00
2022-04-02 23:42:56 +02:00
virtual QDialogButtonBox* getButtonBox() override;
2021-12-21 15:44:51 +01:00
void select(QTreeWidgetItem* item);
QTreeWidgetItem* getSelectedItem() const;
2021-12-22 21:20:25 +01:00
template<typename T>
T* getSelectedItem() const;
// create: allow this method to create a new Row, if nothing else is found
// onlyIfSelected: only return a row if there is a selection
RowItem* getCurrentRow(bool create = true, bool onlyIfSelected = false);
ButtonItem* getCurrentButton(bool create = true) const;
RowItem* addNewRow();
2021-12-21 15:44:51 +01:00
template<void (ButtonManagerItem::*T)()>
void perform();
};