diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a914051ec6..60d97d46fd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -172,6 +172,7 @@ set(dolphin_SRCS panels/places/placesitemlistwidget.cpp panels/places/placesitemmodel.cpp panels/places/placesitemsignalhandler.cpp + panels/places/placesview.cpp panels/panel.cpp panels/folders/foldersitemlistwidget.cpp panels/folders/treeviewcontextmenu.cpp @@ -205,6 +206,7 @@ set(dolphin_SRCS kde4_add_kcfg_files(dolphin_SRCS panels/folders/dolphin_folderspanelsettings.kcfgc panels/information/dolphin_informationpanelsettings.kcfgc + panels/places/dolphin_placespanelsettings.kcfgc settings/dolphin_compactmodesettings.kcfgc settings/dolphin_detailsmodesettings.kcfgc settings/dolphin_generalsettings.kcfgc diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 8920fda67d..5d6bdda9c5 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -214,7 +214,7 @@ bool KFileItemModelRolesUpdater::enlargeSmallPreviews() const void KFileItemModelRolesUpdater::setEnabledPlugins(const QStringList& list) { - if (m_enabledPlugins == list) { + if (m_enabledPlugins != list) { m_enabledPlugins = list; if (m_previewShown) { updateAllPreviews(); @@ -593,6 +593,13 @@ void KFileItemModelRolesUpdater::applyChangedNepomukRoles(const Nepomuk::Resourc #ifdef HAVE_NEPOMUK const KUrl itemUrl = m_nepomukUriItems.value(resource.resourceUri()); const KFileItem item = m_model->fileItem(itemUrl); + + if (item.isNull()) { + // itemUrl is not in the model anymore, probably because + // the corresponding file has been deleted in the meantime. + return; + } + QHash data = rolesData(item); const KNepomukRolesProvider& rolesProvider = KNepomukRolesProvider::instance(); diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index f2ae37556d..369906878b 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -869,6 +869,8 @@ bool KItemListView::event(QEvent* event) event->accept(); return true; } + // Make sure events unconsumed events get propagated up the chain. #302329 + event->ignore(); return QGraphicsWidget::event(event); } diff --git a/src/panels/places/dolphin_placespanelsettings.kcfg b/src/panels/places/dolphin_placespanelsettings.kcfg new file mode 100644 index 0000000000..b2ef8e5741 --- /dev/null +++ b/src/panels/places/dolphin_placespanelsettings.kcfg @@ -0,0 +1,14 @@ + + + + + + + + -1 + + + diff --git a/src/panels/places/dolphin_placespanelsettings.kcfgc b/src/panels/places/dolphin_placespanelsettings.kcfgc new file mode 100644 index 0000000000..65a77ec34b --- /dev/null +++ b/src/panels/places/dolphin_placespanelsettings.kcfgc @@ -0,0 +1,4 @@ +File=dolphin_placespanelsettings.kcfg +ClassName=PlacesPanelSettings +Singleton=true +Mutators=true diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp index e483f9b834..3c7f2bb9ba 100644 --- a/src/panels/places/placespanel.cpp +++ b/src/panels/places/placespanel.cpp @@ -35,7 +35,6 @@ #include #include #include -#include #include #include #include @@ -44,6 +43,7 @@ #include "placesitemlistgroupheader.h" #include "placesitemlistwidget.h" #include "placesitemmodel.h" +#include "placesview.h" #include #include #include @@ -104,7 +104,7 @@ void PlacesPanel::showEvent(QShowEvent* event) connect(m_model, SIGNAL(errorMessage(QString)), this, SIGNAL(errorMessage(QString))); - KStandardItemListView* view = new KStandardItemListView(); + PlacesView* view = new PlacesView(); view->setWidgetCreator(new KItemListWidgetCreator()); view->setGroupHeaderCreator(new KItemListGroupHeaderCreator()); diff --git a/src/panels/places/placesview.cpp b/src/panels/places/placesview.cpp new file mode 100644 index 0000000000..dce5083d75 --- /dev/null +++ b/src/panels/places/placesview.cpp @@ -0,0 +1,35 @@ +/*************************************************************************** + * Copyright (C) 2012 by Frank Reininghaus * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#include "placesview.h" + +#include "dolphin_placespanelsettings.h" + +PlacesView::PlacesView(QGraphicsWidget* parent) : + KStandardItemListView(parent) +{ + const int iconSize = PlacesPanelSettings::iconSize(); + if (iconSize >= 0) { + KItemListStyleOption option = styleOption(); + option.iconSize = iconSize; + setStyleOption(option); + } +} + +#include "placesview.moc" diff --git a/src/panels/places/placesview.h b/src/panels/places/placesview.h new file mode 100644 index 0000000000..87eb3a50be --- /dev/null +++ b/src/panels/places/placesview.h @@ -0,0 +1,38 @@ +/*************************************************************************** + * Copyright (C) 2012 by Frank Reininghaus * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef PLACESVIEW_H +#define PLACESVIEW_H + +#include + +/** + * @brief View class for the Places Panel. + * + * Reads the icon size from GeneralSettings::placesPanelIconSize(). + */ +class PlacesView : public KStandardItemListView +{ + Q_OBJECT + +public: + explicit PlacesView(QGraphicsWidget* parent = 0); +}; + +#endif