summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2018-05-20 10:40:23 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2018-05-20 10:43:21 +0200
commitaada18db0ae8611e8e0ae67e0096d1f9e1d44d48 (patch)
treed50d09a758b2194bd29fdf6bad237b41054938cd
parent4bb39eaad8dcff57c297aaf9542113d2eaed9067 (diff)
Add some placeholder icons for instrument and channel lists.
-rw-r--r--icons/add_channel.pngbin0 -> 3038 bytes
-rw-r--r--icons/add_instrument.pngbin0 -> 1937 bytes
-rw-r--r--icons/channel.pngbin0 -> 3518 bytes
-rw-r--r--icons/remove_channel.pngbin0 -> 3628 bytes
-rw-r--r--icons/remove_instrument.pngbin0 -> 2140 bytes
-rw-r--r--src/dgedit.qrc5
-rw-r--r--src/mainwindow.cc89
-rw-r--r--src/mainwindow.h7
8 files changed, 91 insertions, 10 deletions
diff --git a/icons/add_channel.png b/icons/add_channel.png
new file mode 100644
index 0000000..eda3da3
--- /dev/null
+++ b/icons/add_channel.png
Binary files differ
diff --git a/icons/add_instrument.png b/icons/add_instrument.png
new file mode 100644
index 0000000..6d1055f
--- /dev/null
+++ b/icons/add_instrument.png
Binary files differ
diff --git a/icons/channel.png b/icons/channel.png
new file mode 100644
index 0000000..389445b
--- /dev/null
+++ b/icons/channel.png
Binary files differ
diff --git a/icons/remove_channel.png b/icons/remove_channel.png
new file mode 100644
index 0000000..05cb0e3
--- /dev/null
+++ b/icons/remove_channel.png
Binary files differ
diff --git a/icons/remove_instrument.png b/icons/remove_instrument.png
new file mode 100644
index 0000000..fa3d1cc
--- /dev/null
+++ b/icons/remove_instrument.png
Binary files 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 @@
<file>../icons/master.png</file>
<file>../icons/file.png</file>
<file>../icons/instrument.png</file>
+ <file>../icons/add_instrument.png</file>
+ <file>../icons/remove_instrument.png</file>
+ <file>../icons/channel.png</file>
+ <file>../icons/add_channel.png</file>
+ <file>../icons/remove_channel.png</file>
</qresource>
</RCC>
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 <QApplication>
#include <QMenuBar>
#include <QFileDialog>
+#include <QToolBar>
+#include <QToolButton>
#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;
};