summaryrefslogtreecommitdiff
path: root/libopie2/opiepim
Unidiff
Diffstat (limited to 'libopie2/opiepim') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiepim/core/oconversion.cpp39
-rw-r--r--libopie2/opiepim/core/oconversion.h7
-rw-r--r--libopie2/opiepim/core/opimcache.h10
-rw-r--r--libopie2/opiepim/core/opimmaintainer.cpp2
-rw-r--r--libopie2/opiepim/core/opimmaintainer.h5
-rw-r--r--libopie2/opiepim/core/opimresolver.cpp11
-rw-r--r--libopie2/opiepim/core/opimresolver.h12
-rw-r--r--libopie2/opiepim/core/opimstate.cpp5
-rw-r--r--libopie2/opiepim/core/opimstate.h7
-rw-r--r--libopie2/opiepim/core/opimxref.cpp12
-rw-r--r--libopie2/opiepim/core/opimxref.h10
-rw-r--r--libopie2/opiepim/core/opimxrefmanager.cpp14
-rw-r--r--libopie2/opiepim/core/opimxrefmanager.h9
-rw-r--r--libopie2/opiepim/core/opimxrefpartner.cpp12
-rw-r--r--libopie2/opiepim/core/opimxrefpartner.h3
-rw-r--r--libopie2/opiepim/core/orecur.cpp76
-rw-r--r--libopie2/opiepim/core/orecur.h11
-rw-r--r--libopie2/opiepim/core/otemplatebase.h9
-rw-r--r--libopie2/opiepim/core/otimezone.cpp88
-rw-r--r--libopie2/opiepim/core/otimezone.h11
20 files changed, 264 insertions, 89 deletions
diff --git a/libopie2/opiepim/core/oconversion.cpp b/libopie2/opiepim/core/oconversion.cpp
index b7eebef..160c2c6 100644
--- a/libopie2/opiepim/core/oconversion.cpp
+++ b/libopie2/opiepim/core/oconversion.cpp
@@ -1,15 +1,14 @@
1/* 1/*
2 This file is part of the Opie Project 2 This file is part of the Opie Project
3 Copyright (C) The Main Author <main-author@whereever.org>
4 =. Copyright (C) The Opie Team <opie-devel@handhelds.org> 3 =. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5 .=l. 4 .=l.
6 .>+-= 5 .>+-=
7 _;:, .> :=|. This program is free software; you can 6 _;:, .> :=|. This program is free software; you can
8.> <`_, > . <= redistribute it and/or modify it under 7.> <`_, > . <= redistribute it and/or modify it under
9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public 8:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
10.="- .-=="i, .._ License as published by the Free Software 9.="- .-=="i, .._ License as published by the Free Software
11 - . .-<_> .<> Foundation; either version 2 of the License, 10 - . .-<_> .<> Foundation; either version 2 of the License,
12 ._= =} : or (at your option) any later version. 11 ._= =} : or (at your option) any later version.
13 .%`+i> _;_. 12 .%`+i> _;_.
14 .i_,=:_. -<s. This program is distributed in the hope that 13 .i_,=:_. -<s. This program is distributed in the hope that
15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY; 14 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
@@ -18,113 +17,125 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 17 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 18..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 19++= -. .` .: details.
21 : = ...= . :.=- 20 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 21 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 22 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 23 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
28*/ 27*/
29 28
29/* OPIE */
30#include <opie2/oconversion.h> 30#include <opie2/oconversion.h>
31#include <qpe/timeconversion.h> 31#include <qpe/timeconversion.h>
32 32
33 33namespace Opie
34namespace Opie { 34{
35 35
36QString OConversion::dateToString( const QDate &d ) 36QString OConversion::dateToString( const QDate &d )
37{ 37{
38 if ( d.isNull() || !d.isValid() ) 38 if ( d.isNull() || !d.isValid() )
39 return QString::null; 39 return QString::null;
40 40
41 // ISO format in year, month, day (YYYYMMDD); e.g. 20021231 41 // ISO format in year, month, day (YYYYMMDD); e.g. 20021231
42 QString year = QString::number( d.year() ); 42 QString year = QString::number( d.year() );
43 QString month = QString::number( d.month() ); 43 QString month = QString::number( d.month() );
44 month = month.rightJustify( 2, '0' ); 44 month = month.rightJustify( 2, '0' );
45 QString day = QString::number( d.day() ); 45 QString day = QString::number( d.day() );
46 day = day.rightJustify( 2, '0' ); 46 day = day.rightJustify( 2, '0' );
47 47
48 QString str = year + month + day; 48 QString str = year + month + day;
49 //qDebug( "\tPimContact dateToStr = %s", str.latin1() ); 49 //qDebug( "\tPimContact dateToStr = %s", str.latin1() );
50 50
51 return str; 51 return str;
52} 52}
53 53
54
54QDate OConversion::dateFromString( const QString& s ) 55QDate OConversion::dateFromString( const QString& s )
55{ 56{
56 QDate date; 57 QDate date;
57 58
58 if ( s.isEmpty() ) 59 if ( s.isEmpty() )
59 return date; 60 return date;
60 61
61 // Be backward compatible to old Opie format: 62 // Be backward compatible to old Opie format:
62 // Try to load old format. If it fails, try new ISO-Format! 63 // Try to load old format. If it fails, try new ISO-Format!
63 date = TimeConversion::fromString ( s ); 64 date = TimeConversion::fromString ( s );
64 if ( date.isValid() ) 65 if ( date.isValid() )
65 return date; 66 return date;
66 67
67 // Read ISO-Format (YYYYMMDD) 68 // Read ISO-Format (YYYYMMDD)
68 int year = s.mid(0, 4).toInt(); 69 int year = s.mid(0, 4).toInt();
69 int month = s.mid(4,2).toInt(); 70 int month = s.mid(4,2).toInt();
70 int day = s.mid(6,2).toInt(); 71 int day = s.mid(6,2).toInt();
71 72
72 // do some quick sanity checking -eilers 73 // do some quick sanity checking -eilers
73 // but we isValid() again? -zecke 74 // but we isValid() again? -zecke
74 if ( year < 1900 || year > 3000 ) { 75 if ( year < 1900 || year > 3000 )
76 {
75 qWarning( "PimContact year is not in range"); 77 qWarning( "PimContact year is not in range");
76 return date; 78 return date;
77 } 79 }
78 if ( month < 0 || month > 12 ) { 80 if ( month < 0 || month > 12 )
81 {
79 qWarning( "PimContact month is not in range"); 82 qWarning( "PimContact month is not in range");
80 return date; 83 return date;
81 } 84 }
82 if ( day < 0 || day > 31 ) { 85 if ( day < 0 || day > 31 )
86 {
83 qWarning( "PimContact day is not in range"); 87 qWarning( "PimContact day is not in range");
84 return date; 88 return date;
85 } 89 }
86 90
87 date.setYMD( year, month, day ); 91 date.setYMD( year, month, day );
88 if ( !date.isValid() ) { 92 if ( !date.isValid() )
93 {
89 qWarning( "PimContact date is not valid"); 94 qWarning( "PimContact date is not valid");
90 return date; 95 return date;
91 } 96 }
92 97
93 return date; 98 return date;
94} 99}
95QString OConversion::dateTimeToString( const QDateTime& dt ) { 100
96 if (!dt.isValid() || dt.isNull() ) return QString::null; 101
102QString OConversion::dateTimeToString( const QDateTime& dt )
103{
104 if ( !dt.isValid() || dt.isNull() )
105 return QString::null;
97 106
98 QString year = QString::number( dt.date().year() ); 107 QString year = QString::number( dt.date().year() );
99 QString month = QString::number( dt.date().month() ); 108 QString month = QString::number( dt.date().month() );
100 QString day = QString::number( dt.date().day() ); 109 QString day = QString::number( dt.date().day() );
101 110
102 QString hour = QString::number( dt.time().hour() ); 111 QString hour = QString::number( dt.time().hour() );
103 QString min = QString::number( dt.time().minute() ); 112 QString min = QString::number( dt.time().minute() );
104 QString sec = QString::number( dt.time().second() ); 113 QString sec = QString::number( dt.time().second() );
105 114
106 month = month.rightJustify( 2, '0' ); 115 month = month.rightJustify( 2, '0' );
107 day = day. rightJustify( 2, '0' ); 116 day = day. rightJustify( 2, '0' );
108 hour = hour. rightJustify( 2, '0' ); 117 hour = hour. rightJustify( 2, '0' );
109 min = min. rightJustify( 2, '0' ); 118 min = min. rightJustify( 2, '0' );
110 sec = sec. rightJustify( 2, '0' ); 119 sec = sec. rightJustify( 2, '0' );
111 120
112 QString str = day + month + year + hour + min + sec; 121 return day + month + year + hour + min + sec;
113
114 return str;
115} 122}
116QDateTime OConversion::dateTimeFromString( const QString& str) {
117 123
118 if ( str.isEmpty() ) return QDateTime(); 124
125QDateTime OConversion::dateTimeFromString( const QString& str )
126{
127
128 if ( str.isEmpty() )
129 return QDateTime();
119 int day = str.mid(0, 2).toInt(); 130 int day = str.mid(0, 2).toInt();
120 int month = str.mid(2, 2).toInt(); 131 int month = str.mid(2, 2).toInt();
121 int year = str.mid(4, 4).toInt(); 132 int year = str.mid(4, 4).toInt();
122 int hour = str.mid(8, 2).toInt(); 133 int hour = str.mid(8, 2).toInt();
123 int min = str.mid(10, 2).toInt(); 134 int min = str.mid(10, 2).toInt();
124 int sec = str.mid(12, 2).toInt(); 135 int sec = str.mid(12, 2).toInt();
125 136
126 QDate date( year, month, day ); 137 QDate date( year, month, day );
127 QTime time( hour, min, sec ); 138 QTime time( hour, min, sec );
128 QDateTime dt( date, time ); 139 QDateTime dt( date, time );
129 return dt; 140 return dt;
130} 141}
diff --git a/libopie2/opiepim/core/oconversion.h b/libopie2/opiepim/core/oconversion.h
index 3c4fdf3..eeb97e5 100644
--- a/libopie2/opiepim/core/oconversion.h
+++ b/libopie2/opiepim/core/oconversion.h
@@ -18,29 +18,28 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef __oconversion_h__ 30#ifndef OCONVERSION_H
31#define __oconversion_h__ 31#define OCONVERSION_H
32 32
33/* #include <time.h> */ 33/* QT */
34/* #include <sys/types.h> */
35#include <qdatetime.h> 34#include <qdatetime.h>
36 35
37namespace Opie { 36namespace Opie {
38 37
39class OConversion 38class OConversion
40{ 39{
41public: 40public:
42 static QString dateToString( const QDate &d ); 41 static QString dateToString( const QDate &d );
43 static QDate dateFromString( const QString &datestr ); 42 static QDate dateFromString( const QString &datestr );
44 43
45 /** 44 /**
46 * simple function to store DateTime as string and read from string 45 * simple function to store DateTime as string and read from string
diff --git a/libopie2/opiepim/core/opimcache.h b/libopie2/opiepim/core/opimcache.h
index e70a910..a033574 100644
--- a/libopie2/opiepim/core/opimcache.h
+++ b/libopie2/opiepim/core/opimcache.h
@@ -17,31 +17,33 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIE_PIM_CACHE_H 29#ifndef OPIMCACHE_H
30#define OPIE_PIM_CACHE_H 30#define OPIMCACHE_H
31
32#include <qintcache.h>
33 31
32/* OPIE */
34#include <opie2/opimrecord.h> 33#include <opie2/opimrecord.h>
35 34
35/* QT */
36#include <qintcache.h>
37
36namespace Opie { 38namespace Opie {
37class OPimCacheItemPrivate; 39class OPimCacheItemPrivate;
38 40
39template <class T = OPimRecord> 41template <class T = OPimRecord>
40class OPimCacheItem { 42class OPimCacheItem {
41public: 43public:
42 OPimCacheItem( const T& t = T() ); 44 OPimCacheItem( const T& t = T() );
43 OPimCacheItem( const OPimCacheItem& ); 45 OPimCacheItem( const OPimCacheItem& );
44 ~OPimCacheItem(); 46 ~OPimCacheItem();
45 47
46 OPimCacheItem &operator=( const OPimCacheItem& ); 48 OPimCacheItem &operator=( const OPimCacheItem& );
47 49
diff --git a/libopie2/opiepim/core/opimmaintainer.cpp b/libopie2/opiepim/core/opimmaintainer.cpp
index b2eff12..b8d829a 100644
--- a/libopie2/opiepim/core/opimmaintainer.cpp
+++ b/libopie2/opiepim/core/opimmaintainer.cpp
@@ -18,25 +18,25 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#include <opie2/opimmaintainer.h> 30#include "opimmaintainer.h"
31 31
32namespace Opie { 32namespace Opie {
33OPimMaintainer::OPimMaintainer( int mode, int uid ) 33OPimMaintainer::OPimMaintainer( int mode, int uid )
34 : m_mode(mode), m_uid(uid ) 34 : m_mode(mode), m_uid(uid )
35{} 35{}
36OPimMaintainer::~OPimMaintainer() { 36OPimMaintainer::~OPimMaintainer() {
37} 37}
38OPimMaintainer::OPimMaintainer( const OPimMaintainer& main ) { 38OPimMaintainer::OPimMaintainer( const OPimMaintainer& main ) {
39 *this = main; 39 *this = main;
40} 40}
41OPimMaintainer &OPimMaintainer::operator=( const OPimMaintainer& main ) { 41OPimMaintainer &OPimMaintainer::operator=( const OPimMaintainer& main ) {
42 m_mode = main.m_mode; 42 m_mode = main.m_mode;
diff --git a/libopie2/opiepim/core/opimmaintainer.h b/libopie2/opiepim/core/opimmaintainer.h
index 46bc9d2..e7e7eeb 100644
--- a/libopie2/opiepim/core/opimmaintainer.h
+++ b/libopie2/opiepim/core/opimmaintainer.h
@@ -17,27 +17,28 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIE_PIM_MAINTAINER_H 29#ifndef OPIMMAINTAINER_H
30#define OPIE_PIM_MAINTAINER_H 30#define OPIMMAINTAINER_H
31 31
32/* QT */
32#include <qstring.h> 33#include <qstring.h>
33 34
34namespace Opie { 35namespace Opie {
35/** 36/**
36 * Who maintains what? 37 * Who maintains what?
37 */ 38 */
38class OPimMaintainer { 39class OPimMaintainer {
39public: 40public:
40 enum Mode { Undefined = -1, 41 enum Mode { Undefined = -1,
41 Nothing = 0, 42 Nothing = 0,
42 Responsible, 43 Responsible,
43 DoneBy, 44 DoneBy,
diff --git a/libopie2/opiepim/core/opimresolver.cpp b/libopie2/opiepim/core/opimresolver.cpp
index eceabcb..73d7de1 100644
--- a/libopie2/opiepim/core/opimresolver.cpp
+++ b/libopie2/opiepim/core/opimresolver.cpp
@@ -17,33 +17,34 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#include <qcopchannel_qws.h>
30 29
31#include <qpe/qcopenvelope_qws.h> 30#include "opimresolver.h"
32 31
33#include <opie2/otodoaccess.h> 32/* OPIE */
34#include <opie2/ocontactaccess.h> 33#include <opie2/ocontactaccess.h>
34#include <opie2/otodoaccess.h>
35#include <qpe/qcopenvelope_qws.h>
35 36
36//#include "opimfactory.h" 37/* QT */
37#include <opie2/opimresolver.h> 38#include <qcopchannel_qws.h>
38 39
39namespace Opie { 40namespace Opie {
40 41
41OPimResolver* OPimResolver::m_self = 0l; 42OPimResolver* OPimResolver::m_self = 0l;
42 43
43OPimResolver::OPimResolver() { 44OPimResolver::OPimResolver() {
44 /* the built in channels */ 45 /* the built in channels */
45 m_builtIns << "Todolist" << "Addressbook" << "Datebook"; 46 m_builtIns << "Todolist" << "Addressbook" << "Datebook";
46} 47}
47OPimResolver* OPimResolver::self() { 48OPimResolver* OPimResolver::self() {
48 if (!m_self) 49 if (!m_self)
49 m_self = new OPimResolver(); 50 m_self = new OPimResolver();
diff --git a/libopie2/opiepim/core/opimresolver.h b/libopie2/opiepim/core/opimresolver.h
index adc7c16..dd6f07f 100644
--- a/libopie2/opiepim/core/opimresolver.h
+++ b/libopie2/opiepim/core/opimresolver.h
@@ -17,45 +17,48 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIE_PIM_RESOLVER 29#ifndef OPIMRESOLVER_H
30#define OPIE_PIM_RESOLVER 30#define OPIMRESOLVER_H
31 31
32/* OPIE */
33#include <opie2/otemplatebase.h>
34
35/* QT */
32#include <qstring.h> 36#include <qstring.h>
33#include <qvaluelist.h> 37#include <qvaluelist.h>
34 38
35#include <opie2/otemplatebase.h>
36
37namespace Opie { 39namespace Opie {
38/** 40/**
39 * OPimResolver is a MetaClass to access 41 * OPimResolver is a MetaClass to access
40 * available backends read only. 42 * available backends read only.
41 * It will be used to resolve uids + app names 43 * It will be used to resolve uids + app names
42 * to full informations 44 * to full informations
43 * to traverse through a list of alarms, reminders 45 * to traverse through a list of alarms, reminders
44 * to get access to built in PIM functionality 46 * to get access to built in PIM functionality
45 * and to more stuff 47 * and to more stuff
46 * THE PERFORMANCE will depend on THE BACKEND 48 * THE PERFORMANCE will depend on THE BACKEND
47 * USING XML is a waste of memory!!!!! 49 * USING XML is a waste of memory!!!!!
48 */ 50 */
49class OPimResolver { 51class OPimResolver {
52
50public: 53public:
51 enum BuiltIn { TodoList = 0, 54 enum BuiltIn { TodoList = 0,
52 DateBook, 55 DateBook,
53 AddressBook 56 AddressBook
54 }; 57 };
55 static OPimResolver* self(); 58 static OPimResolver* self();
56 59
57 60
58 /** 61 /**
59 * return a record for a uid 62 * return a record for a uid
60 * and an service 63 * and an service
61 * You've THE OWNERSHIP NOW! 64 * You've THE OWNERSHIP NOW!
@@ -91,24 +94,25 @@ public:
91 * record returns an empty record for a given service. 94 * record returns an empty record for a given service.
92 * Be sure to delete it!!! 95 * Be sure to delete it!!!
93 * 96 *
94 */ 97 */
95 OPimRecord* record( const QString& service ); 98 OPimRecord* record( const QString& service );
96 OPimRecord* record( int rtti ); 99 OPimRecord* record( int rtti );
97 100
98 /** 101 /**
99 * you can cast to your 102 * you can cast to your
100 */ 103 */
101 OPimBase* backend( const QString& service ); 104 OPimBase* backend( const QString& service );
102 OPimBase* backend( int rtti ); 105 OPimBase* backend( int rtti );
106
103private: 107private:
104 OPimResolver(); 108 OPimResolver();
105 void loadData(); 109 void loadData();
106 inline bool isBuiltIn( const QString& )const; 110 inline bool isBuiltIn( const QString& )const;
107 OPimRecord* recordExtern( const QString&, int ); 111 OPimRecord* recordExtern( const QString&, int );
108 OPimRecord* recordExtern( const QString& ); 112 OPimRecord* recordExtern( const QString& );
109 113
110 static OPimResolver* m_self; 114 static OPimResolver* m_self;
111 struct Data; 115 struct Data;
112 class Private; 116 class Private;
113 117
114 Data* data; 118 Data* data;
diff --git a/libopie2/opiepim/core/opimstate.cpp b/libopie2/opiepim/core/opimstate.cpp
index 1013a1c..8aff558 100644
--- a/libopie2/opiepim/core/opimstate.cpp
+++ b/libopie2/opiepim/core/opimstate.cpp
@@ -17,28 +17,29 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#include <qshared.h>
30
31#include "opimstate.h" 29#include "opimstate.h"
32 30
31/* QT */
32#include <qshared.h>
33
33namespace Opie { 34namespace Opie {
34/* 35/*
35 * for one int this does not make 36 * for one int this does not make
36 * much sense but never the less 37 * much sense but never the less
37 * we will do it for the future 38 * we will do it for the future
38 */ 39 */
39struct OPimState::Data : public QShared { 40struct OPimState::Data : public QShared {
40 Data() : QShared(),state(Undefined) { 41 Data() : QShared(),state(Undefined) {
41 } 42 }
42 int state; 43 int state;
43}; 44};
44 45
diff --git a/libopie2/opiepim/core/opimstate.h b/libopie2/opiepim/core/opimstate.h
index 78e8cd0..8336b3e 100644
--- a/libopie2/opiepim/core/opimstate.h
+++ b/libopie2/opiepim/core/opimstate.h
@@ -17,58 +17,61 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIE_PIM_STATE_H 29#ifndef OPIMSTATE_H
30#define OPIE_PIM_STATE_H 30#define OPIMSTATE_H
31 31
32/* QT */
32#include <qstring.h> 33#include <qstring.h>
33 34
34namespace Opie { 35namespace Opie {
35/** 36/**
36 * The State of a Task 37 * The State of a Task
37 * This class encapsules the state of a todo 38 * This class encapsules the state of a todo
38 * and it's shared too 39 * and it's shared too
39 */ 40 */
40/* 41/*
41 * in c a simple struct would be enough ;) 42 * in c a simple struct would be enough ;)
42 * g_new_state(); 43 * g_new_state();
43 * g_do_some_thing( state_t* ); 44 * g_do_some_thing( state_t* );
44 * ;) 45 * ;)
45 */ 46 */
46class OPimState { 47class OPimState {
48
47public: 49public:
48 enum State { 50 enum State {
49 Started = 0, 51 Started = 0,
50 Postponed, 52 Postponed,
51 Finished, 53 Finished,
52 NotStarted, 54 NotStarted,
53 Undefined 55 Undefined
54 }; 56 };
55 OPimState( int state = Undefined ); 57 OPimState( int state = Undefined );
56 OPimState( const OPimState& ); 58 OPimState( const OPimState& );
57 ~OPimState(); 59 ~OPimState();
58 60
59 bool operator==( const OPimState& ); 61 bool operator==( const OPimState& );
60 OPimState &operator=( const OPimState& ); 62 OPimState &operator=( const OPimState& );
61 void setState( int state); 63 void setState( int state);
62 int state()const; 64 int state()const;
65
63private: 66private:
64 void deref(); 67 void deref();
65 inline void copyInternally(); 68 inline void copyInternally();
66 69
67 struct Data; 70 struct Data;
68 Data* data; 71 Data* data;
69 72
70 class Private; 73 class Private;
71 Private *d; 74 Private *d;
72}; 75};
73 76
74} 77}
diff --git a/libopie2/opiepim/core/opimxref.cpp b/libopie2/opiepim/core/opimxref.cpp
index 85d3345..f58ebb5 100644
--- a/libopie2/opiepim/core/opimxref.cpp
+++ b/libopie2/opiepim/core/opimxref.cpp
@@ -17,63 +17,69 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#include <opie2/opimxref.h> 29#include "opimxref.h"
30 30
31namespace Opie { 31namespace Opie {
32 32
33OPimXRef::OPimXRef( const OPimXRefPartner& one, const OPimXRefPartner& two ) 33OPimXRef::OPimXRef( const OPimXRefPartner& one, const OPimXRefPartner& two )
34 : m_partners(2) 34 : m_partners(2)
35{ 35{
36 m_partners[0] = one; 36 m_partners[0] = one;
37 m_partners[1] = two; 37 m_partners[1] = two;
38} 38}
39OPimXRef::OPimXRef() 39OPimXRef::OPimXRef():m_partners(2)
40 : m_partners(2)
41{ 40{
42 41
43} 42}
43
44OPimXRef::OPimXRef( const OPimXRef& ref) { 44OPimXRef::OPimXRef( const OPimXRef& ref) {
45 *this = ref; 45 *this = ref;
46} 46}
47
47OPimXRef::~OPimXRef() { 48OPimXRef::~OPimXRef() {
48} 49}
50
49OPimXRef &OPimXRef::operator=( const OPimXRef& ref) { 51OPimXRef &OPimXRef::operator=( const OPimXRef& ref) {
50 m_partners = ref.m_partners; 52 m_partners = ref.m_partners;
51 m_partners.detach(); 53 m_partners.detach();
52 54
53 return* this; 55 return* this;
54} 56}
57
55bool OPimXRef::operator==( const OPimXRef& oper ) { 58bool OPimXRef::operator==( const OPimXRef& oper ) {
56 if ( m_partners == oper.m_partners ) return true; 59 if ( m_partners == oper.m_partners ) return true;
57 60
58 return false; 61 return false;
59} 62}
60OPimXRefPartner OPimXRef::partner( enum Partners par) const{ 63OPimXRefPartner OPimXRef::partner( enum Partners par) const{
61 return m_partners[par]; 64 return m_partners[par];
62} 65}
66
63void OPimXRef::setPartner( enum Partners par, const OPimXRefPartner& part) { 67void OPimXRef::setPartner( enum Partners par, const OPimXRefPartner& part) {
64 m_partners[par] = part; 68 m_partners[par] = part;
65} 69}
70
66bool OPimXRef::containsString( const QString& string ) const{ 71bool OPimXRef::containsString( const QString& string ) const{
67 if ( m_partners[One].service() == string || 72 if ( m_partners[One].service() == string ||
68 m_partners[Two].service() == string ) return true; 73 m_partners[Two].service() == string ) return true;
69 74
70 return false; 75 return false;
71} 76}
77
72bool OPimXRef::containsUid( int uid ) const{ 78bool OPimXRef::containsUid( int uid ) const{
73 if ( m_partners[One].uid() == uid || 79 if ( m_partners[One].uid() == uid ||
74 m_partners[Two].uid() == uid ) return true; 80 m_partners[Two].uid() == uid ) return true;
75 81
76 return false; 82 return false;
77} 83}
78 84
79} 85}
diff --git a/libopie2/opiepim/core/opimxref.h b/libopie2/opiepim/core/opimxref.h
index 820c9c4..f3e814e 100644
--- a/libopie2/opiepim/core/opimxref.h
+++ b/libopie2/opiepim/core/opimxref.h
@@ -18,32 +18,34 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef OPIM_XREF_H 30#ifndef OPIMXREF_H
31#define OPIM_XREF_H 31#define OPIMXREF_H
32 32
33/* OPIE */
34#include <opie2/opimxrefpartner.h>
35
36/* QT */
33#include <qarray.h> 37#include <qarray.h>
34#include <qvaluelist.h> 38#include <qvaluelist.h>
35 39
36#include <opie2/opimxrefpartner.h>
37
38namespace Opie { 40namespace Opie {
39/** 41/**
40 * this is a Cross Referecne between 42 * this is a Cross Referecne between
41 * two Cross Reference Partners 43 * two Cross Reference Partners
42 */ 44 */
43class OPimXRef { 45class OPimXRef {
44public: 46public:
45 typedef QValueList<OPimXRef> ValueList; 47 typedef QValueList<OPimXRef> ValueList;
46 enum Partners { One, Two }; 48 enum Partners { One, Two };
47 OPimXRef( const OPimXRefPartner& ONE, const OPimXRefPartner& ); 49 OPimXRef( const OPimXRefPartner& ONE, const OPimXRefPartner& );
48 OPimXRef(); 50 OPimXRef();
49 OPimXRef( const OPimXRef& ); 51 OPimXRef( const OPimXRef& );
diff --git a/libopie2/opiepim/core/opimxrefmanager.cpp b/libopie2/opiepim/core/opimxrefmanager.cpp
index bf6fed6..e7c6c5a 100644
--- a/libopie2/opiepim/core/opimxrefmanager.cpp
+++ b/libopie2/opiepim/core/opimxrefmanager.cpp
@@ -17,85 +17,97 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#include <opie2/opimxrefmanager.h> 29#include "opimxrefmanager.h"
30 30
31namespace Opie { 31namespace Opie {
32 32
33OPimXRefManager::OPimXRefManager() { 33OPimXRefManager::OPimXRefManager() {
34} 34}
35
35OPimXRefManager::OPimXRefManager( const OPimXRefManager& ref) { 36OPimXRefManager::OPimXRefManager( const OPimXRefManager& ref) {
36 m_list = ref.m_list; 37 m_list = ref.m_list;
37} 38}
39
38OPimXRefManager::~OPimXRefManager() { 40OPimXRefManager::~OPimXRefManager() {
39} 41}
42
40OPimXRefManager &OPimXRefManager::operator=( const OPimXRefManager& ref) { 43OPimXRefManager &OPimXRefManager::operator=( const OPimXRefManager& ref) {
41 m_list = ref.m_list; 44 m_list = ref.m_list;
42 return *this; 45 return *this;
43} 46}
47
44bool OPimXRefManager::operator==( const OPimXRefManager& /*ref*/) { 48bool OPimXRefManager::operator==( const OPimXRefManager& /*ref*/) {
45 // if ( m_list == ref.m_list ) return true; 49 // if ( m_list == ref.m_list ) return true;
46 50
47 return false; 51 return false;
48} 52}
53
49void OPimXRefManager::add( const OPimXRef& ref) { 54void OPimXRefManager::add( const OPimXRef& ref) {
50 m_list.append( ref ); 55 m_list.append( ref );
51} 56}
57
52void OPimXRefManager::remove( const OPimXRef& ref) { 58void OPimXRefManager::remove( const OPimXRef& ref) {
53 m_list.remove( ref ); 59 m_list.remove( ref );
54} 60}
61
55void OPimXRefManager::replace( const OPimXRef& ref) { 62void OPimXRefManager::replace( const OPimXRef& ref) {
56 m_list.remove( ref ); 63 m_list.remove( ref );
57 m_list.append( ref ); 64 m_list.append( ref );
58} 65}
66
59void OPimXRefManager::clear() { 67void OPimXRefManager::clear() {
60 m_list.clear(); 68 m_list.clear();
61} 69}
70
62QStringList OPimXRefManager::apps()const { 71QStringList OPimXRefManager::apps()const {
63 OPimXRef::ValueList::ConstIterator it; 72 OPimXRef::ValueList::ConstIterator it;
64 QStringList list; 73 QStringList list;
65 74
66 QString str; 75 QString str;
67 for ( it = m_list.begin(); it != m_list.end(); ++it ) { 76 for ( it = m_list.begin(); it != m_list.end(); ++it ) {
68 str = (*it).partner( OPimXRef::One ).service(); 77 str = (*it).partner( OPimXRef::One ).service();
69 if ( !list.contains( str ) ) list << str; 78 if ( !list.contains( str ) ) list << str;
70 79
71 str = (*it).partner( OPimXRef::Two ).service(); 80 str = (*it).partner( OPimXRef::Two ).service();
72 if ( !list.contains( str ) ) list << str; 81 if ( !list.contains( str ) ) list << str;
73 } 82 }
74 return list; 83 return list;
75} 84}
85
76OPimXRef::ValueList OPimXRefManager::list()const { 86OPimXRef::ValueList OPimXRefManager::list()const {
77 return m_list; 87 return m_list;
78} 88}
89
79OPimXRef::ValueList OPimXRefManager::list( const QString& appName )const{ 90OPimXRef::ValueList OPimXRefManager::list( const QString& appName )const{
80 OPimXRef::ValueList list; 91 OPimXRef::ValueList list;
81 OPimXRef::ValueList::ConstIterator it; 92 OPimXRef::ValueList::ConstIterator it;
82 93
83 for ( it = m_list.begin(); it != m_list.end(); ++it ) { 94 for ( it = m_list.begin(); it != m_list.end(); ++it ) {
84 if ( (*it).containsString( appName ) ) 95 if ( (*it).containsString( appName ) )
85 list.append( (*it) ); 96 list.append( (*it) );
86 } 97 }
87 98
88 return list; 99 return list;
89} 100}
101
90OPimXRef::ValueList OPimXRefManager::list( int uid )const { 102OPimXRef::ValueList OPimXRefManager::list( int uid )const {
91 OPimXRef::ValueList list; 103 OPimXRef::ValueList list;
92 OPimXRef::ValueList::ConstIterator it; 104 OPimXRef::ValueList::ConstIterator it;
93 105
94 for ( it = m_list.begin(); it != m_list.end(); ++it ) { 106 for ( it = m_list.begin(); it != m_list.end(); ++it ) {
95 if ( (*it).containsUid( uid ) ) 107 if ( (*it).containsUid( uid ) )
96 list.append( (*it) ); 108 list.append( (*it) );
97 } 109 }
98 110
99 return list; 111 return list;
100} 112}
101 113
diff --git a/libopie2/opiepim/core/opimxrefmanager.h b/libopie2/opiepim/core/opimxrefmanager.h
index fa2d7f4..b80a645 100644
--- a/libopie2/opiepim/core/opimxrefmanager.h
+++ b/libopie2/opiepim/core/opimxrefmanager.h
@@ -17,31 +17,34 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIM_XREF_MANAGER_H
30#define OPIM_XREF_MANAGER_H
31 29
32#include <qstringlist.h> 30#ifndef OPIMXREFMANAGER_H
31#define OPIMXREFMANAGER_H
33 32
33/* OPIE */
34#include <opie2/opimxref.h> 34#include <opie2/opimxref.h>
35 35
36/* QT */
37#include <qstringlist.h>
38
36namespace Opie { 39namespace Opie {
37/** 40/**
38 * This is a simple manager for 41 * This is a simple manager for
39 * OPimXRefs. 42 * OPimXRefs.
40 * It allows addition, removing, replacing 43 * It allows addition, removing, replacing
41 * clearing and 'querying' the XRef... 44 * clearing and 'querying' the XRef...
42 */ 45 */
43class OPimXRefManager { 46class OPimXRefManager {
44public: 47public:
45 OPimXRefManager(); 48 OPimXRefManager();
46 OPimXRefManager( const OPimXRefManager& ); 49 OPimXRefManager( const OPimXRefManager& );
47 ~OPimXRefManager(); 50 ~OPimXRefManager();
diff --git a/libopie2/opiepim/core/opimxrefpartner.cpp b/libopie2/opiepim/core/opimxrefpartner.cpp
index f6ccc7f..3741bc3 100644
--- a/libopie2/opiepim/core/opimxrefpartner.cpp
+++ b/libopie2/opiepim/core/opimxrefpartner.cpp
@@ -17,59 +17,69 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#include <opie2/opimxrefpartner.h> 29#include "opimxrefpartner.h"
30 30
31namespace Opie { 31namespace Opie {
32 32
33OPimXRefPartner::OPimXRefPartner( const QString& appName, 33OPimXRefPartner::OPimXRefPartner( const QString& appName,
34 int uid, int field ) 34 int uid, int field )
35 : m_app(appName), m_uid(uid), m_field( field ) { 35 : m_app(appName), m_uid(uid), m_field( field ) {
36} 36}
37
37OPimXRefPartner::OPimXRefPartner( const OPimXRefPartner& ref ) { 38OPimXRefPartner::OPimXRefPartner( const OPimXRefPartner& ref ) {
38 *this = ref; 39 *this = ref;
39} 40}
41
40OPimXRefPartner::~OPimXRefPartner() { 42OPimXRefPartner::~OPimXRefPartner() {
41} 43}
44
42OPimXRefPartner &OPimXRefPartner::operator=( const OPimXRefPartner& par ) { 45OPimXRefPartner &OPimXRefPartner::operator=( const OPimXRefPartner& par ) {
43 m_app = par.m_app; 46 m_app = par.m_app;
44 m_uid = par.m_uid; 47 m_uid = par.m_uid;
45 m_field = par.m_field; 48 m_field = par.m_field;
46 49
47 return *this; 50 return *this;
48} 51}
52
49bool OPimXRefPartner::operator==( const OPimXRefPartner& par ) { 53bool OPimXRefPartner::operator==( const OPimXRefPartner& par ) {
50 if ( m_app != par.m_app ) return false; 54 if ( m_app != par.m_app ) return false;
51 if ( m_uid != par.m_uid ) return false; 55 if ( m_uid != par.m_uid ) return false;
52 if ( m_field != par.m_field ) return false; 56 if ( m_field != par.m_field ) return false;
53 57
54 return true; 58 return true;
55} 59}
60
56QString OPimXRefPartner::service()const { 61QString OPimXRefPartner::service()const {
57 return m_app; 62 return m_app;
58} 63}
64
59int OPimXRefPartner::uid()const { 65int OPimXRefPartner::uid()const {
60 return m_uid; 66 return m_uid;
61} 67}
68
62int OPimXRefPartner::field()const { 69int OPimXRefPartner::field()const {
63 return m_field; 70 return m_field;
64} 71}
72
65void OPimXRefPartner::setService( const QString& appName ) { 73void OPimXRefPartner::setService( const QString& appName ) {
66 m_app = appName; 74 m_app = appName;
67} 75}
76
68void OPimXRefPartner::setUid( int uid ) { 77void OPimXRefPartner::setUid( int uid ) {
69 m_uid = uid; 78 m_uid = uid;
70} 79}
80
71void OPimXRefPartner::setField( int field ) { 81void OPimXRefPartner::setField( int field ) {
72 m_field = field; 82 m_field = field;
73} 83}
74 84
75} 85}
diff --git a/libopie2/opiepim/core/opimxrefpartner.h b/libopie2/opiepim/core/opimxrefpartner.h
index 6853d5b..005dbc0 100644
--- a/libopie2/opiepim/core/opimxrefpartner.h
+++ b/libopie2/opiepim/core/opimxrefpartner.h
@@ -20,51 +20,54 @@
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIM_XREF_PARTNER_H 29#ifndef OPIM_XREF_PARTNER_H
30#define OPIM_XREF_PARTNER_H 30#define OPIM_XREF_PARTNER_H
31 31
32/* QT */
32#include <qstring.h> 33#include <qstring.h>
33 34
34namespace Opie { 35namespace Opie {
35/** 36/**
36 * This class represents one partner 37 * This class represents one partner
37 * of a Cross Reference. 38 * of a Cross Reference.
38 * In Opie one application 39 * In Opie one application
39 * can link one uid 40 * can link one uid
40 * with one tableId( fieldId ) to another. 41 * with one tableId( fieldId ) to another.
41 */ 42 */
42class OPimXRefPartner { 43class OPimXRefPartner {
44
43public: 45public:
44 OPimXRefPartner( const QString& service = QString::null, 46 OPimXRefPartner( const QString& service = QString::null,
45 int uid = 0, int field = -1 ); 47 int uid = 0, int field = -1 );
46 OPimXRefPartner( const OPimXRefPartner& ); 48 OPimXRefPartner( const OPimXRefPartner& );
47 OPimXRefPartner& operator=( const OPimXRefPartner& ); 49 OPimXRefPartner& operator=( const OPimXRefPartner& );
48 ~OPimXRefPartner(); 50 ~OPimXRefPartner();
49 51
50 bool operator==(const OPimXRefPartner& ); 52 bool operator==(const OPimXRefPartner& );
51 53
52 QString service()const; 54 QString service()const;
53 int uid()const; 55 int uid()const;
54 int field()const; 56 int field()const;
55 57
56 void setService( const QString& service ); 58 void setService( const QString& service );
57 void setUid( int uid ); 59 void setUid( int uid );
58 void setField( int field ); 60 void setField( int field );
61
59private: 62private:
60 QString m_app; 63 QString m_app;
61 int m_uid; 64 int m_uid;
62 int m_field; 65 int m_field;
63 66
64 class Private; 67 class Private;
65 Private* d; 68 Private* d;
66}; 69};
67 70
68} 71}
69 72
70#endif 73#endif
diff --git a/libopie2/opiepim/core/orecur.cpp b/libopie2/opiepim/core/orecur.cpp
index 033f264..5e2da25 100644
--- a/libopie2/opiepim/core/orecur.cpp
+++ b/libopie2/opiepim/core/orecur.cpp
@@ -18,34 +18,38 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#include <time.h> 30#include "orecur.h"
31 31
32#include <qshared.h> 32/* OPIE */
33#include <opie2/otimezone.h>
34#include <qpe/timeconversion.h>
33 35
34#include <qtopia/timeconversion.h> 36/* QT */
37#include <qshared.h>
35 38
36#include <opie2/otimezone.h> 39/* STD */
37#include <opie2/orecur.h> 40#include <time.h>
38 41
39namespace Opie { 42namespace Opie {
43
40struct ORecur::Data : public QShared { 44struct ORecur::Data : public QShared {
41 Data() : QShared() { 45 Data() : QShared() {
42 type = ORecur::NoRepeat; 46 type = ORecur::NoRepeat;
43 freq = -1; 47 freq = -1;
44 days = 0; 48 days = 0;
45 pos = 0; 49 pos = 0;
46 create = QDateTime::currentDateTime(); 50 create = QDateTime::currentDateTime();
47 hasEnd = FALSE; 51 hasEnd = FALSE;
48 end = QDate::currentDate(); 52 end = QDate::currentDate();
49 } 53 }
50 char days; // Q_UINT8 for 8 seven days;) 54 char days; // Q_UINT8 for 8 seven days;)
51 ORecur::RepeatType type; 55 ORecur::RepeatType type;
@@ -68,76 +72,92 @@ ORecur::ORecur() {
68ORecur::ORecur( const QMap<int, QString>& map ) 72ORecur::ORecur( const QMap<int, QString>& map )
69{ 73{
70 ORecur(); 74 ORecur();
71 fromMap( map ); 75 fromMap( map );
72} 76}
73 77
74 78
75ORecur::ORecur( const ORecur& rec) 79ORecur::ORecur( const ORecur& rec)
76 : data( rec.data ) 80 : data( rec.data )
77{ 81{
78 data->ref(); 82 data->ref();
79} 83}
84
85
80ORecur::~ORecur() { 86ORecur::~ORecur() {
81 if ( data->deref() ) { 87 if ( data->deref() ) {
82 delete data; 88 delete data;
83 data = 0l; 89 data = 0l;
84 } 90 }
85} 91}
92
93
86void ORecur::deref() { 94void ORecur::deref() {
87 if ( data->deref() ) { 95 if ( data->deref() ) {
88 delete data; 96 delete data;
89 data = 0l; 97 data = 0l;
90 } 98 }
91} 99}
100
101
92bool ORecur::operator==( const ORecur& )const { 102bool ORecur::operator==( const ORecur& )const {
93 return false; 103 return false;
94} 104}
105
106
95ORecur &ORecur::operator=( const ORecur& re) { 107ORecur &ORecur::operator=( const ORecur& re) {
96 if ( *this == re ) return *this; 108 if ( *this == re ) return *this;
97 109
98 re.data->ref(); 110 re.data->ref();
99 deref(); 111 deref();
100 data = re.data; 112 data = re.data;
101 113
102 return *this; 114 return *this;
103} 115}
116
117
104bool ORecur::doesRecur()const { 118bool ORecur::doesRecur()const {
105 return !( type() == NoRepeat ); 119 return !( type() == NoRepeat );
106} 120}
121
122
107/* 123/*
108 * we try to be smart here 124 * we try to be smart here
109 * 125 *
110 */ 126 */
111bool ORecur::doesRecur( const QDate& date ) { 127bool ORecur::doesRecur( const QDate& date ) {
112 /* the day before the recurrance */ 128 /* the day before the recurrance */
113 QDate da = date.addDays(-1); 129 QDate da = date.addDays(-1);
114 130
115 QDate recur; 131 QDate recur;
116 if (!nextOcurrence( da, recur ) ) 132 if (!nextOcurrence( da, recur ) )
117 return false; 133 return false;
118 134
119 return (recur == date); 135 return (recur == date);
120} 136}
137
138
121// FIXME unuglify! 139// FIXME unuglify!
122// GPL from Datebookdb.cpp 140// GPL from Datebookdb.cpp
123// FIXME exception list! 141// FIXME exception list!
124bool ORecur::nextOcurrence( const QDate& from, QDate& next ) { 142bool ORecur::nextOcurrence( const QDate& from, QDate& next ) {
125 bool stillLooking; 143 bool stillLooking;
126 stillLooking = p_nextOccurrence( from, next ); 144 stillLooking = p_nextOccurrence( from, next );
127 while ( stillLooking && data->list.contains(next) ) 145 while ( stillLooking && data->list.contains(next) )
128 stillLooking = p_nextOccurrence( next.addDays(1), next ); 146 stillLooking = p_nextOccurrence( next.addDays(1), next );
129 147
130 return stillLooking; 148 return stillLooking;
131} 149}
150
151
132bool ORecur::p_nextOccurrence( const QDate& from, QDate& next ) { 152bool ORecur::p_nextOccurrence( const QDate& from, QDate& next ) {
133 153
134 // easy checks, first are we too far in the future or too far in the past? 154 // easy checks, first are we too far in the future or too far in the past?
135 QDate tmpDate; 155 QDate tmpDate;
136 int freq = frequency(); 156 int freq = frequency();
137 int diff, diff2, a; 157 int diff, diff2, a;
138 int iday, imonth, iyear; 158 int iday, imonth, iyear;
139 int dayOfWeek = 0; 159 int dayOfWeek = 0;
140 int firstOfWeek = 0; 160 int firstOfWeek = 0;
141 int weekOfMonth; 161 int weekOfMonth;
142 162
143 163
@@ -392,115 +412,161 @@ bool ORecur::p_nextOccurrence( const QDate& from, QDate& next ) {
392 /* must have been skipping by leap years and hit one that wasn't, (e.g. 2100) */ 412 /* must have been skipping by leap years and hit one that wasn't, (e.g. 2100) */
393 iyear += freq; 413 iyear += freq;
394 } 414 }
395 415
396 next = QDate(iyear, imonth, iday); 416 next = QDate(iyear, imonth, iday);
397 if ((next > endDate()) && hasEndDate() ) 417 if ((next > endDate()) && hasEndDate() )
398 return FALSE; 418 return FALSE;
399 return TRUE; 419 return TRUE;
400 default: 420 default:
401 return FALSE; 421 return FALSE;
402 } 422 }
403} 423}
424
425
404ORecur::RepeatType ORecur::type()const{ 426ORecur::RepeatType ORecur::type()const{
405 return data->type; 427 return data->type;
406} 428}
429
430
407int ORecur::frequency()const { 431int ORecur::frequency()const {
408 return data->freq; 432 return data->freq;
409} 433}
434
435
410int ORecur::position()const { 436int ORecur::position()const {
411 return data->pos; 437 return data->pos;
412} 438}
439
440
413char ORecur::days() const{ 441char ORecur::days() const{
414 return data->days; 442 return data->days;
415} 443}
444
445
416bool ORecur::hasEndDate()const { 446bool ORecur::hasEndDate()const {
417 return data->hasEnd; 447 return data->hasEnd;
418} 448}
449
450
419QDate ORecur::endDate()const { 451QDate ORecur::endDate()const {
420 return data->end; 452 return data->end;
421} 453}
454
455
422QDate ORecur::start()const{ 456QDate ORecur::start()const{
423 return data->start; 457 return data->start;
424} 458}
459
460
425QDateTime ORecur::createdDateTime()const { 461QDateTime ORecur::createdDateTime()const {
426 return data->create; 462 return data->create;
427} 463}
464
465
428int ORecur::repetition()const { 466int ORecur::repetition()const {
429 return data->rep; 467 return data->rep;
430} 468}
469
470
431QString ORecur::service()const { 471QString ORecur::service()const {
432 return data->app; 472 return data->app;
433} 473}
474
475
434ORecur::ExceptionList& ORecur::exceptions() { 476ORecur::ExceptionList& ORecur::exceptions() {
435 return data->list; 477 return data->list;
436} 478}
479
480
437void ORecur::setType( const RepeatType& z) { 481void ORecur::setType( const RepeatType& z) {
438 checkOrModify(); 482 checkOrModify();
439 data->type = z; 483 data->type = z;
440} 484}
485
486
441void ORecur::setFrequency( int freq ) { 487void ORecur::setFrequency( int freq ) {
442 checkOrModify(); 488 checkOrModify();
443 data->freq = freq; 489 data->freq = freq;
444} 490}
491
492
445void ORecur::setPosition( int pos ) { 493void ORecur::setPosition( int pos ) {
446 checkOrModify(); 494 checkOrModify();
447 data->pos = pos; 495 data->pos = pos;
448} 496}
497
498
449void ORecur::setDays( char c ) { 499void ORecur::setDays( char c ) {
450 checkOrModify(); 500 checkOrModify();
451 data->days = c; 501 data->days = c;
452} 502}
503
504
453void ORecur::setEndDate( const QDate& dt) { 505void ORecur::setEndDate( const QDate& dt) {
454 checkOrModify(); 506 checkOrModify();
455 data->end = dt; 507 data->end = dt;
456} 508}
509
510
457void ORecur::setCreatedDateTime( const QDateTime& t) { 511void ORecur::setCreatedDateTime( const QDateTime& t) {
458 checkOrModify(); 512 checkOrModify();
459 data->create = t; 513 data->create = t;
460} 514}
515
516
461void ORecur::setHasEndDate( bool b) { 517void ORecur::setHasEndDate( bool b) {
462 checkOrModify(); 518 checkOrModify();
463 data->hasEnd = b; 519 data->hasEnd = b;
464} 520}
521
522
465void ORecur::setRepitition( int rep ) { 523void ORecur::setRepitition( int rep ) {
466 checkOrModify(); 524 checkOrModify();
467 data->rep = rep; 525 data->rep = rep;
468} 526}
527
528
469void ORecur::setService( const QString& app ) { 529void ORecur::setService( const QString& app ) {
470 checkOrModify(); 530 checkOrModify();
471 data->app = app; 531 data->app = app;
472} 532}
533
534
473void ORecur::setStart( const QDate& dt ) { 535void ORecur::setStart( const QDate& dt ) {
474 checkOrModify(); 536 checkOrModify();
475 data->start = dt; 537 data->start = dt;
476} 538}
539
540
477void ORecur::checkOrModify() { 541void ORecur::checkOrModify() {
478 if ( data->count != 1 ) { 542 if ( data->count != 1 ) {
479 data->deref(); 543 data->deref();
480 Data* d2 = new Data; 544 Data* d2 = new Data;
481 d2->days = data->days; 545 d2->days = data->days;
482 d2->type = data->type; 546 d2->type = data->type;
483 d2->freq = data->freq; 547 d2->freq = data->freq;
484 d2->pos = data->pos; 548 d2->pos = data->pos;
485 d2->hasEnd = data->hasEnd; 549 d2->hasEnd = data->hasEnd;
486 d2->end = data->end; 550 d2->end = data->end;
487 d2->create = data->create; 551 d2->create = data->create;
488 d2->rep = data->rep; 552 d2->rep = data->rep;
489 d2->app = data->app; 553 d2->app = data->app;
490 d2->list = data->list; 554 d2->list = data->list;
491 d2->start = data->start; 555 d2->start = data->start;
492 data = d2; 556 data = d2;
493 } 557 }
494} 558}
559
560
495QString ORecur::toString()const { 561QString ORecur::toString()const {
496 QString buf; 562 QString buf;
497 QMap<int, QString> recMap = toMap(); 563 QMap<int, QString> recMap = toMap();
498 564
499 buf += " rtype=\""; 565 buf += " rtype=\"";
500 buf += recMap[ORecur::RType]; 566 buf += recMap[ORecur::RType];
501 buf += "\""; 567 buf += "\"";
502 if (data->days > 0 ) 568 if (data->days > 0 )
503 buf += " rweekdays=\"" + recMap[ORecur::RWeekdays] + "\""; 569 buf += " rweekdays=\"" + recMap[ORecur::RWeekdays] + "\"";
504 if ( data->pos != 0 ) 570 if ( data->pos != 0 )
505 buf += " rposition=\"" + recMap[ORecur::RPosition] + "\""; 571 buf += " rposition=\"" + recMap[ORecur::RPosition] + "\"";
506 572
diff --git a/libopie2/opiepim/core/orecur.h b/libopie2/opiepim/core/orecur.h
index 60508f5..7808897 100644
--- a/libopie2/opiepim/core/orecur.h
+++ b/libopie2/opiepim/core/orecur.h
@@ -18,40 +18,42 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef OPIE_RECUR_H 30#ifndef ORECUR_H
31#define OPIE_RECUR_H 31#define ORECUR_H
32
33#include <sys/types.h>
34 32
33/* QT */
35#include <qdatetime.h> 34#include <qdatetime.h>
36#include <qvaluelist.h> 35#include <qvaluelist.h>
37#include <qmap.h> 36#include <qmap.h>
38 37
38/* STD */
39#include <sys/types.h>
39 40
40namespace Opie { 41namespace Opie {
41/** 42/**
42 * Class to handle Recurrencies.. 43 * Class to handle Recurrencies..
43 */ 44 */
44 45
45class ORecur { 46class ORecur {
47
46public: 48public:
47 typedef QValueList<QDate> ExceptionList; 49 typedef QValueList<QDate> ExceptionList;
48 enum RepeatType{ NoRepeat = -1, Daily, Weekly, MonthlyDay, 50 enum RepeatType{ NoRepeat = -1, Daily, Weekly, MonthlyDay,
49 MonthlyDate, Yearly }; 51 MonthlyDate, Yearly };
50 enum Days { MON = 0x01, TUE = 0x02, WED = 0x04, THU = 0x08, 52 enum Days { MON = 0x01, TUE = 0x02, WED = 0x04, THU = 0x08,
51 FRI = 0x10, SAT = 0x20, SUN = 0x40 }; 53 FRI = 0x10, SAT = 0x20, SUN = 0x40 };
52 enum Fields{ RType = 0, RWeekdays, RPosition, RFreq, RHasEndDate, 54 enum Fields{ RType = 0, RWeekdays, RPosition, RFreq, RHasEndDate,
53 EndDate, Created, Exceptions }; 55 EndDate, Created, Exceptions };
54 56
55 ORecur(); 57 ORecur();
56 ORecur( const QMap<int, QString>& map ); 58 ORecur( const QMap<int, QString>& map );
57 ORecur( const ORecur& ); 59 ORecur( const ORecur& );
@@ -105,24 +107,25 @@ public:
105 void setStart( const QDate& dt ); 107 void setStart( const QDate& dt );
106 void setCreatedDateTime( const QDateTime& ); 108 void setCreatedDateTime( const QDateTime& );
107 void setHasEndDate( bool b ); 109 void setHasEndDate( bool b );
108 void setRepitition(int ); 110 void setRepitition(int );
109 111
110 void setService( const QString& ser ); 112 void setService( const QString& ser );
111 113
112 QMap<int, QString> toMap() const; 114 QMap<int, QString> toMap() const;
113 void fromMap( const QMap<int, QString>& map ); 115 void fromMap( const QMap<int, QString>& map );
114 116
115 /* almost internal */ 117 /* almost internal */
116 QString toString()const; 118 QString toString()const;
119
117private: 120private:
118 bool p_nextOccurrence( const QDate& from, QDate& next ); 121 bool p_nextOccurrence( const QDate& from, QDate& next );
119 void deref(); 122 void deref();
120 inline void checkOrModify(); 123 inline void checkOrModify();
121 124
122 /* Converts rType to String */ 125 /* Converts rType to String */
123 QString rTypeString() const; 126 QString rTypeString() const;
124 /* Returns a map to convert Stringname for RType to RepeatType */ 127 /* Returns a map to convert Stringname for RType to RepeatType */
125 QMap<QString, RepeatType> rTypeValueConvertMap() const; 128 QMap<QString, RepeatType> rTypeValueConvertMap() const;
126 129
127 class Data; 130 class Data;
128 Data* data; 131 Data* data;
diff --git a/libopie2/opiepim/core/otemplatebase.h b/libopie2/opiepim/core/otemplatebase.h
index 17d9961..58cbfeb 100644
--- a/libopie2/opiepim/core/otemplatebase.h
+++ b/libopie2/opiepim/core/otemplatebase.h
@@ -17,31 +17,32 @@
17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29#ifndef OPIE_TEMPLATE_BASE_H 29#ifndef OTEMPLATEBASE_H
30#define OPIE_TEMPLATE_BASE_H 30#define OTEMPLATEBASE_H
31
32#include <qarray.h>
33 31
32/* OPIE */
34#include <opie2/opimrecord.h> 33#include <opie2/opimrecord.h>
35 34
35/* QT */
36#include <qarray.h>
36 37
37namespace Opie { 38namespace Opie {
38/** 39/**
39 * Templates do not have a base class, This is why 40 * Templates do not have a base class, This is why
40 * we've this class 41 * we've this class
41 * this is here to give us the possibility 42 * this is here to give us the possibility
42 * to have a common base class 43 * to have a common base class
43 * You may not want to use that interface internaly 44 * You may not want to use that interface internaly
44 * POOR mans interface 45 * POOR mans interface
45 */ 46 */
46class OPimBasePrivate; 47class OPimBasePrivate;
47struct OPimBase { 48struct OPimBase {
diff --git a/libopie2/opiepim/core/otimezone.cpp b/libopie2/opiepim/core/otimezone.cpp
index dab68af..e67715f 100644
--- a/libopie2/opiepim/core/otimezone.cpp
+++ b/libopie2/opiepim/core/otimezone.cpp
@@ -18,129 +18,171 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#include "otimezone.h"
31
32/* STD */
30#include <stdio.h> 33#include <stdio.h>
31#include <stdlib.h> 34#include <stdlib.h>
32
33#include <sys/types.h> 35#include <sys/types.h>
34 36
35#include <opie2/otimezone.h> 37namespace Opie
38{
36 39
37namespace Opie { 40QDateTime utcTime( time_t t )
38 41{
39 QDateTime utcTime( time_t t) {
40 tm* broken = ::gmtime( &t ); 42 tm* broken = ::gmtime( &t );
41 QDateTime ret; 43 QDateTime ret;
42 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) ); 44 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) );
43 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) ); 45 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
44 return ret; 46 return ret;
45 } 47 }
46 QDateTime utcTime( time_t t, const QString& zone) { 48QDateTime utcTime( time_t t, const QString& zone )
49{
47 QCString org = ::getenv( "TZ" ); 50 QCString org = ::getenv( "TZ" );
48#ifndef Q_OS_MACX // Following line causes bus errors on Mac 51#ifndef Q_OS_MACX // Following line causes bus errors on Mac
52
49 ::setenv( "TZ", zone.latin1(), true ); 53 ::setenv( "TZ", zone.latin1(), true );
50 ::tzset(); 54 ::tzset();
51 55
52 tm* broken = ::localtime( &t ); 56 tm* broken = ::localtime( &t );
53 ::setenv( "TZ", org, true ); 57 ::setenv( "TZ", org, true );
54#else 58#else
55#warning "Need a replacement for MacOSX!!" 59#warning "Need a replacement for MacOSX!!"
60
56 tm* broken = ::localtime( &t ); 61 tm* broken = ::localtime( &t );
57#endif 62#endif
58 63
59 QDateTime ret; 64 QDateTime ret;
60 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) ); 65 ret.setDate( QDate( broken->tm_year + 1900, broken->tm_mon +1, broken->tm_mday ) );
61 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) ); 66 ret.setTime( QTime( broken->tm_hour, broken->tm_min, broken->tm_sec ) );
62 67
63 return ret; 68 return ret;
64 } 69 }
65 time_t to_Time_t( const QDateTime& utc, const QString& str ) { 70time_t to_Time_t( const QDateTime& utc, const QString& str )
71{
66 QDate d = utc.date(); 72 QDate d = utc.date();
67 QTime t = utc.time(); 73 QTime t = utc.time();
68 74
69 tm broken; 75 tm broken;
70 broken.tm_year = d.year() - 1900; 76 broken.tm_year = d.year() - 1900;
71 broken.tm_mon = d.month() - 1; 77 broken.tm_mon = d.month() - 1;
72 broken.tm_mday = d.day(); 78 broken.tm_mday = d.day();
73 broken.tm_hour = t.hour(); 79 broken.tm_hour = t.hour();
74 broken.tm_min = t.minute(); 80 broken.tm_min = t.minute();
75 broken.tm_sec = t.second(); 81 broken.tm_sec = t.second();
76 82
77 QCString org = ::getenv( "TZ" ); 83 QCString org = ::getenv( "TZ" );
78#ifndef Q_OS_MACX // Following line causes bus errors on Mac 84#ifndef Q_OS_MACX // Following line causes bus errors on Mac
85
79 ::setenv( "TZ", str.latin1(), true ); 86 ::setenv( "TZ", str.latin1(), true );
80 ::tzset(); 87 ::tzset();
81 88
82 time_t ti = ::mktime( &broken ); 89 time_t ti = ::mktime( &broken );
83 ::setenv( "TZ", org, true ); 90 ::setenv( "TZ", org, true );
84#else 91#else
85#warning "Need a replacement for MacOSX!!" 92#warning "Need a replacement for MacOSX!!"
93
86 time_t ti = ::mktime( &broken ); 94 time_t ti = ::mktime( &broken );
87#endif 95#endif
96
88 return ti; 97 return ti;
89 } 98 }
90} 99}
91 100
92namespace Opie { 101namespace Opie
102{
93OTimeZone::OTimeZone( const ZoneName& zone ) 103OTimeZone::OTimeZone( const ZoneName& zone )
94 : m_name(zone) { 104 : m_name( zone )
95} 105{}
96OTimeZone::~OTimeZone() { 106
97} 107
108OTimeZone::~OTimeZone()
109{}
98 110
99bool OTimeZone::isValid()const { 111
112bool OTimeZone::isValid() const
113{
100 return !m_name.isEmpty(); 114 return !m_name.isEmpty();
101} 115}
102 116
103/* 117/*
104 * we will get the current timezone 118 * we will get the current timezone
105 * and ask it to convert to the timezone date 119 * and ask it to convert to the timezone date
106 */ 120 */
107QDateTime OTimeZone::toLocalDateTime( const QDateTime& dt) { 121QDateTime OTimeZone::toLocalDateTime( const QDateTime& dt )
122{
108 return OTimeZone::current().toDateTime( dt, *this ); 123 return OTimeZone::current().toDateTime( dt, *this );
109} 124}
110QDateTime OTimeZone::toUTCDateTime( const QDateTime& dt ) { 125
126
127QDateTime OTimeZone::toUTCDateTime( const QDateTime& dt )
128{
111 return OTimeZone::utc().toDateTime( dt, *this ); 129 return OTimeZone::utc().toDateTime( dt, *this );
112} 130}
113QDateTime OTimeZone::fromUTCDateTime( time_t t) { 131
132
133QDateTime OTimeZone::fromUTCDateTime( time_t t )
134{
114 return utcTime( t ); 135 return utcTime( t );
115} 136}
116QDateTime OTimeZone::toDateTime( time_t t) { 137
138
139QDateTime OTimeZone::toDateTime( time_t t )
140{
117 return utcTime( t, m_name ); 141 return utcTime( t, m_name );
118} 142}
143
144
119/* 145/*
120 * convert dt to utc using zone.m_name 146 * convert dt to utc using zone.m_name
121 * convert utc -> timeZoneDT using this->m_name 147 * convert utc -> timeZoneDT using this->m_name
122 */ 148 */
123QDateTime OTimeZone::toDateTime( const QDateTime& dt, const OTimeZone& zone ) { 149QDateTime OTimeZone::toDateTime( const QDateTime& dt, const OTimeZone& zone )
150{
124 time_t utc = to_Time_t( dt, zone.m_name ); 151 time_t utc = to_Time_t( dt, zone.m_name );
125 qWarning("%d %s", utc, zone.m_name.latin1() ); 152 qWarning("%d %s", utc, zone.m_name.latin1() );
126 return utcTime( utc, m_name ); 153 return utcTime( utc, m_name );
127} 154}
128time_t OTimeZone::fromDateTime( const QDateTime& time ) { 155
156
157time_t OTimeZone::fromDateTime( const QDateTime& time )
158{
129 return to_Time_t( time, m_name ); 159 return to_Time_t( time, m_name );
130} 160}
131time_t OTimeZone::fromUTCDateTime( const QDateTime& time ) { 161
162
163time_t OTimeZone::fromUTCDateTime( const QDateTime& time )
164{
132 return to_Time_t( time, "UTC" ); 165 return to_Time_t( time, "UTC" );
133} 166}
134OTimeZone OTimeZone::current() { 167
168
169OTimeZone OTimeZone::current()
170{
135 QCString str = ::getenv("TZ"); 171 QCString str = ::getenv("TZ");
136 OTimeZone zone( str ); 172 OTimeZone zone( str );
137 return zone; 173 return zone;
138} 174}
139OTimeZone OTimeZone::utc() { 175
176
177OTimeZone OTimeZone::utc()
178{
140 return OTimeZone("UTC"); 179 return OTimeZone("UTC");
141} 180}
142QString OTimeZone::timeZone()const { 181
182
183QString OTimeZone::timeZone() const
184{
143 return m_name; 185 return m_name;
144} 186}
145 187
146} 188}
diff --git a/libopie2/opiepim/core/otimezone.h b/libopie2/opiepim/core/otimezone.h
index 28ae6cb..f0b4022 100644
--- a/libopie2/opiepim/core/otimezone.h
+++ b/libopie2/opiepim/core/otimezone.h
@@ -18,39 +18,43 @@
18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.= = ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++= -. .` .: details. 20++= -. .` .: details.
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef OPIE_TIME_ZONE_H 30#ifndef OTIMEZONE_H
31#define OPIE_TIME_ZONE_H 31#define OTIMEZONE_H
32 32
33#include <time.h> 33/* QT */
34#include <qdatetime.h> 34#include <qdatetime.h>
35 35
36/* STD */
37#include <time.h>
38
36namespace Opie 39namespace Opie
37{ 40{
38/** 41/**
39 * A very primitive class to convert time 42 * A very primitive class to convert time
40 * from one timezone to another 43 * from one timezone to another
41 * and to localtime 44 * and to localtime
42 * and time_t 45 * and time_t
43 */ 46 */
44class OTimeZone { 47class OTimeZone {
48
45 public: 49 public:
46 typedef QString ZoneName; 50 typedef QString ZoneName;
47 OTimeZone( const ZoneName& = ZoneName::null ); 51 OTimeZone( const ZoneName& = ZoneName::null );
48 virtual ~OTimeZone(); // just in case. 52 virtual ~OTimeZone(); // just in case.
49 53
50 bool isValid()const; 54 bool isValid()const;
51 55
52 /** 56 /**
53 * converts the QDateTime to a DateTime 57 * converts the QDateTime to a DateTime
54 * in the local timezone 58 * in the local timezone
55 * if QDateTime is 25th Jan and takes place in Europe/Berlin at 12h 59 * if QDateTime is 25th Jan and takes place in Europe/Berlin at 12h
56 * and the current timezone is Europe/London the returned 60 * and the current timezone is Europe/London the returned
@@ -83,20 +87,21 @@ class OTimeZone {
83 */ 87 */
84 time_t fromDateTime( const QDateTime& ); 88 time_t fromDateTime( const QDateTime& );
85 89
86 /** 90 /**
87 * converts the datetime with timezone UTC 91 * converts the datetime with timezone UTC
88 */ 92 */
89 time_t fromUTCDateTime( const QDateTime& ); 93 time_t fromUTCDateTime( const QDateTime& );
90 94
91 static OTimeZone current(); 95 static OTimeZone current();
92 static OTimeZone utc(); 96 static OTimeZone utc();
93 97
94 QString timeZone()const; 98 QString timeZone()const;
99
95 private: 100 private:
96 ZoneName m_name; 101 ZoneName m_name;
97 class Private; 102 class Private;
98 Private* d; 103 Private* d;
99}; 104};
100}; 105};
101 106
102#endif 107#endif