aboutsummaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-07-09 18:54:22 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-07-09 18:54:22 +0000
commite85b77286f66edecdc3707065e39b31f2e220f5a (patch)
tree8d92254944d3c9391c61231bc114758f9ac23370 /src/ui
parentc0a9e456b6a935b67f2d3357a9cef7170cfee418 (diff)
downloadqmmp-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.cpp45
-rw-r--r--src/ui/configdialog.h2
-rw-r--r--src/ui/eqwidget.cpp8
-rw-r--r--src/ui/forms/configdialog.ui6
-rw-r--r--src/ui/mainwindow.cpp129
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