[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/apps/konqueror
From:       David Faure <faure () kde ! org>
Date:       2009-11-17 19:56:59
Message-ID: 1258487819.020622.31657.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1050644 by dfaure:

Provide "Open in new tab" in addition to "Open in new window" in the history dialog \
and sidebar. Fix existing "Open in new window" items (including the one in the \
bookmark module) so that it does create a new window even if the user preference is \
tabbing. Fixed for: 4.4.0
BUG: 135964


 M  +20 -0     sidebar/history_module/history_module.cpp  
 M  +2 -0      sidebar/history_module/history_module.h  
 M  +9 -3      sidebar/trees/bookmark_module/bookmark_module.cpp  
 M  +4 -4      sidebar/trees/dirtree_module/dirtree_module.cpp  
 M  +12 -3     src/konqhistorydialog.cpp  
 M  +5 -2      src/konqhistorydialog.h  
 M  +17 -1     src/konqhistoryview.cpp  
 M  +2 -0      src/konqhistoryview.h  
 M  +2 -3      src/konqmainwindow.cpp  


--- trunk/KDE/kdebase/apps/konqueror/sidebar/history_module/history_module.cpp \
#1050643:1050644 @@ -39,6 +39,8 @@
     connect(m_historyView->treeView(), SIGNAL(activated(QModelIndex)), this, \
                SLOT(slotActivated(QModelIndex)));
     connect(m_historyView->treeView(), SIGNAL(pressed(QModelIndex)), this, \
                SLOT(slotPressed(QModelIndex)));
     connect(m_historyView->treeView(), SIGNAL(clicked(QModelIndex)), this, \
SLOT(slotClicked(QModelIndex))); +    connect(m_historyView, \
SIGNAL(openUrlInNewWindow(KUrl)), this, SLOT(slotOpenWindow(KUrl))); +    \
connect(m_historyView, SIGNAL(openUrlInNewTab(KUrl)), this, SLOT(slotOpenTab(KUrl))); \
}  
 KonqSidebarHistoryModule::~KonqSidebarHistoryModule()
@@ -79,6 +81,24 @@
     }
 }
 
+void KonqSidebarHistoryModule::slotOpenWindow(const KUrl& url)
+{
+    KParts::OpenUrlArguments args;
+    args.setActionRequestedByUser(true);
+    KParts::BrowserArguments browserArgs;
+    browserArgs.setForcesNewWindow(true);
+    createNewWindow(url, args, browserArgs);
+}
+
+void KonqSidebarHistoryModule::slotOpenTab(const KUrl& url)
+{
+    KParts::OpenUrlArguments args;
+    args.setActionRequestedByUser(true);
+    KParts::BrowserArguments browserArgs;
+    browserArgs.setNewTab(true);
+    createNewWindow(url, args, browserArgs);
+}
+
 class KonqSidebarHistoryPlugin : public KonqSidebarPlugin
 {
 public:
--- trunk/KDE/kdebase/apps/konqueror/sidebar/history_module/history_module.h \
#1050643:1050644 @@ -38,6 +38,8 @@
     void slotActivated(const QModelIndex& index);
     void slotPressed(const QModelIndex& index);
     void slotClicked(const QModelIndex& index);
+    void slotOpenWindow(const KUrl& url);
+    void slotOpenTab(const KUrl& url);
 
 private:
     KonqHistoryView* m_historyView;
--- trunk/KDE/kdebase/apps/konqueror/sidebar/trees/bookmark_module/bookmark_module.cpp \
#1050643:1050644 @@ -397,7 +397,11 @@
     if (!bi)
         return;
 
-    emit tree()->createNewWindow( bi->bookmark().url() );
+    KParts::OpenUrlArguments args;
+    args.setActionRequestedByUser(true);
+    KParts::BrowserArguments browserArgs;
+    browserArgs.setForcesNewWindow(true);
+    emit tree()->createNewWindow(bi->bookmark().url(), args, browserArgs);
 }
 
 void KonqSidebarBookmarkModule::slotOpenTab()
@@ -413,6 +417,8 @@
     else
 	return;
 
+    KParts::OpenUrlArguments args;
+    args.setActionRequestedByUser(true);
     KParts::BrowserArguments browserArguments;
     browserArguments.setNewTab(true);
     if (bookmark.isGroup()) {
@@ -421,14 +427,14 @@
         while (!bookmark.isNull()) {
             if (!bookmark.isGroup() && !bookmark.isSeparator()) {
                 emit tree()->createNewWindow(bookmark.url(),
-                                             KParts::OpenUrlArguments(),
+                                             args,
                                              browserArguments);
             }
             bookmark = group.next(bookmark);
         }
     } else {
         emit tree()->createNewWindow(bookmark.url(),
-                                     KParts::OpenUrlArguments(),
+                                     args,
                                      browserArguments);
     }
 }
--- trunk/KDE/kdebase/apps/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp \
#1050643:1050644 @@ -530,7 +530,7 @@
 
 void KonqSidebarDirTreeModule::slotRedirection( const KUrl & oldUrl, const KUrl & \
newUrl )  {
-    kDebug(1201) << \
"******************************KonqSidebarDirTreeModule::slotRedirection(" << \
newUrl.prettyUrl() << ")"; +    kDebug(1201) << newUrl;
 
     QString oldUrlStr = oldUrl.url( KUrl::RemoveTrailingSlash );
     QString newUrlStr = newUrl.url( KUrl::RemoveTrailingSlash );
@@ -561,7 +561,7 @@
 
 void KonqSidebarDirTreeModule::slotListingStopped( const KUrl & url )
 {
-    kDebug(1201) << "KonqSidebarDirTree::slotListingStopped " << url.url( \
KUrl::RemoveTrailingSlash ); +    //kDebug(1201) << url;
 
     Q3PtrList<KonqSidebarTreeItem> *itemList;
     KonqSidebarTreeItem * item;
@@ -580,7 +580,7 @@
     }
     delete itemList;
 
-    kDebug(1201) << "m_selectAfterOpening " << m_selectAfterOpening.prettyUrl();
+    //kDebug(1201) << "m_selectAfterOpening " << m_selectAfterOpening.prettyUrl();
     if ( !m_selectAfterOpening.isEmpty() && url.isParentOf( m_selectAfterOpening ) )
     {
         KUrl theURL( m_selectAfterOpening );
@@ -628,7 +628,7 @@
         } else
         {
             m_selectAfterOpening = url;
-            kDebug() << "KonqSidebarDirTreeModule::followURL: m_selectAfterOpening=" \
<< m_selectAfterOpening.url(); +            //kDebug() << \
"KonqSidebarDirTreeModule::followURL: m_selectAfterOpening=" << \
m_selectAfterOpening.url();  }
     }
 }
--- trunk/KDE/kdebase/apps/konqueror/src/konqhistorydialog.cpp #1050643:1050644
@@ -21,6 +21,7 @@
 #include "konqhistoryview.h"
 
 #include "konqhistory.h"
+#include "konqmainwindow.h"
 #include "konqmisc.h"
 
 #include <QtCore/QTimer>
@@ -37,8 +38,8 @@
 #include <klocale.h>
 #include <ktoggleaction.h>
 
-KonqHistoryDialog::KonqHistoryDialog(QWidget *parent)
-    : KDialog(parent)
+KonqHistoryDialog::KonqHistoryDialog(KonqMainWindow *parent)
+    : KDialog(parent), m_mainWindow(parent)
 {
     setCaption(i18nc("@title:window", "History"));
     setButtons(KDialog::Close);
@@ -49,6 +50,7 @@
     m_historyView = new KonqHistoryView(mainWidget());
     connect(m_historyView->treeView(), SIGNAL(doubleClicked(QModelIndex)), this, \
                SLOT(slotOpenWindowForIndex(QModelIndex)));
     connect(m_historyView, SIGNAL(openUrlInNewWindow(KUrl)), this, \
SLOT(slotOpenWindow(KUrl))); +    connect(m_historyView, \
SIGNAL(openUrlInNewTab(KUrl)), this, SLOT(slotOpenTab(KUrl)));  
     KActionCollection* collection = m_historyView->actionCollection();
 
@@ -89,11 +91,18 @@
     KonqMisc::createNewWindow(url);
 }
 
+void KonqHistoryDialog::slotOpenTab(const KUrl& url)
+{
+    m_mainWindow->openMultiURL(KUrl::List() << url);
+}
+
+// Called when double-clicking on a row
 void KonqHistoryDialog::slotOpenWindowForIndex(const QModelIndex& index)
 {
     const KUrl url = m_historyView->urlForIndex(index);
     if (url.isValid()) {
-        slotOpenWindow(url);
+        slotOpenWindow(url); // should we call slotOpenTab instead?
     }
 }
+
 #include "konqhistorydialog.moc"
--- trunk/KDE/kdebase/apps/konqueror/src/konqhistorydialog.h #1050643:1050644
@@ -22,6 +22,7 @@
 
 #include <kdialog.h>
 
+class KonqMainWindow;
 class KonqHistoryView;
 class QModelIndex;
 
@@ -30,17 +31,19 @@
     Q_OBJECT
 
 public:
-    KonqHistoryDialog(QWidget *parent = 0);
+    KonqHistoryDialog(KonqMainWindow *parent = 0);
     ~KonqHistoryDialog();
 
     QSize sizeHint() const;
 
 private Q_SLOTS:
     void slotOpenWindow(const KUrl& url);
+    void slotOpenTab(const KUrl& url);
     void slotOpenWindowForIndex(const QModelIndex& index);
 
 private:
-    KonqHistoryView *m_historyView;
+    KonqHistoryView* m_historyView;
+    KonqMainWindow* m_mainWindow;
 };
 
 #endif // KONQ_HISTORYDIALOG_H
--- trunk/KDE/kdebase/apps/konqueror/src/konqhistoryview.cpp #1050643:1050644
@@ -58,17 +58,25 @@
     QAction *action = m_collection->addAction("open_new");
     action->setIcon(KIcon("window-new"));
     action->setText(i18n("Open in New &Window"));
-    connect(action, SIGNAL(triggered(bool)), this, SLOT(slotNewWindow()));
+    connect(action, SIGNAL(triggered()), this, SLOT(slotNewWindow()));
+
+    action = m_collection->addAction("open_tab");
+    action->setIcon(KIcon("tab-new"));
+    action->setText(i18n("Open in New Tab"));
+    connect(action, SIGNAL(triggered()), this, SLOT(slotNewTab()));
+
     action = m_collection->addAction("remove");
     action->setIcon(KIcon("edit-delete"));
     action->setText(i18n("&Remove Entry"));
     action->setShortcut(Qt::Key_Delete); // #135966
     action->setShortcutContext(Qt::WidgetWithChildrenShortcut);
     connect(action, SIGNAL(triggered(bool)), this, SLOT(slotRemoveEntry()));
+
     action = m_collection->addAction("clear");
     action->setIcon(KIcon("edit-clear-history"));
     action->setText(i18n("C&lear History"));
     connect(action, SIGNAL(triggered(bool)), this, SLOT(slotClearHistory()));
+
     action = m_collection->addAction("preferences");
     action->setIcon(KIcon("configure"));
     action->setText(i18n("&Preferences..."));
@@ -118,6 +126,7 @@
 
     if (nodeType == KonqHistory::HistoryType) {
         menu->addAction(m_collection->action("open_new"));
+        menu->addAction(m_collection->action("open_tab"));
         menu->addSeparator();
     }
 
@@ -205,6 +214,13 @@
         emit openUrlInNewWindow(url);
 }
 
+void KonqHistoryView::slotNewTab()
+{
+    const KUrl url = urlForIndex(m_treeView->currentIndex());
+    if (url.isValid())
+        emit openUrlInNewTab(url);
+}
+
 KUrl KonqHistoryView::urlForIndex(const QModelIndex& index) const
 {
     if (!index.isValid() || (index.data(KonqHistory::TypeRole).toInt() != \
                KonqHistory::HistoryType)) {
--- trunk/KDE/kdebase/apps/konqueror/src/konqhistoryview.h #1050643:1050644
@@ -52,6 +52,7 @@
 
 Q_SIGNALS:
     void openUrlInNewWindow(const KUrl& url);
+    void openUrlInNewTab(const KUrl& url);
 
 private Q_SLOTS:
     void slotContextMenu(const QPoint &pos);
@@ -62,6 +63,7 @@
     void slotFilterTextChanged(const QString &text);
     void slotTimerTimeout();
     void slotNewWindow();
+    void slotNewTab();
 
 private:
     QTreeView* m_treeView;
--- trunk/KDE/kdebase/apps/konqueror/src/konqmainwindow.cpp #1050643:1050644
@@ -1161,12 +1161,11 @@
     bool createTab = false;
     if (args.actionRequestedByUser()) { // MMB or some RMB popupmenu action
         createTab = KonqSettings::mmbOpensTab() &&
-                    !args.metaData().contains("forcenewwindow"); // RMB / Frame / \
Open in New Window +                    !browserArgs.forcesNewWindow(); // RMB / \
Frame / Open in New Window  } else {
         createTab = KonqSettings::popupsWithinTabs() &&
                     !isPopupWindow( windowArgs );
     }
-
     kDebug() << "createTab=" << createTab << "part=" << part;
 
     if ( createTab ) {
@@ -1732,7 +1731,7 @@
 void KonqMainWindow::slotGoHistory()
 {
     if (!m_historyDialog) {
-        m_historyDialog = new KonqHistoryDialog();
+        m_historyDialog = new KonqHistoryDialog(this);
         m_historyDialog->setAttribute(Qt::WA_DeleteOnClose);
         m_historyDialog->setModal(false);
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic