diff options
| -rw-r--r-- | src/CMakeLists.txt | 22 | ||||
| -rw-r--r-- | src/dolphinpart.cpp | 72 | ||||
| -rw-r--r-- | src/dolphinpart.desktop | 12 | ||||
| -rw-r--r-- | src/dolphinpart.h | 57 | ||||
| -rw-r--r-- | src/dolphinpart.rc | 1 | ||||
| -rw-r--r-- | src/dolphinview.h | 4 | ||||
| -rw-r--r-- | src/treeviewsidebarpage.cpp | 2 |
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); |
