summaryrefslogtreecommitdiffstats
path: root/kcontrol/konqhtml/pluginopts.h
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/konqhtml/pluginopts.h')
-rw-r--r--kcontrol/konqhtml/pluginopts.h163
1 files changed, 163 insertions, 0 deletions
diff --git a/kcontrol/konqhtml/pluginopts.h b/kcontrol/konqhtml/pluginopts.h
new file mode 100644
index 000000000..46142dcf7
--- /dev/null
+++ b/kcontrol/konqhtml/pluginopts.h
@@ -0,0 +1,163 @@
+//-----------------------------------------------------------------------------
+//
+// Plugin Options
+//
+// (c) 2002 Leo Savernik, per-domain settings
+// (c) 2001, Daniel Naber, based on javaopts.h
+// (c) 2000, Stefan Schimanski <1Stein@gmx.de>, Netscape parts
+//
+//-----------------------------------------------------------------------------
+
+#ifndef __PLUGINOPTS_H__
+#define __PLUGINOPTS_H__
+
+#include <qwidget.h>
+
+#include "domainlistview.h"
+#include "policies.h"
+
+class KConfig;
+class QCheckBox;
+
+#include <kcmodule.h>
+#include "nsconfigwidget.h"
+
+class QBoxLayout;
+class QLabel;
+class QProgressDialog;
+class QSlider;
+class KDialogBase;
+class KPluginOptions;
+class KProcIO;
+
+/** policies with plugin-specific constructor
+ */
+class PluginPolicies : public Policies {
+public:
+ /**
+ * constructor
+ * @param config configuration to initialize this instance from
+ * @param group config group to use if this instance contains the global
+ * policies (global == true)
+ * @param global true if this instance contains the global policy settings,
+ * false if this instance contains policies specific for a domain.
+ * @param domain name of the domain this instance is used to configure the
+ * policies for (case insensitive, ignored if global == true)
+ */
+ PluginPolicies(KConfig* config, const QString &group, bool global,
+ const QString &domain = QString::null);
+
+ virtual ~PluginPolicies();
+};
+
+/** Plugin-specific enhancements to the domain list view
+ */
+class PluginDomainListView : public DomainListView {
+ Q_OBJECT
+public:
+ PluginDomainListView(KConfig *config,const QString &group,KPluginOptions *opt,
+ QWidget *parent,const char *name = 0);
+ virtual ~PluginDomainListView();
+
+protected:
+ virtual PluginPolicies *createPolicies();
+ virtual PluginPolicies *copyPolicies(Policies *pol);
+ virtual void setupPolicyDlg(PushButton trigger,PolicyDialog &pDlg,
+ Policies *copy);
+
+private:
+ QString group;
+ KPluginOptions *options;
+};
+
+/**
+ * dialog for embedding a PluginDomainListView widget
+ */
+class PluginDomainDialog : public QWidget {
+ Q_OBJECT
+public:
+
+ PluginDomainDialog(QWidget *parent);
+ virtual ~PluginDomainDialog();
+
+ void setMainWidget(QWidget *widget);
+
+private slots:
+ virtual void slotClose();
+
+private:
+ PluginDomainListView *domainSpecific;
+ QBoxLayout *thisLayout;
+};
+
+class KPluginOptions : public KCModule
+{
+ Q_OBJECT
+
+public:
+ KPluginOptions( KConfig* config, QString group, QWidget* parent = 0, const char* name = 0 );
+ ~KPluginOptions();
+
+ virtual void load();
+ virtual void load( bool useDefaults );
+ virtual void save();
+ virtual void defaults();
+ QString quickHelp() const;
+
+private slots:
+ void slotChanged();
+ void slotTogglePluginsEnabled();
+ void slotShowDomainDlg();
+
+private:
+
+ KConfig* m_pConfig;
+ QString m_groupname;
+
+ QCheckBox *enablePluginsGloballyCB, *enableHTTPOnly, *enableUserDemand;
+
+
+ protected slots:
+ void progress(KProcIO *);
+ void updatePLabel(int);
+ void change() { change( true ); };
+ void change( bool c ) { emit changed(c); m_changed = c; };
+
+ void scan();
+ void scanDone();
+
+ private:
+ NSConfigWidget *m_widget;
+ bool m_changed;
+ QProgressDialog *m_progress;
+ KProcIO* m_nspluginscan;
+ QSlider *priority;
+ QLabel *priorityLabel;
+ PluginPolicies global_policies;
+ PluginDomainListView *domainSpecific;
+ KDialogBase *domainSpecificDlg;
+
+/******************************************************************************/
+ protected:
+ void dirInit();
+ void dirLoad( KConfig *config, bool useDefault = false );
+ void dirSave( KConfig *config );
+
+ protected slots:
+ void dirNew();
+ void dirRemove();
+ void dirUp();
+ void dirDown();
+ void dirEdited(const QString &);
+ void dirSelect( QListBoxItem * );
+
+/******************************************************************************/
+ protected:
+ void pluginInit();
+ void pluginLoad( KConfig *config );
+ void pluginSave( KConfig *config );
+
+ friend class PluginDomainListView;
+};
+
+#endif // __PLUGINOPTS_H__