]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinpart.cpp
KFileItemModel: interface cleanups
[dolphin.git] / src / dolphinpart.cpp
index c861e1d2bbec8af4c74058ab83ebadde13a3de51..70d35740f3409fa6076c293a87803a10f3770395 100644 (file)
@@ -31,6 +31,7 @@
 #include <KLocale>
 #include <KMessageBox>
 #include <KPluginFactory>
 #include <KLocale>
 #include <KMessageBox>
 #include <KPluginFactory>
+#include <KRun>
 #include <KToggleAction>
 #include <KIO/NetAccess>
 #include <KToolInvocation>
 #include <KToggleAction>
 #include <KIO/NetAccess>
 #include <KToolInvocation>
 #include <KInputDialog>
 #include <KProtocolInfo>
 
 #include <KInputDialog>
 #include <KProtocolInfo>
 
-#include "settings/dolphinsettings.h"
 #include "views/dolphinview.h"
 #include "views/dolphinviewactionhandler.h"
 #include "views/dolphinview.h"
 #include "views/dolphinviewactionhandler.h"
-#include "views/dolphinsortfilterproxymodel.h"
-#include "views/dolphinmodel.h"
 #include "views/dolphinnewfilemenuobserver.h"
 #include "views/dolphinremoteencoding.h"
 #include "views/dolphinnewfilemenuobserver.h"
 #include "views/dolphinremoteencoding.h"
-#include "views/dolphindirlister.h"
 
 #include <QActionGroup>
 #include <QApplication>
 #include <QClipboard>
 
 #include <QActionGroup>
 #include <QApplication>
 #include <QClipboard>
+#include <QDir>
 
 K_PLUGIN_FACTORY(DolphinPartFactory, registerPlugin<DolphinPart>();)
 K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart", "dolphin"))
 
 K_PLUGIN_FACTORY(DolphinPartFactory, registerPlugin<DolphinPart>();)
 K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart", "dolphin"))
@@ -71,8 +69,8 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
     m_view->setTabsForFilesEnabled(true);
     setWidget(m_view);
 
     m_view->setTabsForFilesEnabled(true);
     setWidget(m_view);
 
-    connect(m_view, SIGNAL(finishedPathLoading(KUrl)), this, SLOT(slotCompleted(KUrl)));
-    connect(m_view, SIGNAL(pathLoadingProgress(int)), this, SLOT(updateProgress(int)));
+    connect(m_view, SIGNAL(finishedDirLoading(KUrl)), this, SLOT(slotCompleted(KUrl)));
+    connect(m_view, SIGNAL(directoryLoadingProgress(int)), this, SLOT(updateProgress(int)));
     connect(m_view, SIGNAL(errorMessage(QString)), this, SLOT(slotErrorMessage(QString)));
 
     setXMLFile("dolphinpart.rc");
     connect(m_view, SIGNAL(errorMessage(QString)), this, SLOT(slotErrorMessage(QString)));
 
     setXMLFile("dolphinpart.rc");
@@ -83,27 +81,27 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
             this, SLOT(slotMessage(QString)));
     connect(m_view, SIGNAL(errorMessage(QString)),
             this, SLOT(slotErrorMessage(QString)));
             this, SLOT(slotMessage(QString)));
     connect(m_view, SIGNAL(errorMessage(QString)),
             this, SLOT(slotErrorMessage(QString)));
-    connect(m_view, SIGNAL(itemTriggered(KFileItem)),
-            this, SLOT(slotItemTriggered(KFileItem)));
+    connect(m_view, SIGNAL(itemActivated(KFileItem)),
+            this, SLOT(slotItemActivated(KFileItem)));
     connect(m_view, SIGNAL(tabRequested(KUrl)),
             this, SLOT(createNewWindow(KUrl)));
     connect(m_view, SIGNAL(tabRequested(KUrl)),
             this, SLOT(createNewWindow(KUrl)));
-    connect(m_view, SIGNAL(requestContextMenu(KFileItem,KUrl,QList<QAction*>)),
-            this, SLOT(slotOpenContextMenu(KFileItem,KUrl,QList<QAction*>)));
+    connect(m_view, SIGNAL(requestContextMenu(QPoint,KFileItem,KUrl,QList<QAction*>)),
+            this, SLOT(slotOpenContextMenu(QPoint,KFileItem,KUrl,QList<QAction*>)));
     connect(m_view, SIGNAL(selectionChanged(KFileItemList)),
             m_extension, SIGNAL(selectionInfo(KFileItemList)));
     connect(m_view, SIGNAL(selectionChanged(KFileItemList)),
             this, SLOT(slotSelectionChanged(KFileItemList)));
     connect(m_view, SIGNAL(requestItemInfo(KFileItem)),
             this, SLOT(slotRequestItemInfo(KFileItem)));
     connect(m_view, SIGNAL(selectionChanged(KFileItemList)),
             m_extension, SIGNAL(selectionInfo(KFileItemList)));
     connect(m_view, SIGNAL(selectionChanged(KFileItemList)),
             this, SLOT(slotSelectionChanged(KFileItemList)));
     connect(m_view, SIGNAL(requestItemInfo(KFileItem)),
             this, SLOT(slotRequestItemInfo(KFileItem)));
-    connect(m_view, SIGNAL(modeChanged()),
+    connect(m_view, SIGNAL(modeChanged(DolphinView::Mode,DolphinView::Mode)),
             this, SIGNAL(viewModeChanged())); // relay signal
             this, SIGNAL(viewModeChanged())); // relay signal
-    connect(m_view, SIGNAL(redirection(KUrl, KUrl)),
-            this, SLOT(slotRedirection(KUrl, KUrl)));
+    connect(m_view, SIGNAL(redirection(KUrl,KUrl)),
+            this, SLOT(slotDirectoryRedirection(KUrl,KUrl)));
 
     // Watch for changes that should result in updates to the
     // status bar text.
     connect(m_view, SIGNAL(itemCountChanged()), this, SLOT(updateStatusBar()));
 
     // Watch for changes that should result in updates to the
     // status bar text.
     connect(m_view, SIGNAL(itemCountChanged()), this, SLOT(updateStatusBar()));
-    connect(m_view,  SIGNAL(selectionChanged(const KFileItemList)), this, SLOT(updateStatusBar()));
+    connect(m_view,  SIGNAL(selectionChanged(KFileItemList)), this, SLOT(updateStatusBar()));
 
     m_actionHandler = new DolphinViewActionHandler(actionCollection(), this);
     m_actionHandler->setCurrentView(m_view);
 
     m_actionHandler = new DolphinViewActionHandler(actionCollection(), this);
     m_actionHandler->setCurrentView(m_view);
@@ -130,7 +128,6 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
 
 DolphinPart::~DolphinPart()
 {
 
 DolphinPart::~DolphinPart()
 {
-    DolphinSettings::instance().save();
     DolphinNewFileMenuObserver::instance().detach(m_newFileMenu);
 }
 
     DolphinNewFileMenuObserver::instance().detach(m_newFileMenu);
 }
 
@@ -193,6 +190,12 @@ void DolphinPart::createActions()
                    goActionGroup);
 
     // Tools menu
                    goActionGroup);
 
     // Tools menu
+    KAction* findFile = actionCollection()->addAction("find_file");
+    findFile->setText(i18nc("@action:inmenu Tools", "Find File..."));
+    findFile->setShortcut(Qt::CTRL | Qt::Key_F);
+    findFile->setIcon(KIcon("edit-find"));
+    connect(findFile, SIGNAL(triggered()), this, SLOT(slotFindFile()));
+
     if (KAuthorized::authorizeKAction("shell_access")) {
         KAction* action = actionCollection()->addAction("open_terminal");
         action->setIcon(KIcon("utilities-terminal"));
     if (KAuthorized::authorizeKAction("shell_access")) {
         KAction* action = actionCollection()->addAction("open_terminal");
         action->setIcon(KIcon("utilities-terminal"));
@@ -200,7 +203,6 @@ void DolphinPart::createActions()
         connect(action, SIGNAL(triggered()), SLOT(slotOpenTerminal()));
         action->setShortcut(Qt::Key_F4);
     }
         connect(action, SIGNAL(triggered()), SLOT(slotOpenTerminal()));
         action->setShortcut(Qt::Key_F4);
     }
-
 }
 
 void DolphinPart::createGoAction(const char* name, const char* iconName,
 }
 
 void DolphinPart::createGoAction(const char* name, const char* iconName,
@@ -325,7 +327,7 @@ void DolphinPart::slotRequestItemInfo(const KFileItem& item)
     }
 }
 
     }
 }
 
-void DolphinPart::slotItemTriggered(const KFileItem& item)
+void DolphinPart::slotItemActivated(const KFileItem& item)
 {
     KParts::OpenUrlArguments args;
     // Forget about the known mimetype if a target URL is used.
 {
     KParts::OpenUrlArguments args;
     // Forget about the known mimetype if a target URL is used.
@@ -344,11 +346,12 @@ void DolphinPart::slotItemTriggered(const KFileItem& item)
 void DolphinPart::createNewWindow(const KUrl& url)
 {
     // TODO: Check issue N176832 for the missing QAIV signal; task 177399 - maybe this code
 void DolphinPart::createNewWindow(const KUrl& url)
 {
     // TODO: Check issue N176832 for the missing QAIV signal; task 177399 - maybe this code
-    // should be moved into DolphinPart::slotItemTriggered()
+    // should be moved into DolphinPart::slotItemActivated()
     emit m_extension->createNewWindow(url);
 }
 
     emit m_extension->createNewWindow(url);
 }
 
-void DolphinPart::slotOpenContextMenu(const KFileItem& _item,
+void DolphinPart::slotOpenContextMenu(const QPoint& pos,
+                                      const KFileItem& _item,
                                       const KUrl&,
                                       const QList<QAction*>& customActions)
 {
                                       const KUrl&,
                                       const QList<QAction*>& customActions)
 {
@@ -426,7 +429,7 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item,
 
     actionGroups.insert("editactions", editActions);
 
 
     actionGroups.insert("editactions", editActions);
 
-    emit m_extension->popupMenu(QCursor::pos(),
+    emit m_extension->popupMenu(pos,
                                 items,
                                 KParts::OpenUrlArguments(),
                                 KParts::BrowserArguments(),
                                 items,
                                 KParts::OpenUrlArguments(),
                                 KParts::BrowserArguments(),
@@ -434,7 +437,7 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item,
                                 actionGroups);
 }
 
                                 actionGroups);
 }
 
-void DolphinPart::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl)
+void DolphinPart::slotDirectoryRedirection(const KUrl& oldUrl, const KUrl& newUrl)
 {
     //kDebug() << oldUrl << newUrl << "currentUrl=" << url();
     if (oldUrl.equals(url(), KUrl::CompareWithoutTrailingSlash /* #207572 */)) {
 {
     //kDebug() << oldUrl << newUrl << "currentUrl=" << url();
     if (oldUrl.equals(url(), KUrl::CompareWithoutTrailingSlash /* #207572 */)) {
@@ -474,7 +477,7 @@ void DolphinPart::openSelectionDialog(const QString& title, const QString& text,
 
     if (okClicked && !pattern.isEmpty()) {
         QRegExp patternRegExp(pattern, Qt::CaseSensitive, QRegExp::Wildcard);
 
     if (okClicked && !pattern.isEmpty()) {
         QRegExp patternRegExp(pattern, Qt::CaseSensitive, QRegExp::Wildcard);
-        m_view->setItemSelectionEnabled(patternRegExp, selectItems);
+        m_view->selectItems(patternRegExp, selectItems);
     }
 }
 
     }
 }
 
@@ -516,11 +519,16 @@ void DolphinPart::slotOpenTerminal()
     KToolInvocation::invokeTerminal(QString(), dir);
 }
 
     KToolInvocation::invokeTerminal(QString(), dir);
 }
 
+void DolphinPart::slotFindFile()
+{
+    KRun::run("kfind", url(), widget());
+}
+
 void DolphinPart::updateNewMenu()
 {
     // As requested by KNewFileMenu :
     m_newFileMenu->checkUpToDate();
 void DolphinPart::updateNewMenu()
 {
     // As requested by KNewFileMenu :
     m_newFileMenu->checkUpToDate();
-    m_newFileMenu->setViewShowsHiddenFiles(m_view->showHiddenFiles());
+    m_newFileMenu->setViewShowsHiddenFiles(m_view->hiddenFilesShown());
     // And set the files that the menu apply on :
     m_newFileMenu->setPopupFiles(url());
 }
     // And set the files that the menu apply on :
     m_newFileMenu->setPopupFiles(url());
 }
@@ -537,7 +545,7 @@ void DolphinPart::updateProgress(int percent)
 
 void DolphinPart::createDirectory()
 {
 
 void DolphinPart::createDirectory()
 {
-    m_newFileMenu->setViewShowsHiddenFiles(m_view->showHiddenFiles());
+    m_newFileMenu->setViewShowsHiddenFiles(m_view->hiddenFilesShown());
     m_newFileMenu->setPopupFiles(url());
     m_newFileMenu->createDirectory();
 }
     m_newFileMenu->setPopupFiles(url());
     m_newFileMenu->createDirectory();
 }
@@ -583,7 +591,7 @@ void DolphinPartBrowserExtension::pasteTo(const KUrl&)
 
 void DolphinPartBrowserExtension::reparseConfiguration()
 {
 
 void DolphinPartBrowserExtension::reparseConfiguration()
 {
-    m_part->view()->refresh();
+    m_part->view()->readSettings();
 }
 
 ////
 }
 
 ////
@@ -600,7 +608,7 @@ DolphinPart* DolphinPartFileInfoExtension::part() const
 
 bool DolphinPartFileInfoExtension::hasSelection() const
 {
 
 bool DolphinPartFileInfoExtension::hasSelection() const
 {
-    return part()->view()->hasSelection();
+    return part()->view()->selectedItemsCount() > 0;
 }
 
 KParts::FileInfoExtension::QueryModes DolphinPartFileInfoExtension::supportedQueryModes() const
 }
 
 KParts::FileInfoExtension::QueryModes DolphinPartFileInfoExtension::supportedQueryModes() const