]> cloud.milkyroute.net Git - dolphin.git/commitdiff
allow Konqueror to open also files inside a new tab, not only directories
authorPeter Penz <peter.penz19@gmail.com>
Wed, 7 May 2008 20:02:37 +0000 (20:02 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Wed, 7 May 2008 20:02:37 +0000 (20:02 +0000)
CCMAIL: faure@kde.org

svn path=/trunk/KDE/kdebase/apps/; revision=805184

src/dolphincontroller.cpp
src/dolphinpart.cpp
src/dolphinview.cpp
src/dolphinview.h

index 7dd6133f0f8ac8f4c27de0a0d02ee2c513a9f707..57d4a76fb6cad74dfda5749248caf840ed3b56bb 100644 (file)
@@ -150,7 +150,7 @@ void DolphinController::triggerItem(const QModelIndex& index)
 
     const KFileItem item = itemForIndex(index);
     if (index.isValid() && (index.column() == KDirModel::Name)) {
-        if (openTab && item.isDir()) {
+        if (openTab && (item.isDir() || m_dolphinView->isTabsForFilesEnabled())) {
             emit tabRequested(item.url());
         } else {
             emit itemTriggered(item);
index 4f378fe6d857fcf0910d299fd792d21d5ac250b2..296e101d614946c8580f75174db24f8e9174be3b 100644 (file)
@@ -77,6 +77,7 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
                              m_dirLister,
                              m_dolphinModel,
                              m_proxyModel);
+    m_view->setTabsForFilesEnabled(true);
     setWidget(m_view);
 
     setXMLFile("dolphinpart.rc");
@@ -284,7 +285,6 @@ 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()
     KFileItem item(S_IFDIR, (mode_t)-1, url);
-    Q_ASSERT(item.mimeTypePtr()->is("inode/directory"));  // the signal 'tabRequested' is only emitted for dirs
     KParts::OpenUrlArguments args;
     args.setMimeType(item.mimetype());
     emit m_extension->createNewWindow(url, args);
index 5dd81426fa575072b12c8a61eb6ba70191d706ca..5a0f00beecd7b11ddc9449205f633e6701fa3b09 100644 (file)
@@ -70,6 +70,7 @@ DolphinView::DolphinView(QWidget* parent,
     m_showPreview(false),
     m_loadingDirectory(false),
     m_storedCategorizedSorting(false),
+    m_tabsForFiles(false),
     m_isContextMenuOpen(false),
     m_mode(DolphinView::IconsView),
     m_topLayout(0),
@@ -913,6 +914,16 @@ QPair<bool, QString> DolphinView::pasteInfo() const
     return ret;
 }
 
+void DolphinView::setTabsForFilesEnabled(bool tabsForFiles)
+{
+    m_tabsForFiles = tabsForFiles;
+}
+
+bool DolphinView::isTabsForFilesEnabled() const
+{
+    return m_tabsForFiles;
+}
+
 void DolphinView::emitContentsMoved()
 {
     // only emit the contents moved signal if:
index 1fcdaa0879c20c441c054da0425fde71a9f268ed..9af9aab8d9dcffd813acdd3e3c034b46324cae0c 100644 (file)
@@ -316,6 +316,15 @@ public:
      */
     QPair<bool, QString> pasteInfo() const;
 
+    /**
+     * If \a tabsForFiles is true, the signal tabRequested() will also
+     * emitted also for files. Per default tabs for files is disabled
+     * and hence the signal tabRequested() will only be emitted for
+     * directories.
+     */
+    void setTabsForFilesEnabled(bool tabsForFiles);
+    bool isTabsForFilesEnabled() const;
+
 public slots:
     /**
      * Changes the directory to \a url. If the current directory is equal to
@@ -641,11 +650,13 @@ private:
     }
 
 private:
-    bool m_active;
-    bool m_showPreview;
-    bool m_loadingDirectory;
-    bool m_storedCategorizedSorting;
-    bool m_isContextMenuOpen;   // TODO: workaround for Qt-issue xxxxxx
+    bool m_active : 1;
+    bool m_showPreview : 1;
+    bool m_loadingDirectory : 1;
+    bool m_storedCategorizedSorting : 1;
+    bool m_tabsForFiles : 1;
+    bool m_isContextMenuOpen : 1;   // TODO: workaround for Qt-issue xxxxxx
+
     Mode m_mode;
 
     DolphinMainWindow* m_mainWindow;