Git commit 9844462a5b17119deaf4cf141c66ba70011fdfa5 by Michael Pyne. Committed on 30/09/2017 at 17:58. Pushed by mpyne into branch 'frameworks'. Port DirectoryList away from KDialog. M +29 -43 directorylist.cpp M +12 -9 directorylist.h M +7 -0 directorylistbase.ui https://commits.kde.org/juk/9844462a5b17119deaf4cf141c66ba70011fdfa5 diff --git a/directorylist.cpp b/directorylist.cpp index bc4cd1c..c0f9ce4 100644 --- a/directorylist.cpp +++ b/directorylist.cpp @@ -19,40 +19,47 @@ = #include #include -#include +#include #include +#include +#include = -#include #include #include "juk_debug.h" = +//////////////////////////////////////////////////////////////////////////= ////// +// static helpers +//////////////////////////////////////////////////////////////////////////= ////// + +static QStringList defaultFolders() +{ + return QStandardPaths::standardLocations(QStandardPaths::MusicLocation= ); +} + //////////////////////////////////////////////////////////////////////////= ////// // public methods //////////////////////////////////////////////////////////////////////////= ////// = -DirectoryList::DirectoryList(QStringList directories, - QStringList excludedDirectories, +DirectoryList::DirectoryList(const QStringList &directories, + const QStringList &excludedDirectories, bool importPlaylists, - QWidget *parent) : - KDialog(parent), - m_dirListModel(0) + QWidget *parent) + : QDialog(parent) + , m_dirListModel(new QStringListModel(directories, this)) + , m_excludedDirListModel(new QStringListModel(excludedDirectories, this)) { if(directories.isEmpty()) { - directories =3D defaultFolders(); - m_result.addedDirs =3D directories; + const auto defaultDirs =3D defaultFolders(); + m_dirListModel->setStringList(defaultDirs); + m_result.addedDirs =3D defaultDirs; } = - m_dirListModel =3D new QStringListModel(directories, this); - m_excludedDirListModel =3D new QStringListModel(excludedDirectories, t= his); - - setCaption(i18n("Folder List")); + setWindowTitle(i18n("Folder List")); setModal(true); - showButtonSeparator(true); - setButtons(KDialog::Ok | KDialog::Cancel); = m_base =3D new DirectoryListBase(this); - - setMainWidget(m_base); + auto layout =3D new QVBoxLayout(this); + layout->addWidget(m_base); = connect(m_base->addDirectoryButton, SIGNAL(clicked()), SLOT(slotAddDirectory())); @@ -62,6 +69,8 @@ DirectoryList::DirectoryList(QStringList directories, SLOT(slotAddExcludeDirectory())); connect(m_base->removeExcludeDirectoryButton, SIGNAL(clicked()), SLOT(slotRemoveExcludeDirectory())); + connect(m_base->dlgButtonBox, &QDialogButtonBox::accepted, this, &QDia= log::accept); + connect(m_base->dlgButtonBox, &QDialogButtonBox::rejected, this, &QDia= log::reject); = m_base->directoryListView->setModel(m_dirListModel); m_base->excludeDirectoryListView->setModel(m_excludedDirListModel); @@ -70,18 +79,13 @@ DirectoryList::DirectoryList(QStringList directories, resize(QSize(440, 280).expandedTo(minimumSizeHint())); } = -DirectoryList::~DirectoryList() -{ - -} - //////////////////////////////////////////////////////////////////////////= ////// // public slots //////////////////////////////////////////////////////////////////////////= ////// = int DirectoryList::exec() { - m_result.status =3D static_cast(KDialog::exec()); + m_result.status =3D static_cast(QDialog::exec()); m_result.addPlaylists =3D m_base->importPlaylistsCheckBox->isChecked(); return m_result.status; } @@ -92,8 +96,7 @@ int DirectoryList::exec() = void DirectoryList::slotAddDirectory() { - QString dir =3D KFileDialog::getExistingDirectory(); - + QString dir =3D QFileDialog::getExistingDirectory(); if(dir.isEmpty()) return; = @@ -139,8 +142,7 @@ void DirectoryList::slotRemoveDirectory() = void DirectoryList::slotAddExcludeDirectory() { - QString dir =3D KFileDialog::getExistingDirectory(); - + QString dir =3D QFileDialog::getExistingDirectory(); if(dir.isEmpty()) return; = @@ -175,20 +177,4 @@ void DirectoryList::slotRemoveExcludeDirectory() m_result.excludedDirs =3D m_excludedDirListModel->stringList(); } = -//////////////////////////////////////////////////////////////////////////= ////// -// private methods -//////////////////////////////////////////////////////////////////////////= ////// - -QStringList DirectoryList::defaultFolders() -{ - QDir home =3D QDir::home(); - if(home.cd("Music")) - return QStringList(home.path()); - if(home.cd("music")) - return QStringList(home.path()); - if(home.cd(i18n("Music"))) - return QStringList(home.path()); - return QStringList(); -} - // vim: set et sw=3D4 tw=3D0 sta: diff --git a/directorylist.h b/directorylist.h index 69970c3..5af745e 100644 --- a/directorylist.h +++ b/directorylist.h @@ -14,16 +14,19 @@ * this program. If not, see . */ = -#ifndef DIRECTORYLIST_H -#define DIRECTORYLIST_H +#ifndef JUK_DIRECTORYLIST_H +#define JUK_DIRECTORYLIST_H + +#include = -#include #include "ui_directorylistbase.h" = class QStringListModel; = class DirectoryListBase : public QWidget, public Ui::DirectoryListBase { + Q_OBJECT + public: DirectoryListBase(QWidget *parent) : QWidget(parent) { @@ -31,7 +34,7 @@ public: } }; = -class DirectoryList : public KDialog +class DirectoryList : public QDialog { Q_OBJECT = @@ -45,9 +48,11 @@ public: bool addPlaylists; }; = - DirectoryList(QStringList directories, QStringList excludeDirectories,= bool importPlaylists, - QWidget *parent =3D 0); - virtual ~DirectoryList(); + DirectoryList( + const QStringList &directories, + const QStringList &excludeDirectories, + bool importPlaylists, + QWidget *parent =3D nullptr); = Result dialogResult() const { return m_result; } = @@ -67,8 +72,6 @@ private slots: void slotRemoveExcludeDirectory(); = private: - static QStringList defaultFolders(); - QStringListModel *m_dirListModel; QStringListModel *m_excludedDirListModel; DirectoryListBase *m_base; diff --git a/directorylistbase.ui b/directorylistbase.ui index dea4761..d9e9f9f 100644 --- a/directorylistbase.ui +++ b/directorylistbase.ui @@ -187,6 +187,13 @@ + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + +