┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Faure <[email protected]>2007-07-01 14:25:21 +0000
committerDavid Faure <[email protected]>2007-07-01 14:25:21 +0000
commitab3d8b100385fabaa612683f527d2e4ebd5c1086 (patch)
tree3286f9209fb5e8df8fd1fa0cd70168dbd6b97d2b
parent6b42e7ba3b87af93d17f714d05ff2ddb09d13519 (diff)
Here comes dolphinpart, to use dolphin as the file management view in konqueror.
Embeds nicely, now all the integration needs to be done. Thanks to Peter for the nice DolphinView/DolphinViewContainer separation which made writing the part very very easy! CCMAIL: [email protected] svn path=/trunk/KDE/kdebase/apps/; revision=682079
-rw-r--r--src/CMakeLists.txt22
-rw-r--r--src/dolphinpart.cpp72
-rw-r--r--src/dolphinpart.desktop12
-rw-r--r--src/dolphinpart.h57
-rw-r--r--src/dolphinpart.rc1
-rw-r--r--src/dolphinview.h4
-rw-r--r--src/treeviewsidebarpage.cpp2
7 files changed, 166 insertions, 4 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c305f3015..a2aad29a3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -13,6 +13,7 @@ set(dolphinprivate_LIB_SRCS
dolphincontroller.cpp
dolphindetailsview.cpp
dolphiniconsview.cpp
+ dolphincolumnview.cpp
dolphinitemcategorizer.cpp
klistview.cpp
ksortfilterproxymodel.cpp
@@ -20,6 +21,7 @@ set(dolphinprivate_LIB_SRCS
viewproperties.cpp
dolphinsortfilterproxymodel.cpp
renamedialog.cpp
+ dolphinview.cpp
)
kde4_add_kcfg_files(dolphinprivate_LIB_SRCS
@@ -51,15 +53,31 @@ install(TARGETS dolphinprivate DESTINATION ${LIB_INSTALL_DIR} )
##########################################
+set(dolphinpart_SRCS
+ dolphinpart.cpp
+)
+
+kde4_automoc(${dolphinpart_SRCS})
+
+kde4_add_plugin(dolphinpart ${dolphinpart_SRCS})
+
+target_link_libraries(dolphinpart dolphinprivate)
+
+install(TARGETS dolphinpart DESTINATION ${PLUGIN_INSTALL_DIR} )
+
+install(FILES dolphinpart.rc DESTINATION ${DATA_INSTALL_DIR}/dolphinpart )
+install(FILES dolphinpart.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+
+##########################################
+
set(dolphin_SRCS
applyviewpropsjob.cpp
columnviewsettingspage.cpp
detailsviewsettingspage.cpp
dolphinapplication.cpp
- dolphincolumnview.cpp
dolphinmainwindow.cpp
dolphinnewmenu.cpp
- dolphinview.cpp
dolphinviewcontainer.cpp
dolphinstatusbar.cpp
dolphindirlister.cpp
diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp
new file mode 100644
index 000000000..3a7c9b11b
--- /dev/null
+++ b/src/dolphinpart.cpp
@@ -0,0 +1,72 @@
+/* This file is part of the KDE project
+ Copyright (c) 2007 David Faure <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include "dolphinpart.h"
+#include <kparts/genericfactory.h>
+#include "dolphinview.h"
+#include "dolphinsortfilterproxymodel.h"
+#include <kdirmodel.h>
+#include <kdirlister.h>
+
+typedef KParts::GenericFactory<DolphinPart> DolphinPartFactory;
+K_EXPORT_COMPONENT_FACTORY(dolphinpart, DolphinPartFactory)
+
+DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringList& args)
+ : KParts::ReadOnlyPart(parent)
+{
+ Q_UNUSED(args)
+ setComponentData( DolphinPartFactory::componentData() );
+ //setBrowserExtension( new DolphinPartBrowserExtension( this ) );
+
+ m_dirLister = new KDirLister;
+ m_dirLister->setAutoUpdate(true);
+ m_dirLister->setMainWindow(parentWidget->topLevelWidget());
+ m_dirLister->setDelayedMimeTypes(true);
+
+ m_dirModel = new KDirModel(this);
+ m_dirModel->setDirLister(m_dirLister);
+
+ m_proxyModel = new DolphinSortFilterProxyModel(this);
+ m_proxyModel->setSourceModel(m_dirModel);
+
+ m_view = new DolphinView(parentWidget,
+ KUrl(),
+ m_dirLister,
+ m_dirModel,
+ m_proxyModel);
+ setWidget(m_view);
+}
+
+DolphinPart::~DolphinPart()
+{
+ delete m_dirLister;
+}
+
+KAboutData* DolphinPart::createAboutData()
+{
+ return new KAboutData("dolphinpart", I18N_NOOP( "Dolphin Part" ), "0.1");
+}
+
+bool DolphinPart::openUrl(const KUrl& url)
+{
+ m_view->setUrl(url);
+ return true;
+}
+
+#include "dolphinpart.moc"
diff --git a/src/dolphinpart.desktop b/src/dolphinpart.desktop
new file mode 100644
index 000000000..fc6be9051
--- /dev/null
+++ b/src/dolphinpart.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Service
+Name=Dolphin Part
+MimeType=inode/directory
+ServiceTypes=KParts/ReadOnlyPart,Browser/View
+X-KDE-Library=dolphinpart
+X-KDE-BrowserView-Args=Icon
+X-KDE-BrowserView-HideFromMenus=true
+X-KDE-BrowserView-Built-Into=konqueror
+Icon=view_icon
+InitialPreference=7
diff --git a/src/dolphinpart.h b/src/dolphinpart.h
new file mode 100644
index 000000000..08dfce90a
--- /dev/null
+++ b/src/dolphinpart.h
@@ -0,0 +1,57 @@
+/* This file is part of the KDE project
+ Copyright (c) 2007 David Faure <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef DOLPHINPART_H
+#define DOLPHINPART_H
+
+#include <kparts/part.h>
+class DolphinSortFilterProxyModel;
+class KDirModel;
+class KDirLister;
+class DolphinView;
+class QLineEdit;
+class KAboutData;
+namespace KParts { class ReadOnlyPart; }
+
+class DolphinPart : public KParts::ReadOnlyPart
+{
+ Q_OBJECT
+
+public:
+ explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QStringList& args);
+ ~DolphinPart();
+
+ static KAboutData* createAboutData();
+
+ virtual bool openUrl(const KUrl& url);
+
+protected:
+ virtual bool openFile() { return true; }
+
+private:
+ DolphinView* m_view;
+ KDirLister* m_dirLister;
+ KDirModel* m_dirModel;
+ DolphinSortFilterProxyModel* m_proxyModel;
+ Q_DISABLE_COPY(DolphinPart)
+};
+
+
+#endif /* DOLPHINPART_H */
+
diff --git a/src/dolphinpart.rc b/src/dolphinpart.rc
new file mode 100644
index 000000000..8d1c8b69c
--- /dev/null
+++ b/src/dolphinpart.rc
@@ -0,0 +1 @@
+
diff --git a/src/dolphinview.h b/src/dolphinview.h
index 223c52dbf..899eb492e 100644
--- a/src/dolphinview.h
+++ b/src/dolphinview.h
@@ -24,6 +24,8 @@
#include <config-nepomuk.h>
+#include "libdolphin_export.h"
+
#include <kparts/part.h>
#include <kfileitem.h>
#include <kfileitemdelegate.h>
@@ -62,7 +64,7 @@ class ViewProperties;
* @see DolphinDetailsView
* @see DolphinColumnView
*/
-class DolphinView : public QWidget
+class LIBDOLPHINPRIVATE_EXPORT DolphinView : public QWidget
{
Q_OBJECT
diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp
index 75e12bcf8..8f8887697 100644
--- a/src/treeviewsidebarpage.cpp
+++ b/src/treeviewsidebarpage.cpp
@@ -82,7 +82,7 @@ void TreeViewSidebarPage::showEvent(QShowEvent* event)
m_dirLister->setAutoErrorHandlingEnabled(false, this);
Q_ASSERT(m_dirModel == 0);
- m_dirModel = new KDirModel();
+ m_dirModel = new KDirModel(this);
m_dirModel->setDirLister(m_dirLister);
m_dirModel->setDropsAllowed(KDirModel::DropOnDirectory);