From aada18db0ae8611e8e0ae67e0096d1f9e1d44d48 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 20 May 2018 10:40:23 +0200 Subject: Add some placeholder icons for instrument and channel lists. --- icons/add_channel.png | Bin 0 -> 3038 bytes icons/add_instrument.png | Bin 0 -> 1937 bytes icons/channel.png | Bin 0 -> 3518 bytes icons/remove_channel.png | Bin 0 -> 3628 bytes icons/remove_instrument.png | Bin 0 -> 2140 bytes src/dgedit.qrc | 5 +++ src/mainwindow.cc | 89 +++++++++++++++++++++++++++++++++++++++----- src/mainwindow.h | 7 ++++ 8 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 icons/add_channel.png create mode 100644 icons/add_instrument.png create mode 100644 icons/channel.png create mode 100644 icons/remove_channel.png create mode 100644 icons/remove_instrument.png diff --git a/icons/add_channel.png b/icons/add_channel.png new file mode 100644 index 0000000..eda3da3 Binary files /dev/null and b/icons/add_channel.png differ diff --git a/icons/add_instrument.png b/icons/add_instrument.png new file mode 100644 index 0000000..6d1055f Binary files /dev/null and b/icons/add_instrument.png differ diff --git a/icons/channel.png b/icons/channel.png new file mode 100644 index 0000000..389445b Binary files /dev/null and b/icons/channel.png differ diff --git a/icons/remove_channel.png b/icons/remove_channel.png new file mode 100644 index 0000000..05cb0e3 Binary files /dev/null and b/icons/remove_channel.png differ diff --git a/icons/remove_instrument.png b/icons/remove_instrument.png new file mode 100644 index 0000000..fa3d1cc Binary files /dev/null and b/icons/remove_instrument.png differ diff --git a/src/dgedit.qrc b/src/dgedit.qrc index df7e9ba..b4f16a1 100644 --- a/src/dgedit.qrc +++ b/src/dgedit.qrc @@ -4,5 +4,10 @@ ../icons/master.png ../icons/file.png ../icons/instrument.png + ../icons/add_instrument.png + ../icons/remove_instrument.png + ../icons/channel.png + ../icons/add_channel.png + ../icons/remove_channel.png diff --git a/src/mainwindow.cc b/src/mainwindow.cc index b9cf800..6238a18 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -35,6 +35,8 @@ #include #include #include +#include +#include #include "settings.h" #include "projectdialog.h" @@ -81,23 +83,61 @@ MainWindow::MainWindow(Settings& settings) instruments_dock->setObjectName("instruments_dock"); instruments_dock->setAllowedAreas(Qt::LeftDockWidgetArea); instruments_dock->setFeatures(QDockWidget::DockWidgetMovable); - instrument_list = new QListWidget(); - connect(instrument_list, SIGNAL(itemDoubleClicked(QListWidgetItem*)), - this, SLOT(itemDoubleClicked(QListWidgetItem*))); - instruments_dock->setWidget(instrument_list); + { + auto w = new QWidget(); + auto l = new QVBoxLayout(); + w->setLayout(l); + auto tools = new QToolBar(); + auto add = new QToolButton(); + add->setIcon(QPixmap(":icons/add_instrument.png")); + connect(add, SIGNAL(clicked()), this, SLOT(addInstrument())); + auto rem = new QToolButton(); + rem->setIcon(QPixmap(":icons/remove_instrument.png")); + connect(rem, SIGNAL(clicked()), this, SLOT(removeInstrument())); + tools->addWidget(add); + tools->addWidget(rem); + instrument_list = new QListWidget(); + connect(instrument_list, SIGNAL(itemDoubleClicked(QListWidgetItem*)), + this, SLOT(itemDoubleClicked(QListWidgetItem*))); + + l->addWidget(tools); + l->addWidget(instrument_list); + + instruments_dock->setWidget(w); + } addDockWidget(Qt::LeftDockWidgetArea, instruments_dock); channels_dock = new QDockWidget(tr("Channels:"), this); channels_dock->setObjectName("channels_dock"); channels_dock->setAllowedAreas(Qt::LeftDockWidgetArea); channels_dock->setFeatures(QDockWidget::DockWidgetMovable); - QListWidget* channel_list = new QListWidget(); - channel_list->addItems({"AmbL", "AmbR", "Kdrum_back", "Kdrum_front", "Hihat", - "OHL", "OHR", "Ride","Snare_bottom", "Snare_top", - "Tom1", "Tom2", "Tom3"}); + { + auto w = new QWidget(); + auto l = new QVBoxLayout(); + w->setLayout(l); + auto tools = new QToolBar(); + auto add = new QToolButton(); + add->setIcon(QPixmap(":icons/add_channel.png")); + connect(add, SIGNAL(clicked()), this, SLOT(addChannel())); + auto rem = new QToolButton(); + rem->setIcon(QPixmap(":icons/remove_channel.png")); + connect(rem, SIGNAL(clicked()), this, SLOT(removeChannel())); + tools->addWidget(add); + tools->addWidget(rem); + channel_list = new QListWidget(); + channel_list->addItems({"AmbL", "AmbR", "Kdrum_back", "Kdrum_front", + "Hihat", "OHL", "OHR", "Ride","Snare_bottom", + "Snare_top", "Tom1", "Tom2", "Tom3"}); + for(int i = 0; i < channel_list->count(); ++i) + { + channel_list->item(i)->setIcon(QPixmap(":icons/channel.png")); + } - channels_dock->setWidget(channel_list); - addDockWidget(Qt::LeftDockWidgetArea, channels_dock); + l->addWidget(tools); + l->addWidget(channel_list); + channels_dock->setWidget(w); + addDockWidget(Qt::LeftDockWidgetArea, channels_dock); + } loadSettings(); @@ -112,6 +152,23 @@ MainWindow::~MainWindow() { } +void MainWindow::addInstrument() +{ + auto id = project.createInstrument(); + auto& instrument = project.getInstrument(id); + instrument.setInstrumentName(tr("New instrument")); + + auto item = new QListWidgetItem(); + item->setIcon(QPixmap(":icons/instrument.png")); + item->setText(instrument.getInstrumentName()); + item->setData(Qt::UserRole, id); + instrument_list->addItem(item); +} + +void MainWindow::removeInstrument() +{ +} + void MainWindow::itemDoubleClicked(QListWidgetItem *item) { int id = item->data(Qt::UserRole).toInt(); @@ -134,6 +191,18 @@ void MainWindow::itemDoubleClicked(QListWidgetItem *item) tab_widget->setCurrentIndex(tab_widget->count() - 1); } +void MainWindow::addChannel() +{ + auto item = new QListWidgetItem(); + item->setIcon(QPixmap(":icons/channel.png")); + item->setText("New Channel"); + channel_list->addItem(item); +} + +void MainWindow::removeChannel() +{ +} + void MainWindow::updateWindowTitle() { auto project_string = project.getProjectName(); diff --git a/src/mainwindow.h b/src/mainwindow.h index c5fcc9a..fcff476 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -45,7 +45,13 @@ public: ~MainWindow(); public slots: + void addInstrument(); + void removeInstrument(); void itemDoubleClicked(QListWidgetItem *item); + + void addChannel(); + void removeChannel(); + void updateWindowTitle(); void newProject(); @@ -70,5 +76,6 @@ private: QDockWidget* instruments_dock; QListWidget* instrument_list; QDockWidget* channels_dock; + QListWidget* channel_list; QTabWidget* tab_widget; }; -- cgit v1.2.3