[PATCH] bookmarking all tabs as folder
Alexander Kellett
lypanov at kde.org
Sun Jul 6 02:49:47 BST 2003
hiya david / anyone else interested,
here's an impl of a feature that
several people have been requesting
for a while now ;-)
patch is kind of intrusive. so wanted
to let you have a look through to see
if its the best way of going about it.
wasn't really sure about the splitting
off of the owner from konq_mainwindow,
but i don't really like the use of
inheritance when it doesn't provide
anything extra.
wasn't sure how to get around the need
for the _p.h. Njaaard suggested using
METAOBJECT_SOURCES = AUTO, or something
like that, but i couldn't get that working
in the end so i just wound up with using
the old faithful _p.h trick. having the
private class in konq_mainwindow.h is
possible of course, but horrible for
compilation times.
i've already commited the core stuff
itself KExtendedBookmarkOwner to kdelibs,
can be found in kbookmarkmanager.h
in any case, it Works For Me :)
cheers,
Alex
-------------- next part --------------
? .konq_tabs.cc.swp
? konq_mainwindow_p.h
? konqueror.la.cc
? konqueror_dummy.cc
? client/kfmclient.la.cc
? client/kfmclient_dummy.cc
? keditbookmarks/keditbookmarks.la.cpp
? keditbookmarks/keditbookmarks_dummy.cpp
Index: konq_mainwindow.cc
===================================================================
RCS file: /home/kde/kdebase/konqueror/konq_mainwindow.cc,v
retrieving revision 1.1195
diff -u -p -B -w -r1.1195 konq_mainwindow.cc
--- konq_mainwindow.cc 3 Jul 2003 20:20:59 -0000 1.1195
+++ konq_mainwindow.cc 6 Jul 2003 01:29:22 -0000
@@ -123,6 +123,13 @@ int KonqMainWindow::s_preloadUsageCount;
static int current_memory_usage();
+#include "konq_mainwindow_p.h"
+
+KonqExtendedBookmarkOwner::KonqExtendedBookmarkOwner(KonqMainWindow *w)
+{
+ m_pKonqMainWindow = w;
+}
+
KonqMainWindow::KonqMainWindow( const KURL &initialURL, bool openInitialURL, const char *name )
: KParts::MainWindow( name, WDestructiveClose | WStyle_ContextHelp )
{
@@ -165,6 +172,12 @@ KonqMainWindow::KonqMainWindow( const KU
m_paMoveFiles = 0L;
m_paNewDir = 0L;
m_bookmarkBarActionCollection = 0L;
+ KonqExtendedBookmarkOwner *extOwner = new KonqExtendedBookmarkOwner( this );
+ m_pBookmarksOwner = extOwner;
+ connect( extOwner,
+ SIGNAL( signalFillBookmarksList(KExtendedBookmarkOwner::QStringPairList &) ),
+ extOwner,
+ SLOT( slotFillBookmarksList(KExtendedBookmarkOwner::QStringPairList &) ) );
KConfig *config = KGlobal::config();
@@ -350,7 +363,7 @@ void KonqMainWindow::initBookmarkBar()
if (!bar) return;
if (m_paBookmarkBar) return;
- m_paBookmarkBar = new KBookmarkBar( KonqBookmarkManager::self(), this, bar, m_bookmarkBarActionCollection, this );
+ m_paBookmarkBar = new KBookmarkBar( KonqBookmarkManager::self(), m_pBookmarksOwner, bar, m_bookmarkBarActionCollection, this );
connect( m_paBookmarkBar,
SIGNAL( aboutToShowContextMenu(const KBookmark &, QPopupMenu*) ),
this, SLOT( slotFillContextMenu(const KBookmark &, QPopupMenu*) ));
@@ -3244,7 +3257,7 @@ void KonqMainWindow::initActions()
m_bookmarksActionCollection->setHighlightingEnabled( true );
connectActionCollection( m_bookmarksActionCollection );
- m_pBookmarkMenu = new KBookmarkMenu( KonqBookmarkManager::self(), this, m_pamBookmarks->popupMenu(), m_bookmarksActionCollection, true );
+ m_pBookmarkMenu = new KBookmarkMenu( KonqBookmarkManager::self(), m_pBookmarksOwner, m_pamBookmarks->popupMenu(), m_bookmarksActionCollection, true );
connect( m_pBookmarkMenu,
SIGNAL( aboutToShowContextMenu(const KBookmark &, QPopupMenu*) ),
this, SLOT( slotFillContextMenu(const KBookmark &, QPopupMenu*) ));
@@ -3658,10 +3671,10 @@ void KonqMainWindow::disableActionsNoVie
updateLocalPropsActions();
}
-void KonqMainWindow::openBookmarkURL( const QString & url )
+void KonqExtendedBookmarkOwner::openBookmarkURL( const QString & url )
{
kdDebug(1202) << (QString("KonqMainWindow::openBookmarkURL(%1)").arg(url)) << endl;
- openFilteredURL( url );
+ m_pKonqMainWindow->openFilteredURL( url );
}
void KonqMainWindow::setCaption( const QString &caption )
@@ -3691,6 +3704,11 @@ void KonqMainWindow::show()
KParts::MainWindow::show();
}
+QString KonqExtendedBookmarkOwner::currentURL() const
+{
+ return m_pKonqMainWindow->currentURL();
+}
+
QString KonqMainWindow::currentURL() const
{
if ( !m_currentView )
@@ -3709,6 +3727,33 @@ QString KonqMainWindow::currentURL() con
return url;
}
+void KonqExtendedBookmarkOwner::slotFillBookmarksList( KExtendedBookmarkOwner::QStringPairList & list )
+{
+ KonqFrameBase *docContainer = m_pKonqMainWindow->m_pViewManager->docContainer();
+ if (docContainer == 0L) return;
+ if (docContainer->frameType() != "Tabs") return;
+
+ KonqFrameTabs* tabContainer = static_cast<KonqFrameTabs*>(docContainer);
+
+ QPtrList<KonqFrameBase> frameList = *tabContainer->childFrameList();
+ QPtrListIterator<KonqFrameBase> it( frameList );
+
+ for ( it.toFirst(); it != 0L; ++it )
+ {
+ if ( !it.current()->activeChildView() )
+ continue;
+ if( it.current()->activeChildView()->locationBarURL().isEmpty() )
+ continue;
+ list << qMakePair( it.current()->activeChildView()->caption(),
+ it.current()->activeChildView()->url().url() );
+ }
+}
+
+QString KonqExtendedBookmarkOwner::currentTitle() const
+{
+ return m_pKonqMainWindow->currentTitle();
+}
+
QString KonqMainWindow::currentTitle() const
{
return m_currentView ? m_currentView->caption() : QString::null;
@@ -4814,6 +4859,7 @@ static int current_memory_usage()
}
#include "konq_mainwindow.moc"
+#include "konq_mainwindow_p.moc"
/* vim: et sw=4 ts=4
*/
Index: konq_mainwindow.h
===================================================================
RCS file: /home/kde/kdebase/konqueror/konq_mainwindow.h,v
retrieving revision 1.404
diff -u -p -B -w -r1.404 konq_mainwindow.h
--- konq_mainwindow.h 3 Jul 2003 20:20:59 -0000 1.404
+++ konq_mainwindow.h 6 Jul 2003 01:29:22 -0000
@@ -80,10 +80,9 @@ namespace KParts {
struct URLArgs;
};
+class KonqExtendedBookmarkOwner;
-class KonqMainWindow : public KParts::MainWindow,
- virtual public KBookmarkOwner,
- public KonqFrameContainerBase
+class KonqMainWindow : public KParts::MainWindow, public KonqFrameContainerBase
{
Q_OBJECT
Q_PROPERTY( int viewCount READ viewCount )
@@ -94,6 +93,7 @@ class KonqMainWindow : public KParts::Ma
Q_PROPERTY( QString currentURL READ currentURL )
Q_PROPERTY( bool isHTMLAllowed READ isHTMLAllowed )
public:
+ friend class KonqExtendedBookmarkOwner;
enum ComboAction { ComboClear, ComboAdd, ComboRemove };
KonqMainWindow( const KURL &initialURL = KURL(), bool openInitialURL = true, const char *name = 0 );
@@ -183,11 +183,6 @@ public:
*/
virtual void show();
- /// Overloaded functions of KBookmarkOwner
- virtual void openBookmarkURL( const QString & _url );
- virtual QString currentTitle() const;
- virtual QString currentURL() const;
-
/**
* Change URL displayed in the location bar
*/
@@ -297,6 +292,9 @@ public:
static void setPreloadedWindow( KonqMainWindow* );
static KonqMainWindow* preloadedWindow() { return s_preloadedWindow; }
+ QString currentTitle() const;
+ QString currentURL() const;
+
signals:
void viewAdded( KonqView *view );
void viewRemoved( KonqView *view );
@@ -649,6 +647,7 @@ private:
QGuardedPtr<KonqView> m_currentView;
KBookmarkMenu* m_pBookmarkMenu;
+ KonqExtendedBookmarkOwner *m_pBookmarksOwner;
KActionCollection* m_bookmarksActionCollection;
KActionCollection* m_bookmarkBarActionCollection;
-------------- next part --------------
#ifndef konq_mainwindow_p_h
#define konq_mainwindow_p_h
class KonqExtendedBookmarkOwner : public KExtendedBookmarkOwner
{
Q_OBJECT
public:
KonqExtendedBookmarkOwner(KonqMainWindow *);
// from KBookmarkOwner
virtual void openBookmarkURL( const QString & _url );
virtual QString currentTitle() const;
virtual QString currentURL() const;
public slots:
// for KExtendedBookmarkOwner
void slotFillBookmarksList( KExtendedBookmarkOwner::QStringPairList & list );
private:
KonqMainWindow *m_pKonqMainWindow;
};
#endif
More information about the kfm-devel
mailing list