diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-06-12 18:28:01 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-06-12 18:28:01 +0000 |
| commit | 520d57d7085076c05146451bce95e1b1476aa33d (patch) | |
| tree | dc7065804a2ada6eda241dbfdca75c063fd245e0 /src/plugins/General | |
| parent | cf2dab1b9261301e39baef71650f4055ad505f62 (diff) | |
| download | qmmp-520d57d7085076c05146451bce95e1b1476aa33d.tar.gz qmmp-520d57d7085076c05146451bce95e1b1476aa33d.tar.bz2 qmmp-520d57d7085076c05146451bce95e1b1476aa33d.zip | |
fileops: improved settings dialog
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5129 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General')
| -rw-r--r-- | src/plugins/General/fileops/settingsdialog.cpp | 54 | ||||
| -rw-r--r-- | src/plugins/General/fileops/settingsdialog.h | 10 | ||||
| -rw-r--r-- | src/plugins/General/fileops/settingsdialog.ui | 12 |
3 files changed, 52 insertions, 24 deletions
diff --git a/src/plugins/General/fileops/settingsdialog.cpp b/src/plugins/General/fileops/settingsdialog.cpp index 008c9997c..475949d33 100644 --- a/src/plugins/General/fileops/settingsdialog.cpp +++ b/src/plugins/General/fileops/settingsdialog.cpp @@ -37,8 +37,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) m_ui.tableWidget->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents); m_ui.tableWidget->verticalHeader()->hide(); m_ui.tableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); - connect (m_ui.newButton,SIGNAL(pressed()), SLOT(createAction())); - connect (m_ui.deleteButton,SIGNAL(pressed()), SLOT(deleteAction())); + QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("FileOps"); int count = settings.value("count", 0).toInt(); @@ -55,11 +54,14 @@ SettingsDialog::SettingsDialog(QWidget *parent) comboBox->addItem (tr("Remove"), FileOps::REMOVE); comboBox->setFocusPolicy (Qt::NoFocus); + checkBox->setChecked(settings.value(QString("enabled_%1").arg(i), true).toBool()); int ci = comboBox->findData (settings.value(QString("action_%1").arg(i), FileOps::COPY).toInt()); if (ci >= 0) comboBox->setCurrentIndex(ci); + connect(comboBox, SIGNAL(activated(int)), SLOT(updateLineEdits())); + ActionItem *item = new ActionItem(settings.value(QString("name_%1").arg(i), "Action").toString()); item->setPattern(settings.value(QString("pattern_%1").arg(i)).toString()); item->setDestination(settings.value(QString("destination_%1").arg(i)).toString()); @@ -73,12 +75,9 @@ SettingsDialog::SettingsDialog(QWidget *parent) m_ui.tableWidget->item (i, 3)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); } settings.endGroup(); - connect (m_ui.tableWidget, SIGNAL(currentItemChanged (QTableWidgetItem *, QTableWidgetItem *)), + connect (m_ui.tableWidget, SIGNAL(currentCellChanged(int,int,int,int)), SLOT(updateLineEdits())); updateLineEdits(); - connect (m_ui.destinationEdit, SIGNAL(textChanged (const QString&)), SLOT(changeDestination(const QString&))); - connect (m_ui.patternEdit, SIGNAL(textChanged (const QString&)), SLOT(changePattern(const QString&))); - connect (m_ui.destButton, SIGNAL(clicked()), SLOT(selectDirectory())); createMenus(); } @@ -120,7 +119,7 @@ void SettingsDialog::accept() QDialog::accept(); } -void SettingsDialog::createAction() +void SettingsDialog::on_newButton_clicked() { int row = m_ui.tableWidget->rowCount (); m_ui.tableWidget->insertRow (row); @@ -139,6 +138,8 @@ void SettingsDialog::createAction() item->setDestination(QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); item->setPattern("%p - %t"); + connect(comboBox, SIGNAL(activated(int)), SLOT(updateLineEdits())); + m_ui.tableWidget->setCellWidget (row, 0, checkBox); m_ui.tableWidget->setCellWidget (row, 1, comboBox); m_ui.tableWidget->setItem (row, 2, item); @@ -147,7 +148,7 @@ void SettingsDialog::createAction() m_ui.tableWidget->item (row, 3)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); } -void SettingsDialog::deleteAction() +void SettingsDialog::on_deleteButton_clicked() { if (m_ui.tableWidget->currentRow () >= 0) m_ui.tableWidget->removeRow (m_ui.tableWidget->currentRow ()); @@ -160,15 +161,42 @@ void SettingsDialog::updateLineEdits() ActionItem *item = (ActionItem *) m_ui.tableWidget->item(m_ui.tableWidget->currentRow (), 2); m_ui.destinationEdit->setText(item->destination()); m_ui.patternEdit->setText(item->pattern()); + + QComboBox *comboBox = qobject_cast<QComboBox *> + (m_ui.tableWidget->cellWidget (m_ui.tableWidget->currentRow (), 1)); + int action = comboBox->itemData (comboBox->currentIndex()).toInt(); + if(action == FileOps::COPY || action == FileOps::MOVE) + { + m_ui.destinationEdit->setEnabled(true); + m_ui.patternEdit->setEnabled(true); + m_ui.destButton->setEnabled(true); + m_ui.patternButton->setEnabled(true); + } + else if(action == FileOps::RENAME) + { + m_ui.destinationEdit->setEnabled(false); + m_ui.patternEdit->setEnabled(true); + m_ui.destButton->setEnabled(false); + m_ui.patternButton->setEnabled(true); + } + else if(action == FileOps::REMOVE) + { + m_ui.destinationEdit->setEnabled(false); + m_ui.patternEdit->setEnabled(false); + m_ui.destButton->setEnabled(false); + m_ui.patternButton->setEnabled(false); + } } else { - m_ui.destinationEdit->clear(); - m_ui.patternEdit->clear(); + m_ui.destinationEdit->setEnabled(false); + m_ui.patternEdit->setEnabled(false); + m_ui.destButton->setEnabled(false); + m_ui.patternButton->setEnabled(false); } } -void SettingsDialog::changeDestination(const QString &dest) +void SettingsDialog::on_destinationEdit_textChanged(QString dest) { if (m_ui.tableWidget->currentRow () >= 0) { @@ -177,7 +205,7 @@ void SettingsDialog::changeDestination(const QString &dest) } } -void SettingsDialog::changePattern(const QString &pattern) +void SettingsDialog::on_patternEdit_textChanged(QString pattern) { if (m_ui.tableWidget->currentRow () >= 0) { @@ -214,7 +242,7 @@ void SettingsDialog::addTitleString(QAction *a) m_ui.patternEdit->insert(a->data().toString()); } -void SettingsDialog::selectDirectory() +void SettingsDialog::on_destButton_clicked() { QString dir = FileDialog::getExistingDirectory(this, tr("Choose a directory"), m_ui.destinationEdit->text()); diff --git a/src/plugins/General/fileops/settingsdialog.h b/src/plugins/General/fileops/settingsdialog.h index a9e1553fd..00bf112dd 100644 --- a/src/plugins/General/fileops/settingsdialog.h +++ b/src/plugins/General/fileops/settingsdialog.h @@ -42,13 +42,13 @@ public slots: virtual void accept(); private slots: - void createAction(); - void deleteAction(); + void on_newButton_clicked(); + void on_deleteButton_clicked(); void updateLineEdits(); - void changeDestination(const QString &dest); - void changePattern(const QString &pattern); + void on_destinationEdit_textChanged(QString dest); + void on_patternEdit_textChanged(QString pattern); void addTitleString(QAction *action); - void selectDirectory(); + void on_destButton_clicked(); void on_tableWidget_itemDoubleClicked (QTableWidgetItem *item); private: diff --git a/src/plugins/General/fileops/settingsdialog.ui b/src/plugins/General/fileops/settingsdialog.ui index 13dccc20c..86e6245f0 100644 --- a/src/plugins/General/fileops/settingsdialog.ui +++ b/src/plugins/General/fileops/settingsdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>425</width> - <height>308</height> + <width>764</width> + <height>503</height> </rect> </property> <property name="windowTitle"> @@ -164,8 +164,8 @@ <slot>accept()</slot> <hints> <hint type="sourcelabel"> - <x>431</x> - <y>376</y> + <x>418</x> + <y>301</y> </hint> <hint type="destinationlabel"> <x>155</x> @@ -180,8 +180,8 @@ <slot>reject()</slot> <hints> <hint type="sourcelabel"> - <x>433</x> - <y>381</y> + <x>418</x> + <y>301</y> </hint> <hint type="destinationlabel"> <x>28</x> |
