mainwindow.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KONTACT_MAINWINDOW_H
00024 #define KONTACT_MAINWINDOW_H
00025
00026 #include <qwidgetstack.h>
00027 #include <qptrlist.h>
00028
00029 #include <kparts/mainwindow.h>
00030 #include <kparts/part.h>
00031 #include <kparts/partmanager.h>
00032 #include <kdcopservicestarter.h>
00033
00034 #include "core.h"
00035
00036 class KAction;
00037 class KPluginInfo;
00038 class KStatusBarLabel;
00039 class QHBox;
00040 class QSplitter;
00041 class QVBox;
00042
00043 namespace KPIM
00044 {
00045 class StatusbarProgressWidget;
00046 }
00047
00048 namespace KParts
00049 {
00050 class InfoExtension;
00051 }
00052
00053 namespace Kontact
00054 {
00055
00056 struct InfoExtData
00057 {
00058 QString text;
00059 QPixmap pixmap;
00060 };
00061
00062 class Plugin;
00063 class SidePaneBase;
00064 class AboutDialog;
00065 class Splash;
00066
00067 typedef QValueList<Kontact::Plugin*> PluginList;
00068
00069 class MainWindow : public Kontact::Core, public KDCOPServiceStarter
00070 {
00071 Q_OBJECT
00072
00073 public:
00074 MainWindow(Splash *splash);
00075 ~MainWindow();
00076
00077
00078 virtual int startServiceFor( const QString& serviceType,
00079 const QString& constraint = QString::null,
00080 const QString& preferences = QString::null,
00081 QString *error = 0, QCString* dcopService = 0,
00082 int flags = 0 );
00083
00084 virtual PluginList pluginList() const { return mPlugins; }
00085 void activePluginModule( const QString & );
00086 public slots:
00087 virtual void selectPlugin( Kontact::Plugin *plugin );
00088 virtual void selectPlugin( const QString &pluginName );
00089
00090 void updateConfig();
00091
00092 signals:
00093 void textChanged( const QString& );
00094 void iconChanged( const QPixmap& );
00095
00096 protected slots:
00097 void initObject();
00098 void initGUI();
00099 void slotActivePartChanged( KParts::Part *part );
00100 void slotPreferences();
00101 void slotSelectComponents();
00102 void slotNewClicked();
00103 void slotQuit();
00104 void slotShowTip();
00105 void slotRequestFeature();
00106 void slotNewToolbarConfig();
00107 void showAboutDialog();
00108 void slotShowStatusMsg( const QString& );
00109 void activatePluginModule();
00110
00111 protected:
00112 void initWidgets();
00113
00114 void loadSettings();
00115 void saveSettings();
00116
00117 bool isPluginLoaded( const KPluginInfo * );
00118 Kontact::Plugin *pluginFromInfo( const KPluginInfo * );
00119 void loadPlugins();
00120 void unloadPlugins();
00121 bool removePlugin( const KPluginInfo * );
00122 void addPlugin( Kontact::Plugin *plugin );
00123 void partLoaded( Kontact::Plugin *plugin, KParts::Part *part );
00124 void setupActions();
00125 void initHeaderWidget( QVBox *vBox );
00126 void showTip( bool );
00127 virtual bool queryClose ();
00128
00129 private slots:
00130 void pluginsChanged();
00131 void setHeaderText( const QString& );
00132 void setHeaderPixmap( const QPixmap& );
00133
00134 void configureShortcuts();
00135 void configureToolbars();
00136
00137 private:
00138 QWidget *mTopWidget;
00139
00140 QHBox *mHeaderFrame;
00141 QLabel *mHeaderText;
00142 QLabel *mHeaderPixmap;
00143 QSplitter *mSplitter;
00144
00145 Splash *mSplash;
00146
00147 KToolBarPopupAction *mNewActions;
00148 SidePaneBase *mSidePane;
00149 QWidgetStack *mStack;
00150 Plugin *mCurrentPlugin;
00151 KParts::PartManager *mPartManager;
00152 PluginList mPlugins;
00153 PluginList mDelayedPreload;
00154 QValueList<KPluginInfo*> mPluginInfos;
00155 KParts::InfoExtension *mLastInfoExtension;
00156
00157 QMap<KParts::InfoExtension*, InfoExtData> mInfoExtCache;
00158
00159 int mSidePaneType;
00160
00161
00162 KStatusBarLabel* mStatusMsgLabel;
00163 KPIM::StatusbarProgressWidget *mLittleProgress;
00164
00165 QString mActiveModule;
00166
00167 AboutDialog *mAboutDialog;
00168 bool mReallyClose;
00169 };
00170
00171 }
00172
00173 #endif
00174
This file is part of the documentation for kontact Library Version 3.3.2.