summaryrefslogtreecommitdiffstats
path: root/korganizer/koglobals.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch)
tree67208f7c145782a7e90b123b982ca78d88cc2c87 /korganizer/koglobals.cpp
downloadtdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz
tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'korganizer/koglobals.cpp')
-rw-r--r--korganizer/koglobals.cpp189
1 files changed, 189 insertions, 0 deletions
diff --git a/korganizer/koglobals.cpp b/korganizer/koglobals.cpp
new file mode 100644
index 000000000..21428e85b
--- /dev/null
+++ b/korganizer/koglobals.cpp
@@ -0,0 +1,189 @@
+/*
+ This file is part of KOrganizer.
+
+ Copyright (c) 2002,2003 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.
+
+ 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 <kstaticdeleter.h>
+#include <kiconloader.h>
+
+#include <kcalendarsystem.h>
+#include <kholidays.h>
+
+#include "alarmclient.h"
+
+#include "koglobals.h"
+#include "koprefs.h"
+#include "korganizer_part.h"
+
+#if 0 // unused
+class NopAlarmClient : public AlarmClient
+{
+ public:
+ void startDaemon() {}
+ void stopDaemon() {}
+};
+#endif
+
+KOGlobals *KOGlobals::mSelf = 0;
+
+static KStaticDeleter<KOGlobals> koGlobalsDeleter;
+
+KOGlobals *KOGlobals::self()
+{
+ if ( !mSelf ) {
+ koGlobalsDeleter.setObject( mSelf, new KOGlobals );
+ }
+
+ return mSelf;
+}
+
+KOGlobals::KOGlobals()
+ : mHolidays(0)
+{
+ // Needed to distinguish from global KInstance
+ // in case we are a KPart
+ mOwnInstance = new KInstance( "korganizer" );
+ mOwnInstance->config()->setGroup( "General" );
+ mOwnInstance->iconLoader()->addAppDir( "kdepim" );
+ KGlobal::iconLoader()->addAppDir( "kdepim" );
+
+ mAlarmClient = new AlarmClient;
+}
+
+KConfig* KOGlobals::config() const
+{
+ return mOwnInstance->config();
+}
+
+KOGlobals::~KOGlobals()
+{
+ delete mAlarmClient;
+ delete mOwnInstance;
+ delete mHolidays;
+}
+
+const KCalendarSystem *KOGlobals::calendarSystem() const
+{
+ return KGlobal::locale()->calendar();
+}
+
+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;
+ }
+ // FIXME: ugly hack. 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
+}
+
+QPixmap KOGlobals::smallIcon( const QString& name )
+{
+ return SmallIcon( name, mOwnInstance );
+}
+
+QIconSet KOGlobals::smallIconSet( const QString& name, int size )
+{
+ return SmallIconSet( name, size, mOwnInstance );
+}
+
+QStringList KOGlobals::holiday( const QDate &date )
+{
+ QStringList hdays;
+
+ if ( !mHolidays ) return hdays;
+ QValueList<KHoliday> list = mHolidays->getHolidays( date );
+ QValueList<KHoliday>::ConstIterator it = list.begin();
+ for ( ; it != list.end(); ++it ) {
+ hdays.append( (*it).text );
+ }
+ return hdays;
+}
+
+bool KOGlobals::isWorkDay( const QDate &date )
+{
+ int mask( ~( KOPrefs::instance()->mWorkWeekMask ) );
+
+ bool nonWorkDay = ( mask & ( 1 << ( date.dayOfWeek() - 1 ) ) );
+ if ( KOPrefs::instance()->mExcludeHolidays && mHolidays ) {
+ QValueList<KHoliday> list = mHolidays->getHolidays( date );
+ QValueList<KHoliday>::ConstIterator it = list.begin();
+ for ( ; it != list.end(); ++it ) {
+ nonWorkDay = nonWorkDay
+ || ( (*it).Category == KHolidays::HOLIDAY );
+ }
+ }
+ return !nonWorkDay;
+}
+
+int KOGlobals::getWorkWeekMask()
+{
+ return KOPrefs::instance()->mWorkWeekMask;
+}
+
+void KOGlobals::setHolidays( KHolidays *h )
+{
+ delete mHolidays;
+ mHolidays = h;
+}
+
+KHolidays *KOGlobals::holidays() const
+{
+ return mHolidays;
+}