Mercurial > hg > svgui
changeset 1288:4683b6ffb76a plugin-path-config
Grey-out meaningless buttons
author | Chris Cannam |
---|---|
date | Tue, 15 May 2018 15:25:04 +0100 |
parents | 2dd7f764c3a6 |
children | ed04d3666d33 |
files | widgets/PluginPathConfigurator.cpp widgets/PluginPathConfigurator.h |
diffstat | 2 files changed, 35 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/widgets/PluginPathConfigurator.cpp Tue May 15 13:56:26 2018 +0100 +++ b/widgets/PluginPathConfigurator.cpp Tue May 15 15:25:04 2018 +0100 @@ -16,6 +16,7 @@ #include <QPushButton> #include <QListWidget> +#include <QGridLayout> #include <QLabel> #include "IconLoader.h" @@ -38,30 +39,32 @@ m_layout->addWidget(m_list, row, 0, 1, 2); m_layout->setRowStretch(row, 10); m_layout->setColumnStretch(0, 10); + connect(m_list, SIGNAL(currentRowChanged(int)), + this, SLOT(currentLocationChanged(int))); ++row; QHBoxLayout *buttons = new QHBoxLayout; - QPushButton *down = new QPushButton; - down->setIcon(IconLoader().load("down")); - down->setToolTip(tr("Move the selected location down in the list")); - down->setFixedSize(WidgetScale::scaleQSize(QSize(16, 16))); - connect(down, SIGNAL(clicked()), this, SLOT(downClicked())); - buttons->addWidget(down); + m_down = new QPushButton; + m_down->setIcon(IconLoader().load("down")); + m_down->setToolTip(tr("Move the selected location later in the list")); + m_down->setFixedSize(WidgetScale::scaleQSize(QSize(16, 16))); + connect(m_down, SIGNAL(clicked()), this, SLOT(downClicked())); + buttons->addWidget(m_down); - QPushButton *up = new QPushButton; - up->setIcon(IconLoader().load("up")); - up->setToolTip(tr("Move the selected location up in the list")); - up->setFixedSize(WidgetScale::scaleQSize(QSize(16, 16))); - connect(up, SIGNAL(clicked()), this, SLOT(upClicked())); - buttons->addWidget(up); + m_up = new QPushButton; + m_up->setIcon(IconLoader().load("up")); + m_up->setToolTip(tr("Move the selected location earlier in the list")); + m_up->setFixedSize(WidgetScale::scaleQSize(QSize(16, 16))); + connect(m_up, SIGNAL(clicked()), this, SLOT(upClicked())); + buttons->addWidget(m_up); - QPushButton *del = new QPushButton; - del->setIcon(IconLoader().load("datadelete")); - del->setToolTip(tr("Remove the selected location from the list")); - del->setFixedSize(WidgetScale::scaleQSize(QSize(16, 16))); - connect(del, SIGNAL(clicked()), this, SLOT(deleteClicked())); - buttons->addWidget(del); + m_delete = new QPushButton; + m_delete->setIcon(IconLoader().load("datadelete")); + m_delete->setToolTip(tr("Remove the selected location from the list")); + m_delete->setFixedSize(WidgetScale::scaleQSize(QSize(16, 16))); + connect(m_delete, SIGNAL(clicked()), this, SLOT(deleteClicked())); + buttons->addWidget(m_delete); m_layout->addLayout(buttons, row, 1); ++row; @@ -94,6 +97,14 @@ } void +PluginPathConfigurator::currentLocationChanged(int i) +{ + m_up->setEnabled(i > 0); + m_down->setEnabled(i + 1 < m_path.size()); + m_delete->setEnabled(i < m_path.size()); +} + +void PluginPathConfigurator::upClicked() { int current = m_list->currentRow();
--- a/widgets/PluginPathConfigurator.h Tue May 15 13:56:26 2018 +0100 +++ b/widgets/PluginPathConfigurator.h Tue May 15 15:25:04 2018 +0100 @@ -16,12 +16,13 @@ #define SV_PLUGIN_PATH_CONFIGURATOR_H #include <QFrame> -#include <QGridLayout> #include <QStringList> class QLabel; class QWidget; class QListWidget; +class QPushButton; +class QGridLayout; class PluginPathConfigurator : public QFrame { @@ -41,10 +42,14 @@ void upClicked(); void downClicked(); void deleteClicked(); + void currentLocationChanged(int); private: QGridLayout *m_layout; QListWidget *m_list; + QPushButton *m_up; + QPushButton *m_down; + QPushButton *m_delete; QStringList m_path; QString m_var;