diff options
| author | vovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-07-24 16:05:25 +0000 |
|---|---|---|
| committer | vovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-07-24 16:05:25 +0000 |
| commit | 6f1f9ca43a8773cdfb5e3a7d72fda79c4a442016 (patch) | |
| tree | e48d4fc57cf018e8f33442521a3f08682ff3437e /src/mainwindow.cpp | |
| parent | e838956a1dee86e490701e72c1f04ced7a4fdda6 (diff) | |
| download | qmmp-6f1f9ca43a8773cdfb5e3a7d72fda79c4a442016.tar.gz qmmp-6f1f9ca43a8773cdfb5e3a7d72fda79c4a442016.tar.bz2 qmmp-6f1f9ca43a8773cdfb5e3a7d72fda79c4a442016.zip | |
added filedialog interface, fixed plugin paths
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@38 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/mainwindow.cpp')
| -rw-r--r-- | src/mainwindow.cpp | 107 |
1 files changed, 92 insertions, 15 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4f2174646..b6243fb71 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -43,6 +43,7 @@ #include "jumptotrackdialog.h" #include "aboutdialog.h" #include <addurldialog.h> +#include "filedialog.h" MainWindow::MainWindow(const QStringList& args, QWidget *parent) : QMainWindow(parent) @@ -135,6 +136,9 @@ MainWindow::MainWindow(const QStringList& args, QWidget *parent) new TcpServer(this); + FileDialog::registerBuiltinFactories(); + FileDialog::registerExternalFactories(); + m_playListModel->readSettings(); char buf[PATH_MAX + 1]; QString cwd = QString::fromLocal8Bit(getcwd(buf,PATH_MAX)); @@ -337,6 +341,7 @@ void MainWindow::closeEvent ( QCloseEvent *) void MainWindow::addDir() { + /* QString s = QFileDialog::getExistingDirectory( this, tr("Choose a directory"), @@ -347,10 +352,24 @@ void MainWindow::addDir() 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_playListModel,m_lastDir,FileDialog::AddDirs,Decoder::nameFilters()); } void MainWindow::addFile() { + /* QStringList files = QFileDialog::getOpenFileNames( this, tr("Select one or more files to open"), @@ -358,12 +377,34 @@ void MainWindow::addFile() Decoder::filter()); if (files.isEmpty ()) return; - /* - foreach(QString s, files) - m_playListModel->load(new MediaFile(s)); - */ + + // foreach(QString s, files) + // m_playListModel->load(new MediaFile(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 MediaFile(s)); + */ + m_playListModel->addFiles(files); + m_lastDir = files.at(0); + } + else + FileDialog::popup(m_playListModel,m_lastDir,FileDialog::AddFiles,Decoder::nameFilters()); + } void MainWindow::clear() @@ -565,16 +606,36 @@ void MainWindow::loadPlaylist() l << fmt->getExtensions(); QString mask = tr("Playlist Files")+" (" + l.join(" *.").prepend("*.") + ")"; - QString f_name = QFileDialog::getOpenFileName(this,tr("Open Playlist"),m_lastDir,mask); - if (!f_name.isEmpty()) + if(FileDialog::isModal()) { - m_playListModel->loadPlaylist(f_name); - m_playlistName = QFileInfo(f_name).baseName(); + //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_lastDir = QFileInfo(f_name).absoluteDir().path(); } else + { + //qWarning("Non Modal"); qWarning("Error: There is no registered playlist parsers"); + } } void MainWindow::savePlaylist() @@ -587,15 +648,31 @@ void MainWindow::savePlaylist() l << fmt->getExtensions(); QString mask = tr("Playlist Files")+" (" + l.join(" *.").prepend("*.") + ")"; - QString f_name = QFileDialog::getSaveFileName(this, tr("Save Playlist"),m_lastDir + "/" + - m_playlistName + "." + l[0],mask); + if(FileDialog::isModal()) + { + QString f_name = FileDialog::getSaveFileName(this, tr("Save Playlist"),m_lastDir + "/" + + m_playlistName + "." + l[0],mask); - if (!f_name.isEmpty()) + 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 { - m_playListModel->savePlaylist(f_name); - m_playlistName = QFileInfo(f_name).baseName(); + 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_lastDir = QFileInfo(f_name).absoluteDir().path(); } else qWarning("Error: There is no registered playlist parsers"); |
