summaryrefslogtreecommitdiffstats
path: root/konqueror/konq_guiclients.h
diff options
context:
space:
mode:
Diffstat (limited to 'konqueror/konq_guiclients.h')
-rw-r--r--konqueror/konq_guiclients.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/konqueror/konq_guiclients.h b/konqueror/konq_guiclients.h
new file mode 100644
index 000000000..3e34d3ee5
--- /dev/null
+++ b/konqueror/konq_guiclients.h
@@ -0,0 +1,97 @@
+/* This file is part of the KDE project
+ Copyright (C) 1998, 1999 Simon Hausmann <hausmann@kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef __konq_guiclients_h__
+#define __konq_guiclients_h__
+
+#include <kxmlguiclient.h>
+#include <qobject.h>
+#include <qdict.h>
+#include <ktrader.h>
+
+class KAction;
+class KActionCollection;
+class KonqMainWindow;
+class KonqView;
+
+/**
+ * This XML-GUI-Client is passed to KonqPopupMenu to add extra actions into it,
+ * using the XMLGUI merging. It offers embedding actions and tabbed-browsing actions.
+ * Its XML looks like this:
+ * @code
+
+ <kpartgui name="konqueror" >
+ <Menu name="popupmenu" >
+ <menu group="preview" name="preview submenu" >
+ <text>Preview In</text>
+ <action group="preview" name="0" />
+ <action group="preview" name="1" />
+ </menu>
+ <action group="tabhandling" name="sameview" />
+ <action group="tabhandling" name="newview" />
+ <action group="tabhandling" name="openintab" />
+ <separator group="tabhandling" />
+ </Menu>
+ </kpartgui>
+
+ * @endcode
+ */
+class PopupMenuGUIClient : public KXMLGUIClient
+{
+public:
+ PopupMenuGUIClient( KonqMainWindow *mainWindow, const KTrader::OfferList &embeddingServices,
+ bool isIntoTrash, bool doTabHandling );
+ virtual ~PopupMenuGUIClient();
+
+ virtual KAction *action( const QDomElement &element ) const;
+
+private:
+ void addEmbeddingService( QDomElement &menu, int idx, const QString &name, const KService::Ptr &service );
+
+ KonqMainWindow *m_mainWindow;
+
+ QDomDocument m_doc;
+};
+
+class ToggleViewGUIClient : public QObject
+{
+ Q_OBJECT
+public:
+ ToggleViewGUIClient( KonqMainWindow *mainWindow );
+ virtual ~ToggleViewGUIClient();
+
+ bool empty() const { return m_empty; }
+
+ QPtrList<KAction> actions() const;
+ KAction *action( const QString &name ) { return m_actions[ name ]; }
+
+ void saveConfig( bool add, const QString &serviceName );
+
+private slots:
+ void slotToggleView( bool toggle );
+ void slotViewAdded( KonqView *view );
+ void slotViewRemoved( KonqView *view );
+private:
+ KonqMainWindow *m_mainWindow;
+ QDict<KAction> m_actions;
+ bool m_empty;
+ QMap<QString,bool> m_mapOrientation;
+};
+
+#endif