diff --git a/src/konqextensionmanager.cpp b/src/konqextensionmanager.cpp index e06f53673..b802786e1 100644 --- a/src/konqextensionmanager.cpp +++ b/src/konqextensionmanager.cpp @@ -1,154 +1,158 @@ /* Extension Manager for Konqueror Copyright (c) 2003 by Martijn Klingens Copyright (c) 2004 by Arend van Beelen jr. ************************************************************************* * * * 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. * * * ************************************************************************* */ // Own #include "konqextensionmanager.h" // Qt +#include +#include #include +#include // KDE #include #include #include "konqdebug.h" #include #include #include #include #include #include #include #include +#include // Local #include "konqview.h" #include "konqmainwindow.h" class KonqExtensionManagerPrivate { public: KPluginSelector *pluginSelector; KonqMainWindow *mainWindow; KParts::ReadOnlyPart *activePart; - bool isChanged; + QDialogButtonBox *buttonBox; + bool isChanged = false; }; KonqExtensionManager::KonqExtensionManager(QWidget *parent, KonqMainWindow *mainWindow, KParts::ReadOnlyPart *activePart) - : KDialog(parent) + : QDialog(parent) { - setCaption(i18nc("@title:window", "Configure")); - setButtons(Default | Cancel | Apply | Ok | User1); - setButtonGuiItem(User1, KStandardGuiItem::reset()); setObjectName(QStringLiteral("extensionmanager")); + setWindowTitle(i18nc("@title:window", "Configure")); + + QVBoxLayout *mainLayout = new QVBoxLayout(this); d = new KonqExtensionManagerPrivate; - showButton(User1, false); - setChanged(false); - setInitialSize(QSize(640, 480)); // FIXME: hard-coded values ? + resize(QSize(640, 480)); // FIXME: hard-coded values ? d->pluginSelector = new KPluginSelector(this); - setMainWidget(d->pluginSelector); + mainLayout->addWidget(d->pluginSelector); connect(d->pluginSelector, SIGNAL(changed(bool)), this, SLOT(setChanged(bool))); connect(d->pluginSelector, SIGNAL(configCommitted(QByteArray)), this, SLOT(reparseConfiguration(QByteArray))); d->mainWindow = mainWindow; d->activePart = activePart; d->pluginSelector->addPlugins(QStringLiteral("konqueror"), i18n("Extensions"), QStringLiteral("Extensions"), KSharedConfig::openConfig()); if (activePart) { KAboutData componentData = activePart->componentData(); d->pluginSelector->addPlugins(componentData.componentName(), i18n("Extensions"), QStringLiteral("Tools")); d->pluginSelector->addPlugins(componentData.componentName(), i18n("Extensions"), QStringLiteral("Statusbar")); } - connect(this, SIGNAL(okClicked()), SLOT(slotOk())); - connect(this, SIGNAL(applyClicked()), SLOT(slotApply())); - connect(this, SIGNAL(defaultClicked()), SLOT(slotDefault())); - connect(this, SIGNAL(user1Clicked()), SLOT(slotUser1())); + d->buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel|QDialogButtonBox::RestoreDefaults|QDialogButtonBox::Apply); + QPushButton *okButton = d->buttonBox->button(QDialogButtonBox::Ok); + okButton->setDefault(true); + okButton->setShortcut(Qt::CTRL | Qt::Key_Return); + connect(d->buttonBox, SIGNAL(accepted()), this, SLOT(accept())); + connect(d->buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + mainLayout->addWidget(d->buttonBox); + connect(okButton, SIGNAL(clicked()), SLOT(slotOk())); + connect(d->buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), SLOT(slotApply())); + connect(d->buttonBox->button(QDialogButtonBox::RestoreDefaults), SIGNAL(clicked()), SLOT(slotDefault())); + + d->pluginSelector->load(); } KonqExtensionManager::~KonqExtensionManager() { delete d; } void KonqExtensionManager::reparseConfiguration(const QByteArray &conf) { KSettings::Dispatcher::reparseConfiguration(conf); } void KonqExtensionManager::setChanged(bool c) { d->isChanged = c; - enableButton(Apply, c); + d->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(c); } void KonqExtensionManager::apply() { if (d->isChanged) { d->pluginSelector->save(); setChanged(false); if (d->mainWindow) { KParts::Plugin::loadPlugins(d->mainWindow, d->mainWindow, QStringLiteral("konqueror")); QList plugins = KParts::Plugin::pluginObjects(d->mainWindow); for (int i = 0; i < plugins.size(); ++i) { d->mainWindow->factory()->addClient(plugins.at(i)); } } if (d->activePart) { KParts::Plugin::loadPlugins(d->activePart, d->activePart, d->activePart->componentName()); QList plugins = KParts::Plugin::pluginObjects(d->activePart); for (int i = 0; i < plugins.size(); ++i) { d->activePart->factory()->addClient(plugins.at(i)); } } } } void KonqExtensionManager::slotOk() { apply(); accept(); } void KonqExtensionManager::slotApply() { apply(); } void KonqExtensionManager::slotDefault() { d->pluginSelector->defaults(); } -void KonqExtensionManager::slotUser1() -{ - d->pluginSelector->load(); - setChanged(false); -} - void KonqExtensionManager::showEvent(QShowEvent *event) { - d->pluginSelector->load(); - KDialog::showEvent(event); + QDialog::showEvent(event); } diff --git a/src/konqextensionmanager.h b/src/konqextensionmanager.h index 14666781a..505581ef7 100644 --- a/src/konqextensionmanager.h +++ b/src/konqextensionmanager.h @@ -1,63 +1,62 @@ /* konq_extensionmanager.h - Extension Manager for Konqueror Copyright (c) 2003 by Martijn Klingens Copyright (c) 2004 by Arend van Beelen jr. ************************************************************************* * * * 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 KONQEXTENSIONMANAGER_H #define KONQEXTENSIONMANAGER_H -#include +#include class KonqExtensionManagerPrivate; class KonqMainWindow; namespace KParts { class ReadOnlyPart; } /** * Extension Manager for Konqueror. See KPluginSelector in kdelibs for * documentation. * * @author Martijn Klingens * @author Arend van Beelen jr. */ class KonqExtensionManager - : public KDialog + : public QDialog { Q_OBJECT public: KonqExtensionManager(QWidget *parent, KonqMainWindow *mainWindow, KParts::ReadOnlyPart *activePart); ~KonqExtensionManager() override; void apply(); public Q_SLOTS: void setChanged(bool c); void reparseConfiguration(const QByteArray &); void slotOk(); void slotApply(); void slotDefault(); - void slotUser1(); protected: void showEvent(QShowEvent *event) override; private: KonqExtensionManagerPrivate *d; }; #endif // KONQEXTENSIONMANAGER_H