You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
3.9 KiB
164 lines
3.9 KiB
//-----------------------------------------------------------------------------
|
|
//
|
|
// 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__
|