summaryrefslogtreecommitdiffabout
path: root/korganizer/koglobals.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/koglobals.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koglobals.cpp143
1 files changed, 143 insertions, 0 deletions
diff --git a/korganizer/koglobals.cpp b/korganizer/koglobals.cpp
new file mode 100644
index 0000000..8016034
--- a/dev/null
+++ b/korganizer/koglobals.cpp
@@ -0,0 +1,143 @@
+/*
+ This file is part of KOrganizer.
+ Copyright (c) 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ As a special exception, permission is given to link this program
+ with any edition of Qt, and distribute the resulting executable,
+ without including the source code for Qt in the source distribution.
+*/
+
+#include <qapplication.h>
+
+#include <kdebug.h>
+#include <kglobal.h>
+#include <kconfig.h>
+#include <kstandarddirs.h>
+#include <kglobalsettings.h>
+#include <klocale.h>
+
+#include <kcalendarsystem.h>
+
+#ifndef KORG_NOKALARMD
+#include "kalarmdclient.h"
+#endif
+#include "simplealarmclient.h"
+
+#include "koglobals.h"
+#include "koprefs.h"
+
+class NopAlarmClient : public AlarmClient
+{
+ public:
+ void startDaemon() {}
+ bool setCalendars( const QStringList & ) { return false; }
+ bool addCalendar( const QString & ) { return false; }
+ bool removeCalendar( const QString & ) { return false; }
+ bool reloadCalendar( const QString & ) { return false; }
+};
+
+KOGlobals *KOGlobals::mSelf = 0;
+
+KOGlobals *KOGlobals::self()
+{
+ if (!mSelf) {
+ mSelf = new KOGlobals;
+ }
+
+ return mSelf;
+}
+
+KOGlobals::KOGlobals()
+{
+ KConfig *cfg = KOGlobals::config();
+
+ cfg->setGroup("General");
+ mCalendarSystem = KGlobal::locale()->calendar();
+
+ cfg->setGroup("AlarmDaemon");
+ QString alarmClient = cfg->readEntry( "Daemon", "kalarmd" );
+ if ( alarmClient == "simple" ) {
+ mAlarmClient = new SimpleAlarmClient;
+#ifndef KORG_NOKALARMD
+ } else if ( alarmClient == "kalarmd" ) {
+ mAlarmClient = new KalarmdClient;
+#endif
+ } else {
+ mAlarmClient = new NopAlarmClient;
+ }
+}
+
+KConfig* KOGlobals::config()
+{
+ static KConfig *mConfig = 0;
+ if (!mConfig) {
+ KOPrefs *p = KOPrefs::instance();
+ mConfig = p->getConfig();
+ //mConfig = new KConfig( locateLocal( "config", "korganizerrc" ) );
+ }
+ return mConfig;
+}
+
+KOGlobals::~KOGlobals()
+{
+ delete mAlarmClient;
+}
+
+const KCalendarSystem *KOGlobals::calendarSystem() const
+{
+ return mCalendarSystem;
+}
+
+AlarmClient *KOGlobals::alarmClient() const
+{
+ return mAlarmClient;
+}
+
+void KOGlobals::fitDialogToScreen( QWidget *wid, bool force )
+{
+ bool resized = false;
+
+ int w = wid->frameSize().width();
+ int h = wid->frameSize().height();
+
+ QRect desk = KGlobalSettings::desktopGeometry(wid);
+ if ( w > desk.width() ) {
+ w = desk.width();
+ resized = true;
+ }
+ // Yuck this hack is ugly. Is the -30 really to circumvent the size of
+ // kicker?!
+ if ( h > desk.height() - 30 ) {
+ h = desk.height() - 30;
+ resized = true;
+ }
+
+ if ( resized || force ) {
+ wid->resize( w, h );
+ wid->move( desk.x(), desk.y()+15 );
+ if ( force ) wid->setFixedSize( w, h );
+ }
+}
+
+bool KOGlobals::reverseLayout()
+{
+#if QT_VERSION >= 0x030000
+ return QApplication::reverseLayout();
+#else
+ return false;
+#endif
+}