* Q3ListView -> QTreeWidget

* K3ProcIO -> KProcess
* linking against KDE4_KDE3SUPPORT_LIBS now not necessary anymore
* remove some #ifndef Q_WS_WIN since KProcess will also work on win

svn path=/trunk/KDE/kdebase/apps/; revision=813025
This commit is contained in:
Urs Wolfer 2008-05-26 21:19:55 +00:00
parent b9285d6117
commit fc81b8486c
10 changed files with 136 additions and 178 deletions

View file

@ -1,6 +1,3 @@
########### next target ###############
set(kcm_konqhtml_PART_SRCS
generalopts.cpp
htmlopts.cpp
@ -14,19 +11,17 @@ set(kcm_konqhtml_PART_SRCS
jspolicies.cpp
policies.cpp
domainlistview.cpp
filteropts.cpp )
filteropts.cpp)
kde4_add_ui_files(kcm_konqhtml_PART_SRCS nsconfigwidget.ui advancedTabOptions.ui )
kde4_add_plugin(kcm_konqhtml ${kcm_konqhtml_PART_SRCS})
target_link_libraries(kcm_konqhtml ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KHTML_LIBS})
target_link_libraries(kcm_konqhtml ${KDE4_KHTML_LIBS})
install(TARGETS kcm_konqhtml DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES khtml_general.desktop khtml_behavior.desktop khtml_java_js.desktop khtml_fonts.desktop khtml_filter.desktop DESTINATION ${SERVICES_INSTALL_DIR} )

View file

@ -26,10 +26,10 @@
#include <QtGui/QLayout>
#include <QtGui/QPushButton>
#include <QtGui/QGridLayout>
#include <QtGui/QTreeWidget>
// KDE
#include <kconfig.h>
#include <k3listview.h>
#include <klocale.h>
#include <kmessagebox.h>
@ -46,13 +46,12 @@ DomainListView::DomainListView(KSharedConfig::Ptr config,const QString &title,
thisLayout->setSpacing(KDialog::spacingHint());
thisLayout->setMargin(KDialog::marginHint());
domainSpecificLV = new K3ListView(this);
domainSpecificLV->addColumn(i18n("Host/Domain"));
domainSpecificLV->addColumn(i18n("Policy"), 100);
connect(domainSpecificLV,SIGNAL(doubleClicked(Q3ListViewItem *)), SLOT(changePressed()));
connect(domainSpecificLV,SIGNAL(returnPressed(Q3ListViewItem *)), SLOT(changePressed()));
connect(domainSpecificLV, SIGNAL( executed( Q3ListViewItem *)), SLOT( updateButton()));
connect(domainSpecificLV, SIGNAL(selectionChanged()), SLOT(updateButton()));
domainSpecificLV = new QTreeWidget(this);
domainSpecificLV->setRootIsDecorated(false);
domainSpecificLV->setHeaderLabels(QStringList() << i18n("Host/Domain") << i18n("Policy"));
domainSpecificLV->setColumnWidth(0, 100);
connect(domainSpecificLV,SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), SLOT(changePressed()));
connect(domainSpecificLV, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)), SLOT(updateButton()));
thisLayout->addWidget(domainSpecificLV, 0, 0, 6, 1);
addDomainPB = new QPushButton(i18n("&New..."), this);
@ -101,7 +100,7 @@ DomainListView::~DomainListView() {
void DomainListView::updateButton()
{
Q3ListViewItem *index = domainSpecificLV->currentItem();
QTreeWidgetItem *index = domainSpecificLV->currentItem();
bool enable = ( index != 0 );
changeDomainPB->setEnabled( enable );
deleteDomainPB->setEnabled( enable );
@ -116,9 +115,9 @@ void DomainListView::addPressed()
PolicyDialog pDlg(pol, this);
setupPolicyDlg(AddButton,pDlg,pol);
if( pDlg.exec() ) {
Q3ListViewItem* index = new Q3ListViewItem( domainSpecificLV, pDlg.domain(),
QTreeWidgetItem* index = new QTreeWidgetItem( domainSpecificLV, QStringList() << pDlg.domain() <<
pDlg.featureEnabledPolicyText() );
pol->setDomain(pDlg.domain());
pol->setDomain(pDlg.domain());
domainPolicies.insert(index, pol);
domainSpecificLV->setCurrentItem( index );
emit changed(true);
@ -130,7 +129,7 @@ void DomainListView::addPressed()
void DomainListView::changePressed()
{
Q3ListViewItem *index = domainSpecificLV->currentItem();
QTreeWidgetItem *index = domainSpecificLV->currentItem();
if ( index == 0 )
{
KMessageBox::information( 0, i18n("You must first select a policy to be changed." ) );
@ -149,7 +148,7 @@ void DomainListView::changePressed()
{
pol_copy->setDomain(pDlg.domain());
domainPolicies[index] = pol_copy;
pol_copy = pol;
pol_copy = pol;
index->setText(0, pDlg.domain() );
index->setText(1, pDlg.featureEnabledPolicyText());
emit changed(true);
@ -159,7 +158,7 @@ void DomainListView::changePressed()
void DomainListView::deletePressed()
{
Q3ListViewItem *index = domainSpecificLV->currentItem();
QTreeWidgetItem *index = domainSpecificLV->currentItem();
if ( index == 0 )
{
KMessageBox::information( 0, i18n("You must first select a policy to delete." ) );
@ -205,8 +204,8 @@ void DomainListView::initialize(const QStringList &domainList)
policy = i18n("Accept");
else
policy = i18n("Reject");
Q3ListViewItem *index =
new Q3ListViewItem( domainSpecificLV, domain, policy );
QTreeWidgetItem *index =
new QTreeWidgetItem( domainSpecificLV, QStringList() << domain << policy );
domainPolicies[index] = pol;
}
@ -216,7 +215,7 @@ void DomainListView::save(const QString &group, const QString &domainListKey) {
QStringList domainList;
DomainPolicyMap::Iterator it = domainPolicies.begin();
for (; it != domainPolicies.end(); ++it) {
Q3ListViewItem *current = it.key();
QTreeWidgetItem *current = it.key();
Policies *pol = it.value();
pol->save();
domainList.append(current->text(0));

View file

@ -19,8 +19,8 @@
*/
#ifndef __DOMAINLISTVIEW_H__
#define __DOMAINLISTVIEW_H__
#ifndef DOMAINLISTVIEW_H
#define DOMAINLISTVIEW_H
#include <QtGui/QGroupBox>
#include <QtCore/QMap>
@ -28,11 +28,11 @@
#include <kconfig.h>
#include <ksharedconfig.h>
class Q3ListViewItem;
class QTreeWidgetItem;
class QPushButton;
class QStringList;
class K3ListView;
class QTreeWidget;
class Policies;
class PolicyDialog;
@ -81,7 +81,7 @@ public:
/**
* returns the list view displaying the domains
*/
K3ListView *listView() const { return domainSpecificLV; }
QTreeWidget *listView() const { return domainSpecificLV; }
/**
* returns the add push-button.
@ -194,7 +194,7 @@ protected:
KSharedConfig::Ptr config;
K3ListView *domainSpecificLV;
QTreeWidget *domainSpecificLV;
QPushButton* addDomainPB;
QPushButton* changeDomainPB;
@ -202,9 +202,9 @@ protected:
QPushButton* importDomainPB;
QPushButton* exportDomainPB;
typedef QMap<Q3ListViewItem*, Policies *> DomainPolicyMap;
typedef QMap<QTreeWidgetItem*, Policies *> DomainPolicyMap;
DomainPolicyMap domainPolicies;
};
#endif // __DOMAINLISTVIEW_H__
#endif // DOMAINLISTVIEW_H

View file

@ -26,10 +26,10 @@
#include <QtGui/QLayout>
#include <QtGui/QGroupBox>
#include <QtGui/QLabel>
#include <QtGui/QTreeWidget>
// KDE
#include <config-apps.h>
#include <k3listview.h>
#include <kurlrequester.h>
#include <kdebug.h>
#include <klineedit.h>
@ -332,7 +332,7 @@ void JavaDomainListView::updateDomainListLegacy(const QStringList &domainConfig)
KHTMLSettings::KJavaScriptAdvice javaScriptAdvice;
KHTMLSettings::splitDomainAdvice(*it, domain, javaAdvice, javaScriptAdvice);
if (javaAdvice != KHTMLSettings::KJavaScriptDunno) {
Q3ListViewItem* index = new Q3ListViewItem( domainSpecificLV, domain,
QTreeWidgetItem* index = new QTreeWidgetItem( domainSpecificLV, QStringList() << domain <<
i18n(KHTMLSettings::adviceToStr(javaAdvice)) );
pol.setDomain(domain);
pol.setFeatureEnabled(javaAdvice != KHTMLSettings::KJavaScriptReject);

View file

@ -8,12 +8,10 @@
*
*/
#ifndef __JAVAOPTS_H__
#define __JAVAOPTS_H__
#ifndef JAVAOPTS_H
#define JAVAOPTS_H
#define KDE3_SUPPORT
#include <kcmodule.h>
#undef KDE3_SUPPORT
#include "domainlistview.h"
#include "policies.h"
@ -113,5 +111,5 @@ private:
friend class JavaDomainListView;
};
#endif // __HTML_OPTIONS_H__
#endif // HTML_OPTIONS_H

View file

@ -24,10 +24,10 @@
// Qt
#include <QtGui/QLayout>
#include <QtGui/QTreeWidget>
// KDE
#include <kconfig.h>
#include <k3listview.h>
#include <kdebug.h>
#include <kurlrequester.h>
#include <klocale.h>
@ -200,8 +200,8 @@ void JSDomainListView::updateDomainListLegacy(const QStringList &domainConfig)
KHTMLSettings::KJavaScriptAdvice javaScriptAdvice;
KHTMLSettings::splitDomainAdvice(*it, domain, javaAdvice, javaScriptAdvice);
if (javaScriptAdvice != KHTMLSettings::KJavaScriptDunno) {
Q3ListViewItem *index =
new Q3ListViewItem( domainSpecificLV, domain,
QTreeWidgetItem *index =
new QTreeWidgetItem( domainSpecificLV, QStringList() << domain <<
i18n(KHTMLSettings::adviceToStr(javaScriptAdvice)) );
pol.setDomain(domain);

View file

@ -7,12 +7,10 @@
// Port to KControl
// (c) Torben Weis 1998
#ifndef __JSOPTS_H__
#define __JSOPTS_H__
#ifndef JSOPTS_H
#define JSOPTS_H
#define KDE3_SUPPORT
#include <kcmodule.h>
#undef KDE3_SUPPORT
#include "domainlistview.h"
#include "jspolicies.h"
@ -78,5 +76,5 @@ private:
friend class JSDomainListView;
};
#endif // __JSOPTS_H__
#endif // JSOPTS_H

View file

@ -26,60 +26,6 @@
<string>Folders</string>
</property>
<layout class="QGridLayout" name="gridLayout" >
<item row="0" column="0" >
<widget class="KUrlRequester" name="dirEdit" >
<property name="enabled" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QPushButton" name="dirNew" >
<property name="text" >
<string>&amp;New</string>
</property>
</widget>
</item>
<item rowspan="5" row="1" column="0" >
<widget class="KListWidget" name="dirList" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QPushButton" name="dirRemove" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>&amp;Remove</string>
</property>
</widget>
</item>
<item row="2" column="1" >
<widget class="QPushButton" name="dirUp" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>&amp;Up</string>
</property>
</widget>
</item>
<item row="3" column="1" >
<widget class="QPushButton" name="dirDown" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>Do&amp;wn</string>
</property>
</widget>
</item>
<item row="4" column="1" >
<spacer>
<property name="orientation" >
@ -96,6 +42,60 @@
</property>
</spacer>
</item>
<item row="1" column="1" >
<widget class="QPushButton" name="dirRemove" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>&amp;Remove</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QPushButton" name="dirNew" >
<property name="text" >
<string>&amp;New</string>
</property>
</widget>
</item>
<item row="0" column="0" >
<widget class="KUrlRequester" name="dirEdit" >
<property name="enabled" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="1" >
<widget class="QPushButton" name="dirDown" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>Do&amp;wn</string>
</property>
</widget>
</item>
<item row="2" column="1" >
<widget class="QPushButton" name="dirUp" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>&amp;Up</string>
</property>
</widget>
</item>
<item rowspan="5" row="1" column="0" >
<widget class="KListWidget" name="dirList" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="5" column="1" >
<widget class="QPushButton" name="scanButton" >
<property name="whatsThis" >
@ -114,7 +114,6 @@
<zorder>dirUp</zorder>
<zorder>dirList</zorder>
<zorder>scanButton</zorder>
<zorder>scanButton</zorder>
</widget>
</item>
<item>
@ -124,7 +123,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout" >
<item>
<widget class="Q3ListView" name="pluginList" >
<widget class="QTreeWidget" name="pluginList" >
<property name="whatsThis" >
<string>Here you can see a list of the Netscape plugins KDE has found.</string>
</property>
@ -135,23 +134,11 @@
<property name="text" >
<string>Information</string>
</property>
<property name="clickable" >
<bool>true</bool>
</property>
<property name="resizable" >
<bool>true</bool>
</property>
</column>
<column>
<property name="text" >
<string>Value</string>
</property>
<property name="clickable" >
<bool>true</bool>
</property>
<property name="resizable" >
<bool>true</bool>
</property>
</column>
</widget>
</item>
@ -164,11 +151,6 @@
<layoutfunction spacing="KDialog::spacingHint" margin="KDialog::marginHint" />
<pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
<customwidgets>
<customwidget>
<class>Q3ListView</class>
<extends>Q3Frame</extends>
<header>q3listview.h</header>
</customwidget>
<customwidget>
<class>KListWidget</class>
<extends>QListWidget</extends>

View file

@ -24,12 +24,10 @@
#include <QtGui/QLabel>
#include <QtGui/QLayout>
#include <QtGui/QSlider>
#include <QtGui/QTreeWidget>
// KDE
#include <k3listview.h>
#ifndef Q_WS_WIN
#include <k3procio.h>
#endif
#include <kprocess.h>
#include <kapplication.h>
#include <kdebug.h>
#include <kfiledialog.h>
@ -177,10 +175,8 @@ KPluginOptions::KPluginOptions( QWidget *parent, const QVariantList& )
pluginsSettingsContainer->setObjectName( "configwidget" );
m_widget->dirEdit->setMode(KFile::ExistingOnly | KFile::LocalOnly | KFile::Directory);
#ifndef Q_WS_WIN
// setup widgets
connect( m_widget->scanButton, SIGNAL(clicked()), SLOT(scan()) );
#endif
m_changed = false;
@ -318,7 +314,6 @@ void KPluginOptions::slotShowDomainDlg() {
void KPluginOptions::scan()
{
#ifndef Q_WS_WIN
m_widget->scanButton->setEnabled(false);
if ( m_changed ) {
int ret = KMessageBox::warningYesNoCancel( this,
@ -333,11 +328,11 @@ void KPluginOptions::scan()
save();
}
K3ProcIO* nspluginscan = new K3ProcIO;
nspluginscan = new KProcess(this);
nspluginscan->setOutputChannelMode(KProcess::SeparateChannels);
QString scanExe = KGlobal::dirs()->findExe("nspluginscan");
if (scanExe.isEmpty()) {
kDebug() << "can't find nspluginviewer";
delete nspluginscan;
KMessageBox::sorry ( this,
i18n("The nspluginscan executable cannot be found. "
@ -353,41 +348,39 @@ void KPluginOptions::scan()
// start nspluginscan
*nspluginscan << scanExe << "--verbose";
kDebug() << "Running nspluginscan";
connect(nspluginscan, SIGNAL(readReady(K3ProcIO*)),
this, SLOT(progress(K3ProcIO*)));
connect(nspluginscan, SIGNAL(processExited(K3Process *)),
connect(nspluginscan, SIGNAL(readyReadStandardOutput()),
this, SLOT(progress()));
connect(nspluginscan, SIGNAL(finished(int, QProcess::ExitStatus)),
this, SLOT(scanDone()));
connect(m_progress, SIGNAL(cancelClicked()), this, SLOT(scanDone()));
if (nspluginscan->start())
kapp->enter_loop();
nspluginscan->start();
}
delete nspluginscan;
void KPluginOptions::progress()
{
// we do not know if the output array ends in the middle of an utf-8 sequence
m_output += nspluginscan->readAllStandardOutput();
QString line;
int pos;
while ((pos = m_output.indexOf('\n')) != -1) {
line = QString::fromLocal8Bit(m_output, pos + 1);
m_output.remove(0, pos + 1);
}
m_progress->progressBar()->setValue(line.trimmed().toInt());
}
void KPluginOptions::scanDone()
{
// update dialog
if (m_progress) {
m_progress->progressBar()->setValue(100);
load();
delete m_progress;
m_progress->deleteLater();
m_progress = 0;
}
#endif
m_widget->scanButton->setEnabled(true);
}
#ifndef Q_WS_WIN
void KPluginOptions::progress(K3ProcIO *proc)
{
QString line;
while(proc->readln(line) > 0)
;
m_progress->progressBar()->setValue(line.trimmed().toInt());
}
#endif
void KPluginOptions::scanDone()
{
kapp->exit_loop();
}
/***********************************************************************************/
@ -551,6 +544,8 @@ void KPluginOptions::pluginInit()
void KPluginOptions::pluginLoad( KSharedConfig::Ptr /*config*/ )
{
m_widget->pluginList->setRootIsDecorated(false);
m_widget->pluginList->setColumnWidth( 0, 200 );
kDebug() << "-> KPluginOptions::fillPluginList";
m_widget->pluginList->clear();
QRegExp version(";version=[^:]*:");
@ -565,16 +560,15 @@ void KPluginOptions::pluginLoad( KSharedConfig::Ptr /*config*/ )
QTextStream cache(&cachef);
// root object
Q3ListViewItem *root = new Q3ListViewItem( m_widget->pluginList, i18n("Netscape Plugins") );
root->setOpen( true );
root->setSelectable( false );
root->setExpandable( true );
root->setPixmap(0, SmallIcon("netscape"));
QTreeWidgetItem *root = new QTreeWidgetItem( m_widget->pluginList, QStringList() << i18n("Netscape Plugins") );
root->setFlags( Qt::ItemIsEnabled );
root->setExpanded( true );
root->setIcon(0, KIcon("netscape"));
// read in cache
QString line, plugin;
Q3ListViewItem *next = 0;
Q3ListViewItem *lastMIME = 0;
QTreeWidgetItem *next = 0;
QTreeWidgetItem *lastMIME = 0;
while ( !cache.atEnd() ) {
line = cache.readLine();
@ -588,10 +582,8 @@ void KPluginOptions::pluginLoad( KSharedConfig::Ptr /*config*/ )
//kDebug() << "plugin=" << plugin;
// add plugin root item
next = new Q3ListViewItem( root, i18n("Plugin"), plugin );
next->setOpen( false );
next->setSelectable( false );
next->setExpandable( true );
next = new QTreeWidgetItem( root, QStringList() << i18n("Plugin") << plugin );
next->setFlags( Qt::ItemIsEnabled );
lastMIME = 0;
@ -609,20 +601,14 @@ void KPluginOptions::pluginLoad( KSharedConfig::Ptr /*config*/ )
if (!mime.isEmpty() && next) {
//kDebug() << "mime=" << mime << " desc=" << name << " suffix=" << suffixes;
lastMIME = new Q3ListViewItem( next, lastMIME, i18n("MIME type"), mime );
lastMIME->setOpen( false );
lastMIME->setSelectable( false );
lastMIME->setExpandable( true );
lastMIME = new QTreeWidgetItem( next, QStringList() << i18n("MIME type") << mime );
lastMIME->setFlags( Qt::ItemIsEnabled );
Q3ListViewItem *last = new Q3ListViewItem( lastMIME, 0, i18n("Description"), name );
last->setOpen( false );
last->setSelectable( false );
last->setExpandable( false );
QTreeWidgetItem *last = new QTreeWidgetItem( lastMIME, QStringList() << i18n("Description") << name );
last->setFlags( Qt::ItemIsEnabled );
last = new Q3ListViewItem( lastMIME, last, i18n("Suffixes"), suffixes );
last->setOpen( false );
last->setSelectable( false );
last->setExpandable( false );
last = new QTreeWidgetItem( lastMIME, QStringList() << i18n("Suffixes") << suffixes );
last->setFlags( Qt::ItemIsEnabled );
}
}

View file

@ -28,7 +28,7 @@ class KProgressDialog;
class QSlider;
class KDialog;
class KPluginOptions;
class K3ProcIO;
class KProcess;
namespace Ui {
class NSConfigWidget;
}
@ -114,14 +114,14 @@ private:
KSharedConfig::Ptr m_pConfig;
QString m_groupname;
KProcess *nspluginscan;
QByteArray m_output;
QCheckBox *enablePluginsGloballyCB, *enableHTTPOnly, *enableUserDemand;
protected Q_SLOTS:
#ifndef Q_WS_WIN
void progress(K3ProcIO *);
#endif
void progress();
void updatePLabel(int);
void change() { change( true ); }
void change( bool c ) { emit changed(c); m_changed = c; }