aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/qsui/toolbareditor.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-03-21 13:33:06 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-03-21 13:33:06 +0000
commitb152400f80150576756eb43c601efc10db369b7b (patch)
treecc9cf4b58b8a3e03bd5cbeec7f2920f7e44033f2 /src/plugins/Ui/qsui/toolbareditor.cpp
parent8040e9cf13fa527c9262b5a4eaa233304485c1c9 (diff)
downloadqmmp-b152400f80150576756eb43c601efc10db369b7b.tar.gz
qmmp-b152400f80150576756eb43c601efc10db369b7b.tar.bz2
qmmp-b152400f80150576756eb43c601efc10db369b7b.zip
qsui: fixed some bugs in the toolbar editor
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6196 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/qsui/toolbareditor.cpp')
-rw-r--r--src/plugins/Ui/qsui/toolbareditor.cpp94
1 files changed, 56 insertions, 38 deletions
diff --git a/src/plugins/Ui/qsui/toolbareditor.cpp b/src/plugins/Ui/qsui/toolbareditor.cpp
index 738fd9272..80da03b0c 100644
--- a/src/plugins/Ui/qsui/toolbareditor.cpp
+++ b/src/plugins/Ui/qsui/toolbareditor.cpp
@@ -35,10 +35,14 @@ ToolBarEditor::ToolBarEditor(QWidget *parent) :
m_ui->downToolButton->setIcon(qApp->style()->standardIcon(QStyle::SP_ArrowDown));
m_ui->addToolButton->setIcon(qApp->style()->standardIcon(QStyle::SP_ArrowRight));
m_ui->removeToolButton->setIcon(qApp->style()->standardIcon(QStyle::SP_ArrowLeft));
+
connect(m_ui->actionsListWidget->model(), SIGNAL(rowsAboutToBeRemoved(const QModelIndex &,int,int)),
SLOT(onRowsAboutToBeRemoved(const QModelIndex &, int, int)));
connect(m_ui->activeActionsListWidget->model(), SIGNAL(rowsAboutToBeRemoved(const QModelIndex &,int,int)),
SLOT(onRowsAboutToBeRemoved(const QModelIndex &, int, int)));
+
+ m_toolBarInfoList = ActionManager::instance()->readToolBarSettings();
+
populateActionList();
}
@@ -49,12 +53,7 @@ ToolBarEditor::~ToolBarEditor()
void ToolBarEditor::accept()
{
- /*QStringList names;
- for(int row = 0; row < m_ui->activeActionsListWidget->count(); ++row)
- names.append(m_ui->activeActionsListWidget->item(row)->data(Qt::UserRole).toString());
-
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- settings.setValue("Simple/toolbar_actions", names);*/
+ ActionManager::instance()->writeToolBarSettings(m_toolBarInfoList);
QDialog::accept();
}
@@ -65,7 +64,7 @@ void ToolBarEditor::populateActionList(bool reset)
m_ui->activeActionsListWidget->clear();
QStringList actionNames;
- foreach (ActionManager::ToolBarInfo info, ActionManager::instance()->readToolBarSettings())
+ foreach (ActionManager::ToolBarInfo info, m_toolBarInfoList)
{
actionNames << info.actionNames;
m_ui->toolbarNameComboBox->addItem(info.title);
@@ -87,35 +86,7 @@ void ToolBarEditor::populateActionList(bool reset)
}
m_ui->actionsListWidget->addItem(createExtraItem("-- " + tr("Separator") + " --", "separator"));
-
- /*foreach (QString name, names)
- {
- QAction *action = ActionManager::instance()->findChild<QAction *>(name);
- if(action)
- {
- QListWidgetItem *item = new QListWidgetItem();
- item->setIcon(action->icon());
- item->setText(action->text().replace("&", ""));
- item->setData(Qt::UserRole, action->objectName());
- m_ui->activeActionsListWidget->addItem(item);
- }
- else if(name == "position_slider")
- {
- m_ui->activeActionsListWidget->addItem(createExtraItem(tr("Position Slider"), name));
- }
- else if(name == "volume_slider")
- {
- m_ui->activeActionsListWidget->addItem(createExtraItem(tr("Volume Slider"), name));
- }
- else if(name == "volume_icon")
- {
- m_ui->activeActionsListWidget->addItem(createExtraItem(tr("Volume Icon"), name));
- }
- else if(name == "separator")
- {
- m_ui->activeActionsListWidget->addItem(createExtraItem("-- " + tr("Separator") + " --", name));
- }
- }*/
+ on_toolbarNameComboBox_activated(m_ui->toolbarNameComboBox->currentIndex());
}
QListWidgetItem *ToolBarEditor::createExtraItem(const QString &name, const QString &shortName, const QIcon &icon)
@@ -129,51 +100,98 @@ QListWidgetItem *ToolBarEditor::createExtraItem(const QString &name, const QStri
void ToolBarEditor::on_addToolButton_clicked()
{
+ int index = m_ui->toolbarNameComboBox->currentIndex();
+ if(index < 0)
+ return;
+
int row = m_ui->actionsListWidget->currentRow();
if(row > -1)
{
QListWidgetItem *item = m_ui->actionsListWidget->takeItem(row);
m_ui->activeActionsListWidget->addItem(item);
+ m_toolBarInfoList[index].actionNames.append(item->data(Qt::UserRole).toString());
}
}
void ToolBarEditor::on_removeToolButton_clicked()
{
+ int index = m_ui->toolbarNameComboBox->currentIndex();
+ if(index < 0)
+ return;
+
int row = m_ui->activeActionsListWidget->currentRow();
if(row > -1)
{
QListWidgetItem *item = m_ui->activeActionsListWidget->takeItem(row);
m_ui->actionsListWidget->addItem(item);
+ m_toolBarInfoList[index].actionNames.removeAt(row);
}
}
void ToolBarEditor::on_upToolButton_clicked()
{
+ int index = m_ui->toolbarNameComboBox->currentIndex();
+ if(index < 0)
+ return;
+
int row = m_ui->activeActionsListWidget->currentRow();
if(row > 0)
{
QListWidgetItem *item = m_ui->activeActionsListWidget->takeItem(row);
m_ui->activeActionsListWidget->insertItem(row - 1, item);
m_ui->activeActionsListWidget->setCurrentItem(item);
+ m_toolBarInfoList[index].actionNames.move(row, row - 1);
}
}
void ToolBarEditor::on_downToolButton_clicked()
{
+ int index = m_ui->toolbarNameComboBox->currentIndex();
+ if(index < 0)
+ return;
+
int row = m_ui->activeActionsListWidget->currentRow();
if(row > -1 && row < m_ui->activeActionsListWidget->count())
{
QListWidgetItem *item = m_ui->activeActionsListWidget->takeItem(row);
m_ui->activeActionsListWidget->insertItem(row + 1, item);
m_ui->activeActionsListWidget->setCurrentItem(item);
+ m_toolBarInfoList[index].actionNames.move(row, row + 1);
}
}
void ToolBarEditor::on_resetPushButton_clicked()
{
- m_ui->actionsListWidget->clear();
+ /*m_ui->actionsListWidget->clear();
m_ui->activeActionsListWidget->clear();
- populateActionList(true);
+ populateActionList(true);*/
+}
+
+void ToolBarEditor::on_toolbarNameComboBox_activated(int index)
+{
+ m_ui->activeActionsListWidget->clear();
+ if(index < 0)
+ return;
+ ActionManager::ToolBarInfo info = m_toolBarInfoList.at(index);
+
+ foreach (QString name, info.actionNames)
+ {
+ if(name == "separator")
+ {
+ m_ui->activeActionsListWidget->addItem(createExtraItem("-- " + tr("Separator") + " --", name));
+ continue;
+ }
+
+ QAction *action = ActionManager::instance()->findChild<QAction *>(name);
+ if(action)
+ {
+ QListWidgetItem *item = new QListWidgetItem();
+ item->setIcon(action->icon());
+ item->setText(action->text().replace("&", ""));
+ item->setData(Qt::UserRole, action->objectName());
+ m_ui->activeActionsListWidget->addItem(item);
+ }
+ }
}
void ToolBarEditor::onRowsAboutToBeRemoved(const QModelIndex &, int start, int)