diff options
| author | Kai Uwe Broulik <[email protected]> | 2018-03-19 09:57:24 +0100 |
|---|---|---|
| committer | Kai Uwe Broulik <[email protected]> | 2018-03-19 09:57:24 +0100 |
| commit | 7cee23157f099837fffc22380b85ac33a2006a49 (patch) | |
| tree | 7db6d1f55e74f9d518b94a1147f1cd8699a72ea9 /src/panels | |
| parent | 6f05c66cc0d2416a21fd8eaff0ec6e7a9161d59c (diff) | |
Introduce singleton for KFilePlacesModel
There are various places where Dolphin created a new KFilePlacesModel which would then query all storage devices and do other expensive work.
Differential Revision: https://phabricator.kde.org/D11283
Diffstat (limited to 'src/panels')
| -rw-r--r-- | src/panels/places/placesitemmodel.cpp | 20 | ||||
| -rw-r--r-- | src/panels/places/placesitemmodel.h | 2 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp index 207a98271..444ad29ea 100644 --- a/src/panels/places/placesitemmodel.cpp +++ b/src/panels/places/placesitemmodel.cpp @@ -25,6 +25,7 @@ #include "dolphin_generalsettings.h" #include "dolphindebug.h" +#include "dolphinplacesmodelsingleton.h" #include "placesitem.h" #include "placesitemsignalhandler.h" #include "views/dolphinview.h" @@ -42,9 +43,6 @@ #include <QTimer> namespace { - // A suffix to the application-name of the stored bookmarks is - // added, which is only read by PlacesItemModel. - const QString AppNameSuffix = QStringLiteral("-places-panel"); static QList<QUrl> balooURLs = { QUrl(QStringLiteral("timeline:/today")), QUrl(QStringLiteral("timeline:/yesterday")), @@ -62,18 +60,18 @@ PlacesItemModel::PlacesItemModel(QObject* parent) : m_hiddenItemsShown(false), m_deviceToTearDown(nullptr), m_storageSetupInProgress(), - m_sourceModel(new KFilePlacesModel(KAboutData::applicationData().componentName() + AppNameSuffix, this)) + m_sourceModel(DolphinPlacesModelSingleton::instance().placesModel()) { cleanupBookmarks(); loadBookmarks(); initializeDefaultViewProperties(); - connect(m_sourceModel.data(), &KFilePlacesModel::rowsInserted, this, &PlacesItemModel::onSourceModelRowsInserted); - connect(m_sourceModel.data(), &KFilePlacesModel::rowsAboutToBeRemoved, this, &PlacesItemModel::onSourceModelRowsAboutToBeRemoved); - connect(m_sourceModel.data(), &KFilePlacesModel::dataChanged, this, &PlacesItemModel::onSourceModelDataChanged); - connect(m_sourceModel.data(), &KFilePlacesModel::rowsAboutToBeMoved, this, &PlacesItemModel::onSourceModelRowsAboutToBeMoved); - connect(m_sourceModel.data(), &KFilePlacesModel::rowsMoved, this, &PlacesItemModel::onSourceModelRowsMoved); - connect(m_sourceModel.data(), &KFilePlacesModel::groupHiddenChanged, this, &PlacesItemModel::onSourceModelGroupHiddenChanged); + connect(m_sourceModel, &KFilePlacesModel::rowsInserted, this, &PlacesItemModel::onSourceModelRowsInserted); + connect(m_sourceModel, &KFilePlacesModel::rowsAboutToBeRemoved, this, &PlacesItemModel::onSourceModelRowsAboutToBeRemoved); + connect(m_sourceModel, &KFilePlacesModel::dataChanged, this, &PlacesItemModel::onSourceModelDataChanged); + connect(m_sourceModel, &KFilePlacesModel::rowsAboutToBeMoved, this, &PlacesItemModel::onSourceModelRowsAboutToBeMoved); + connect(m_sourceModel, &KFilePlacesModel::rowsMoved, this, &PlacesItemModel::onSourceModelRowsMoved); + connect(m_sourceModel, &KFilePlacesModel::groupHiddenChanged, this, &PlacesItemModel::onSourceModelGroupHiddenChanged); } PlacesItemModel::~PlacesItemModel() @@ -622,7 +620,7 @@ void PlacesItemModel::cleanupBookmarks() const QString appName = bookmark.metaDataItem(QStringLiteral("OnlyInApp")); if ((appName == KAboutData::applicationData().componentName() || - appName == KAboutData::applicationData().componentName() + AppNameSuffix) && balooURLs.contains(url)) { + appName == KAboutData::applicationData().componentName() + DolphinPlacesModelSingleton::applicationNameSuffix()) && balooURLs.contains(url)) { qCDebug(DolphinDebug) << "Removing old baloo url:" << url; m_sourceModel->removePlace(sourceIndex); } else { diff --git a/src/panels/places/placesitemmodel.h b/src/panels/places/placesitemmodel.h index 1aa31facd..a2086efc5 100644 --- a/src/panels/places/placesitemmodel.h +++ b/src/panels/places/placesitemmodel.h @@ -228,7 +228,7 @@ private: QHash<QObject*, int> m_storageSetupInProgress; - QScopedPointer<KFilePlacesModel> m_sourceModel; + KFilePlacesModel *m_sourceModel; QVector<QPersistentModelIndex> m_indexMap; }; |
