summaryrefslogtreecommitdiffstats
path: root/kontact/src/mainwindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'kontact/src/mainwindow.h')
-rw-r--r--kontact/src/mainwindow.h168
1 files changed, 168 insertions, 0 deletions
diff --git a/kontact/src/mainwindow.h b/kontact/src/mainwindow.h
new file mode 100644
index 000000000..a96d5bf6b
--- /dev/null
+++ b/kontact/src/mainwindow.h
@@ -0,0 +1,168 @@
+/*
+ This file is part of KDE Kontact.
+
+ Copyright (c) 2001 Matthias Hoelzer-Kluepfel <mhk@kde.org>
+ Copyright (c) 2002-2005 Daniel Molkentin <molkentin@kde.org>
+ Copyright (c) 2003-2005 Cornelius Schumacher <schumacher@kde.org>
+
+ 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.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+
+#ifndef KONTACT_MAINWINDOW_H
+#define KONTACT_MAINWINDOW_H
+
+#include <qguardedptr.h>
+#include <qptrlist.h>
+#include <qwidgetstack.h>
+
+#include <kparts/mainwindow.h>
+#include <kparts/part.h>
+#include <kparts/partmanager.h>
+#include <kdcopservicestarter.h>
+
+#include "core.h"
+#include "kontactiface.h"
+
+class QHBox;
+class QSplitter;
+class QVBox;
+class QFrame;
+
+class KAction;
+class KConfig;
+class KPluginInfo;
+class KRSqueezedTextLabel;
+class KHTMLPart;
+class KeyPressEater;
+
+namespace KPIM
+{
+ class StatusbarProgressWidget;
+}
+
+namespace Kontact
+{
+
+class Plugin;
+class SidePaneBase;
+class AboutDialog;
+
+typedef QValueList<Kontact::Plugin*> PluginList;
+
+class MainWindow : public Kontact::Core, public KDCOPServiceStarter, public KontactIface
+{
+ Q_OBJECT
+
+ public:
+ MainWindow();
+ ~MainWindow();
+
+ // KDCOPServiceStarter interface
+ virtual int startServiceFor( const QString& serviceType,
+ const QString& constraint = QString::null,
+ const QString& preferences = QString::null,
+ QString *error = 0, QCString* dcopService = 0,
+ int flags = 0 );
+
+ virtual PluginList pluginList() const { return mPlugins; }
+ void setActivePluginModule( const QString & );
+
+ public slots:
+ virtual void selectPlugin( Kontact::Plugin *plugin );
+ virtual void selectPlugin( const QString &pluginName );
+
+ void updateConfig();
+
+ protected slots:
+ void initObject();
+ void initGUI();
+ void slotActivePartChanged( KParts::Part *part );
+ void slotPreferences();
+ void slotNewClicked();
+ void slotSyncClicked();
+ void slotQuit();
+ void slotShowTip();
+ void slotRequestFeature();
+ void slotConfigureProfiles();
+ void slotLoadProfile( const QString& id );
+ void slotSaveToProfile( const QString& id );
+ void slotNewToolbarConfig();
+ void slotShowIntroduction();
+ void showAboutDialog();
+ void slotShowStatusMsg( const QString& );
+ void activatePluginModule();
+ void slotOpenUrl( const KURL &url );
+
+ private:
+ void initWidgets();
+ void initAboutScreen();
+ void loadSettings();
+ void saveSettings();
+
+ bool isPluginLoaded( const KPluginInfo * );
+ Kontact::Plugin *pluginFromInfo( const KPluginInfo * );
+ void loadPlugins();
+ void unloadPlugins();
+ bool removePlugin( const KPluginInfo * );
+ void addPlugin( Kontact::Plugin *plugin );
+ void partLoaded( Kontact::Plugin *plugin, KParts::ReadOnlyPart *part );
+ void setupActions();
+ void showTip( bool );
+ virtual bool queryClose();
+ virtual void readProperties( KConfig *config );
+ virtual void saveProperties( KConfig *config );
+ void paintAboutScreen( const QString& msg );
+ static QString introductionString();
+ KToolBar* findToolBar(const char* name);
+
+ private slots:
+ void pluginsChanged();
+
+ void configureShortcuts();
+ void configureToolbars();
+
+ private:
+ QFrame *mTopWidget;
+
+ QSplitter *mSplitter;
+
+ KToolBarPopupAction *mNewActions;
+ KToolBarPopupAction *mSyncActions;
+ SidePaneBase *mSidePane;
+ QWidgetStack *mPartsStack;
+ Plugin *mCurrentPlugin;
+ KParts::PartManager *mPartManager;
+ PluginList mPlugins;
+ PluginList mDelayedPreload;
+ QValueList<KPluginInfo*> mPluginInfos;
+ KHTMLPart *mIntroPart;
+
+ KRSqueezedTextLabel* mStatusMsgLabel;
+ KPIM::StatusbarProgressWidget *mLittleProgress;
+
+ QString mActiveModule;
+
+ QMap<QString, QGuardedPtr<QWidget> > mFocusWidgets;
+
+ AboutDialog *mAboutDialog;
+ bool mReallyClose;
+ bool mSyncActionsEnabled;
+};
+
+}
+
+#endif
+// vim: sw=2 sts=2 et