summaryrefslogtreecommitdiffstats
path: root/konqueror/sidebar/sidebar_widget.h
diff options
context:
space:
mode:
Diffstat (limited to 'konqueror/sidebar/sidebar_widget.h')
-rw-r--r--konqueror/sidebar/sidebar_widget.h227
1 files changed, 227 insertions, 0 deletions
diff --git a/konqueror/sidebar/sidebar_widget.h b/konqueror/sidebar/sidebar_widget.h
new file mode 100644
index 000000000..b45f79b7c
--- /dev/null
+++ b/konqueror/sidebar/sidebar_widget.h
@@ -0,0 +1,227 @@
+/***************************************************************************
+ sidebar_widget.h
+ -------------------
+ begin : Sat June 2 16:25:27 CEST 2001
+ copyright : (C) 2001 Joseph Wenninger
+ email : jowenn@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. *
+ * *
+ ***************************************************************************/
+#ifndef _SIDEBAR_WIDGET_
+#define _SIDEBAR_WIDGET_
+
+#include <tqptrvector.h>
+#include <tqtimer.h>
+#include <tqstring.h>
+#include <tqguardedptr.h>
+
+#include <kdockwidget.h>
+#include <kurl.h>
+#include <tdetoolbar.h>
+#include <tdeparts/part.h>
+#include <tdemultitabbar.h>
+
+#include "konqsidebarplugin.h"
+#include "konqsidebariface_p.h"
+
+class KDockWidget;
+class TQHBoxLayout;
+class TQSplitter;
+class TQStringList;
+
+class ButtonInfo: public TQObject, public KonqSidebarIface
+{
+ Q_OBJECT
+public:
+ ButtonInfo(const TQString& file_, class KonqSidebarIface *part, class KDockWidget *dock_,
+ const TQString &url_,const TQString &lib,
+ const TQString &dispName_, const TQString &iconName_,
+ TQObject *parent)
+ : TQObject(parent), file(file_), dock(dock_), URL(url_),
+ libName(lib), displayName(dispName_), iconName(iconName_), m_part(part)
+ {
+ copy = cut = paste = trash = del = rename =false;
+ }
+
+ ~ButtonInfo() {}
+
+ TQString file;
+ KDockWidget *dock;
+ KonqSidebarPlugin *module;
+ TQString URL;
+ TQString libName;
+ TQString displayName;
+ TQString iconName;
+ bool copy;
+ bool cut;
+ bool paste;
+ bool trash;
+ bool del;
+ bool rename;
+ KonqSidebarIface *m_part;
+ virtual bool universalMode() {return m_part->universalMode();}
+};
+
+
+class addBackEnd: public TQObject
+{
+ Q_OBJECT
+public:
+ addBackEnd(TQWidget *parent,class TQPopupMenu *addmenu, bool universal,
+ const TQString &currentProfile, const char *name=0);
+ ~addBackEnd(){;}
+protected slots:
+ void aboutToShowAddMenu();
+ void activatedAddMenu(int);
+signals:
+ void updateNeeded();
+ void initialCopyNeeded();
+private:
+ TQGuardedPtr<class TQPopupMenu> menu;
+ TQPtrVector<TQString> libNames;
+ TQPtrVector<TQString> libParam;
+ bool m_universal;
+ TQString m_currentProfile;
+ void doRollBack();
+ TQWidget *m_parent;
+};
+
+class KDE_EXPORT Sidebar_Widget: public TQWidget
+{
+ Q_OBJECT
+public:
+ friend class ButtonInfo;
+public:
+ Sidebar_Widget(TQWidget *parent, KParts::ReadOnlyPart *par,
+ const char * name,bool universalMode,
+ const TQString &currentProfile);
+ ~Sidebar_Widget();
+ bool openURL(const class KURL &url);
+ void stdAction(const char *handlestd);
+ //virtual KParts::ReadOnlyPart *getPart();
+ KParts::BrowserExtension *getExtension();
+ virtual TQSize sizeHint() const;
+
+public slots:
+ void addWebSideBar(const KURL& url, const TQString& name);
+
+protected:
+ void customEvent(TQCustomEvent* ev);
+ void resizeEvent(TQResizeEvent* ev);
+ virtual bool eventFilter(TQObject*,TQEvent*);
+ virtual void mousePressEvent(TQMouseEvent*);
+
+protected slots:
+ void showHidePage(int value);
+ void createButtons();
+ void updateButtons();
+ void finishRollBack();
+ void activatedMenu(int id);
+ void buttonPopupActivate(int);
+ void dockWidgetHasUndocked(KDockWidget*);
+ void aboutToShowConfigMenu();
+ void saveConfig();
+
+signals:
+ void started(TDEIO::Job *);
+ void completed();
+ void fileSelection(const KFileItemList& iems);
+ void fileMouseOver(const KFileItem& item);
+
+public:
+ /* interface KonqSidebar_PluginInterface*/
+ TDEInstance *getInstance();
+// virtual void showError(TQString &); for later extension
+// virtual void showMessage(TQString &); for later extension
+ /* end of interface implementation */
+
+ TQStringList getRestrictedViews() const { return m_restrictedViews; }
+
+ /* The following public slots are wrappers for browserextension fields */
+public slots:
+ void openURLRequest( const KURL &url, const KParts::URLArgs &args = KParts::URLArgs() );
+ /* @internal
+ * @since 3.2
+ * ### KDE4 remove me
+ */
+ void submitFormRequest(const char*,const TQString&,const TQByteArray&,const TQString&,const TQString&,const TQString&);
+ void createNewWindow( const KURL &url, const KParts::URLArgs &args = KParts::URLArgs() );
+ void createNewWindow( const KURL &url, const KParts::URLArgs &args,
+ const KParts::WindowArgs &windowArgs, KParts::ReadOnlyPart *&part );
+
+ void popupMenu( const TQPoint &global, const KFileItemList &items );
+ void popupMenu( KXMLGUIClient *client, const TQPoint &global, const KFileItemList &items );
+ void popupMenu( const TQPoint &global, const KURL &url,
+ const TQString &mimeType, mode_t mode = (mode_t)-1 );
+ void popupMenu( KXMLGUIClient *client,
+ const TQPoint &global, const KURL &url,
+ const TQString &mimeType, mode_t mode = (mode_t)-1 );
+ void enableAction( const char * name, bool enabled );
+ void userMovedSplitter();
+
+private:
+ TQSplitter *splitter() const;
+ bool addButton(const TQString &desktoppath,int pos=-1);
+ bool createView(ButtonInfo *data);
+ KonqSidebarPlugin *loadModule(TQWidget *par,TQString &desktopName,TQString lib_name,ButtonInfo *bi);
+ void readConfig();
+ void initialCopy();
+ void doLayout();
+ void connectModule(TQObject *mod);
+ void collapseExpandSidebar();
+ bool doEnableActions();
+ bool m_universalMode;
+ bool m_userMovedSplitter;
+private:
+ KParts::ReadOnlyPart *m_partParent;
+ KDockArea *m_area;
+ KDockWidget *m_mainDockWidget;
+
+ KMultiTabBar *m_buttonBar;
+ TQPtrVector<ButtonInfo> m_buttons;
+ TQHBoxLayout *m_layout;
+ TDEPopupMenu *m_buttonPopup;
+ TQPopupMenu *m_menu;
+ TQGuardedPtr<ButtonInfo> m_activeModule;
+ TQGuardedPtr<ButtonInfo> m_currentButton;
+
+ TDEConfig *m_config;
+ TQTimer m_configTimer;
+
+ KURL m_storedUrl;
+ int m_savedWidth;
+ int m_latestViewed;
+
+ bool m_hasStoredUrl;
+ bool m_singleWidgetMode;
+ bool m_immutableSingleWidgetMode;
+ bool m_showTabsLeft;
+ bool m_immutableShowTabsLeft;
+ bool m_hideTabs;
+ bool m_immutableHideTabs;
+ bool m_disableConfig;
+ bool m_showExtraButtons;
+ bool m_immutableShowExtraButtons;
+ bool m_somethingVisible;
+ bool m_noUpdate;
+ bool m_initial;
+
+ TQString m_path;
+ TQString m_relPath;
+ TQString m_currentProfile;
+ TQStringList m_visibleViews; // The views that are actually open
+ TQStringList m_openViews; // The views that should be opened
+ TQStringList m_restrictedViews;
+
+signals:
+ void panelHasBeenExpanded(bool);
+};
+
+#endif