diff --git a/include/addnewwhat.h b/include/addnewwhat.h new file mode 100644 index 0000000..316c6c1 --- /dev/null +++ b/include/addnewwhat.h @@ -0,0 +1,31 @@ +#pragma once + +#include + +namespace Ui { + class AddNewWhat; +} + +class AddNewWhat : public QDialog { + Q_OBJECT + +public: + explicit AddNewWhat(QWidget *parent = nullptr); + ~AddNewWhat(); + + enum ReturnCode { + None = -1, + Cancel = 0, + Row, + Button, + Sample + }; + + ReturnCode returnCode = ReturnCode::None; + +public slots: + virtual void accept() override; + virtual void reject() override; +private: + Ui::AddNewWhat *ui; +}; diff --git a/include/buttonmanageritems.h b/include/buttonmanageritems.h index fd7fa8c..cf328a1 100644 --- a/include/buttonmanageritems.h +++ b/include/buttonmanageritems.h @@ -10,13 +10,11 @@ protected: public: virtual ~ButtonManagerItem(); - virtual bool hasAdd() const; virtual bool hasEdit() const; virtual bool hasRemove() const; virtual bool hasMoveUp() const; virtual bool hasMoveDown() const; - virtual void add(); virtual void edit(); virtual void remove(); virtual void moveUp(); diff --git a/soundboard.pro b/soundboard.pro index 8b3f744..c5bc8d9 100644 --- a/soundboard.pro +++ b/soundboard.pro @@ -30,6 +30,7 @@ SOURCES += \ src/samplereader.cpp \ src/buttonmanager.cpp \ src/buttonmanageritems.cpp \ + src/addnewwhat.cpp \ Log/Log.cpp HEADERS += \ @@ -43,6 +44,7 @@ HEADERS += \ include/samplereader.h \ include/buttonmanager.h \ include/buttonmanageritems.h \ + include/addnewwhat.h \ miniaudio/miniaudio.h \ Log/Log.h @@ -51,6 +53,7 @@ UI_DIR = ui/ OBJECTS_DIR = obj/ FORMS += \ + ui/addnewwhat.ui \ ui/buttonmanager.ui \ ui/editsample.ui \ ui/mainwindow.ui diff --git a/src/addnewwhat.cpp b/src/addnewwhat.cpp new file mode 100644 index 0000000..a0de451 --- /dev/null +++ b/src/addnewwhat.cpp @@ -0,0 +1,23 @@ +#include "addnewwhat.h" +#include "ui_addnewwhat.h" + +AddNewWhat::AddNewWhat(QWidget *parent) : QDialog(parent), ui(new Ui::AddNewWhat) { + ui->setupUi(this); +} + +AddNewWhat::~AddNewWhat() { + delete ui; +} + +void AddNewWhat::accept() { + int idx = ui->comboBox->currentIndex(); + returnCode = (ReturnCode) (idx+1); + + QDialog::accept(); +} + +void AddNewWhat::reject() { + returnCode = Cancel; + + QDialog::reject(); +} \ No newline at end of file diff --git a/src/buttonmanager.cpp b/src/buttonmanager.cpp index f53f523..9f98442 100644 --- a/src/buttonmanager.cpp +++ b/src/buttonmanager.cpp @@ -1,6 +1,8 @@ #include "buttonmanager.h" #include "ui_buttonmanager.h" +#include "addnewwhat.h" + #include ButtonManager::ButtonManager(Config& conf, MainWindow* parent) : QDialog(parent), ui(new Ui::ButtonManager), mainW(parent), mainConfig(conf) { @@ -33,7 +35,21 @@ void ButtonManager::reject() { } void ButtonManager::addButton() { - perform<&ButtonManagerItem::add>(); + AddNewWhat whatshouldbeadded(this); + whatshouldbeadded.exec(); + AddNewWhat::ReturnCode type = whatshouldbeadded.returnCode; + if(type == AddNewWhat::ReturnCode::Row) { + // create new row + return; + } + if(type == AddNewWhat::ReturnCode::Button) { + // create new button + return; + } + if(type == AddNewWhat::ReturnCode::Sample) { + // create new sample + return; + } } void ButtonManager::editButton() { @@ -64,7 +80,7 @@ void ButtonManager::itemSelected() { ButtonManagerItem* item = dynamic_cast(getSelectedItem()); if(item) { // set buttons - ui->addButton->setEnabled(item->hasAdd()); + // ui->addButton->setEnabled(item->hasAdd()); ui->editButton->setEnabled(item->hasEdit()); ui->deleteButton->setEnabled(item->hasRemove()); ui->moveUpButton->setEnabled(item->hasMoveUp()); @@ -72,7 +88,7 @@ void ButtonManager::itemSelected() { } else { Log::info << "no valid item selected"; - ui->addButton->setEnabled(false); + // ui->addButton->setEnabled(false); ui->editButton->setEnabled(false); ui->deleteButton->setEnabled(false); ui->moveUpButton->setEnabled(false); diff --git a/src/buttonmanageritems.cpp b/src/buttonmanageritems.cpp index 8383bc8..84e33c7 100644 --- a/src/buttonmanageritems.cpp +++ b/src/buttonmanageritems.cpp @@ -12,10 +12,6 @@ ButtonManagerItem::ButtonManagerItem(QTreeWidgetItem* parent, int type) : QTreeW ButtonManagerItem::~ButtonManagerItem() {} -bool ButtonManagerItem::hasAdd() const { - return false; -} - bool ButtonManagerItem::hasEdit() const { return false; } @@ -32,9 +28,6 @@ bool ButtonManagerItem::hasMoveDown() const { return false; } - -void ButtonManagerItem::add() {} - void ButtonManagerItem::edit() {} void ButtonManagerItem::remove() {} diff --git a/ui/addnewwhat.ui b/ui/addnewwhat.ui new file mode 100644 index 0000000..d8c3077 --- /dev/null +++ b/ui/addnewwhat.ui @@ -0,0 +1,83 @@ + + + AddNewWhat + + + + 0 + 0 + 201 + 85 + + + + What Type of Element should be created? + + + + + + + Row + + + + + Button + + + + + Sample + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + AddNewWhat + accept() + + + 227 + 204 + + + 157 + 274 + + + + + buttonBox + rejected() + AddNewWhat + reject() + + + 295 + 210 + + + 286 + 274 + + + + + diff --git a/ui/editsample.ui b/ui/editsample.ui index 2543b2a..5b1d6f9 100644 --- a/ui/editsample.ui +++ b/ui/editsample.ui @@ -11,7 +11,7 @@ - Dialog + Edit Sample