┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp9
-rw-r--r--src/kitemviews/kitemlistview.cpp2
-rw-r--r--src/panels/places/dolphin_placespanelsettings.kcfg14
-rw-r--r--src/panels/places/dolphin_placespanelsettings.kcfgc4
-rw-r--r--src/panels/places/placespanel.cpp4
-rw-r--r--src/panels/places/placesview.cpp35
-rw-r--r--src/panels/places/placesview.h38
8 files changed, 105 insertions, 3 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a914051ec..60d97d46f 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 8920fda67..5d6bdda9c 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<QByteArray, QVariant> data = rolesData(item);
const KNepomukRolesProvider& rolesProvider = KNepomukRolesProvider::instance();
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp
index f2ae37556..369906878 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 000000000..b2ef8e574
--- /dev/null
+++ b/src/panels/places/dolphin_placespanelsettings.kcfg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
+ <kcfgfile name="dolphinrc"/>
+ <group name="PlacesPanel">
+ <entry name="IconSize" type="Int">
+ <label>Size of icons in the Places Panel (-1 means "use the style's small size")</label>
+ <default>-1</default>
+ </entry>
+ </group>
+</kcfg>
diff --git a/src/panels/places/dolphin_placespanelsettings.kcfgc b/src/panels/places/dolphin_placespanelsettings.kcfgc
new file mode 100644
index 000000000..65a77ec34
--- /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 e483f9b83..3c7f2bb9b 100644
--- a/src/panels/places/placespanel.cpp
+++ b/src/panels/places/placespanel.cpp
@@ -35,7 +35,6 @@
#include <kitemviews/kitemlistcontroller.h>
#include <kitemviews/kitemlistselectionmanager.h>
#include <kitemviews/kstandarditem.h>
-#include <kitemviews/kstandarditemlistview.h>
#include <KMenu>
#include <KMessageBox>
#include <KNotification>
@@ -44,6 +43,7 @@
#include "placesitemlistgroupheader.h"
#include "placesitemlistwidget.h"
#include "placesitemmodel.h"
+#include "placesview.h"
#include <views/draganddrophelper.h>
#include <QGraphicsSceneDragDropEvent>
#include <QVBoxLayout>
@@ -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<PlacesItemListWidget>());
view->setGroupHeaderCreator(new KItemListGroupHeaderCreator<PlacesItemListGroupHeader>());
diff --git a/src/panels/places/placesview.cpp b/src/panels/places/placesview.cpp
new file mode 100644
index 000000000..dce5083d7
--- /dev/null
+++ b/src/panels/places/placesview.cpp
@@ -0,0 +1,35 @@
+/***************************************************************************
+ * Copyright (C) 2012 by Frank Reininghaus <[email protected]> *
+ * *
+ * 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 000000000..87eb3a50b
--- /dev/null
+++ b/src/panels/places/placesview.h
@@ -0,0 +1,38 @@
+/***************************************************************************
+ * Copyright (C) 2012 by Frank Reininghaus <[email protected]> *
+ * *
+ * 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 <kitemviews/kstandarditemlistview.h>
+
+/**
+ * @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