aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-03-01 13:26:28 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-03-01 13:26:28 +0000
commit912dd07175d1736e924b449267e050d388e91b07 (patch)
tree37d59fb07d107e1f348c007b747f6d1a94d19646
parent5dae362c853ea05480a3a835826d8d61dc66d63c (diff)
downloadqmmp-912dd07175d1736e924b449267e050d388e91b07.tar.gz
qmmp-912dd07175d1736e924b449267e050d388e91b07.tar.bz2
qmmp-912dd07175d1736e924b449267e050d388e91b07.zip
fixed several bugs
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6146 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.cpp50
-rw-r--r--src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.h46
-rw-r--r--src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.cpp44
-rw-r--r--src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.h27
-rw-r--r--src/qmmpui/filedialog.cpp2
-rw-r--r--src/qmmpui/uihelper.cpp6
6 files changed, 52 insertions, 123 deletions
diff --git a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.cpp b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.cpp
index be67c0e53..3285f5dda 100644
--- a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.cpp
+++ b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.cpp
@@ -1,5 +1,5 @@
/**************************************************************************
-* Copyright (C) 2008-2012 by Ilya Kotov *
+* Copyright (C) 2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -28,7 +28,7 @@
TwoPanelFileDialog::TwoPanelFileDialog()
{
m_dialog = new TwoPanelFileDialogImpl();
- connect(m_dialog, SIGNAL(filesAdded(QStringList)), SIGNAL(filesAdded(QStringList)));
+ connect(m_dialog, SIGNAL(filesSelected(QStringList, bool)), SIGNAL(filesSelected(QStringList,bool)));
}
TwoPanelFileDialog::~TwoPanelFileDialog()
@@ -45,37 +45,11 @@ void TwoPanelFileDialog::raise(const QString &dir, Mode mode, const QString &cap
m_dialog->raise();
}
-QString TwoPanelFileDialog::existingDirectory(QWidget *parent, const QString &caption, const QString &dir)
+QStringList TwoPanelFileDialog::exec(QWidget *parent, const QString &dir, FileDialog::Mode mode, const QString &caption, const QString &filter, QString *)
{
TwoPanelFileDialogImpl *dialog = new TwoPanelFileDialogImpl(parent);
dialog->setWindowTitle(caption);
- dialog->setModeAndMask(dir, FileDialog::AddDir);
- QStringList l;
- if (dialog->exec() == QDialog::Accepted)
- l = dialog->selectedFiles();
- dialog->deleteLater();
- return l.isEmpty() ? QString() : l.at(0);
-}
-
-QString TwoPanelFileDialog::openFileName(QWidget *parent, const QString &caption,
- const QString &dir, const QString &filter, QString*)
-{
- TwoPanelFileDialogImpl *dialog = new TwoPanelFileDialogImpl(parent);
- dialog->setWindowTitle(caption);
- dialog->setModeAndMask(dir, FileDialog::AddFile, filter.split(";;"));
- QStringList l;
- if (dialog->exec() == QDialog::Accepted)
- l = dialog->selectedFiles();
- dialog->deleteLater();
- return l.isEmpty() ? QString() : l.at(0);
-}
-
-QStringList TwoPanelFileDialog::openFileNames(QWidget *parent, const QString &caption,
- const QString &dir, const QString &filter, QString *)
-{
- TwoPanelFileDialogImpl *dialog = new TwoPanelFileDialogImpl(parent);
- dialog->setWindowTitle(caption);
- dialog->setModeAndMask(dir, FileDialog::AddFiles, filter.split(";;"));
+ dialog->setModeAndMask(dir, mode, filter.split(";;", QString::SkipEmptyParts));
QStringList l;
if (dialog->exec() == QDialog::Accepted)
l = dialog->selectedFiles();
@@ -83,22 +57,6 @@ QStringList TwoPanelFileDialog::openFileNames(QWidget *parent, const QString &ca
return l;
}
-QString TwoPanelFileDialog::saveFileName (QWidget *parent, const QString &caption,
- const QString &dir, const QString &filter, QString*)
-{
- TwoPanelFileDialogImpl *dialog = new TwoPanelFileDialogImpl(parent);
- dialog->setWindowTitle(caption);
- dialog->setModeAndMask(dir, FileDialog::SaveFile, filter.split(";;"));
- QStringList l;
- if (dialog->exec() == QDialog::Accepted)
- l = dialog->selectedFiles();
- dialog->deleteLater();
- if (l.isEmpty())
- return QString();
- else
- return l.at(0);
-}
-
FileDialog* TwoPanelFileDialogFactory::create()
{
return new TwoPanelFileDialog();
diff --git a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.h b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.h
index 9f3c5ae86..867e4c9e2 100644
--- a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.h
+++ b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialog.h
@@ -1,5 +1,5 @@
/**************************************************************************
-* Copyright (C) 2008-2012 by Ilya Kotov *
+* Copyright (C) 2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -26,6 +26,9 @@
class TwoPanelFileDialogImpl;
+/*!
+ * @author Ilya Kotov <forkotov02@hotmail.ru>
+ */
class TwoPanelFileDialog : public FileDialog
{
Q_OBJECT
@@ -33,32 +36,13 @@ public:
TwoPanelFileDialog();
virtual ~TwoPanelFileDialog();
- void raise(const QString &dir = QString(),
- Mode mode = AddFiles,
- const QString &caption = QString(),
- const QStringList &mask = QStringList());
+protected:
+ void raise(const QString &dir, Mode mode, const QString &caption,
+ const QStringList &mask);
- QString existingDirectory(QWidget *parent = 0,
- const QString &caption = QString(),
- const QString &dir = QString());
+ QStringList exec(QWidget *parent, const QString &dir, Mode mode,
+ const QString &caption, const QString &filter, QString *);
- QString openFileName(QWidget *parent = 0,
- const QString &caption = QString(),
- const QString &dir = QString(),
- const QString &filter = QString(),
- QString *selectedFilter = 0);
-
- QStringList openFileNames(QWidget *parent = 0,
- const QString &caption = QString(),
- const QString &dir = QString(),
- const QString &filter = QString(),
- QString *selectedFilter = 0);
-
- QString saveFileName (QWidget *parent = 0,
- const QString &caption = QString(),
- const QString &dir = QString(),
- const QString &filter = QString(),
- QString *selectedFilter = 0);
private:
TwoPanelFileDialogImpl *m_dialog;
@@ -72,14 +56,10 @@ class TwoPanelFileDialogFactory : public QObject, public FileDialogFactory
Q_OBJECT
Q_INTERFACES(FileDialogFactory)
public:
- virtual FileDialog* create();
- virtual const FileDialogProperties properties() const;
- virtual void showAbout(QWidget*);
- virtual QTranslator *createTranslator(QObject *parent);
- virtual ~TwoPanelFileDialogFactory()
- {
- ;
- }
+ FileDialog* create();
+ const FileDialogProperties properties() const;
+ void showAbout(QWidget*);
+ QTranslator *createTranslator(QObject *parent);
};
diff --git a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.cpp b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.cpp
index 5eaa269f7..ca9ddd400 100644
--- a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.cpp
+++ b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.cpp
@@ -18,7 +18,6 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#include "twopanelfiledialogimpl.h"
#include <QDirModel>
#include <QApplication>
@@ -27,8 +26,8 @@
#include <QSettings>
#include <QMessageBox>
#include <QHeaderView>
-
#include <qmmp/qmmp.h>
+#include "twopanelfiledialogimpl.h"
#define HISTORY_SIZE 8
@@ -74,10 +73,7 @@ TwoPanelFileDialogImpl::TwoPanelFileDialogImpl(QWidget * parent) : QDialog(paren
connect(m_ui.fileListWidget, SIGNAL(itemSelectionChanged()), SLOT(updateFileSelection ()));
- //PathCompleter* fileCompleter = new PathCompleter (m_fileModel, m_ui.fileListView, this);
- //m_ui.fileNameLineEdit->setCompleter (fileCompleter);
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- //closeOnAddToolButton->setChecked(settings.value("TwoPanelFileDialog/close_on_add", false).toBool());
restoreGeometry(settings.value("TwoPanelFileDialog/geometry").toByteArray());
m_history = settings.value("TwoPanelFileDialog/history").toStringList();
m_ui.lookInComboBox->addItems(m_history);
@@ -97,7 +93,7 @@ TwoPanelFileDialogImpl::~TwoPanelFileDialogImpl()
{
}
-QStringList TwoPanelFileDialogImpl::selectedFiles ()
+QStringList TwoPanelFileDialogImpl::selectedFiles() const
{
QStringList l;
if (m_mode == FileDialog::SaveFile)
@@ -184,7 +180,8 @@ void TwoPanelFileDialogImpl::updateFileSelection ()
m_ui.addButton->setEnabled(true);
m_ui.playButton->setEnabled(false);
- if(m_mode == FileDialog::AddFiles || m_mode == FileDialog::AddDirsFiles || m_mode == FileDialog::AddFile)
+ if(m_mode == FileDialog::AddFiles || m_mode == FileDialog::AddDirsFiles || m_mode == FileDialog::AddFile
+ || m_mode == FileDialog::PlayDirsFiles)
{
foreach(str, paths)
{
@@ -244,9 +241,9 @@ void TwoPanelFileDialogImpl::on_lookInComboBox_activated(const QString &path)
}*/
}
-void TwoPanelFileDialogImpl::on_fileListView_doubleClicked(const QModelIndex& ind)
+/*void TwoPanelFileDialogImpl::on_fileListView_doubleClicked(const QModelIndex& ind)
{
- /*if (ind.isValid())
+ if (ind.isValid())
{
QFileInfo info = m_model->fileInfo(ind);
if (info.isDir())
@@ -265,8 +262,8 @@ void TwoPanelFileDialogImpl::on_fileListView_doubleClicked(const QModelIndex& in
addToHistory(l[0]);
addFiles(l);
}
- }*/
-}
+ }
+}*/
void TwoPanelFileDialogImpl::on_fileNameLineEdit_textChanged (const QString &text)
{
@@ -293,24 +290,22 @@ void TwoPanelFileDialogImpl::on_addButton_clicked()
if(!l.isEmpty())
{
addToHistory(l.first());
- addFiles(l);
+ addFiles(l, false);
}
}
void TwoPanelFileDialogImpl::on_playButton_clicked()
{
- foreach (QString path, selectedFiles())
+ QStringList l = selectedFiles();
+
+ if(!l.isEmpty())
{
- if(QFileInfo(path).isFile())
- {
- emit playRequest(path);
- return;
- }
+ addToHistory(l.first());
+ addFiles(l, true);
}
}
-void TwoPanelFileDialogImpl::setModeAndMask(const QString& path, FileDialog::Mode m, const QStringList& mask,
- bool showPlayButton)
+void TwoPanelFileDialogImpl::setModeAndMask(const QString& path, FileDialog::Mode m, const QStringList& mask)
{
m_mode = m;
m_ui.dirListView->clearSelection();
@@ -342,13 +337,15 @@ void TwoPanelFileDialogImpl::setModeAndMask(const QString& path, FileDialog::Mod
m_ui.fileNameLineEdit->setText(fileName);
m_ui.addButton->setEnabled(!fileName.isEmpty());
- m_ui.playButton->setVisible(showPlayButton);
+ m_ui.playButton->setVisible(m == FileDialog::PlayDirsFiles);
+
switch (m)
{
case FileDialog::AddFile:
case FileDialog::AddFiles:
case FileDialog::AddDirsFiles:
+ case FileDialog::PlayDirsFiles:
{
m_ui.fileListWidget->setVisible(true);
m_ui.addButton->setText(tr("Add"));
@@ -425,7 +422,6 @@ void TwoPanelFileDialogImpl::updateFileList(const QString &path)
void TwoPanelFileDialogImpl::hideEvent (QHideEvent *event)
{
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
- //settings.setValue("TwoPanelFileDialog/close_on_add", closeOnAddToolButton->isChecked());
settings.setValue("TwoPanelFileDialog/geometry", saveGeometry());
settings.setValue("TwoPanelFileDialog/history", m_history);
QWidget::hideEvent(event);
@@ -448,11 +444,11 @@ void TwoPanelFileDialogImpl::addToHistory(const QString &path)
m_ui.lookInComboBox->addItems(m_history);
}
-void TwoPanelFileDialogImpl::addFiles(const QStringList &list)
+void TwoPanelFileDialogImpl::addFiles(const QStringList &list, bool play)
{
if (!isModal())
{
- emit filesAdded(list);
+ emit filesSelected(list, play);
accept();
}
else if (m_mode == FileDialog::SaveFile)
diff --git a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.h b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.h
index 25da172d2..1e58920e8 100644
--- a/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.h
+++ b/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.h
@@ -1,5 +1,5 @@
/**************************************************************************
-* Copyright (C) 20016 by Ilya Kotov *
+* Copyright (C) 2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -28,7 +28,9 @@
#include <qmmpui/filedialog.h>
#include <QFileSystemModel>
-
+/*!
+ * @author Ilya Kotov <forkotov02@hotmail.ru>
+ */
class TwoPanelFileDialogImpl : public QDialog
{
Q_OBJECT
@@ -37,41 +39,34 @@ public:
~TwoPanelFileDialogImpl();
- void setModeAndMask(const QString &path, FileDialog::Mode m, const QStringList& mask = QStringList(),
- bool showPlayButton = false);
- QStringList selectedFiles ();
+ void setModeAndMask(const QString &path, FileDialog::Mode m, const QStringList& mask);
+ QStringList selectedFiles() const;
signals:
- void filesAdded(const QStringList&);
- void playRequest(const QString&);
+ void filesSelected(const QStringList &selected, bool play);
private slots:
void updateDirSelection(const QItemSelection&s, const QItemSelection&);
void updateFileSelection();
void on_dirListView_doubleClicked(const QModelIndex&ind);
-
void on_lookInComboBox_activated(const QString&);
-
- void on_fileListView_doubleClicked(const QModelIndex&);
+ //void on_fileListView_doubleClicked(const QModelIndex&);
void on_fileNameLineEdit_textChanged (const QString &text);
void on_addButton_clicked();
void on_playButton_clicked();
void on_fileTypeComboBox_activated(int);
-
private:
void updateFileList(const QString &path);
void hideEvent (QHideEvent *event);
+ void addToHistory(const QString &path);
+ void addFiles(const QStringList &list, bool play);
+
int m_mode;
QFileSystemModel* m_dirModel;
-
Ui::TwoPanelFileDialog m_ui;
-
- void addToHistory(const QString &path);
- void addFiles(const QStringList &list);
QStringList m_history;
QStringList m_filters;
-
};
class PathCompleter : public QCompleter
diff --git a/src/qmmpui/filedialog.cpp b/src/qmmpui/filedialog.cpp
index d1e802d18..e85ca03b6 100644
--- a/src/qmmpui/filedialog.cpp
+++ b/src/qmmpui/filedialog.cpp
@@ -221,7 +221,7 @@ void FileDialog::init(QObject* receiver, const char* member, QString *dir)
disconnect();
if (receiver && member)
{
- connect(this,SIGNAL(filesSelected(QStringList)), receiver, member);
+ connect(this,SIGNAL(filesSelected(QStringList, bool)), receiver, member);
connect(this,SIGNAL(filesSelected(QStringList)), SLOT(updateLastDir(QStringList)));
m_initialized = true;
}
diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp
index 4548bce42..b93638ced 100644
--- a/src/qmmpui/uihelper.cpp
+++ b/src/qmmpui/uihelper.cpp
@@ -160,7 +160,7 @@ void UiHelper::playFiles(QWidget *parent, PlayListModel *model)
void UiHelper::addDirectory(QWidget *parent, PlayListModel *model)
{
FileDialog::popup(parent, FileDialog::AddDirs, &m_lastDir,
- model, SLOT(add(const QStringList&)),
+ model, SLOT(add(QStringList)),
tr("Choose a directory"));
}
@@ -303,7 +303,7 @@ void UiHelper::playSelectedFiles(const QStringList &files)
m_model->clear();
PlayListManager::instance()->activatePlayList(m_model);
connect(m_model, SIGNAL(trackAdded(PlayListTrack*)), MediaPlayer::instance(), SLOT(play()));
- connect(m_model, SIGNAL(loaderFinished()), SLOT(disconnectPl()));
+ connect(m_model, SIGNAL(trackAdded(PlayListTrack*)), SLOT(disconnectPl()));
m_model->add(files);
}
@@ -313,6 +313,6 @@ void UiHelper::disconnectPl()
if(model)
{
disconnect(model, SIGNAL(trackAdded(PlayListTrack*)), MediaPlayer::instance(), SLOT(play()));
- disconnect(model, SIGNAL(loaderFinished()), this, SLOT(disconnectPl()));
+ disconnect(model, SIGNAL(trackAdded(PlayListTrack*)), this, SLOT(disconnectPl()));
}
}