summaryrefslogtreecommitdiffabout
path: root/kaddressbook/extensionmanager.cpp
Unidiff
Diffstat (limited to 'kaddressbook/extensionmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/extensionmanager.cpp54
1 files changed, 28 insertions, 26 deletions
diff --git a/kaddressbook/extensionmanager.cpp b/kaddressbook/extensionmanager.cpp
index 9114cdc..98561dc 100644
--- a/kaddressbook/extensionmanager.cpp
+++ b/kaddressbook/extensionmanager.cpp
@@ -22,19 +22,19 @@
22*/ 22*/
23#include <qlayout.h> 23#include <qlayout.h>
24#include <qapplication.h> 24#include <qapplication.h>
25#include <kactionclasses.h> 25#include <kactionclasses.h>
26#include <kconfig.h> 26#include <kconfig.h>
27#include <kdebug.h> 27#include <kdebug.h>
28#include <klocale.h> 28#include <klocale.h>
29 29
30#ifndef KAB_EMBEDDED 30#ifndef KAB_EMBEDDED
31#include <ktrader.h> 31#include <ktrader.h>
32#else //KAB_EMBEDDED 32#else //KAB_EMBEDDED
33#include <features/mergewidget.h> 33#include <features/mergewidget.h>
34#include <features/distributionlistwidget.h> 34#include <features/distributionlistwidget.h>
35#endif //KAB_EMBEDDED 35#endif //KAB_EMBEDDED
36 36
37#include "addresseeeditorwidget.h" 37#include "addresseeeditorwidget.h"
38#include "kabcore.h" 38#include "kabcore.h"
39#include "kabprefs.h" 39#include "kabprefs.h"
40 40
@@ -49,17 +49,17 @@ ExtensionManager::ExtensionManager( KABCore *core, QWidget *parent,
49 QWidget *settingsmenu = (QWidget*)mCore->getSettingsMenu(); 49 QWidget *settingsmenu = (QWidget*)mCore->getSettingsMenu();
50#endif //KAB_EMBEDDED 50#endif //KAB_EMBEDDED
51 51
52 mActionExtensions = new KSelectAction( i18n( "Show Extension Bar" ), 0, 52 mActionExtensions = new KSelectAction( i18n( "Show Extension Bar" ), 0,
53 mCore->actionCollection(), 53 mCore->actionCollection(),
54 "options_show_extensions" ); 54 "options_show_extensions" );
55 55
56 mActionExtensions->plug( settingsmenu ); 56 mActionExtensions->plug( settingsmenu );
57 57
58 connect( mActionExtensions, SIGNAL( activated( int ) ), 58 connect( mActionExtensions, SIGNAL( activated( int ) ),
59 SLOT( setActiveExtension( int ) ) ); 59 SLOT( setActiveExtension( int ) ) );
60 mWidgetBox = new QWidget( viewport() ); 60 mWidgetBox = new QWidget( viewport() );
61 addChild( mWidgetBox ); 61 addChild( mWidgetBox );
62 setResizePolicy(AutoOneFit); 62 setResizePolicy(AutoOneFit);
63 createExtensionWidgets(); 63 createExtensionWidgets();
64 hide(); 64 hide();
65} 65}
@@ -69,34 +69,34 @@ ExtensionManager::~ExtensionManager()
69} 69}
70 70
71void ExtensionManager::restoreSettings() 71void ExtensionManager::restoreSettings()
72{ 72{
73 mActionExtensions->setCurrentItem( KABPrefs::instance()->mCurrentExtension ); 73 mActionExtensions->setCurrentItem( KABPrefs::instance()->mCurrentExtension );
74 int i = 1; 74 int i = 1;
75 mCurrentExtensionWidget = mExtensionWidgetList.at( i-1 ); 75 mCurrentExtensionWidget = mExtensionWidgetList.at( i-1 );
76 while ( mCurrentExtensionWidget ) { 76 while ( mCurrentExtensionWidget ) {
77 if( i != KABPrefs::instance()->mCurrentExtension ) 77 if( i != KABPrefs::instance()->mCurrentExtension )
78 mCurrentExtensionWidget->hide(); 78 mCurrentExtensionWidget->hide();
79 mCurrentExtensionWidget = mExtensionWidgetList.at( ++i-1 ); 79 mCurrentExtensionWidget = mExtensionWidgetList.at( ++i-1 );
80 80
81 } 81 }
82 setActiveExtension( mActionExtensions->currentItem() ); 82 setActiveExtension( mActionExtensions->currentItem() );
83} 83}
84 84
85void ExtensionManager::saveSettings() 85void ExtensionManager::saveSettings()
86{ 86{
87 KABPrefs::instance()->mCurrentExtension = mActionExtensions->currentItem(); 87 KABPrefs::instance()->mCurrentExtension = mActionExtensions->currentItem();
88} 88}
89 89
90void ExtensionManager::reconfigure() 90void ExtensionManager::reconfigure()
91{ 91{
92 saveSettings(); 92 saveSettings();
93 createExtensionWidgets(); 93 createExtensionWidgets();
94 restoreSettings(); 94 restoreSettings();
95} 95}
96 96
97bool ExtensionManager::isQuickEditVisible() const 97bool ExtensionManager::isQuickEditVisible() const
98{ 98{
99 return ( mCurrentExtensionWidget && 99 return ( mCurrentExtensionWidget &&
100 mCurrentExtensionWidget->identifier() == "contact_editor" ); 100 mCurrentExtensionWidget->identifier() == "contact_editor" );
101} 101}
102 102
@@ -107,43 +107,45 @@ void ExtensionManager::setSelectionChanged()
107} 107}
108 108
109void ExtensionManager::setActiveExtension( int id ) 109void ExtensionManager::setActiveExtension( int id )
110{ 110{
111 //qDebug("+++++++++++++++++++ExtensionManager::setActiveExtension %d ", id); 111 //qDebug("+++++++++++++++++++ExtensionManager::setActiveExtension %d ", id);
112 if ( id == 0 ) { 112 if ( id == 0 ) {
113 hide(); 113 hide();
114 mCurrentExtensionWidget = 0; 114 mCurrentExtensionWidget = 0;
115#ifndef DESKTOP_VERSION 115#ifndef DESKTOP_VERSION
116//US our screen is so small, that we better hide the detailscreen, just in case. 116//US our screen is so small, that we better hide the detailscreen, just in case.
117 mCore->setDetailsToState( ); 117//US mCore->setDetailsToState( );
118#endif //KAB_EMBEDDED 118#endif //KAB_EMBEDDED
119 } else if ( id > 0 ) { 119 } else if ( id > 0 ) {
120 if ( mCurrentExtensionWidget ) 120 if ( mCurrentExtensionWidget )
121 mCurrentExtensionWidget->hide(); 121 mCurrentExtensionWidget->hide();
122 122
123 mCurrentExtensionWidget = mExtensionWidgetList.at( id - 1 ); 123 mCurrentExtensionWidget = mExtensionWidgetList.at( id - 1 );
124 124
125 if ( mCurrentExtensionWidget ) { 125 if ( mCurrentExtensionWidget ) {
126#ifndef DESKTOP_VERSION 126#ifndef DESKTOP_VERSION
127//US our screen is so small, that we better hide the detailscreen, just in case. 127//US our screen is so small, that we better hide the detailscreen, just in case.
128 mCore->setDetailsVisible( false ); 128//US mCore->setDetailsVisible( false );
129#endif //KAB_EMBEDDED 129#endif //KAB_EMBEDDED
130 show(); 130 show();
131 mWidgetBox->show(); 131 mWidgetBox->show();
132 mCurrentExtensionWidget->show(); 132 mCurrentExtensionWidget->show();
133 } else { 133 } else {
134 hide(); 134 hide();
135 mCurrentExtensionWidget = 0; 135 mCurrentExtensionWidget = 0;
136#ifndef DESKTOP_VERSION 136#ifndef DESKTOP_VERSION
137//US our screen is so small, that we better hide the detailscreen, just in case. 137//US our screen is so small, that we better hide the detailscreen, just in case.
138 mCore->setDetailsToState( ); 138//US mCore->setDetailsToState( );
139#endif //KAB_EMBEDDED 139#endif //KAB_EMBEDDED
140 } 140 }
141 } 141 }
142
143 emit changedActiveExtension( id );
142} 144}
143 145
144void ExtensionManager::createExtensionWidgets() 146void ExtensionManager::createExtensionWidgets()
145{ 147{
146 // clear extension widget list 148 // clear extension widget list
147 mExtensionWidgetList.setAutoDelete( true ); 149 mExtensionWidgetList.setAutoDelete( true );
148 QPtrListIterator<ExtensionWidget> wdgIt( mExtensionWidgetList ); 150 QPtrListIterator<ExtensionWidget> wdgIt( mExtensionWidgetList );
149 ExtensionWidget *wdg = 0; 151 ExtensionWidget *wdg = 0;
@@ -164,17 +166,17 @@ void ExtensionManager::createExtensionWidgets()
164 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ), 166 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ),
165 SIGNAL( modified( const KABC::Addressee::List& ) ) ); 167 SIGNAL( modified( const KABC::Addressee::List& ) ) );
166 mExtensionWidgetList.append( wdg ); 168 mExtensionWidgetList.append( wdg );
167 extensionNames.append( wdg->title() ); 169 extensionNames.append( wdg->title() );
168 170
169 // load the other extensions 171 // load the other extensions
170 QStringList activeExtensions = KABPrefs::instance()->mActiveExtensions; 172 QStringList activeExtensions = KABPrefs::instance()->mActiveExtensions;
171 173
172#ifndef KAB_EMBEDDED 174#ifndef KAB_EMBEDDED
173 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/Extension" ); 175 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/Extension" );
174 KTrader::OfferList::ConstIterator it; 176 KTrader::OfferList::ConstIterator it;
175 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 177 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
176 if ( !(*it)->hasServiceType( "KAddressBook/Extension" ) ) 178 if ( !(*it)->hasServiceType( "KAddressBook/Extension" ) )
177 continue; 179 continue;
178 180
179 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); 181 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
180 if ( !factory ) { 182 if ( !factory ) {
@@ -211,36 +213,36 @@ void ExtensionManager::createExtensionWidgets()
211 hbl->addWidget( wdg ); 213 hbl->addWidget( wdg );
212 //wdg->hide(); 214 //wdg->hide();
213 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ), 215 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ),
214 SIGNAL( modified( const KABC::Addressee::List& ) ) ); 216 SIGNAL( modified( const KABC::Addressee::List& ) ) );
215 mExtensionWidgetList.append( wdg ); 217 mExtensionWidgetList.append( wdg );
216 extensionNames.append( wdg->title() ); 218 extensionNames.append( wdg->title() );
217 } 219 }
218 } 220 }
219 221
220 //load DistributionListfactory/extension 222 //load DistributionListfactory/extension
221 extensionFactory = new DistributionListFactory(); 223 extensionFactory = new DistributionListFactory();
222 if (activeExtensions.contains( extensionFactory->identifier() ) ) 224 if (activeExtensions.contains( extensionFactory->identifier() ) )
223 { 225 {
224 wdg = extensionFactory->extension( mCore, mWidgetBox ); 226 wdg = extensionFactory->extension( mCore, mWidgetBox );
225 if ( wdg ) { 227 if ( wdg ) {
226 hbl->addWidget( wdg ); 228 hbl->addWidget( wdg );
227 //wdg->hide(); 229 //wdg->hide();
228 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ), 230 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ),
229 SIGNAL( modified( const KABC::Addressee::List& ) ) ); 231 SIGNAL( modified( const KABC::Addressee::List& ) ) );
230 mExtensionWidgetList.append( wdg ); 232 mExtensionWidgetList.append( wdg );
231 extensionNames.append( wdg->title() ); 233 extensionNames.append( wdg->title() );
232 } 234 }
233 } 235 }
234 236
235 hbl->addStretch(); 237 hbl->addStretch();
236 238
237#endif //KAB_EMBEDDED 239#endif //KAB_EMBEDDED
238 240
239 241
240 mActionExtensions->setItems( extensionNames ); 242 mActionExtensions->setItems( extensionNames );
241 mCurrentExtensionWidget = 0; 243 mCurrentExtensionWidget = 0;
242} 244}
243 245
244#ifndef KAB_EMBEDDED 246#ifndef KAB_EMBEDDED
245#include "extensionmanager.moc" 247#include "extensionmanager.moc"
246#endif //KAB_EMBEDDED 248#endif //KAB_EMBEDDED