• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kio

kbookmarkmenu.h

Go to the documentation of this file.
00001 //  -*- c-basic-offset:4; indent-tabs-mode:nil -*-
00002 // vim: set ts=4 sts=4 sw=4 et:
00003 /* This file is part of the KDE project
00004    Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
00005 
00006    This library is free software; you can redistribute it and/or
00007    modify it under the terms of the GNU Library General Public
00008    License as published by the Free Software Foundation; either
00009    version 2 of the License, or (at your option) any later version.
00010 
00011    This library is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014    Library General Public License for more details.
00015 
00016    You should have received a copy of the GNU Library General Public License
00017    along with this library; see the file COPYING.LIB.  If not, write to
00018    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019    Boston, MA 02110-1301, USA.
00020 */
00021 
00022 #ifndef __kbookmarkmenu_h__
00023 #define __kbookmarkmenu_h__
00024 
00025 #include <sys/types.h>
00026 
00027 #include <qptrlist.h>
00028 #include <qptrstack.h>
00029 #include <qobject.h>
00030 #include <qlistview.h>
00031 
00032 #include <kdialogbase.h>
00033 #include <klocale.h>
00034 #include <kaction.h>
00035 
00036 #include "kbookmark.h"
00037 #include "kbookmarkmanager.h"
00038 
00039 class QString;
00040 class QPopupMenu;
00041 class QPushButton;
00042 class QListView;
00043 class KLineEdit;
00044 class KBookmark;
00045 class KBookmarkGroup;
00046 class KAction;
00047 class KActionMenu;
00048 class KActionCollection;
00049 class KBookmarkOwner;
00050 class KBookmarkMenu;
00051 class KPopupMenu;
00052 
00053 namespace KIO { class Job; }
00054 
00079 class KIO_EXPORT KBookmarkMenu : public QObject
00080 {
00081   Q_OBJECT
00082   friend class KBookmarkMenuNSImporter;
00083   friend class RMB;
00084 public:
00104   KBookmarkMenu( KBookmarkManager* mgr,
00105                  KBookmarkOwner * owner, KPopupMenu * parentMenu,
00106                  KActionCollection * collec, bool root, bool add = true,
00107                  const QString & parentAddress = "" );
00108 
00109   ~KBookmarkMenu();
00110 
00116   void fillBookmarkMenu();
00117 
00122   void ensureUpToDate();
00123 
00129   // TODO - transform into class
00130   struct DynMenuInfo {
00131      bool show;
00132      QString location;
00133      QString type;
00134      QString name;
00135      class DynMenuInfoPrivate *d;
00136   };
00137 
00142   static DynMenuInfo showDynamicBookmarks( const QString &id );
00143 
00152   static void setDynamicBookmarks( const QString &id, const DynMenuInfo &info );
00153 
00158   static QStringList dynamicBookmarksList();
00159 
00160 signals:
00161   void aboutToShowContextMenu( const KBookmark &, QPopupMenu * );
00165   void openBookmark( const QString& url, Qt::ButtonState state );
00166 
00167 public slots: // public for bookmark bar
00168   void slotBookmarksChanged( const QString & );
00169 
00170 protected slots:
00171   void slotAboutToShow();
00172   void slotAboutToShowContextMenu( KPopupMenu *, int, QPopupMenu * );
00173   void slotActionHighlighted( KAction * );
00174 
00175   void slotRMBActionRemove( int );
00176   void slotRMBActionInsert( int );
00177   void slotRMBActionCopyLocation( int );
00178   void slotRMBActionEditAt( int );
00179   void slotRMBActionProperties( int );
00180 
00181   void slotBookmarkSelected();
00185   void slotBookmarkSelected( KAction::ActivationReason reason, Qt::ButtonState state );
00186   void slotAddBookmarksList();
00187   void slotAddBookmark();
00188   void slotNewFolder();
00189 
00193   void slotNSLoad();
00194 
00195 protected:
00196   KExtendedBookmarkOwner* extOwner();
00197   void refill();
00198   void addAddBookmark();
00199   void addAddBookmarksList();
00200   void addEditBookmarks();
00201   void addNewFolder();
00202 
00203   void fillContextMenu( QPopupMenu *, const QString &, int );
00204 
00205   bool m_bIsRoot:1;
00206   bool m_bAddBookmark:1;
00207   bool m_bDirty:1;
00208   bool m_bNSBookmark:1;
00209   bool m_bAddShortcuts:1;
00210 
00211   KBookmarkManager * m_pManager;
00212   KBookmarkOwner *m_pOwner;
00217   KPopupMenu * m_parentMenu;
00221   QPtrList<KBookmarkMenu> m_lstSubMenus;
00222   KActionCollection * m_actionCollection;
00226   QPtrList<KAction> m_actions;
00230   QString m_parentAddress;
00231 
00232   // TODO make non static!
00233   static QString s_highlightedAddress;
00234   static QString s_highlightedImportLocation;
00235   static QString s_highlightedImportType;
00236 };
00237 
00241 class KIO_EXPORT KBookmarkMenuNSImporter : public QObject
00242 {
00243   Q_OBJECT
00244 public:
00245   KBookmarkMenuNSImporter( KBookmarkManager* mgr, KBookmarkMenu * menu, KActionCollection * act ) :
00246      m_menu(menu), m_actionCollection(act), m_pManager(mgr) {}
00247 
00248   void openNSBookmarks();
00249   void openBookmarks( const QString &location, const QString &type );
00250   void connectToImporter( const QObject &importer );
00251 
00252 protected slots:
00253   void newBookmark( const QString & text, const QCString & url, const QString & );
00254   void newFolder( const QString & text, bool, const QString & );
00255   void newSeparator();
00256   void endFolder();
00257 
00258 protected:
00259   QPtrStack<KBookmarkMenu> mstack;
00260   KBookmarkMenu * m_menu;
00261   KActionCollection * m_actionCollection;
00262   KBookmarkManager* m_pManager;
00263 };
00264 
00265 #endif

kio

Skip menu "kio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal