[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.1/kdepim/akregator/src
From: Allen Winter <winter () kde ! org>
Date: 2008-07-22 18:07:08
Message-ID: 1216750028.444228.13350.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 836655 by winterz:
backport SVN commit 836652 by winterz:
fix "Akregator's settings window is empty when embedded"
Use KCMultiDialog instead of KSettings::Dialog, which I understand
much better.
M +28 -11 akregator_part.cpp
M +2 -0 akregator_part.h
--- branches/KDE/4.1/kdepim/akregator/src/akregator_part.cpp #836654:836655
@@ -57,7 +57,7 @@
#include <kio/netaccess.h>
#include <KParts/GenericFactory>
#include <KParts/Plugin>
-#include <KSettings/Dialog>
+#include <KCMultiDialog>
#include <QFile>
#include <QObject>
@@ -99,6 +99,7 @@
, m_backedUpList(false)
, m_mainWidget(0)
, m_storage(0)
+ , m_dialog(0)
{
setPluginLoadingMode( LoadPluginsIfEnabled );
@@ -255,6 +256,7 @@
kDebug() <<"Part::~Part() enter";
if (!m_shuttingDown)
slotOnShutdown();
+ delete m_dialog;
kDebug() <<"Part::~Part(): leaving";
}
@@ -633,16 +635,31 @@
{
saveSettings();
- QStringList parts;
- parts.append( componentData().componentName() );
- QPointer<KSettings::Dialog> dlg( new KSettings::Dialog( parts, m_mainWidget ) );
- dlg->setModal( true );
- connect( dlg, SIGNAL( configCommitted() ),
- this, SLOT( slotSettingsChanged() ) );
- connect( dlg, SIGNAL( configCommitted() ),
- TrayIcon::getInstance(), SLOT( settingsChanged() ) );
- dlg->exec();
- delete dlg;
+ if ( !m_dialog ) {
+ m_dialog = new KCMultiDialog( m_mainWidget );
+ connect( m_dialog, SIGNAL(configCommitted()),
+ this, SLOT(slotSettingsChanged()) );
+ connect( m_dialog, SIGNAL(configCommitted()),
+ TrayIcon::getInstance(), SLOT(settingsChanged()) );
+
+ QStringList modules;
+
+ modules.append( "akregator_config_general.desktop" );
+ modules.append( "akregator_config_onlinesync.desktop" );
+ modules.append( "akregator_config_archive.desktop" );
+ modules.append( "akregator_config_appearance.desktop" );
+ modules.append( "akregator_config_browser.desktop" );
+ modules.append( "akregator_config_advanced.desktop" );
+
+ // add them all
+ QStringList::iterator mit;
+ for ( mit = modules.begin(); mit != modules.end(); ++mit ) {
+ m_dialog->addModule( *mit );
+ }
+ }
+
+ m_dialog->show();
+ m_dialog->raise();
}
void Part::partActivateEvent(KParts::PartActivateEvent* event)
--- branches/KDE/4.1/kdepim/akregator/src/akregator_part.h #836654:836655
@@ -32,6 +32,7 @@
class KConfigGroup;
class KUrl;
+class KCMultiDialog;
class QDomDocument;
class QTimer;
@@ -196,6 +197,7 @@
MainWidget* m_mainWidget;
Backend::Storage* m_storage;
ActionManagerImpl* m_actionManager;
+ KCMultiDialog* m_dialog;
};
} // namespace Akregator
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic