diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-07-09 18:54:22 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-07-09 18:54:22 +0000 |
| commit | e85b77286f66edecdc3707065e39b31f2e220f5a (patch) | |
| tree | 8d92254944d3c9391c61231bc114758f9ac23370 /src/ui | |
| parent | c0a9e456b6a935b67f2d3357a9cef7170cfee418 (diff) | |
| download | qmmp-e85b77286f66edecdc3707065e39b31f2e220f5a.tar.gz qmmp-e85b77286f66edecdc3707065e39b31f2e220f5a.tar.bz2 qmmp-e85b77286f66edecdc3707065e39b31f2e220f5a.zip | |
completed file dialog support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@443 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/configdialog.cpp | 45 | ||||
| -rw-r--r-- | src/ui/configdialog.h | 2 | ||||
| -rw-r--r-- | src/ui/eqwidget.cpp | 8 | ||||
| -rw-r--r-- | src/ui/forms/configdialog.ui | 6 | ||||
| -rw-r--r-- | src/ui/mainwindow.cpp | 129 |
5 files changed, 58 insertions, 132 deletions
diff --git a/src/ui/configdialog.cpp b/src/ui/configdialog.cpp index eac2272a6..185b4bfc0 100644 --- a/src/ui/configdialog.cpp +++ b/src/ui/configdialog.cpp @@ -66,9 +66,10 @@ ConfigDialog::ConfigDialog ( QWidget *parent ) connect (ui.generalPluginTable, SIGNAL(cellPressed(int, int)), SLOT(updateButtons())); connect (ui.effectPluginTable, SIGNAL(cellPressed(int, int)), SLOT(updateButtons())); connect (ui.pluginsTab, SIGNAL(currentChanged(int)), SLOT(updateButtons())); + connect (ui.fileDialogComboBox, SIGNAL (currentIndexChanged (int)), SLOT(updateDialogButton(int))); + connect (ui.fdInformationButton, SIGNAL (clicked()), SLOT(showFileDialogInfo())); ui.listWidget->setIconSize (QSize (69,29)); m_skin = Skin::getPointer(); - ui.fileDialogComboBox->insertItems(0,FileDialog::registeredFactories()); readSettings(); m_reader = new SkinReader(this); m_reader->generateThumbs(); @@ -101,16 +102,6 @@ void ConfigDialog::readSettings() ui.per20CheckBox->setChecked(settings.value ("PlayList/convert_twenty", TRUE).toBool()); ui.fullPathCheckBox->setChecked(settings.value ("PlayList/full_stream_path", FALSE).toBool()); - - QString f_dialogName = - settings.value("FileDialog",QtFileDialogFactory::QtFileDialogFactoryName).toString(); - - int ind = FileDialog::registeredFactories().indexOf(f_dialogName); - if (ind != -1) - ui.fileDialogComboBox->setCurrentIndex(ind); - else - ui.fileDialogComboBox->setCurrentIndex(0); - //proxy settings ui.enableProxyCheckBox->setChecked( settings.value ("Proxy/use_proxy", FALSE).toBool()); @@ -177,7 +168,7 @@ void ConfigDialog::loadSkins() m_skinList << QFileInfo(path); } connect (ui.listWidget, SIGNAL (itemClicked (QListWidgetItem *)), - this, SLOT (changeSkin())); + this, SLOT (changeSkin())); } void ConfigDialog::findSkins(const QString &path) @@ -355,9 +346,20 @@ void ConfigDialog::loadPluginsInfo() ui.generalPluginTable->item(i,2)->setToolTip(files.at (i)); } - ui.generalPluginTable->resizeColumnToContents ( 0 ); - ui.generalPluginTable->resizeColumnToContents ( 1 ); + ui.generalPluginTable->resizeColumnToContents (0); + ui.generalPluginTable->resizeColumnToContents (1); ui.generalPluginTable->resizeRowsToContents (); + + /* + load file dialog information + */ + + foreach(FileDialogFactory *factory, FileDialog::registeredFactories()) + { + ui.fileDialogComboBox->addItem(factory->properties().name); + if (FileDialog::isEnabled(factory)) + ui.fileDialogComboBox->setCurrentIndex(ui.fileDialogComboBox->count()-1); + } } @@ -463,7 +465,7 @@ void ConfigDialog::showPluginInfo() int row = ui.inputPluginTable->currentRow (); if (m_inputPluginItems.isEmpty() || row < 0) return; - m_inputPluginItems.at(row)->factory()->showAbout (this); + m_inputPluginItems.at(row)->factory()->showAbout (this); break; } case 1: @@ -536,7 +538,7 @@ void ConfigDialog::saveSettings() settings.setValue ("PlayList/convert_underscore", ui.underscoresCheckBox->isChecked()); settings.setValue ("PlayList/convert_twenty", ui.per20CheckBox->isChecked()); settings.setValue ("PlayList/full_stream_path", ui.fullPathCheckBox->isChecked()); - settings.setValue ("FileDialog", ui.fileDialogComboBox->currentText()); + FileDialog::setEnabled(FileDialog::registeredFactories().at(ui.fileDialogComboBox->currentIndex())); settings.setValue ("Proxy/use_proxy", ui.enableProxyCheckBox->isChecked()); settings.setValue ("Proxy/authentication", ui.authProxyCheckBox->isChecked()); settings.setValue ("Proxy/host",ui.hostLineEdit->text()); @@ -609,3 +611,14 @@ void ConfigDialog::updateButtons() ui.preferencesButton->setEnabled(preferences); ui.informationButton->setEnabled(information); } + +void ConfigDialog::updateDialogButton(int index) +{ + ui.fdInformationButton->setEnabled(FileDialog::registeredFactories()[index]->properties().hasAbout); +} + +void ConfigDialog::showFileDialogInfo() +{ + int index = ui.fileDialogComboBox->currentIndex (); + FileDialog::registeredFactories()[index]->showAbout(this); +} diff --git a/src/ui/configdialog.h b/src/ui/configdialog.h index c30fe9648..9522be645 100644 --- a/src/ui/configdialog.h +++ b/src/ui/configdialog.h @@ -57,6 +57,8 @@ private slots: void addTitleString(QAction *); void saveSettings(); void updateButtons(); + void updateDialogButton(int); + void showFileDialogInfo(); private: void readSettings(); diff --git a/src/ui/eqwidget.cpp b/src/ui/eqwidget.cpp index 459d99974..07f4ae22b 100644 --- a/src/ui/eqwidget.cpp +++ b/src/ui/eqwidget.cpp @@ -117,7 +117,7 @@ void EqWidget::changeEvent ( QEvent * event ) void EqWidget::closeEvent ( QCloseEvent* e) { - if(e->spontaneous ()) + if (e->spontaneous ()) emit closed(); writeSettings(); } @@ -389,9 +389,9 @@ void EqWidget::importWinampEQF() char header[31]; char name[257]; char bands[11]; - QString path = FileDialog::getOpenFileName(this, tr("Import Preset"), - "/home", - QString("Winamp EQF (*.q1)"),NULL,true); + QString path = FileDialog::getOpenFileName(this, tr("Import Preset"), + "/home", + QString("Winamp EQF (*.q1)")); QFile file(path); file.open(QIODevice::ReadOnly); diff --git a/src/ui/forms/configdialog.ui b/src/ui/forms/configdialog.ui index c62260984..bec9f87d0 100644 --- a/src/ui/forms/configdialog.ui +++ b/src/ui/forms/configdialog.ui @@ -469,7 +469,7 @@ <enum>QTabWidget::Rounded</enum> </property> <property name="currentIndex" > - <number>4</number> + <number>0</number> </property> <widget class="QWidget" name="Input" > <attribute name="title" > @@ -641,9 +641,9 @@ <widget class="QComboBox" name="fileDialogComboBox" /> </item> <item> - <widget class="QPushButton" name="fdSettingsButton" > + <widget class="QPushButton" name="fdInformationButton" > <property name="text" > - <string>Settings</string> + <string>Information</string> </property> </widget> </item> diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 14f56ec47..6641ccb4b 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -142,8 +142,8 @@ MainWindow::MainWindow(const QStringList& args, BuiltinCommandLineOption* option updateEQ(); updateSkin(); - FileDialog::registerBuiltinFactories(); - FileDialog::registerExternalFactories(); + //FileDialog::registerBuiltinFactories(); + //FileDialog::registerExternalFactories(); m_generalHandler = new GeneralHandler(this); connect(m_generalHandler, SIGNAL(playCalled()), SLOT(play())); @@ -435,72 +435,16 @@ void MainWindow::closeEvent ( QCloseEvent *) void MainWindow::addDir() { - /* - QString s = QFileDialog::getExistingDirectory( - this, - tr("Choose a directory"), - m_lastDir, - QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly); - - if (s.isEmpty()) - return; - m_playListModel->addDirectory(s); - m_lastDir = s+"../"; - */ - if (FileDialog::isModal()) - { - qWarning("void MainWindow::addDir()"); - QString s = FileDialog::getExistingDirectory(this,tr("Choose a directory"),m_lastDir); - - if (s.isEmpty()) - return; - m_playListModel->addDirectory(s); - m_lastDir = s+"../"; - } - else - FileDialog::popup(m_lastDir,FileDialog::AddDirs,Decoder::nameFilters(), - m_playListModel, SLOT(addFileList(const QStringList&))); + FileDialog::popup(this, FileDialog::AddDirs, &m_lastDir, + m_playListModel, SLOT(addFileList(const QStringList&)), + tr("Choose a directory")); } void MainWindow::addFile() { - /* - QStringList files = QFileDialog::getOpenFileNames( - this, - tr("Select one or more files to open"), - m_lastDir, - Decoder::filter()); - if (files.isEmpty ()) - return; - - // foreach(QString s, files) - // m_playListModel->load(new PlayListItem(s)); - - m_playListModel->addFiles(files); - m_lastDir = files.at(0); - */ - - - if (FileDialog::isModal()) - { - QStringList files = FileDialog::getOpenFileNames( - this, - tr("Select one or more files to open"), - m_lastDir, - Decoder::filter()); - if (files.isEmpty ()) - return; - /* - foreach(QString s, files) - m_playListModel->load(new PlayListItem(s)); - */ - m_playListModel->addFiles(files); - m_lastDir = files.at(0); - } - else - FileDialog::popup(m_lastDir,FileDialog::AddFiles,Decoder::nameFilters(), - m_playListModel, SLOT(addFileList(const QStringList&))); - + FileDialog::popup(this, FileDialog::AddDirsFiles, &m_lastDir, + m_playListModel, SLOT(addFileList(const QStringList&)), + tr("Select one or more files to open"), Decoder::filter()); } void MainWindow::clear() @@ -703,34 +647,17 @@ void MainWindow::loadPlaylist() l << fmt->getExtensions(); QString mask = tr("Playlist Files")+" (" + l.join(" *.").prepend("*.") + ")"; - if (FileDialog::isModal()) + //TODO use nonmodal dialog and multiplier playlists + QString f_name = FileDialog::getOpenFileName(this,tr("Open Playlist"),m_lastDir,mask); + if (!f_name.isEmpty()) { - //qWarning("Modal"); - QString f_name = FileDialog::getOpenFileName(this,tr("Open Playlist"),m_lastDir,mask); - if (!f_name.isEmpty()) - { - m_playListModel->loadPlaylist(f_name); - m_playlistName = QFileInfo(f_name).baseName(); - m_lastDir = QFileInfo(f_name).absoluteDir().path(); - } - } - else //FileDialog::popup(m_playListModel,m_lastDir,FileDialog::AddFiles,Decoder::nameFilters()); - // TODO: implement playlist loading with nonmodal dialogs - // For now we'll use default dialog - { - //qWarning("Modal"); - QString f_name = FileDialog::getOpenFileName(this,tr("Open Playlist"),m_lastDir,mask,0,true); - if (!f_name.isEmpty()) - { - m_playListModel->loadPlaylist(f_name); - m_playlistName = QFileInfo(f_name).baseName(); - m_lastDir = QFileInfo(f_name).absoluteDir().path(); - } + m_playListModel->loadPlaylist(f_name); + m_playlistName = QFileInfo(f_name).baseName(); + m_lastDir = QFileInfo(f_name).absoluteDir().path(); } } else { - //qWarning("Non Modal"); qWarning("Error: There is no registered playlist parsers"); } } @@ -745,30 +672,14 @@ void MainWindow::savePlaylist() l << fmt->getExtensions(); QString mask = tr("Playlist Files")+" (" + l.join(" *.").prepend("*.") + ")"; - if (FileDialog::isModal()) - { - QString f_name = FileDialog::getSaveFileName(this, tr("Save Playlist"),m_lastDir + "/" + - m_playlistName + "." + l[0],mask); + QString f_name = FileDialog::getSaveFileName(this, tr("Save Playlist"),m_lastDir + "/" + + m_playlistName + "." + l[0],mask); - if (!f_name.isEmpty()) - { - m_playListModel->savePlaylist(f_name); - m_playlistName = QFileInfo(f_name).baseName(); - m_lastDir = QFileInfo(f_name).absoluteDir().path(); - } - } - else // TODO: implement saving playlists with nonmodal dialogs - // For now we'll use default dialog + if (!f_name.isEmpty()) { - QString f_name = FileDialog::getSaveFileName(this, tr("Save Playlist"),m_lastDir + "/" + - m_playlistName + "." + l[0],mask,0,true); - - if (!f_name.isEmpty()) - { - m_playListModel->savePlaylist(f_name); - m_playlistName = QFileInfo(f_name).baseName(); - m_lastDir = QFileInfo(f_name).absoluteDir().path(); - } + m_playListModel->savePlaylist(f_name); + m_playlistName = QFileInfo(f_name).baseName(); + m_lastDir = QFileInfo(f_name).absoluteDir().path(); } } else |
