summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/formatfactory.cpp5
-rw-r--r--kmicromail/libmailwrapper/settings.cpp1
-rw-r--r--korganizer/koagendaitem.cpp2
-rw-r--r--korganizer/korganizer.pro2
-rw-r--r--libkcal/calendar.cpp1
-rw-r--r--libkcal/event.cpp6
-rw-r--r--libkcal/todo.cpp4
-rw-r--r--libkdepim/ksyncmanager.cpp7
-rw-r--r--libkdepim/phoneaccess.cpp2
-rw-r--r--microkde/kapplication.cpp3
-rw-r--r--microkde/kdecore/klibloader.cpp14
-rw-r--r--microkde/kdeui/ktoolbar.cpp2
-rw-r--r--microkde/kdeui/ktoolbar.h2
13 files changed, 21 insertions, 30 deletions
diff --git a/kabc/formatfactory.cpp b/kabc/formatfactory.cpp
index f2f03c6..3ae1c27 100644
--- a/kabc/formatfactory.cpp
+++ b/kabc/formatfactory.cpp
@@ -1,180 +1,181 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org> 3 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <kdebug.h> 21#include <kdebug.h>
22#include <klocale.h> 22#include <klocale.h>
23#include <ksimpleconfig.h> 23#include <ksimpleconfig.h>
24#include <kstandarddirs.h> 24#include <kstandarddirs.h>
25#include <kstaticdeleter.h> 25#include <kstaticdeleter.h>
26 26
27#include <qfile.h> 27#include <qfile.h>
28#include <qstringlist.h> 28#include <qstringlist.h>
29 29
30#include "vcardformatplugin.h" 30#include "vcardformatplugin.h"
31 31
32#include "formatfactory.h" 32#include "formatfactory.h"
33 33
34using namespace KABC; 34using namespace KABC;
35 35
36FormatFactory *FormatFactory::mSelf = 0; 36FormatFactory *FormatFactory::mSelf = 0;
37static KStaticDeleter<FormatFactory> factoryDeleter; 37static KStaticDeleter<FormatFactory> factoryDeleter;
38 38
39FormatFactory *FormatFactory::self() 39FormatFactory *FormatFactory::self()
40{ 40{
41 if ( !mSelf ) { 41 if ( !mSelf ) {
42//US factoryDeleter.setObject( mSelf, new FormatFactory ); 42//US factoryDeleter.setObject( mSelf, new FormatFactory );
43 mSelf = factoryDeleter.setObject( new FormatFactory ); 43 mSelf = factoryDeleter.setObject( new FormatFactory );
44 } 44 }
45 return mSelf; 45 return mSelf;
46} 46}
47 47
48FormatFactory::FormatFactory() 48FormatFactory::FormatFactory()
49{ 49{
50 mFormatList.setAutoDelete( true ); 50 mFormatList.setAutoDelete( true );
51 51
52 // dummy entry for default format 52 // dummy entry for default format
53 FormatInfo *info = new FormatInfo; 53 FormatInfo *info = new FormatInfo;
54 info->library = "<NoLibrary>"; 54 info->library = "<NoLibrary>";
55 info->nameLabel = i18n( "vCard" ); 55 info->nameLabel = i18n( "vCard" );
56 info->descriptionLabel = i18n( "vCard Format" ); 56 info->descriptionLabel = i18n( "vCard Format" );
57 mFormatList.insert( "vcard", info ); 57 mFormatList.insert( "vcard", info );
58 58
59/*US lets enter all resources directly instead of using teh desktopfiles. 59#if 0
60US lets enter all resources directly instead of using teh desktopfiles.
60 61
61 QStringList list = KGlobal::dirs()->findAllResources( "data" ,"kabc/formats/*.desktop", true, true ); 62 QStringList list = KGlobal::dirs()->findAllResources( "data" ,"kabc/formats/*.desktop", true, true );
62 for ( QStringList::ConstIterator it = list.begin(); it != list.end(); ++it ) 63 for ( QStringList::ConstIterator it = list.begin(); it != list.end(); ++it )
63 { 64 {
64//US KSimpleConfig config( *it, true ); 65//US KSimpleConfig config( *it, true );
65 KConfig config( *it ); 66 KConfig config( *it );
66 67
67 if ( !config.hasGroup( "Misc" ) || !config.hasGroup( "Plugin" ) ) 68 if ( !config.hasGroup( "Misc" ) || !config.hasGroup( "Plugin" ) )
68 continue; 69 continue;
69 70
70 info = new FormatInfo; 71 info = new FormatInfo;
71 72
72 config.setGroup( "Plugin" ); 73 config.setGroup( "Plugin" );
73 QString type = config.readEntry( "Type" ); 74 QString type = config.readEntry( "Type" );
74 info->library = config.readEntry( "X-KDE-Library" ); 75 info->library = config.readEntry( "X-KDE-Library" );
75 76
76 config.setGroup( "Misc" ); 77 config.setGroup( "Misc" );
77 info->nameLabel = config.readEntry( "Name" ); 78 info->nameLabel = config.readEntry( "Name" );
78 info->descriptionLabel = config.readEntry( "Comment", i18n( "No description available." ) ); 79 info->descriptionLabel = config.readEntry( "Comment", i18n( "No description available." ) );
79 80
80 mFormatList.insert( type, info ); 81 mFormatList.insert( type, info );
81 } 82 }
82*/ 83#endif
83 //US we already have vcard as default format. 84 //US we already have vcard as default format.
84 info = new FormatInfo; 85 info = new FormatInfo;
85 info->library = i18n("microkabcformat_binary"); 86 info->library = i18n("microkabcformat_binary");
86 info->nameLabel = i18n( "Binary" ); 87 info->nameLabel = i18n( "Binary" );
87 info->descriptionLabel = i18n( "No description available." ); 88 info->descriptionLabel = i18n( "No description available." );
88 mFormatList.insert( "binary", info ); 89 mFormatList.insert( "binary", info );
89 90
90} 91}
91 92
92FormatFactory::~FormatFactory() 93FormatFactory::~FormatFactory()
93{ 94{
94 mFormatList.clear(); 95 mFormatList.clear();
95} 96}
96 97
97QStringList FormatFactory::formats() 98QStringList FormatFactory::formats()
98{ 99{
99 QStringList retval; 100 QStringList retval;
100 101
101 // make sure 'vcard' is the first entry 102 // make sure 'vcard' is the first entry
102 retval << "vcard"; 103 retval << "vcard";
103 104
104 QDictIterator<FormatInfo> it( mFormatList ); 105 QDictIterator<FormatInfo> it( mFormatList );
105 for ( ; it.current(); ++it ) 106 for ( ; it.current(); ++it )
106 if ( it.currentKey() != "vcard" ) 107 if ( it.currentKey() != "vcard" )
107 retval << it.currentKey(); 108 retval << it.currentKey();
108 109
109 return retval; 110 return retval;
110} 111}
111 112
112FormatInfo *FormatFactory::info( const QString &type ) 113FormatInfo *FormatFactory::info( const QString &type )
113{ 114{
114 if ( type.isEmpty() ) 115 if ( type.isEmpty() )
115 return 0; 116 return 0;
116 else 117 else
117 return mFormatList[ type ]; 118 return mFormatList[ type ];
118} 119}
119 120
120FormatPlugin *FormatFactory::format( const QString& type ) 121FormatPlugin *FormatFactory::format( const QString& type )
121{ 122{
122 FormatPlugin *format = 0; 123 FormatPlugin *format = 0;
123 124
124 if ( type.isEmpty() ) 125 if ( type.isEmpty() )
125 return 0; 126 return 0;
126 127
127 if ( type == "vcard" ) { 128 if ( type == "vcard" ) {
128 format = new VCardFormatPlugin; 129 format = new VCardFormatPlugin;
129 format->setType( type ); 130 format->setType( type );
130 format->setNameLabel( i18n( "vCard" ) ); 131 format->setNameLabel( i18n( "vCard" ) );
131 format->setDescriptionLabel( i18n( "vCard Format" ) ); 132 format->setDescriptionLabel( i18n( "vCard Format" ) );
132 return format; 133 return format;
133 } 134 }
134 135
135 FormatInfo *fi = mFormatList[ type ]; 136 FormatInfo *fi = mFormatList[ type ];
136 if (!fi) 137 if (!fi)
137 return 0; 138 return 0;
138 QString libName = fi->library; 139 QString libName = fi->library;
139#ifndef DESKTOP_VERSION 140#ifndef DESKTOP_VERSION
140 KLibrary *library = openLibrary( libName ); 141 KLibrary *library = openLibrary( libName );
141 if ( !library ) 142 if ( !library )
142 return 0; 143 return 0;
143 144
144 void *format_func = library->symbol( "format"); 145 void *format_func = library->symbol( "format");
145 146
146 if ( format_func ) { 147 if ( format_func ) {
147 format = ((FormatPlugin* (*)())format_func)(); 148 format = ((FormatPlugin* (*)())format_func)();
148 format->setType( type ); 149 format->setType( type );
149 format->setNameLabel( fi->nameLabel ); 150 format->setNameLabel( fi->nameLabel );
150 format->setDescriptionLabel( fi->descriptionLabel ); 151 format->setDescriptionLabel( fi->descriptionLabel );
151 } else { 152 } else {
152 kdDebug( 5700 ) << "'" << libName << "' is not a format plugin." << endl; 153 kdDebug( 5700 ) << "'" << libName << "' is not a format plugin." << endl;
153 return 0; 154 return 0;
154 } 155 }
155#endif 156#endif
156 return format; 157 return format;
157} 158}
158 159
159#ifndef DESKTOP_VERSION 160#ifndef DESKTOP_VERSION
160KLibrary *FormatFactory::openLibrary( const QString& libName ) 161KLibrary *FormatFactory::openLibrary( const QString& libName )
161{ 162{
162 KLibrary *library = 0; 163 KLibrary *library = 0;
163 164
164 QString path = KLibLoader::findLibrary( QFile::encodeName( libName ) ); 165 QString path = KLibLoader::findLibrary( QFile::encodeName( libName ) );
165 166
166 if ( path.isEmpty() ) { 167 if ( path.isEmpty() ) {
167 kdDebug( 5700 ) << "No format plugin library was found!" << endl; 168 kdDebug( 5700 ) << "No format plugin library was found!" << endl;
168 return 0; 169 return 0;
169 } 170 }
170 171
171 library = KLibLoader::self()->library( QFile::encodeName( path ) ); 172 library = KLibLoader::self()->library( QFile::encodeName( path ) );
172 173
173 if ( !library ) { 174 if ( !library ) {
174 kdDebug( 5700 ) << "Could not load library '" << libName << "'" << endl; 175 kdDebug( 5700 ) << "Could not load library '" << libName << "'" << endl;
175 return 0; 176 return 0;
176 } 177 }
177 178
178 return library; 179 return library;
179} 180}
180#endif 181#endif
diff --git a/kmicromail/libmailwrapper/settings.cpp b/kmicromail/libmailwrapper/settings.cpp
index 8f909f9..9436d43 100644
--- a/kmicromail/libmailwrapper/settings.cpp
+++ b/kmicromail/libmailwrapper/settings.cpp
@@ -1,314 +1,313 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <qdir.h> 2#include <qdir.h>
3 3
4#include <qtextcodec.h> 4#include <qtextcodec.h>
5#include <qtextstream.h> 5#include <qtextstream.h>
6#include <qfile.h> 6#include <qfile.h>
7 7
8//#include <opie2/odebug.h> 8//#include <opie2/odebug.h>
9#include <kconfig.h> 9#include <kconfig.h>
10 10
11#include <kstandarddirs.h> 11#include <kstandarddirs.h>
12#include "settings.h" 12#include "settings.h"
13//#include "defines.h" 13//#include "defines.h"
14 14
15#define IMAP_PORT "143" 15#define IMAP_PORT "143"
16#define IMAP_SSL_PORT "993" 16#define IMAP_SSL_PORT "993"
17#define SMTP_PORT "25" 17#define SMTP_PORT "25"
18#define SMTP_SSL_PORT "465" 18#define SMTP_SSL_PORT "465"
19#define POP3_PORT "110" 19#define POP3_PORT "110"
20#define POP3_SSL_PORT "995" 20#define POP3_SSL_PORT "995"
21#define NNTP_PORT "119" 21#define NNTP_PORT "119"
22#define NNTP_SSL_PORT "563" 22#define NNTP_SSL_PORT "563"
23 23
24 24
25Settings::Settings() 25Settings::Settings()
26 : QObject() 26 : QObject()
27{ 27{
28 accounts.setAutoDelete( true ); ; 28 accounts.setAutoDelete( true ); ;
29 updateAccounts(); 29 updateAccounts();
30 //qDebug("++++++++++++++++++new settings "); 30 //qDebug("++++++++++++++++++new settings ");
31} 31}
32 32
33void Settings::checkDirectory() 33void Settings::checkDirectory()
34{ 34{
35 return; 35 return;
36 locateLocal("data", "kopiemail" ); 36 locateLocal("data", "kopiemail" );
37 /* 37 /*
38 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) { 38 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) {
39 system( "mkdir -p $HOME/Applications/opiemail" ); 39 system( "mkdir -p $HOME/Applications/opiemail" );
40 qDebug("$HOME/Applications/opiemail created "); 40 qDebug("$HOME/Applications/opiemail created ");
41 } 41 }
42 */ 42 */
43} 43}
44 44
45QList<Account> Settings::getAccounts() 45QList<Account> Settings::getAccounts()
46{ 46{
47 return accounts; 47 return accounts;
48} 48}
49 49
50void Settings::addAccount( Account *account ) 50void Settings::addAccount( Account *account )
51{ 51{
52 accounts.append( account ); 52 accounts.append( account );
53} 53}
54 54
55void Settings::delAccount( Account *account ) 55void Settings::delAccount( Account *account )
56{ 56{
57 account->remove(); 57 account->remove();
58 accounts.remove( account ); 58 accounts.remove( account );
59} 59}
60 60
61void Settings::updateAccounts() 61void Settings::updateAccounts()
62{ 62{
63 accounts.clear(); 63 accounts.clear();
64 QDir dir( locateLocal("data", "kopiemail" ) ); 64 QDir dir( locateLocal("data", "kopiemail" ) );
65 QStringList::Iterator it; 65 QStringList::Iterator it;
66 66
67 QStringList imap = dir.entryList( "imap-*" ); 67 QStringList imap = dir.entryList( "imap-*" );
68 for ( it = imap.begin(); it != imap.end(); it++ ) { 68 for ( it = imap.begin(); it != imap.end(); it++ ) {
69 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") ); 69 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") );
70 accounts.append( account ); 70 accounts.append( account );
71 } 71 }
72 72
73 QStringList pop3 = dir.entryList( "pop3-*" ); 73 QStringList pop3 = dir.entryList( "pop3-*" );
74 for ( it = pop3.begin(); it != pop3.end(); it++ ) { 74 for ( it = pop3.begin(); it != pop3.end(); it++ ) {
75 POP3account *account = new POP3account( (*it).replace(0, 5, "") ); 75 POP3account *account = new POP3account( (*it).replace(0, 5, "") );
76 accounts.append( account ); 76 accounts.append( account );
77 } 77 }
78 78
79 QStringList smtp = dir.entryList( "smtp-*" ); 79 QStringList smtp = dir.entryList( "smtp-*" );
80 for ( it = smtp.begin(); it != smtp.end(); it++ ) { 80 for ( it = smtp.begin(); it != smtp.end(); it++ ) {
81 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") ); 81 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") );
82 accounts.append( account ); 82 accounts.append( account );
83 } 83 }
84 84
85 QStringList nntp = dir.entryList( "nntp-*" ); 85 QStringList nntp = dir.entryList( "nntp-*" );
86 for ( it = nntp.begin(); it != nntp.end(); it++ ) { 86 for ( it = nntp.begin(); it != nntp.end(); it++ ) {
87 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") ); 87 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") );
88 accounts.append( account ); 88 accounts.append( account );
89 } 89 }
90 90
91 readAccounts(); 91 readAccounts();
92} 92}
93 93
94void Settings::saveAccounts() 94void Settings::saveAccounts()
95{ 95{
96 checkDirectory(); 96 checkDirectory();
97 Account *it; 97 Account *it;
98 98
99 for ( it = accounts.first(); it; it = accounts.next() ) { 99 for ( it = accounts.first(); it; it = accounts.next() ) {
100 it->save(); 100 it->save();
101 } 101 }
102} 102}
103 103
104void Settings::readAccounts() 104void Settings::readAccounts()
105{ 105{
106 checkDirectory(); 106 checkDirectory();
107 Account *it; 107 Account *it;
108 108
109 for ( it = accounts.first(); it; it = accounts.next() ) { 109 for ( it = accounts.first(); it; it = accounts.next() ) {
110 it->read(); 110 it->read();
111 } 111 }
112} 112}
113 113
114Account::Account() 114Account::Account()
115{ 115{
116 accountName = "changeMe"; 116 accountName = "changeMe";
117 type = MAILLIB::A_UNDEFINED; 117 type = MAILLIB::A_UNDEFINED;
118 ssl = false; 118 ssl = false;
119 connectionType = 1; 119 connectionType = 1;
120 offline = false; 120 offline = false;
121 maxMailSize = 0; 121 maxMailSize = 0;
122 lastFetch;
123 leaveOnServer = false; 122 leaveOnServer = false;
124} 123}
125 124
126void Account::remove() 125void Account::remove()
127{ 126{
128 QFile file( getFileName() ); 127 QFile file( getFileName() );
129 file.remove(); 128 file.remove();
130} 129}
131 130
132void Account::setPasswordList(const QStringList &str) 131void Account::setPasswordList(const QStringList &str)
133{ 132{
134 password = ""; 133 password = "";
135 int i; 134 int i;
136 for ( i = 0; i < str.count() ; ++i ) { 135 for ( i = 0; i < str.count() ; ++i ) {
137 QChar c ( (str[i].toUInt()-131)/(str.count()- (i%3))); 136 QChar c ( (str[i].toUInt()-131)/(str.count()- (i%3)));
138 password.append( c ); 137 password.append( c );
139 } 138 }
140 //qDebug("password %s ", password.latin1()); 139 //qDebug("password %s ", password.latin1());
141} 140}
142QStringList Account::getPasswordList() 141QStringList Account::getPasswordList()
143{ 142{
144 int i; 143 int i;
145 int len = password.length(); 144 int len = password.length();
146 QStringList str; 145 QStringList str;
147 146
148 for ( i = 0; i < len ; ++i ) { 147 for ( i = 0; i < len ; ++i ) {
149 int val = password.at(i).unicode()*(len-(i%3))+131; 148 int val = password.at(i).unicode()*(len-(i%3))+131;
150 str.append( QString::number( val ) ); 149 str.append( QString::number( val ) );
151 // qDebug("append %s ", str[i].latin1()); 150 // qDebug("append %s ", str[i].latin1());
152 } 151 }
153 return str; 152 return str;
154} 153}
155 154
156IMAPaccount::IMAPaccount() 155IMAPaccount::IMAPaccount()
157 : Account() 156 : Account()
158{ 157{
159 file = IMAPaccount::getUniqueFileName(); 158 file = IMAPaccount::getUniqueFileName();
160 accountName = "New IMAP Account"; 159 accountName = "New IMAP Account";
161 ssl = false; 160 ssl = false;
162 connectionType = 1; 161 connectionType = 1;
163 type = MAILLIB::A_IMAP; 162 type = MAILLIB::A_IMAP;
164 port = IMAP_PORT; 163 port = IMAP_PORT;
165} 164}
166 165
167IMAPaccount::IMAPaccount( QString filename ) 166IMAPaccount::IMAPaccount( QString filename )
168 : Account() 167 : Account()
169{ 168{
170 file = filename; 169 file = filename;
171 accountName = "New IMAP Account"; 170 accountName = "New IMAP Account";
172 ssl = false; 171 ssl = false;
173 connectionType = 1; 172 connectionType = 1;
174 type = MAILLIB::A_IMAP; 173 type = MAILLIB::A_IMAP;
175 port = IMAP_PORT; 174 port = IMAP_PORT;
176} 175}
177 176
178QString IMAPaccount::getUniqueFileName() 177QString IMAPaccount::getUniqueFileName()
179{ 178{
180 int num = 0; 179 int num = 0;
181 QString unique; 180 QString unique;
182 181
183 QDir dir( locateLocal("data", "kopiemail" ) ); 182 QDir dir( locateLocal("data", "kopiemail" ) );
184 183
185 QStringList imap = dir.entryList( "imap-*" ); 184 QStringList imap = dir.entryList( "imap-*" );
186 do { 185 do {
187 unique.setNum( num++ ); 186 unique.setNum( num++ );
188 } while ( imap.contains( "imap-" + unique ) > 0 ); 187 } while ( imap.contains( "imap-" + unique ) > 0 );
189 188
190 return unique; 189 return unique;
191} 190}
192 191
193void IMAPaccount::read() 192void IMAPaccount::read()
194{ 193{
195 KConfig *conf = new KConfig( getFileName() ); 194 KConfig *conf = new KConfig( getFileName() );
196 conf->setGroup( "IMAP Account" ); 195 conf->setGroup( "IMAP Account" );
197 accountName = conf->readEntry( "Account","" ); 196 accountName = conf->readEntry( "Account","" );
198 if (accountName.isNull()) accountName = ""; 197 if (accountName.isNull()) accountName = "";
199 server = conf->readEntry( "Server","" ); 198 server = conf->readEntry( "Server","" );
200 if (server.isNull()) server=""; 199 if (server.isNull()) server="";
201 port = conf->readEntry( "Port","" ); 200 port = conf->readEntry( "Port","" );
202 if (port.isNull()) port="143"; 201 if (port.isNull()) port="143";
203 connectionType = conf->readNumEntry( "ConnectionType" ); 202 connectionType = conf->readNumEntry( "ConnectionType" );
204 ssl = conf->readBoolEntry( "SSL",false ); 203 ssl = conf->readBoolEntry( "SSL",false );
205 user = conf->readEntry( "User","" ); 204 user = conf->readEntry( "User","" );
206 if (user.isNull()) user = ""; 205 if (user.isNull()) user = "";
207 //password = conf->readEntryCrypt( "Password","" ); 206 //password = conf->readEntryCrypt( "Password","" );
208 setPasswordList( conf->readListEntry( "FolderHistory")); 207 setPasswordList( conf->readListEntry( "FolderHistory"));
209 if (password.isNull()) password = ""; 208 if (password.isNull()) password = "";
210 prefix = conf->readEntry("MailPrefix",""); 209 prefix = conf->readEntry("MailPrefix","");
211 if (prefix.isNull()) prefix = ""; 210 if (prefix.isNull()) prefix = "";
212 offline = conf->readBoolEntry("Offline",false); 211 offline = conf->readBoolEntry("Offline",false);
213 localFolder = conf->readEntry( "LocalFolder" ); 212 localFolder = conf->readEntry( "LocalFolder" );
214 maxMailSize = conf->readNumEntry( "MaxSize",0 ); 213 maxMailSize = conf->readNumEntry( "MaxSize",0 );
215 int lf = conf->readNumEntry( "LastFetch",0 ); 214 int lf = conf->readNumEntry( "LastFetch",0 );
216 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) ); 215 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
217 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false); 216 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false);
218 if ( lf < 0 ) lf = 0; 217 if ( lf < 0 ) lf = 0;
219 lastFetch = dt.addSecs( lf ); 218 lastFetch = dt.addSecs( lf );
220 delete conf; 219 delete conf;
221} 220}
222 221
223void IMAPaccount::save() 222void IMAPaccount::save()
224{ 223{
225 224
226 Settings::checkDirectory(); 225 Settings::checkDirectory();
227 226
228 KConfig *conf = new KConfig( getFileName() ); 227 KConfig *conf = new KConfig( getFileName() );
229 conf->setGroup( "IMAP Account" ); 228 conf->setGroup( "IMAP Account" );
230 conf->writeEntry( "Account", accountName ); 229 conf->writeEntry( "Account", accountName );
231 conf->writeEntry( "Server", server ); 230 conf->writeEntry( "Server", server );
232 conf->writeEntry( "Port", port ); 231 conf->writeEntry( "Port", port );
233 conf->writeEntry( "SSL", ssl ); 232 conf->writeEntry( "SSL", ssl );
234 conf->writeEntry( "ConnectionType", connectionType ); 233 conf->writeEntry( "ConnectionType", connectionType );
235 conf->writeEntry( "User", user ); 234 conf->writeEntry( "User", user );
236 //conf->writeEntryCrypt( "Password", password ); 235 //conf->writeEntryCrypt( "Password", password );
237 conf->writeEntry( "FolderHistory",getPasswordList() ); 236 conf->writeEntry( "FolderHistory",getPasswordList() );
238 conf->writeEntry( "MailPrefix",prefix); 237 conf->writeEntry( "MailPrefix",prefix);
239 conf->writeEntry( "Offline",offline); 238 conf->writeEntry( "Offline",offline);
240 conf->writeEntry( "LocalFolder", localFolder ); 239 conf->writeEntry( "LocalFolder", localFolder );
241 conf->writeEntry( "MaxSize", maxMailSize ); 240 conf->writeEntry( "MaxSize", maxMailSize );
242 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) ); 241 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
243 int lf = dt.secsTo ( lastFetch ); 242 int lf = dt.secsTo ( lastFetch );
244 conf->writeEntry( "LastFetch", lf ); 243 conf->writeEntry( "LastFetch", lf );
245 conf->writeEntry( "LeaveOnServer", leaveOnServer); 244 conf->writeEntry( "LeaveOnServer", leaveOnServer);
246 conf->sync(); 245 conf->sync();
247 delete conf; 246 delete conf;
248} 247}
249 248
250 249
251QString IMAPaccount::getFileName() 250QString IMAPaccount::getFileName()
252{ 251{
253 return locateLocal("data", "kopiemail" ) +"/imap-" + file; 252 return locateLocal("data", "kopiemail" ) +"/imap-" + file;
254} 253}
255 254
256POP3account::POP3account() 255POP3account::POP3account()
257 : Account() 256 : Account()
258{ 257{
259 file = POP3account::getUniqueFileName(); 258 file = POP3account::getUniqueFileName();
260 accountName = "New POP3 Account"; 259 accountName = "New POP3 Account";
261 ssl = false; 260 ssl = false;
262 connectionType = 1; 261 connectionType = 1;
263 type = MAILLIB::A_POP3; 262 type = MAILLIB::A_POP3;
264 port = POP3_PORT; 263 port = POP3_PORT;
265} 264}
266 265
267POP3account::POP3account( QString filename ) 266POP3account::POP3account( QString filename )
268 : Account() 267 : Account()
269{ 268{
270 file = filename; 269 file = filename;
271 accountName = "New POP3 Account"; 270 accountName = "New POP3 Account";
272 ssl = false; 271 ssl = false;
273 connectionType = 1; 272 connectionType = 1;
274 type = MAILLIB::A_POP3; 273 type = MAILLIB::A_POP3;
275 port = POP3_PORT; 274 port = POP3_PORT;
276} 275}
277 276
278QString POP3account::getUniqueFileName() 277QString POP3account::getUniqueFileName()
279{ 278{
280 int num = 0; 279 int num = 0;
281 QString unique; 280 QString unique;
282 281
283 QDir dir( locateLocal("data", "kopiemail" ) ); 282 QDir dir( locateLocal("data", "kopiemail" ) );
284 283
285 QStringList imap = dir.entryList( "pop3-*" ); 284 QStringList imap = dir.entryList( "pop3-*" );
286 do { 285 do {
287 unique.setNum( num++ ); 286 unique.setNum( num++ );
288 } while ( imap.contains( "pop3-" + unique ) > 0 ); 287 } while ( imap.contains( "pop3-" + unique ) > 0 );
289 288
290 return unique; 289 return unique;
291} 290}
292 291
293void POP3account::read() 292void POP3account::read()
294{ 293{
295 KConfig *conf = new KConfig( getFileName()); 294 KConfig *conf = new KConfig( getFileName());
296 conf->setGroup( "POP3 Account" ); 295 conf->setGroup( "POP3 Account" );
297 accountName = conf->readEntry( "Account" ); 296 accountName = conf->readEntry( "Account" );
298 server = conf->readEntry( "Server" ); 297 server = conf->readEntry( "Server" );
299 port = conf->readEntry( "Port" ); 298 port = conf->readEntry( "Port" );
300 ssl = conf->readBoolEntry( "SSL" ); 299 ssl = conf->readBoolEntry( "SSL" );
301 connectionType = conf->readNumEntry( "ConnectionType" ); 300 connectionType = conf->readNumEntry( "ConnectionType" );
302 user = conf->readEntry( "User" ); 301 user = conf->readEntry( "User" );
303 //password = conf->readEntryCrypt( "Password" ); 302 //password = conf->readEntryCrypt( "Password" );
304 setPasswordList( conf->readListEntry( "FolderHistory")); 303 setPasswordList( conf->readListEntry( "FolderHistory"));
305 offline = conf->readBoolEntry("Offline",false); 304 offline = conf->readBoolEntry("Offline",false);
306 localFolder = conf->readEntry( "LocalFolder" ); 305 localFolder = conf->readEntry( "LocalFolder" );
307 maxMailSize = conf->readNumEntry( "MaxSize",0 ); 306 maxMailSize = conf->readNumEntry( "MaxSize",0 );
308 int lf = conf->readNumEntry( "LastFetch",0 ); 307 int lf = conf->readNumEntry( "LastFetch",0 );
309 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) ); 308 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
310 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false); 309 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false);
311 lastFetch = dt.addSecs( lf ); 310 lastFetch = dt.addSecs( lf );
312 delete conf; 311 delete conf;
313} 312}
314 313
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index df7d612..6a312b3 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -128,385 +128,385 @@ void KOAgendaItem::init ( Incidence *incidence, QDate qd )
128 128
129 } 129 }
130 mColorGroup = QColorGroup( mBackgroundColor.light(), 130 mColorGroup = QColorGroup( mBackgroundColor.light(),
131 mBackgroundColor.dark(),mBackgroundColor.light(), 131 mBackgroundColor.dark(),mBackgroundColor.light(),
132 mBackgroundColor.dark(),mBackgroundColor, black, mBackgroundColor) ; 132 mBackgroundColor.dark(),mBackgroundColor, black, mBackgroundColor) ;
133 setBackgroundColor( mBackgroundColor ); 133 setBackgroundColor( mBackgroundColor );
134 134
135 setCellXY(0,0,1); 135 setCellXY(0,0,1);
136 setCellXWidth(0); 136 setCellXWidth(0);
137 setSubCell(0); 137 setSubCell(0);
138 setSubCells(1); 138 setSubCells(1);
139 setMultiItem(0,0,0); 139 setMultiItem(0,0,0);
140 startMove(); 140 startMove();
141 mSelected = true; 141 mSelected = true;
142 select(false); 142 select(false);
143 QFontMetrics fontinf(KOPrefs::instance()->mAgendaViewFont); 143 QFontMetrics fontinf(KOPrefs::instance()->mAgendaViewFont);
144 mFontPixelSize = fontinf.height();; 144 mFontPixelSize = fontinf.height();;
145 hide(); 145 hide();
146 xPaintCoord = -1; 146 xPaintCoord = -1;
147 yPaintCoord = -1; 147 yPaintCoord = -1;
148} 148}
149 149
150 150
151KOAgendaItem::~KOAgendaItem() 151KOAgendaItem::~KOAgendaItem()
152{ 152{
153 // qDebug("deleteKOAgendaItem::~KOAgendaItem( "); 153 // qDebug("deleteKOAgendaItem::~KOAgendaItem( ");
154 154
155} 155}
156 156
157void KOAgendaItem::recreateIncidence() 157void KOAgendaItem::recreateIncidence()
158{ 158{
159#if 0 159#if 0
160 Incidence* newInc = mIncidence->clone(); 160 Incidence* newInc = mIncidence->clone();
161 newInc->recreate(); 161 newInc->recreate();
162 if ( mIncidence->doesRecur() ) { 162 if ( mIncidence->doesRecur() ) {
163 mIncidence->addExDate( mDate ); 163 mIncidence->addExDate( mDate );
164 newInc->recurrence()->unsetRecurs(); 164 newInc->recurrence()->unsetRecurs();
165 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd()); 165 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd());
166 QTime tim = mIncidence->dtStart().time(); 166 QTime tim = mIncidence->dtStart().time();
167 newInc->setDtStart( QDateTime(mDate, tim) ); 167 newInc->setDtStart( QDateTime(mDate, tim) );
168 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) ); 168 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) );
169 } 169 }
170#endif 170#endif
171 mIncidence = mIncidence->recreateCloneException( mDate ); 171 mIncidence = mIncidence->recreateCloneException( mDate );
172} 172}
173bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout) 173bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout)
174{ 174{
175 int size = AGENDA_ICON_SIZE; 175 int size = AGENDA_ICON_SIZE;
176 176
177 int yOff = 0; 177 int yOff = 0;
178 int xOff = 0; 178 int xOff = 0;
179 int x = pos().x() +3; 179 int x = pos().x() +3;
180 int y; 180 int y;
181 if ( mAllDay ) 181 if ( mAllDay )
182 y = pos().y()+3; 182 y = pos().y()+3;
183 else 183 else
184 y = mCellYTop * ( height() / cellHeight() ) +3; 184 y = mCellYTop * ( height() / cellHeight() ) +3;
185 if (mIncidence->cancelled()) { 185 if (mIncidence->cancelled()) {
186 int xpos = xOff*( 1 +AGENDA_ICON_SIZE )+x; 186 int xpos = xOff*( 1 +AGENDA_ICON_SIZE )+x;
187 int ypos = yOff*( 1 +AGENDA_ICON_SIZE)+y; 187 int ypos = yOff*( 1 +AGENDA_ICON_SIZE)+y;
188 p->drawLine( xpos, ypos, xpos+AGENDA_ICON_SIZE-1, ypos+AGENDA_ICON_SIZE-1 ); 188 p->drawLine( xpos, ypos, xpos+AGENDA_ICON_SIZE-1, ypos+AGENDA_ICON_SIZE-1 );
189 p->drawLine( xpos, ypos+AGENDA_ICON_SIZE-1, xpos+AGENDA_ICON_SIZE-1, ypos ); 189 p->drawLine( xpos, ypos+AGENDA_ICON_SIZE-1, xpos+AGENDA_ICON_SIZE-1, ypos );
190 if ( horLayout ) 190 if ( horLayout )
191 ++xOff; 191 ++xOff;
192 else 192 else
193 ++yOff; 193 ++yOff;
194 } 194 }
195 if (mIncidence->isAlarmEnabled()) { 195 if (mIncidence->isAlarmEnabled()) {
196 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, red ); 196 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, red );
197 if ( horLayout ) 197 if ( horLayout )
198 ++xOff; 198 ++xOff;
199 else 199 else
200 ++yOff; 200 ++yOff;
201 } 201 }
202 if (mIncidence->recurrence()->doesRecur()) { 202 if (mIncidence->recurrence()->doesRecur()) {
203 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, blue ); 203 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, blue );
204 if ( horLayout ) 204 if ( horLayout )
205 ++xOff; 205 ++xOff;
206 else 206 else
207 ++yOff; 207 ++yOff;
208 } 208 }
209 if (mIncidence->description().length() > 0) { 209 if (mIncidence->description().length() > 0) {
210 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkGreen ); 210 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkGreen );
211 if ( horLayout ) 211 if ( horLayout )
212 ++xOff; 212 ++xOff;
213 else 213 else
214 ++yOff; 214 ++yOff;
215 } 215 }
216 if (mIncidence->isReadOnly()) { 216 if (mIncidence->isReadOnly()) {
217 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, white ); 217 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, white );
218 if ( horLayout ) 218 if ( horLayout )
219 ++xOff; 219 ++xOff;
220 else 220 else
221 ++yOff; 221 ++yOff;
222 } 222 }
223 223
224 if (mIncidence->attendeeCount()>0) { 224 if (mIncidence->attendeeCount()>0) {
225 225
226 if (mIncidence->organizer() == KOPrefs::instance()->email()) { 226 if (mIncidence->organizer() == KOPrefs::instance()->email()) {
227 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, black ); 227 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, black );
228 if ( horLayout ) 228 if ( horLayout )
229 ++xOff; 229 ++xOff;
230 else 230 else
231 ++yOff; 231 ++yOff;
232 } else { 232 } else {
233 Attendee *me = mIncidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email()); 233 Attendee *me = mIncidence->attendeeByMails(KOPrefs::instance()->mAdditionalMails,KOPrefs::instance()->email());
234 if (me!=0) { 234 if (me!=0) {
235 235
236 236
237 } else { 237 } else {
238 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, yellow ); 238 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, yellow );
239 if ( horLayout ) 239 if ( horLayout )
240 ++xOff; 240 ++xOff;
241 else 241 else
242 ++yOff; 242 ++yOff;
243 243
244 } 244 }
245 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkYellow ); 245 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, darkYellow );
246 if ( horLayout ) 246 if ( horLayout )
247 ++xOff; 247 ++xOff;
248 else 248 else
249 ++yOff; 249 ++yOff;
250 250
251 } 251 }
252 252
253 } 253 }
254 return ( yOff || xOff ); 254 return ( yOff || xOff );
255} 255}
256 256
257 257
258void KOAgendaItem::select(bool selected) 258void KOAgendaItem::select(bool selected)
259{ 259{
260 //qDebug("select %d %d",firstMultiItem(), nextMultiItem() ); 260 //qDebug("select %d %d",firstMultiItem(), nextMultiItem() );
261 if (mSelected == selected) return; 261 if (mSelected == selected) return;
262 mSelected = selected; 262 mSelected = selected;
263 if ( ! isVisible() ) 263 if ( ! isVisible() )
264 return; 264 return;
265 if ( firstMultiItem() ) 265 if ( firstMultiItem() )
266 firstMultiItem()->select( selected ); 266 firstMultiItem()->select( selected );
267 if ( !firstMultiItem() && nextMultiItem() ) { 267 if ( !firstMultiItem() && nextMultiItem() ) {
268 KOAgendaItem * placeItem = nextMultiItem(); 268 KOAgendaItem * placeItem = nextMultiItem();
269 while ( placeItem ) { 269 while ( placeItem ) {
270 placeItem->select( selected ); 270 placeItem->select( selected );
271 placeItem = placeItem->nextMultiItem(); 271 placeItem = placeItem->nextMultiItem();
272 } 272 }
273 } 273 }
274 globalFlagBlockAgendaItemUpdate = 0; 274 globalFlagBlockAgendaItemUpdate = 0;
275 paintMe( selected ); 275 paintMe( selected );
276 globalFlagBlockAgendaItemUpdate = 1; 276 globalFlagBlockAgendaItemUpdate = 1;
277 repaint( false ); 277 repaint( false );
278} 278}
279 279
280 280
281/* 281/*
282 The eventFilter has to filter the mouse events of the agenda item childs. The 282 The eventFilter has to filter the mouse events of the agenda item childs. The
283 events are fed into the event handling method of KOAgendaItem. This allows the 283 events are fed into the event handling method of KOAgendaItem. This allows the
284 KOAgenda to handle the KOAgendaItems by using an eventFilter. 284 KOAgenda to handle the KOAgendaItems by using an eventFilter.
285*/ 285*/
286bool KOAgendaItem::eventFilter ( QObject *object, QEvent *e ) 286bool KOAgendaItem::eventFilter ( QObject *object, QEvent *e )
287{ 287{
288 if (e->type() == QEvent::MouseButtonPress || 288 if (e->type() == QEvent::MouseButtonPress ||
289 e->type() == QEvent::MouseButtonDblClick || 289 e->type() == QEvent::MouseButtonDblClick ||
290 e->type() == QEvent::MouseButtonRelease || 290 e->type() == QEvent::MouseButtonRelease ||
291 e->type() == QEvent::MouseMove) { 291 e->type() == QEvent::MouseMove) {
292 QMouseEvent *me = (QMouseEvent *)e; 292 QMouseEvent *me = (QMouseEvent *)e;
293 QPoint itemPos = this->mapFromGlobal(((QWidget *)object)-> 293 QPoint itemPos = this->mapFromGlobal(((QWidget *)object)->
294 mapToGlobal(me->pos())); 294 mapToGlobal(me->pos()));
295 QMouseEvent returnEvent (e->type(),itemPos,me->button(),me->state()); 295 QMouseEvent returnEvent (e->type(),itemPos,me->button(),me->state());
296 return event(&returnEvent); 296 return event(&returnEvent);
297 } else { 297 } else {
298 return false; 298 return false;
299 } 299 }
300} 300}
301void KOAgendaItem::repaintMe( ) 301void KOAgendaItem::repaintMe( )
302{ 302{
303 paintMe ( mSelected ); 303 paintMe ( mSelected );
304} 304}
305void KOAgendaItem::paintMe( bool selected, QPainter* paint ) 305void KOAgendaItem::paintMe( bool selected, QPainter* paint )
306{ 306{
307 if ( globalFlagBlockAgendaItemUpdate && ! selected) 307 if ( globalFlagBlockAgendaItemUpdate && ! selected)
308 return; 308 return;
309 QPainter pa; 309 QPainter pa;
310 310
311 if ( mSelected ) { 311 if ( mSelected ) {
312 pa.begin( paintPixSel() ); 312 pa.begin( paintPixSel() );
313 } else { 313 } else {
314 if ( mAllDay ) 314 if ( mAllDay )
315 pa.begin( paintPixAllday() ); 315 pa.begin( paintPixAllday() );
316 else 316 else
317 pa.begin( paintPix() ); 317 pa.begin( paintPix() );
318 } 318 }
319 int x, yy, w, h; 319 int x, yy, w, h;
320 float nfh; 320 float nfh = 7.0;
321 x = pos().x(); w = width(); h = height (); 321 x = pos().x(); w = width(); h = height ();
322 if ( mAllDay ) 322 if ( mAllDay )
323 yy = y(); 323 yy = y();
324 else 324 else
325 yy = mCellYTop * ( height() / cellHeight() ); 325 yy = mCellYTop * ( height() / cellHeight() );
326 xPaintCoord= x; 326 xPaintCoord= x;
327 yPaintCoord = yy; 327 yPaintCoord = yy;
328 wPaintCoord = width(); 328 wPaintCoord = width();
329 hPaintCoord = height(); 329 hPaintCoord = height();
330 //qDebug("paintMe %s %d %d %d %d",incidence()->summary().latin1(), x, yy, width(), height()); 330 //qDebug("paintMe %s %d %d %d %d",incidence()->summary().latin1(), x, yy, width(), height());
331 if ( paint == 0 ) 331 if ( paint == 0 )
332 paint = &pa; 332 paint = &pa;
333 bool horLayout = ( w < h ); 333 bool horLayout = ( w < h );
334 int maxhei = mFontPixelSize+4; 334 int maxhei = mFontPixelSize+4;
335 if ( horLayout ) 335 if ( horLayout )
336 maxhei += AGENDA_ICON_SIZE -4; 336 maxhei += AGENDA_ICON_SIZE -4;
337 bool small = ( h < maxhei ); 337 bool small = ( h < maxhei );
338 if ( ! small ) 338 if ( ! small )
339 paint->setFont(KOPrefs::instance()->mAgendaViewFont); 339 paint->setFont(KOPrefs::instance()->mAgendaViewFont);
340 else { 340 else {
341 QFont f = KOPrefs::instance()->mAgendaViewFont; 341 QFont f = KOPrefs::instance()->mAgendaViewFont;
342 f.setBold( false ); 342 f.setBold( false );
343 int fh = f.pointSize(); 343 int fh = f.pointSize();
344 nfh = (((float)height())/(float)(mFontPixelSize+4))*fh; 344 nfh = (((float)height())/(float)(mFontPixelSize+4))*fh;
345 if ( nfh < 6 ) 345 if ( nfh < 6 )
346 nfh = 6; 346 nfh = 6;
347 f.setPointSize( nfh ); 347 f.setPointSize( nfh );
348 paint->setFont(f); 348 paint->setFont(f);
349 } 349 }
350 paint->fillRect ( x, yy, w, h, mBackgroundColor ); 350 paint->fillRect ( x, yy, w, h, mBackgroundColor );
351 static const QPixmap completedPxmp = SmallIcon("greenhook16"); 351 static const QPixmap completedPxmp = SmallIcon("greenhook16");
352 static const QPixmap overduePxmp = SmallIcon("redcross16"); 352 static const QPixmap overduePxmp = SmallIcon("redcross16");
353 if ( mIncidence->type() == "Todo" ) { 353 if ( mIncidence->type() == "Todo" ) {
354 Todo* tempTodo = static_cast<Todo*>(mIncidence); 354 Todo* tempTodo = static_cast<Todo*>(mIncidence);
355 int xx = pos().x()+(width()-completedPxmp.width()-3 ); 355 int xx = pos().x()+(width()-completedPxmp.width()-3 );
356 int yyy = yy+3; 356 int yyy = yy+3;
357 if ( tempTodo->isCompleted() ) 357 if ( tempTodo->isCompleted() )
358 paint->drawPixmap ( xx, yyy, completedPxmp ); 358 paint->drawPixmap ( xx, yyy, completedPxmp );
359 else { 359 else {
360 paint->drawPixmap ( xx, yyy, overduePxmp ); 360 paint->drawPixmap ( xx, yyy, overduePxmp );
361 361
362 } 362 }
363 } 363 }
364 bool addIcon = false; 364 bool addIcon = false;
365 if ( ! small || w > 3 * h || h > 3* w ) 365 if ( ! small || w > 3 * h || h > 3* w )
366 addIcon = updateIcons( paint, horLayout ); 366 addIcon = updateIcons( paint, horLayout );
367 367
368 qDrawShadePanel (paint, x, yy, w, h, mColorGroup, selected , 2, 0); 368 qDrawShadePanel (paint, x, yy, w, h, mColorGroup, selected , 2, 0);
369 //qDebug("draw rect %d %d %d %d ",x, yy, w, h ); 369 //qDebug("draw rect %d %d %d %d ",x, yy, w, h );
370 if ( ! small ) { 370 if ( ! small ) {
371 x += 3; yy += 3;w -= 6; h-= 5; 371 x += 3; yy += 3;w -= 6; h-= 5;
372 } else { 372 } else {
373 x += 2; yy += 1;w -= 4; h-= 4; 373 x += 2; yy += 1;w -= 4; h-= 4;
374 if ( nfh < 6.01 ) { 374 if ( nfh < 6.01 ) {
375 yy -= 2; 375 yy -= 2;
376 h += 4; 376 h += 4;
377 } 377 }
378 else 378 else
379 if ( nfh < h -2 ) 379 if ( nfh < h -2 )
380 ++yy; 380 ++yy;
381 } 381 }
382 int align; 382 int align;
383#ifndef DESKTOP_VERSION 383#ifndef DESKTOP_VERSION
384 align = ( AlignLeft|WordBreak|AlignTop); 384 align = ( AlignLeft|WordBreak|AlignTop);
385#else 385#else
386 align = ( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 386 align = ( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
387#endif 387#endif
388 if ( addIcon ) { 388 if ( addIcon ) {
389 if ( ! horLayout ) { 389 if ( ! horLayout ) {
390 x += AGENDA_ICON_SIZE+3; 390 x += AGENDA_ICON_SIZE+3;
391 w -= (AGENDA_ICON_SIZE+3); 391 w -= (AGENDA_ICON_SIZE+3);
392 } 392 }
393 else { 393 else {
394 yy+= AGENDA_ICON_SIZE+2; 394 yy+= AGENDA_ICON_SIZE+2;
395 h -=(AGENDA_ICON_SIZE+3); 395 h -=(AGENDA_ICON_SIZE+3);
396 } 396 }
397 } 397 }
398 int colsum = mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue(); 398 int colsum = mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue();
399 if ( colsum < 250 ) 399 if ( colsum < 250 )
400 paint->setPen ( white); 400 paint->setPen ( white);
401 if ( x < 0 ) { 401 if ( x < 0 ) {
402 w = w+x-3; 402 w = w+x-3;
403 x = 3; 403 x = 3;
404 if ( w > parentWidget()->width() ){ 404 if ( w > parentWidget()->width() ){
405 w = parentWidget()->width() - 6; 405 w = parentWidget()->width() - 6;
406#ifndef DESKTOP_VERSION 406#ifndef DESKTOP_VERSION
407 align = ( AlignCenter|WordBreak); 407 align = ( AlignCenter|WordBreak);
408#else 408#else
409 align = ( AlignCenter|BreakAnywhere|WordBreak); 409 align = ( AlignCenter|BreakAnywhere|WordBreak);
410#endif 410#endif
411 411
412 } 412 }
413 } 413 }
414 QRect dr; 414 QRect dr;
415 paint->drawText ( x, yy, w, h, align, mDisplayedText, -1, &dr ); 415 paint->drawText ( x, yy, w, h, align, mDisplayedText, -1, &dr );
416 if ( mIncidence->cancelled() ){ 416 if ( mIncidence->cancelled() ){
417 if ( ! small ) { 417 if ( ! small ) {
418 QFontMetrics fm ( paint->font() ); 418 QFontMetrics fm ( paint->font() );
419 paint->drawLine(dr.left(), yy+fm.height()/2, dr.right()-2, yy+fm.height()/2); 419 paint->drawLine(dr.left(), yy+fm.height()/2, dr.right()-2, yy+fm.height()/2);
420 } 420 }
421 421
422 } 422 }
423 pa.end(); 423 pa.end();
424 424
425} 425}
426void KOAgendaItem::resizePixmap( int w , int h ) 426void KOAgendaItem::resizePixmap( int w , int h )
427{ 427{
428 paintPix()->resize( w, h ); 428 paintPix()->resize( w, h );
429 paintPixSel()->resize( w, h ); 429 paintPixSel()->resize( w, h );
430 430
431} 431}
432QPixmap * KOAgendaItem::paintPix() 432QPixmap * KOAgendaItem::paintPix()
433{ 433{
434 static QPixmap* mPaintPix = 0; 434 static QPixmap* mPaintPix = 0;
435 if ( ! mPaintPix ) 435 if ( ! mPaintPix )
436 mPaintPix = new QPixmap(1,1); 436 mPaintPix = new QPixmap(1,1);
437 return mPaintPix ; 437 return mPaintPix ;
438} 438}
439QPixmap * KOAgendaItem::paintPixAllday() 439QPixmap * KOAgendaItem::paintPixAllday()
440{ 440{
441 static QPixmap* mPaintPixA = 0; 441 static QPixmap* mPaintPixA = 0;
442 if ( ! mPaintPixA ) 442 if ( ! mPaintPixA )
443 mPaintPixA = new QPixmap(1,1); 443 mPaintPixA = new QPixmap(1,1);
444 return mPaintPixA ; 444 return mPaintPixA ;
445} 445}
446QPixmap * KOAgendaItem::paintPixSel() 446QPixmap * KOAgendaItem::paintPixSel()
447{ 447{
448 static QPixmap* mPaintPixSel = 0; 448 static QPixmap* mPaintPixSel = 0;
449 if ( ! mPaintPixSel ) 449 if ( ! mPaintPixSel )
450 mPaintPixSel = new QPixmap(1,1); 450 mPaintPixSel = new QPixmap(1,1);
451 return mPaintPixSel ; 451 return mPaintPixSel ;
452} 452}
453void KOAgendaItem::paintEvent ( QPaintEvent *e ) 453void KOAgendaItem::paintEvent ( QPaintEvent *e )
454{ 454{
455 455
456 if ( globalFlagBlockAgendaItemPaint ) 456 if ( globalFlagBlockAgendaItemPaint )
457 return; 457 return;
458 if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) 458 if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 )
459 return; 459 return;
460 int yy; 460 int yy;
461 if ( mAllDay ) 461 if ( mAllDay )
462 yy = y(); 462 yy = y();
463 else 463 else
464 yy = mCellYTop * ( height() / cellHeight() ); 464 yy = mCellYTop * ( height() / cellHeight() );
465 int xx = x(); 465 int xx = x();
466 if ( xPaintCoord != xx || yPaintCoord != yy || 466 if ( xPaintCoord != xx || yPaintCoord != yy ||
467 wPaintCoord != width() || hPaintCoord != height()) { 467 wPaintCoord != width() || hPaintCoord != height()) {
468 xPaintCoord= xx; 468 xPaintCoord= xx;
469 yPaintCoord = yy; 469 yPaintCoord = yy;
470 wPaintCoord = width(); 470 wPaintCoord = width();
471 hPaintCoord = height(); 471 hPaintCoord = height();
472 globalFlagBlockAgendaItemUpdate = 0; 472 globalFlagBlockAgendaItemUpdate = 0;
473 paintMe( mSelected ); 473 paintMe( mSelected );
474 //qDebug("calling paintMe "); 474 //qDebug("calling paintMe ");
475 globalFlagBlockAgendaItemUpdate = 1; 475 globalFlagBlockAgendaItemUpdate = 1;
476 } 476 }
477 int rx, ry, rw, rh; 477 int rx, ry, rw, rh;
478 rx = e->rect().x(); 478 rx = e->rect().x();
479 ry = e->rect().y(); 479 ry = e->rect().y();
480 rw = e->rect().width(); 480 rw = e->rect().width();
481 rh = e->rect().height(); 481 rh = e->rect().height();
482 //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height()); 482 //qDebug(" paintevent %s %d %d %d %d", mIncidence->summary().latin1(), x(), yy, width(), height());
483 483
484 QPixmap* paintFrom ; 484 QPixmap* paintFrom ;
485 if ( mSelected ) { 485 if ( mSelected ) {
486 paintFrom = paintPixSel(); 486 paintFrom = paintPixSel();
487 } else { 487 } else {
488 if ( mAllDay ) 488 if ( mAllDay )
489 paintFrom = paintPixAllday(); 489 paintFrom = paintPixAllday();
490 else 490 else
491 paintFrom = paintPix(); 491 paintFrom = paintPix();
492 } 492 }
493 bitBlt (this, rx, ry, paintFrom, x()+rx ,yPaintCoord+ry, rw, rh ,CopyROP); 493 bitBlt (this, rx, ry, paintFrom, x()+rx ,yPaintCoord+ry, rw, rh ,CopyROP);
494} 494}
495void KOAgendaItem::computeText() 495void KOAgendaItem::computeText()
496{ 496{
497 497
498 mDisplayedText = mIncidence->summary(); 498 mDisplayedText = mIncidence->summary();
499 if ( (mIncidence->type() == "Todo") ) { 499 if ( (mIncidence->type() == "Todo") ) {
500 if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) { 500 if ( static_cast<Todo*>(mIncidence)->hasDueDate() ) {
501 if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() ) 501 if ( static_cast<Todo*>(mIncidence)->dtDue().date() < QDate::currentDate() )
502 mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")"; 502 mDisplayedText += i18n(" (") +KGlobal::locale()->formatDate((static_cast<Todo*>(mIncidence))->dtDue().date(), true)+")";
503 else if ( !(mIncidence->doesFloat())) 503 else if ( !(mIncidence->doesFloat()))
504 mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")"; 504 mDisplayedText += i18n(" (") +KGlobal::locale()->formatTime((static_cast<Todo*>(mIncidence))->dtDue().time())+")";
505 } 505 }
506 } else { 506 } else {
507 if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda) 507 if ( !(mIncidence->doesFloat()) && KOPrefs::instance()->mShowTimeInAgenda)
508 mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + "-" + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ; 508 mDisplayedText += ": " +KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtStart().time()) + "-" + KGlobal::locale()->formatTime((static_cast<Event*>(mIncidence))->dtEnd().time()) ;
509 509
510 if ( mAllDay ) { 510 if ( mAllDay ) {
511 if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) { 511 if ( mIncidence->dtStart().date().addDays(3) < mIncidence->dtEnd().date() ) {
512 mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ; 512 mDisplayedText += ": " +KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtStart().date(), true) + " - " + KGlobal::locale()->formatDate((static_cast<Event*>(mIncidence))->dtEnd().date(), true) ;
diff --git a/korganizer/korganizer.pro b/korganizer/korganizer.pro
index 3c7a1fb..5e82721 100644
--- a/korganizer/korganizer.pro
+++ b/korganizer/korganizer.pro
@@ -1,191 +1,191 @@
1 TEMPLATE= app 1 TEMPLATE= app
2 CONFIG += qt warn_off 2 CONFIG += qt warn_on
3 TARGET = kopi 3 TARGET = kopi
4OBJECTS_DIR = _obj/ 4OBJECTS_DIR = _obj/
5MOC_DIR = _moc 5MOC_DIR = _moc
6DESTDIR= ../bin 6DESTDIR= ../bin
7 7
8include( ../variables.pri ) 8include( ../variables.pri )
9 9
10INCLUDEPATH += ../microkde ../ interfaces ../microkde/kdecore ../microkde/kdeui ../microkde/kio/kfile ../microkde/kio/kio ../libkdepim 10INCLUDEPATH += ../microkde ../ interfaces ../microkde/kdecore ../microkde/kdeui ../microkde/kio/kfile ../microkde/kio/kio ../libkdepim
11#../qtcompat 11#../qtcompat
12DEFINES += KORG_NOPLUGINS KORG_NOARCHIVE KORG_NOMAIL 12DEFINES += KORG_NOPLUGINS KORG_NOARCHIVE KORG_NOMAIL
13DEFINES += KORG_NODCOP KORG_NOKALARMD KORG_NORESOURCEVIEW KORG_NOSPLITTER 13DEFINES += KORG_NODCOP KORG_NOKALARMD KORG_NORESOURCEVIEW KORG_NOSPLITTER
14#KORG_NOPRINTER KORG_NOKABC KORG_NODND 14#KORG_NOPRINTER KORG_NOKABC KORG_NODND
15DEFINES += KORG_NOLVALTERNATION 15DEFINES += KORG_NOLVALTERNATION
16DEFINES += DESKTOP_VERSION 16DEFINES += DESKTOP_VERSION
17unix : { 17unix : {
18LIBS += ../bin/libmicrokdepim.so 18LIBS += ../bin/libmicrokdepim.so
19LIBS += ../bin/libmicrokcal.so 19LIBS += ../bin/libmicrokcal.so
20LIBS += ../bin/libmicrokde.so 20LIBS += ../bin/libmicrokde.so
21LIBS += ../bin/libmicrokabc.so 21LIBS += ../bin/libmicrokabc.so
22#LIBS += -lbluetooth 22#LIBS += -lbluetooth
23#LIBS += -lsdp 23#LIBS += -lsdp
24 24
25#LIBS += -lldap 25#LIBS += -lldap
26OBJECTS_DIR = obj/unix 26OBJECTS_DIR = obj/unix
27MOC_DIR = moc/unix 27MOC_DIR = moc/unix
28} 28}
29win32: { 29win32: {
30RC_FILE = winicons.rc 30RC_FILE = winicons.rc
31DEFINES += _WIN32_ 31DEFINES += _WIN32_
32LIBS += ../bin/microkdepim.lib 32LIBS += ../bin/microkdepim.lib
33LIBS += ../bin/microkcal.lib 33LIBS += ../bin/microkcal.lib
34LIBS += ../bin/microkde.lib 34LIBS += ../bin/microkde.lib
35LIBS += ../bin/microkabc.lib 35LIBS += ../bin/microkabc.lib
36LIBS += ../libical/lib/ical.lib 36LIBS += ../libical/lib/ical.lib
37LIBS += ../libical/lib/icalss.lib 37LIBS += ../libical/lib/icalss.lib
38#LIBS += atls.lib 38#LIBS += atls.lib
39QMAKE_LINK += /NODEFAULTLIB:LIBC 39QMAKE_LINK += /NODEFAULTLIB:LIBC
40#QMAKE_LINK += /NODEFAULTLIB:MSVCRT 40#QMAKE_LINK += /NODEFAULTLIB:MSVCRT
41#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib 41#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib
42OBJECTS_DIR = obj/win 42OBJECTS_DIR = obj/win
43MOC_DIR = moc/win 43MOC_DIR = moc/win
44#olimport section 44#olimport section
45#blabla: { 45#blabla: {
46LIBS += mfc71u.lib 46LIBS += mfc71u.lib
47DEFINES += _OL_IMPORT_ 47DEFINES += _OL_IMPORT_
48 48
49HEADERS += ../outport/msoutl9.h \ 49HEADERS += ../outport/msoutl9.h \
50 koimportoldialog.h 50 koimportoldialog.h
51SOURCES += ../outport/msoutl9.cpp \ 51SOURCES += ../outport/msoutl9.cpp \
52 koimportoldialog.cpp 52 koimportoldialog.cpp
53#} 53#}
54#olimport section end 54#olimport section end
55 55
56} 56}
57 57
58 58
59INTERFACES = kofilterview_base.ui 59INTERFACES = kofilterview_base.ui
60#filteredit_base.ui 60#filteredit_base.ui
61 61
62# kdateedit.h \ 62# kdateedit.h \
63 63
64HEADERS += \ 64HEADERS += \
65 filteredit_base.h \ 65 filteredit_base.h \
66 alarmclient.h \ 66 alarmclient.h \
67 calendarview.h \ 67 calendarview.h \
68 customlistviewitem.h \ 68 customlistviewitem.h \
69 datenavigator.h \ 69 datenavigator.h \
70 docprefs.h \ 70 docprefs.h \
71 filtereditdialog.h \ 71 filtereditdialog.h \
72 incomingdialog.h \ 72 incomingdialog.h \
73 incomingdialog_base.h \ 73 incomingdialog_base.h \
74 interfaces/korganizer/baseview.h \ 74 interfaces/korganizer/baseview.h \
75 interfaces/korganizer/calendarviewbase.h \ 75 interfaces/korganizer/calendarviewbase.h \
76 journalentry.h \ 76 journalentry.h \
77 kdatenavigator.h \ 77 kdatenavigator.h \
78 koagenda.h \ 78 koagenda.h \
79 koagendaitem.h \ 79 koagendaitem.h \
80 koagendaview.h \ 80 koagendaview.h \
81 kocounterdialog.h \ 81 kocounterdialog.h \
82 kodaymatrix.h \ 82 kodaymatrix.h \
83 kodialogmanager.h \ 83 kodialogmanager.h \
84 koeditordetails.h \ 84 koeditordetails.h \
85 koeditorgeneral.h \ 85 koeditorgeneral.h \
86 koeditorgeneralevent.h \ 86 koeditorgeneralevent.h \
87 koeditorgeneraltodo.h \ 87 koeditorgeneraltodo.h \
88 koeditorrecurrence.h \ 88 koeditorrecurrence.h \
89 koeventeditor.h \ 89 koeventeditor.h \
90 koeventpopupmenu.h \ 90 koeventpopupmenu.h \
91 koeventview.h \ 91 koeventview.h \
92 koeventviewer.h \ 92 koeventviewer.h \
93 koeventviewerdialog.h \ 93 koeventviewerdialog.h \
94 kofilterview.h \ 94 kofilterview.h \
95 koglobals.h \ 95 koglobals.h \
96 koincidenceeditor.h \ 96 koincidenceeditor.h \
97 kojournalview.h \ 97 kojournalview.h \
98 kolistview.h \ 98 kolistview.h \
99 kolocationbox.h \ 99 kolocationbox.h \
100 komonthview.h \ 100 komonthview.h \
101 koprefs.h \ 101 koprefs.h \
102 koprefsdialog.h \ 102 koprefsdialog.h \
103 kotimespanview.h \ 103 kotimespanview.h \
104 kotodoeditor.h \ 104 kotodoeditor.h \
105 kotodoview.h \ 105 kotodoview.h \
106 kotodoviewitem.h \ 106 kotodoviewitem.h \
107 koviewmanager.h \ 107 koviewmanager.h \
108 kowhatsnextview.h \ 108 kowhatsnextview.h \
109 ktimeedit.h \ 109 ktimeedit.h \
110 lineview.h \ 110 lineview.h \
111 mainwindow.h \ 111 mainwindow.h \
112 navigatorbar.h \ 112 navigatorbar.h \
113 outgoingdialog.h \ 113 outgoingdialog.h \
114 outgoingdialog_base.h \ 114 outgoingdialog_base.h \
115 publishdialog.h \ 115 publishdialog.h \
116 publishdialog_base.h \ 116 publishdialog_base.h \
117 savetemplatedialog.h \ 117 savetemplatedialog.h \
118 searchdialog.h \ 118 searchdialog.h \
119 simplealarmclient.h \ 119 simplealarmclient.h \
120 statusdialog.h \ 120 statusdialog.h \
121 timeline.h \ 121 timeline.h \
122 timespanview.h \ 122 timespanview.h \
123 version.h \ 123 version.h \
124 ../kalarmd/alarmdialog.h \ 124 ../kalarmd/alarmdialog.h \
125 125
126 126
127SOURCES += \ 127SOURCES += \
128filteredit_base.cpp \ 128filteredit_base.cpp \
129 calendarview.cpp \ 129 calendarview.cpp \
130 datenavigator.cpp \ 130 datenavigator.cpp \
131 docprefs.cpp \ 131 docprefs.cpp \
132 filtereditdialog.cpp \ 132 filtereditdialog.cpp \
133 incomingdialog.cpp \ 133 incomingdialog.cpp \
134 incomingdialog_base.cpp \ 134 incomingdialog_base.cpp \
135 journalentry.cpp \ 135 journalentry.cpp \
136 kdatenavigator.cpp \ 136 kdatenavigator.cpp \
137 koagenda.cpp \ 137 koagenda.cpp \
138 koagendaitem.cpp \ 138 koagendaitem.cpp \
139 koagendaview.cpp \ 139 koagendaview.cpp \
140 kocounterdialog.cpp \ 140 kocounterdialog.cpp \
141 kodaymatrix.cpp \ 141 kodaymatrix.cpp \
142 kodialogmanager.cpp \ 142 kodialogmanager.cpp \
143 koeditordetails.cpp \ 143 koeditordetails.cpp \
144 koeditorgeneral.cpp \ 144 koeditorgeneral.cpp \
145 koeditorgeneralevent.cpp \ 145 koeditorgeneralevent.cpp \
146 koeditorgeneraltodo.cpp \ 146 koeditorgeneraltodo.cpp \
147 koeditorrecurrence.cpp \ 147 koeditorrecurrence.cpp \
148 koeventeditor.cpp \ 148 koeventeditor.cpp \
149 koeventpopupmenu.cpp \ 149 koeventpopupmenu.cpp \
150 koeventview.cpp \ 150 koeventview.cpp \
151 koeventviewer.cpp \ 151 koeventviewer.cpp \
152 koeventviewerdialog.cpp \ 152 koeventviewerdialog.cpp \
153 kofilterview.cpp \ 153 kofilterview.cpp \
154 koglobals.cpp \ 154 koglobals.cpp \
155 koincidenceeditor.cpp \ 155 koincidenceeditor.cpp \
156 kojournalview.cpp \ 156 kojournalview.cpp \
157 kolistview.cpp \ 157 kolistview.cpp \
158 kolocationbox.cpp \ 158 kolocationbox.cpp \
159 komonthview.cpp \ 159 komonthview.cpp \
160 koprefs.cpp \ 160 koprefs.cpp \
161 koprefsdialog.cpp \ 161 koprefsdialog.cpp \
162 kotimespanview.cpp \ 162 kotimespanview.cpp \
163 kotodoeditor.cpp \ 163 kotodoeditor.cpp \
164 kotodoview.cpp \ 164 kotodoview.cpp \
165 kotodoviewitem.cpp \ 165 kotodoviewitem.cpp \
166 koviewmanager.cpp \ 166 koviewmanager.cpp \
167 kowhatsnextview.cpp \ 167 kowhatsnextview.cpp \
168 ktimeedit.cpp \ 168 ktimeedit.cpp \
169 lineview.cpp \ 169 lineview.cpp \
170 main.cpp \ 170 main.cpp \
171 mainwindow.cpp \ 171 mainwindow.cpp \
172 navigatorbar.cpp \ 172 navigatorbar.cpp \
173 outgoingdialog.cpp \ 173 outgoingdialog.cpp \
174 outgoingdialog_base.cpp \ 174 outgoingdialog_base.cpp \
175 publishdialog.cpp \ 175 publishdialog.cpp \
176 publishdialog_base.cpp \ 176 publishdialog_base.cpp \
177 savetemplatedialog.cpp \ 177 savetemplatedialog.cpp \
178 searchdialog.cpp \ 178 searchdialog.cpp \
179 simplealarmclient.cpp \ 179 simplealarmclient.cpp \
180 statusdialog.cpp \ 180 statusdialog.cpp \
181 timeline.cpp \ 181 timeline.cpp \
182 timespanview.cpp \ 182 timespanview.cpp \
183 ../kalarmd/alarmdialog.cpp 183 ../kalarmd/alarmdialog.cpp
184 184
185HEADERS += calprintbase.h calprinter.h calprintplugins.h cellitem.h 185HEADERS += calprintbase.h calprinter.h calprintplugins.h cellitem.h
186INTERFACES += calprintdayconfig_base.ui \ 186INTERFACES += calprintdayconfig_base.ui \
187 calprintmonthconfig_base.ui \ 187 calprintmonthconfig_base.ui \
188 calprinttodoconfig_base.ui \ 188 calprinttodoconfig_base.ui \
189 calprintweekconfig_base.ui 189 calprintweekconfig_base.ui
190SOURCES += calprintbase.cpp calprinter.cpp calprintplugins.cpp cellitem.cpp 190SOURCES += calprintbase.cpp calprinter.cpp calprintplugins.cpp cellitem.cpp
191 191
diff --git a/libkcal/calendar.cpp b/libkcal/calendar.cpp
index 88351eb..dcfee5d 100644
--- a/libkcal/calendar.cpp
+++ b/libkcal/calendar.cpp
@@ -1,318 +1,319 @@
1/* 1/*
2 This file is part of libkcal. 2 This file is part of libkcal.
3 Copyright (c) 1998 Preston Brown 3 Copyright (c) 1998 Preston Brown
4 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22#include <stdlib.h> 22#include <stdlib.h>
23#include <time.h> 23#include <time.h>
24 24
25#include <kdebug.h> 25#include <kdebug.h>
26#include <kglobal.h> 26#include <kglobal.h>
27#include <klocale.h> 27#include <klocale.h>
28 28
29#include "exceptions.h" 29#include "exceptions.h"
30#include "calfilter.h" 30#include "calfilter.h"
31 31
32#include "calendar.h" 32#include "calendar.h"
33#include "syncdefines.h" 33#include "syncdefines.h"
34 34
35using namespace KCal; 35using namespace KCal;
36 36
37Calendar::Calendar() 37Calendar::Calendar()
38{ 38{
39 39
40 init(); 40 init();
41 setTimeZoneId( i18n (" 00:00 Europe/London(UTC)") ); 41 setTimeZoneId( i18n (" 00:00 Europe/London(UTC)") );
42} 42}
43 43
44Calendar::Calendar( const QString &timeZoneId ) 44Calendar::Calendar( const QString &timeZoneId )
45{ 45{
46 46
47 init(); 47 init();
48 setTimeZoneId(timeZoneId); 48 setTimeZoneId(timeZoneId);
49} 49}
50 50
51void Calendar::init() 51void Calendar::init()
52{ 52{
53 mObserver = 0; 53 mObserver = 0;
54 mNewObserver = false; 54 mNewObserver = false;
55 mUndoIncidence = 0; 55 mUndoIncidence = 0;
56 mModified = false; 56 mModified = false;
57 57
58 // Setup default filter, which does nothing 58 // Setup default filter, which does nothing
59 mDefaultFilter = new CalFilter; 59 mDefaultFilter = new CalFilter;
60 mFilter = mDefaultFilter; 60 mFilter = mDefaultFilter;
61 mFilter->setEnabled(false); 61 mFilter->setEnabled(false);
62 62
63 // initialize random numbers. This is a hack, and not 63 // initialize random numbers. This is a hack, and not
64 // even that good of one at that. 64 // even that good of one at that.
65// srandom(time(0)); 65// srandom(time(0));
66 66
67 // user information... 67 // user information...
68 setOwner(i18n("Unknown Name")); 68 setOwner(i18n("Unknown Name"));
69 setEmail(i18n("unknown@nowhere")); 69 setEmail(i18n("unknown@nowhere"));
70 70
71#if 0 71#if 0
72 tmpStr = KOPrefs::instance()->mTimeZone; 72 tmpStr = KOPrefs::instance()->mTimeZone;
73// kdDebug(5800) << "Calendar::Calendar(): TimeZone: " << tmpStr << endl; 73// kdDebug(5800) << "Calendar::Calendar(): TimeZone: " << tmpStr << endl;
74 int dstSetting = KOPrefs::instance()->mDaylightSavings; 74 int dstSetting = KOPrefs::instance()->mDaylightSavings;
75 extern long int timezone; 75 extern long int timezone;
76 struct tm *now; 76 struct tm *now;
77 time_t curtime; 77 time_t curtime;
78 curtime = time(0); 78 curtime = time(0);
79 now = localtime(&curtime); 79 now = localtime(&curtime);
80 int hourOff = - ((timezone / 60) / 60); 80 int hourOff = - ((timezone / 60) / 60);
81 if (now->tm_isdst) 81 if (now->tm_isdst)
82 hourOff += 1; 82 hourOff += 1;
83 QString tzStr; 83 QString tzStr;
84 tzStr.sprintf("%.2d%.2d", 84 tzStr.sprintf("%.2d%.2d",
85 hourOff, 85 hourOff,
86 abs((timezone / 60) % 60)); 86 abs((timezone / 60) % 60));
87 87
88 // if no time zone was in the config file, write what we just discovered. 88 // if no time zone was in the config file, write what we just discovered.
89 if (tmpStr.isEmpty()) { 89 if (tmpStr.isEmpty()) {
90// KOPrefs::instance()->mTimeZone = tzStr; 90// KOPrefs::instance()->mTimeZone = tzStr;
91 } else { 91 } else {
92 tzStr = tmpStr; 92 tzStr = tmpStr;
93 } 93 }
94 94
95 // if daylight savings has changed since last load time, we need 95 // if daylight savings has changed since last load time, we need
96 // to rewrite these settings to the config file. 96 // to rewrite these settings to the config file.
97 if ((now->tm_isdst && !dstSetting) || 97 if ((now->tm_isdst && !dstSetting) ||
98 (!now->tm_isdst && dstSetting)) { 98 (!now->tm_isdst && dstSetting)) {
99 KOPrefs::instance()->mTimeZone = tzStr; 99 KOPrefs::instance()->mTimeZone = tzStr;
100 KOPrefs::instance()->mDaylightSavings = now->tm_isdst; 100 KOPrefs::instance()->mDaylightSavings = now->tm_isdst;
101 } 101 }
102 102
103 setTimeZone(tzStr); 103 setTimeZone(tzStr);
104#endif 104#endif
105 105
106// KOPrefs::instance()->writeConfig(); 106// KOPrefs::instance()->writeConfig();
107} 107}
108 108
109Calendar::~Calendar() 109Calendar::~Calendar()
110{ 110{
111 delete mDefaultFilter; 111 delete mDefaultFilter;
112 if ( mUndoIncidence ) 112 if ( mUndoIncidence )
113 delete mUndoIncidence; 113 delete mUndoIncidence;
114} 114}
115 115
116const QString &Calendar::getOwner() const 116const QString &Calendar::getOwner() const
117{ 117{
118 return mOwner; 118 return mOwner;
119} 119}
120 120
121bool Calendar::undoDeleteIncidence() 121bool Calendar::undoDeleteIncidence()
122{ 122{
123 if (!mUndoIncidence) 123 if (!mUndoIncidence)
124 return false; 124 return false;
125 addIncidence(mUndoIncidence); 125 addIncidence(mUndoIncidence);
126 mUndoIncidence = 0; 126 mUndoIncidence = 0;
127 return true;
127} 128}
128void Calendar::setOwner(const QString &os) 129void Calendar::setOwner(const QString &os)
129{ 130{
130 int i; 131 int i;
131 mOwner = os; 132 mOwner = os;
132 i = mOwner.find(','); 133 i = mOwner.find(',');
133 if (i != -1) 134 if (i != -1)
134 mOwner = mOwner.left(i); 135 mOwner = mOwner.left(i);
135 136
136 setModified( true ); 137 setModified( true );
137} 138}
138 139
139void Calendar::setTimeZone(const QString & tz) 140void Calendar::setTimeZone(const QString & tz)
140{ 141{
141 bool neg = FALSE; 142 bool neg = FALSE;
142 int hours, minutes; 143 int hours, minutes;
143 QString tmpStr(tz); 144 QString tmpStr(tz);
144 145
145 if (tmpStr.left(1) == "-") 146 if (tmpStr.left(1) == "-")
146 neg = TRUE; 147 neg = TRUE;
147 if (tmpStr.left(1) == "-" || tmpStr.left(1) == "+") 148 if (tmpStr.left(1) == "-" || tmpStr.left(1) == "+")
148 tmpStr.remove(0, 1); 149 tmpStr.remove(0, 1);
149 hours = tmpStr.left(2).toInt(); 150 hours = tmpStr.left(2).toInt();
150 if (tmpStr.length() > 2) 151 if (tmpStr.length() > 2)
151 minutes = tmpStr.right(2).toInt(); 152 minutes = tmpStr.right(2).toInt();
152 else 153 else
153 minutes = 0; 154 minutes = 0;
154 mTimeZone = (60*hours+minutes); 155 mTimeZone = (60*hours+minutes);
155 if (neg) 156 if (neg)
156 mTimeZone = -mTimeZone; 157 mTimeZone = -mTimeZone;
157 mLocalTime = false; 158 mLocalTime = false;
158 159
159 setModified( true ); 160 setModified( true );
160} 161}
161 162
162QString Calendar::getTimeZoneStr() const 163QString Calendar::getTimeZoneStr() const
163{ 164{
164 if (mLocalTime) 165 if (mLocalTime)
165 return ""; 166 return "";
166 QString tmpStr; 167 QString tmpStr;
167 int hours = abs(mTimeZone / 60); 168 int hours = abs(mTimeZone / 60);
168 int minutes = abs(mTimeZone % 60); 169 int minutes = abs(mTimeZone % 60);
169 bool neg = mTimeZone < 0; 170 bool neg = mTimeZone < 0;
170 171
171 tmpStr.sprintf("%c%.2d%.2d", 172 tmpStr.sprintf("%c%.2d%.2d",
172 (neg ? '-' : '+'), 173 (neg ? '-' : '+'),
173 hours, minutes); 174 hours, minutes);
174 return tmpStr; 175 return tmpStr;
175} 176}
176 177
177void Calendar::setTimeZone(int tz) 178void Calendar::setTimeZone(int tz)
178{ 179{
179 mTimeZone = tz; 180 mTimeZone = tz;
180 mLocalTime = false; 181 mLocalTime = false;
181 182
182 setModified( true ); 183 setModified( true );
183} 184}
184 185
185int Calendar::getTimeZone() const 186int Calendar::getTimeZone() const
186{ 187{
187 return mTimeZone; 188 return mTimeZone;
188} 189}
189 190
190void Calendar::setTimeZoneId(const QString &id) 191void Calendar::setTimeZoneId(const QString &id)
191{ 192{
192 mTimeZoneId = id; 193 mTimeZoneId = id;
193 mLocalTime = false; 194 mLocalTime = false;
194 mTimeZone = KGlobal::locale()->timezoneOffset(mTimeZoneId); 195 mTimeZone = KGlobal::locale()->timezoneOffset(mTimeZoneId);
195 if ( mTimeZone > 1000) 196 if ( mTimeZone > 1000)
196 setLocalTime(); 197 setLocalTime();
197 //qDebug("Calendar::setTimeZoneOffset %s %d ",mTimeZoneId.latin1(), mTimeZone); 198 //qDebug("Calendar::setTimeZoneOffset %s %d ",mTimeZoneId.latin1(), mTimeZone);
198 setModified( true ); 199 setModified( true );
199} 200}
200 201
201QString Calendar::timeZoneId() const 202QString Calendar::timeZoneId() const
202{ 203{
203 return mTimeZoneId; 204 return mTimeZoneId;
204} 205}
205 206
206void Calendar::setLocalTime() 207void Calendar::setLocalTime()
207{ 208{
208 //qDebug("Calendar::setLocalTime() "); 209 //qDebug("Calendar::setLocalTime() ");
209 mLocalTime = true; 210 mLocalTime = true;
210 mTimeZone = 0; 211 mTimeZone = 0;
211 mTimeZoneId = ""; 212 mTimeZoneId = "";
212 213
213 setModified( true ); 214 setModified( true );
214} 215}
215 216
216bool Calendar::isLocalTime() const 217bool Calendar::isLocalTime() const
217{ 218{
218 return mLocalTime; 219 return mLocalTime;
219} 220}
220 221
221const QString &Calendar::getEmail() 222const QString &Calendar::getEmail()
222{ 223{
223 return mOwnerEmail; 224 return mOwnerEmail;
224} 225}
225 226
226void Calendar::setEmail(const QString &e) 227void Calendar::setEmail(const QString &e)
227{ 228{
228 mOwnerEmail = e; 229 mOwnerEmail = e;
229 230
230 setModified( true ); 231 setModified( true );
231} 232}
232 233
233void Calendar::setFilter(CalFilter *filter) 234void Calendar::setFilter(CalFilter *filter)
234{ 235{
235 mFilter = filter; 236 mFilter = filter;
236} 237}
237 238
238CalFilter *Calendar::filter() 239CalFilter *Calendar::filter()
239{ 240{
240 return mFilter; 241 return mFilter;
241} 242}
242 243
243QPtrList<Incidence> Calendar::incidences() 244QPtrList<Incidence> Calendar::incidences()
244{ 245{
245 QPtrList<Incidence> incidences; 246 QPtrList<Incidence> incidences;
246 247
247 Incidence *i; 248 Incidence *i;
248 249
249 QPtrList<Event> e = events(); 250 QPtrList<Event> e = events();
250 for( i = e.first(); i; i = e.next() ) incidences.append( i ); 251 for( i = e.first(); i; i = e.next() ) incidences.append( i );
251 252
252 QPtrList<Todo> t = todos(); 253 QPtrList<Todo> t = todos();
253 for( i = t.first(); i; i = t.next() ) incidences.append( i ); 254 for( i = t.first(); i; i = t.next() ) incidences.append( i );
254 255
255 QPtrList<Journal> j = journals(); 256 QPtrList<Journal> j = journals();
256 for( i = j.first(); i; i = j.next() ) incidences.append( i ); 257 for( i = j.first(); i; i = j.next() ) incidences.append( i );
257 258
258 return incidences; 259 return incidences;
259} 260}
260 261
261void Calendar::resetPilotStat(int id ) 262void Calendar::resetPilotStat(int id )
262{ 263{
263 QPtrList<Incidence> incidences; 264 QPtrList<Incidence> incidences;
264 265
265 Incidence *i; 266 Incidence *i;
266 267
267 QPtrList<Event> e = rawEvents(); 268 QPtrList<Event> e = rawEvents();
268 for( i = e.first(); i; i = e.next() ) i->setPilotId( id ); 269 for( i = e.first(); i; i = e.next() ) i->setPilotId( id );
269 270
270 QPtrList<Todo> t = rawTodos(); 271 QPtrList<Todo> t = rawTodos();
271 for( i = t.first(); i; i = t.next() ) i->setPilotId( id ); 272 for( i = t.first(); i; i = t.next() ) i->setPilotId( id );
272 273
273 QPtrList<Journal> j = journals(); 274 QPtrList<Journal> j = journals();
274 for( i = j.first(); i; i = j.next() ) i->setPilotId( id ); 275 for( i = j.first(); i; i = j.next() ) i->setPilotId( id );
275} 276}
276void Calendar::resetTempSyncStat() 277void Calendar::resetTempSyncStat()
277{ 278{
278 QPtrList<Incidence> incidences; 279 QPtrList<Incidence> incidences;
279 280
280 Incidence *i; 281 Incidence *i;
281 282
282 QPtrList<Event> e = rawEvents(); 283 QPtrList<Event> e = rawEvents();
283 for( i = e.first(); i; i = e.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 284 for( i = e.first(); i; i = e.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
284 285
285 QPtrList<Todo> t = rawTodos(); 286 QPtrList<Todo> t = rawTodos();
286 for( i = t.first(); i; i = t.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 287 for( i = t.first(); i; i = t.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
287 288
288 QPtrList<Journal> j = journals(); 289 QPtrList<Journal> j = journals();
289 for( i = j.first(); i; i = j.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 290 for( i = j.first(); i; i = j.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
290} 291}
291QPtrList<Incidence> Calendar::rawIncidences() 292QPtrList<Incidence> Calendar::rawIncidences()
292{ 293{
293 QPtrList<Incidence> incidences; 294 QPtrList<Incidence> incidences;
294 295
295 Incidence *i; 296 Incidence *i;
296 297
297 QPtrList<Event> e = rawEvents(); 298 QPtrList<Event> e = rawEvents();
298 for( i = e.first(); i; i = e.next() ) incidences.append( i ); 299 for( i = e.first(); i; i = e.next() ) incidences.append( i );
299 300
300 QPtrList<Todo> t = rawTodos(); 301 QPtrList<Todo> t = rawTodos();
301 for( i = t.first(); i; i = t.next() ) incidences.append( i ); 302 for( i = t.first(); i; i = t.next() ) incidences.append( i );
302 303
303 QPtrList<Journal> j = journals(); 304 QPtrList<Journal> j = journals();
304 for( i = j.first(); i; i = j.next() ) incidences.append( i ); 305 for( i = j.first(); i; i = j.next() ) incidences.append( i );
305 306
306 return incidences; 307 return incidences;
307} 308}
308 309
309QPtrList<Event> Calendar::events( const QDate &date, bool sorted ) 310QPtrList<Event> Calendar::events( const QDate &date, bool sorted )
310{ 311{
311 QPtrList<Event> el = rawEventsForDate(date,sorted); 312 QPtrList<Event> el = rawEventsForDate(date,sorted);
312 mFilter->apply(&el); 313 mFilter->apply(&el);
313 return el; 314 return el;
314} 315}
315 316
316QPtrList<Event> Calendar::events( const QDateTime &qdt ) 317QPtrList<Event> Calendar::events( const QDateTime &qdt )
317{ 318{
318 QPtrList<Event> el = rawEventsForDate(qdt); 319 QPtrList<Event> el = rawEventsForDate(qdt);
diff --git a/libkcal/event.cpp b/libkcal/event.cpp
index 7256f05..de8dceb 100644
--- a/libkcal/event.cpp
+++ b/libkcal/event.cpp
@@ -1,223 +1,221 @@
1/* 1/*
2 This file is part of libkcal. 2 This file is part of libkcal.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <kglobal.h> 21#include <kglobal.h>
22#include <klocale.h> 22#include <klocale.h>
23#include <kdebug.h> 23#include <kdebug.h>
24 24
25#include "event.h" 25#include "event.h"
26 26
27using namespace KCal; 27using namespace KCal;
28 28
29Event::Event() : 29Event::Event() :
30 mHasEndDate( false ), mTransparency( Opaque ) 30 mHasEndDate( false ), mTransparency( Opaque )
31{ 31{
32} 32}
33 33
34Event::Event(const Event &e) : Incidence(e) 34Event::Event(const Event &e) : Incidence(e)
35{ 35{
36 mDtEnd = e.mDtEnd; 36 mDtEnd = e.mDtEnd;
37 mHasEndDate = e.mHasEndDate; 37 mHasEndDate = e.mHasEndDate;
38 mTransparency = e.mTransparency; 38 mTransparency = e.mTransparency;
39} 39}
40 40
41Event::~Event() 41Event::~Event()
42{ 42{
43} 43}
44 44
45Incidence *Event::clone() 45Incidence *Event::clone()
46{ 46{
47 return new Event(*this); 47 return new Event(*this);
48} 48}
49 49
50bool KCal::operator==( const Event& e1, const Event& e2 ) 50bool KCal::operator==( const Event& e1, const Event& e2 )
51{ 51{
52 return operator==( (const Incidence&)e1, (const Incidence&)e2 ) && 52 return operator==( (const Incidence&)e1, (const Incidence&)e2 ) &&
53 e1.dtEnd() == e2.dtEnd() && 53 e1.dtEnd() == e2.dtEnd() &&
54 e1.hasEndDate() == e2.hasEndDate() && 54 e1.hasEndDate() == e2.hasEndDate() &&
55 e1.transparency() == e2.transparency(); 55 e1.transparency() == e2.transparency();
56} 56}
57 57
58 58
59bool Event::contains ( Event* from ) 59bool Event::contains ( Event* from )
60{ 60{
61 61
62 if ( !from->summary().isEmpty() ) 62 if ( !from->summary().isEmpty() )
63 if ( !summary().startsWith( from->summary() )) 63 if ( !summary().startsWith( from->summary() ))
64 return false; 64 return false;
65 if ( from->dtStart().isValid() ) 65 if ( from->dtStart().isValid() )
66 if (dtStart() != from->dtStart() ) 66 if (dtStart() != from->dtStart() )
67 return false; 67 return false;
68 if ( from->dtEnd().isValid() ) 68 if ( from->dtEnd().isValid() )
69 if ( dtEnd() != from->dtEnd() ) 69 if ( dtEnd() != from->dtEnd() )
70 return false; 70 return false;
71 if ( !from->location().isEmpty() ) 71 if ( !from->location().isEmpty() )
72 if ( !location().startsWith( from->location() ) ) 72 if ( !location().startsWith( from->location() ) )
73 return false; 73 return false;
74 if ( !from->description().isEmpty() ) 74 if ( !from->description().isEmpty() )
75 if ( !description().startsWith( from->description() )) 75 if ( !description().startsWith( from->description() ))
76 return false; 76 return false;
77 if ( from->alarms().count() ) { 77 if ( from->alarms().count() ) {
78 Alarm *a = from->alarms().first(); 78 Alarm *a = from->alarms().first();
79 if ( a->enabled() ){ 79 if ( a->enabled() ){
80 if ( !alarms().count() ) 80 if ( !alarms().count() )
81 return false; 81 return false;
82 Alarm *b = alarms().first(); 82 Alarm *b = alarms().first();
83 if( ! b->enabled() ) 83 if( ! b->enabled() )
84 return false; 84 return false;
85 if ( ! (a->offset() == b->offset() )) 85 if ( ! (a->offset() == b->offset() ))
86 return false; 86 return false;
87 } 87 }
88 } 88 }
89 QStringList cat = categories(); 89 QStringList cat = categories();
90 QStringList catFrom = from->categories(); 90 QStringList catFrom = from->categories();
91 QString nCat; 91 QString nCat;
92 int iii; 92 unsigned int iii;
93 for ( iii = 0; iii < catFrom.count();++iii ) { 93 for ( iii = 0; iii < catFrom.count();++iii ) {
94 nCat = catFrom[iii]; 94 nCat = catFrom[iii];
95 if ( !nCat.isEmpty() ) 95 if ( !nCat.isEmpty() )
96 if ( !cat.contains( nCat )) { 96 if ( !cat.contains( nCat )) {
97 return false; 97 return false;
98 } 98 }
99 } 99 }
100 if ( from->doesRecur() ) 100 if ( from->doesRecur() )
101 if ( from->doesRecur() != doesRecur() && ! (from->doesRecur()== Recurrence::rYearlyMonth && doesRecur()== Recurrence::rYearlyDay) ) 101 if ( from->doesRecur() != doesRecur() && ! (from->doesRecur()== Recurrence::rYearlyMonth && doesRecur()== Recurrence::rYearlyDay) )
102 return false; 102 return false;
103 return true; 103 return true;
104} 104}
105 105
106void Event::setDtEnd(const QDateTime &dtEnd) 106void Event::setDtEnd(const QDateTime &dtEnd)
107{ 107{
108 if (mReadOnly) return; 108 if (mReadOnly) return;
109 109
110 mDtEnd = getEvenTime( dtEnd ); 110 mDtEnd = getEvenTime( dtEnd );
111 111
112 setHasEndDate(true); 112 setHasEndDate(true);
113 setHasDuration(false); 113 setHasDuration(false);
114 114
115 updated(); 115 updated();
116} 116}
117 117
118QDateTime Event::dtEnd() const 118QDateTime Event::dtEnd() const
119{ 119{
120 if (hasEndDate()) return mDtEnd; 120 if (hasEndDate()) return mDtEnd;
121 if (hasDuration()) return dtStart().addSecs(duration()); 121 if (hasDuration()) return dtStart().addSecs(duration());
122 122
123 kdDebug(5800) << "Warning! Event '" << summary()
124 << "' does have neither end date nor duration." << endl;
125 return dtStart(); 123 return dtStart();
126} 124}
127 125
128QString Event::dtEndTimeStr() const 126QString Event::dtEndTimeStr() const
129{ 127{
130 return KGlobal::locale()->formatTime(mDtEnd.time()); 128 return KGlobal::locale()->formatTime(mDtEnd.time());
131} 129}
132 130
133QString Event::dtEndDateStr(bool shortfmt) const 131QString Event::dtEndDateStr(bool shortfmt) const
134{ 132{
135 return KGlobal::locale()->formatDate(mDtEnd.date(),shortfmt); 133 return KGlobal::locale()->formatDate(mDtEnd.date(),shortfmt);
136} 134}
137 135
138QString Event::dtEndStr(bool shortfmt) const 136QString Event::dtEndStr(bool shortfmt) const
139{ 137{
140 return KGlobal::locale()->formatDateTime(mDtEnd, shortfmt); 138 return KGlobal::locale()->formatDateTime(mDtEnd, shortfmt);
141} 139}
142 140
143void Event::setHasEndDate(bool b) 141void Event::setHasEndDate(bool b)
144{ 142{
145 mHasEndDate = b; 143 mHasEndDate = b;
146} 144}
147 145
148bool Event::hasEndDate() const 146bool Event::hasEndDate() const
149{ 147{
150 return mHasEndDate; 148 return mHasEndDate;
151} 149}
152 150
153bool Event::isMultiDay() const 151bool Event::isMultiDay() const
154{ 152{
155 bool multi = !(dtStart().date() == dtEnd().date()); 153 bool multi = !(dtStart().date() == dtEnd().date());
156 return multi; 154 return multi;
157} 155}
158 156
159void Event::setTransparency(Event::Transparency transparency) 157void Event::setTransparency(Event::Transparency transparency)
160{ 158{
161 if (mReadOnly) return; 159 if (mReadOnly) return;
162 mTransparency = transparency; 160 mTransparency = transparency;
163 updated(); 161 updated();
164} 162}
165 163
166Event::Transparency Event::transparency() const 164Event::Transparency Event::transparency() const
167{ 165{
168 return mTransparency; 166 return mTransparency;
169} 167}
170 168
171void Event::setDuration(int seconds) 169void Event::setDuration(int seconds)
172{ 170{
173 setHasEndDate(false); 171 setHasEndDate(false);
174 Incidence::setDuration(seconds); 172 Incidence::setDuration(seconds);
175} 173}
176QDateTime Event::getNextAlarmDateTime( bool * ok, int * offset ) const 174QDateTime Event::getNextAlarmDateTime( bool * ok, int * offset ) const
177{ 175{
178 176
179 bool yes; 177 bool yes;
180 QDateTime incidenceStart = getNextOccurence( QDateTime::currentDateTime(), &yes ); 178 QDateTime incidenceStart = getNextOccurence( QDateTime::currentDateTime(), &yes );
181 if ( ! yes || cancelled() ) { 179 if ( ! yes || cancelled() ) {
182 *ok = false; 180 *ok = false;
183 return QDateTime (); 181 return QDateTime ();
184 } 182 }
185 183
186 bool enabled = false; 184 bool enabled = false;
187 Alarm* alarm; 185 Alarm* alarm;
188 int off; 186 int off = 0;
189 QDateTime alarmStart = QDateTime::currentDateTime().addDays( 3650 );; 187 QDateTime alarmStart = QDateTime::currentDateTime().addDays( 3650 );;
190 // if ( QDateTime::currentDateTime() > incidenceStart ){ 188 // if ( QDateTime::currentDateTime() > incidenceStart ){
191// *ok = false; 189// *ok = false;
192// return incidenceStart; 190// return incidenceStart;
193// } 191// }
194 for (QPtrListIterator<Alarm> it(mAlarms); (alarm = it.current()) != 0; ++it) { 192 for (QPtrListIterator<Alarm> it(mAlarms); (alarm = it.current()) != 0; ++it) {
195 if (alarm->enabled()) { 193 if (alarm->enabled()) {
196 if ( alarm->hasTime () ) { 194 if ( alarm->hasTime () ) {
197 if ( alarm->time() < alarmStart ) { 195 if ( alarm->time() < alarmStart ) {
198 alarmStart = alarm->time(); 196 alarmStart = alarm->time();
199 enabled = true; 197 enabled = true;
200 off = alarmStart.secsTo( incidenceStart ); 198 off = alarmStart.secsTo( incidenceStart );
201 } 199 }
202 200
203 } else { 201 } else {
204 int secs = alarm->startOffset().asSeconds(); 202 int secs = alarm->startOffset().asSeconds();
205 if ( incidenceStart.addSecs( secs ) < alarmStart ) { 203 if ( incidenceStart.addSecs( secs ) < alarmStart ) {
206 alarmStart = incidenceStart.addSecs( secs ); 204 alarmStart = incidenceStart.addSecs( secs );
207 enabled = true; 205 enabled = true;
208 off = -secs; 206 off = -secs;
209 } 207 }
210 } 208 }
211 } 209 }
212 } 210 }
213 if ( enabled ) { 211 if ( enabled ) {
214 if ( alarmStart > QDateTime::currentDateTime() ) { 212 if ( alarmStart > QDateTime::currentDateTime() ) {
215 *ok = true; 213 *ok = true;
216 * offset = off; 214 * offset = off;
217 return alarmStart; 215 return alarmStart;
218 } 216 }
219 } 217 }
220 *ok = false; 218 *ok = false;
221 return QDateTime (); 219 return QDateTime ();
222 220
223} 221}
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp
index d81a68f..9c04a7e 100644
--- a/libkcal/todo.cpp
+++ b/libkcal/todo.cpp
@@ -1,414 +1,414 @@
1/* 1/*
2 This file is part of libkcal. 2 This file is part of libkcal.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <kglobal.h> 21#include <kglobal.h>
22#include <klocale.h> 22#include <klocale.h>
23#include <kdebug.h> 23#include <kdebug.h>
24 24
25#include "todo.h" 25#include "todo.h"
26 26
27using namespace KCal; 27using namespace KCal;
28 28
29Todo::Todo(): Incidence() 29Todo::Todo(): Incidence()
30{ 30{
31// mStatus = TENTATIVE; 31// mStatus = TENTATIVE;
32 32
33 mHasDueDate = false; 33 mHasDueDate = false;
34 setHasStartDate( false ); 34 setHasStartDate( false );
35 mCompleted = getEvenTime(QDateTime::currentDateTime()); 35 mCompleted = getEvenTime(QDateTime::currentDateTime());
36 mHasCompletedDate = false; 36 mHasCompletedDate = false;
37 mPercentComplete = 0; 37 mPercentComplete = 0;
38} 38}
39 39
40Todo::Todo(const Todo &t) : Incidence(t) 40Todo::Todo(const Todo &t) : Incidence(t)
41{ 41{
42 mDtDue = t.mDtDue; 42 mDtDue = t.mDtDue;
43 mHasDueDate = t.mHasDueDate; 43 mHasDueDate = t.mHasDueDate;
44 mCompleted = t.mCompleted; 44 mCompleted = t.mCompleted;
45 mHasCompletedDate = t.mHasCompletedDate; 45 mHasCompletedDate = t.mHasCompletedDate;
46 mPercentComplete = t.mPercentComplete; 46 mPercentComplete = t.mPercentComplete;
47} 47}
48 48
49Todo::~Todo() 49Todo::~Todo()
50{ 50{
51 51
52} 52}
53 53
54Incidence *Todo::clone() 54Incidence *Todo::clone()
55{ 55{
56 return new Todo(*this); 56 return new Todo(*this);
57} 57}
58 58
59bool Todo::contains ( Todo* from ) 59bool Todo::contains ( Todo* from )
60{ 60{
61 61
62 if ( !from->summary().isEmpty() ) 62 if ( !from->summary().isEmpty() )
63 if ( !summary().startsWith( from->summary() )) 63 if ( !summary().startsWith( from->summary() ))
64 return false; 64 return false;
65 if ( from->hasStartDate() ) { 65 if ( from->hasStartDate() ) {
66 if ( !hasStartDate() ) 66 if ( !hasStartDate() )
67 return false; 67 return false;
68 if ( from->dtStart() != dtStart()) 68 if ( from->dtStart() != dtStart())
69 return false; 69 return false;
70 } 70 }
71 if ( from->hasDueDate() ){ 71 if ( from->hasDueDate() ){
72 if ( !hasDueDate() ) 72 if ( !hasDueDate() )
73 return false; 73 return false;
74 if ( from->dtDue() != dtDue()) 74 if ( from->dtDue() != dtDue())
75 return false; 75 return false;
76 } 76 }
77 if ( !from->location().isEmpty() ) 77 if ( !from->location().isEmpty() )
78 if ( !location().startsWith( from->location() ) ) 78 if ( !location().startsWith( from->location() ) )
79 return false; 79 return false;
80 if ( !from->description().isEmpty() ) 80 if ( !from->description().isEmpty() )
81 if ( !description().startsWith( from->description() )) 81 if ( !description().startsWith( from->description() ))
82 return false; 82 return false;
83 if ( from->alarms().count() ) { 83 if ( from->alarms().count() ) {
84 Alarm *a = from->alarms().first(); 84 Alarm *a = from->alarms().first();
85 if ( a->enabled() ){ 85 if ( a->enabled() ){
86 if ( !alarms().count() ) 86 if ( !alarms().count() )
87 return false; 87 return false;
88 Alarm *b = alarms().first(); 88 Alarm *b = alarms().first();
89 if( ! b->enabled() ) 89 if( ! b->enabled() )
90 return false; 90 return false;
91 if ( ! (a->offset() == b->offset() )) 91 if ( ! (a->offset() == b->offset() ))
92 return false; 92 return false;
93 } 93 }
94 } 94 }
95 95
96 QStringList cat = categories(); 96 QStringList cat = categories();
97 QStringList catFrom = from->categories(); 97 QStringList catFrom = from->categories();
98 QString nCat; 98 QString nCat;
99 int iii; 99 unsigned int iii;
100 for ( iii = 0; iii < catFrom.count();++iii ) { 100 for ( iii = 0; iii < catFrom.count();++iii ) {
101 nCat = catFrom[iii]; 101 nCat = catFrom[iii];
102 if ( !nCat.isEmpty() ) 102 if ( !nCat.isEmpty() )
103 if ( !cat.contains( nCat )) { 103 if ( !cat.contains( nCat )) {
104 return false; 104 return false;
105 } 105 }
106 } 106 }
107 if ( from->isCompleted() ) { 107 if ( from->isCompleted() ) {
108 if ( !isCompleted() ) 108 if ( !isCompleted() )
109 return false; 109 return false;
110 } 110 }
111 if( priority() != from->priority() ) 111 if( priority() != from->priority() )
112 return false; 112 return false;
113 113
114 114
115 return true; 115 return true;
116 116
117} 117}
118bool KCal::operator==( const Todo& t1, const Todo& t2 ) 118bool KCal::operator==( const Todo& t1, const Todo& t2 )
119{ 119{
120 120
121 bool ret = operator==( (const Incidence&)t1, (const Incidence&)t2 ); 121 bool ret = operator==( (const Incidence&)t1, (const Incidence&)t2 );
122 if ( ! ret ) 122 if ( ! ret )
123 return false; 123 return false;
124 if ( t1.hasDueDate() == t2.hasDueDate() ) { 124 if ( t1.hasDueDate() == t2.hasDueDate() ) {
125 if ( t1.hasDueDate() ) { 125 if ( t1.hasDueDate() ) {
126 if ( t1.doesFloat() == t2.doesFloat() ) { 126 if ( t1.doesFloat() == t2.doesFloat() ) {
127 if ( t1.doesFloat() ) { 127 if ( t1.doesFloat() ) {
128 if ( t1.dtDue().date() != t2.dtDue().date() ) 128 if ( t1.dtDue().date() != t2.dtDue().date() )
129 return false; 129 return false;
130 } else 130 } else
131 if ( t1.dtDue() != t2.dtDue() ) 131 if ( t1.dtDue() != t2.dtDue() )
132 return false; 132 return false;
133 } else 133 } else
134 return false;// float != 134 return false;// float !=
135 } 135 }
136 136
137 } else 137 } else
138 return false; 138 return false;
139 if ( t1.percentComplete() != t2.percentComplete() ) 139 if ( t1.percentComplete() != t2.percentComplete() )
140 return false; 140 return false;
141 if ( t1.isCompleted() ) { 141 if ( t1.isCompleted() ) {
142 if ( t1.hasCompletedDate() == t2.hasCompletedDate() ) { 142 if ( t1.hasCompletedDate() == t2.hasCompletedDate() ) {
143 if ( t1.hasCompletedDate() ) { 143 if ( t1.hasCompletedDate() ) {
144 if ( t1.completed() != t2.completed() ) 144 if ( t1.completed() != t2.completed() )
145 return false; 145 return false;
146 } 146 }
147 147
148 } else 148 } else
149 return false; 149 return false;
150 } 150 }
151 return true; 151 return true;
152 152
153} 153}
154 154
155void Todo::setDtDue(const QDateTime &dtDue) 155void Todo::setDtDue(const QDateTime &dtDue)
156{ 156{
157 //int diffsecs = mDtDue.secsTo(dtDue); 157 //int diffsecs = mDtDue.secsTo(dtDue);
158 158
159 /*if (mReadOnly) return; 159 /*if (mReadOnly) return;
160 const QPtrList<Alarm>& alarms = alarms(); 160 const QPtrList<Alarm>& alarms = alarms();
161 for (Alarm* alarm = alarms.first(); alarm; alarm = alarms.next()) { 161 for (Alarm* alarm = alarms.first(); alarm; alarm = alarms.next()) {
162 if (alarm->enabled()) { 162 if (alarm->enabled()) {
163 alarm->setTime(alarm->time().addSecs(diffsecs)); 163 alarm->setTime(alarm->time().addSecs(diffsecs));
164 } 164 }
165 }*/ 165 }*/
166 mDtDue = getEvenTime(dtDue); 166 mDtDue = getEvenTime(dtDue);
167 167
168 //kdDebug(5800) << "setDtDue says date is " << mDtDue.toString() << endl; 168 //kdDebug(5800) << "setDtDue says date is " << mDtDue.toString() << endl;
169 169
170 /*const QPtrList<Alarm>& alarms = alarms(); 170 /*const QPtrList<Alarm>& alarms = alarms();
171 for (Alarm* alarm = alarms.first(); alarm; alarm = alarms.next()) 171 for (Alarm* alarm = alarms.first(); alarm; alarm = alarms.next())
172 alarm->setAlarmStart(mDtDue);*/ 172 alarm->setAlarmStart(mDtDue);*/
173 173
174 updated(); 174 updated();
175} 175}
176 176
177QDateTime Todo::dtDue() const 177QDateTime Todo::dtDue() const
178{ 178{
179 return mDtDue; 179 return mDtDue;
180} 180}
181 181
182QString Todo::dtDueTimeStr() const 182QString Todo::dtDueTimeStr() const
183{ 183{
184 return KGlobal::locale()->formatTime(mDtDue.time()); 184 return KGlobal::locale()->formatTime(mDtDue.time());
185} 185}
186 186
187QString Todo::dtDueDateStr(bool shortfmt) const 187QString Todo::dtDueDateStr(bool shortfmt) const
188{ 188{
189 return KGlobal::locale()->formatDate(mDtDue.date(),shortfmt); 189 return KGlobal::locale()->formatDate(mDtDue.date(),shortfmt);
190} 190}
191 191
192QString Todo::dtDueStr(bool shortfmt) const 192QString Todo::dtDueStr(bool shortfmt) const
193{ 193{
194 return KGlobal::locale()->formatDateTime(mDtDue, shortfmt); 194 return KGlobal::locale()->formatDateTime(mDtDue, shortfmt);
195} 195}
196// retval 0 : no found 196// retval 0 : no found
197// 1 : due for date found 197// 1 : due for date found
198// 2 : overdue for date found 198// 2 : overdue for date found
199int Todo::hasDueSubTodoForDate( const QDate & date, bool checkSubtodos ) 199int Todo::hasDueSubTodoForDate( const QDate & date, bool checkSubtodos )
200{ 200{
201 int retval = 0; 201 int retval = 0;
202 if ( isCompleted() ) 202 if ( isCompleted() )
203 return 0; 203 return 0;
204 if ( hasDueDate() ) { 204 if ( hasDueDate() ) {
205 if ( dtDue().date() < date ) 205 if ( dtDue().date() < date )
206 return 2; 206 return 2;
207 // we do not return, because we may find an overdue sub todo 207 // we do not return, because we may find an overdue sub todo
208 if ( dtDue().date() == date ) 208 if ( dtDue().date() == date )
209 retval = 1; 209 retval = 1;
210 } 210 }
211 if ( checkSubtodos ) { 211 if ( checkSubtodos ) {
212 Incidence *aTodo; 212 Incidence *aTodo;
213 for (aTodo = mRelations.first(); aTodo; aTodo = mRelations.next()) { 213 for (aTodo = mRelations.first(); aTodo; aTodo = mRelations.next()) {
214 int ret = ((Todo*)aTodo)->hasDueSubTodoForDate( date ,checkSubtodos ); 214 int ret = ((Todo*)aTodo)->hasDueSubTodoForDate( date ,checkSubtodos );
215 if ( ret == 2 ) 215 if ( ret == 2 )
216 return 2; 216 return 2;
217 if ( ret == 1) 217 if ( ret == 1)
218 retval = 1; 218 retval = 1;
219 } 219 }
220 } 220 }
221 return retval; 221 return retval;
222} 222}
223int Todo::hasDueSubTodo( bool checkSubtodos ) //= true 223int Todo::hasDueSubTodo( bool checkSubtodos ) //= true
224{ 224{
225 return hasDueSubTodoForDate(QDate::currentDate(), checkSubtodos ); 225 return hasDueSubTodoForDate(QDate::currentDate(), checkSubtodos );
226} 226}
227bool Todo::hasDueDate() const 227bool Todo::hasDueDate() const
228{ 228{
229 return mHasDueDate; 229 return mHasDueDate;
230} 230}
231 231
232void Todo::setHasDueDate(bool f) 232void Todo::setHasDueDate(bool f)
233{ 233{
234 if (mReadOnly) return; 234 if (mReadOnly) return;
235 mHasDueDate = f; 235 mHasDueDate = f;
236 updated(); 236 updated();
237} 237}
238 238
239 239
240#if 0 240#if 0
241void Todo::setStatus(const QString &statStr) 241void Todo::setStatus(const QString &statStr)
242{ 242{
243 if (mReadOnly) return; 243 if (mReadOnly) return;
244 QString ss(statStr.upper()); 244 QString ss(statStr.upper());
245 245
246 if (ss == "X-ACTION") 246 if (ss == "X-ACTION")
247 mStatus = NEEDS_ACTION; 247 mStatus = NEEDS_ACTION;
248 else if (ss == "NEEDS ACTION") 248 else if (ss == "NEEDS ACTION")
249 mStatus = NEEDS_ACTION; 249 mStatus = NEEDS_ACTION;
250 else if (ss == "ACCEPTED") 250 else if (ss == "ACCEPTED")
251 mStatus = ACCEPTED; 251 mStatus = ACCEPTED;
252 else if (ss == "SENT") 252 else if (ss == "SENT")
253 mStatus = SENT; 253 mStatus = SENT;
254 else if (ss == "TENTATIVE") 254 else if (ss == "TENTATIVE")
255 mStatus = TENTATIVE; 255 mStatus = TENTATIVE;
256 else if (ss == "CONFIRMED") 256 else if (ss == "CONFIRMED")
257 mStatus = CONFIRMED; 257 mStatus = CONFIRMED;
258 else if (ss == "DECLINED") 258 else if (ss == "DECLINED")
259 mStatus = DECLINED; 259 mStatus = DECLINED;
260 else if (ss == "COMPLETED") 260 else if (ss == "COMPLETED")
261 mStatus = COMPLETED; 261 mStatus = COMPLETED;
262 else if (ss == "DELEGATED") 262 else if (ss == "DELEGATED")
263 mStatus = DELEGATED; 263 mStatus = DELEGATED;
264 264
265 updated(); 265 updated();
266} 266}
267 267
268void Todo::setStatus(int status) 268void Todo::setStatus(int status)
269{ 269{
270 if (mReadOnly) return; 270 if (mReadOnly) return;
271 mStatus = status; 271 mStatus = status;
272 updated(); 272 updated();
273} 273}
274 274
275int Todo::status() const 275int Todo::status() const
276{ 276{
277 return mStatus; 277 return mStatus;
278} 278}
279 279
280QString Todo::statusStr() const 280QString Todo::statusStr() const
281{ 281{
282 switch(mStatus) { 282 switch(mStatus) {
283 case NEEDS_ACTION: 283 case NEEDS_ACTION:
284 return QString("NEEDS ACTION"); 284 return QString("NEEDS ACTION");
285 break; 285 break;
286 case ACCEPTED: 286 case ACCEPTED:
287 return QString("ACCEPTED"); 287 return QString("ACCEPTED");
288 break; 288 break;
289 case SENT: 289 case SENT:
290 return QString("SENT"); 290 return QString("SENT");
291 break; 291 break;
292 case TENTATIVE: 292 case TENTATIVE:
293 return QString("TENTATIVE"); 293 return QString("TENTATIVE");
294 break; 294 break;
295 case CONFIRMED: 295 case CONFIRMED:
296 return QString("CONFIRMED"); 296 return QString("CONFIRMED");
297 break; 297 break;
298 case DECLINED: 298 case DECLINED:
299 return QString("DECLINED"); 299 return QString("DECLINED");
300 break; 300 break;
301 case COMPLETED: 301 case COMPLETED:
302 return QString("COMPLETED"); 302 return QString("COMPLETED");
303 break; 303 break;
304 case DELEGATED: 304 case DELEGATED:
305 return QString("DELEGATED"); 305 return QString("DELEGATED");
306 break; 306 break;
307 } 307 }
308 return QString(""); 308 return QString("");
309} 309}
310#endif 310#endif
311 311
312bool Todo::isCompleted() const 312bool Todo::isCompleted() const
313{ 313{
314 if (mPercentComplete == 100) return true; 314 if (mPercentComplete == 100) return true;
315 else return false; 315 else return false;
316} 316}
317 317
318void Todo::setCompleted(bool completed) 318void Todo::setCompleted(bool completed)
319{ 319{
320 if (completed) mPercentComplete = 100; 320 if (completed) mPercentComplete = 100;
321 else { 321 else {
322 mPercentComplete = 0; 322 mPercentComplete = 0;
323 mHasCompletedDate = false; 323 mHasCompletedDate = false;
324 } 324 }
325 updated(); 325 updated();
326} 326}
327 327
328QDateTime Todo::completed() const 328QDateTime Todo::completed() const
329{ 329{
330 return mCompleted; 330 return mCompleted;
331} 331}
332 332
333QString Todo::completedStr( bool shortF ) const 333QString Todo::completedStr( bool shortF ) const
334{ 334{
335 return KGlobal::locale()->formatDateTime(mCompleted, shortF); 335 return KGlobal::locale()->formatDateTime(mCompleted, shortF);
336} 336}
337 337
338void Todo::setCompleted(const QDateTime &completed) 338void Todo::setCompleted(const QDateTime &completed)
339{ 339{
340 //qDebug("Todo::setCompleted "); 340 //qDebug("Todo::setCompleted ");
341 if ( mHasCompletedDate ) { 341 if ( mHasCompletedDate ) {
342 // qDebug("has completed data - return "); 342 // qDebug("has completed data - return ");
343 return; 343 return;
344 } 344 }
345 mHasCompletedDate = true; 345 mHasCompletedDate = true;
346 mPercentComplete = 100; 346 mPercentComplete = 100;
347 mCompleted = getEvenTime(completed); 347 mCompleted = getEvenTime(completed);
348 updated(); 348 updated();
349} 349}
350 350
351bool Todo::hasCompletedDate() const 351bool Todo::hasCompletedDate() const
352{ 352{
353 return mHasCompletedDate; 353 return mHasCompletedDate;
354} 354}
355 355
356int Todo::percentComplete() const 356int Todo::percentComplete() const
357{ 357{
358 return mPercentComplete; 358 return mPercentComplete;
359} 359}
360 360
361void Todo::setPercentComplete(int v) 361void Todo::setPercentComplete(int v)
362{ 362{
363 mPercentComplete = v; 363 mPercentComplete = v;
364 if ( v != 100 ) 364 if ( v != 100 )
365 mHasCompletedDate = false; 365 mHasCompletedDate = false;
366 updated(); 366 updated();
367} 367}
368QDateTime Todo::getNextAlarmDateTime( bool * ok, int * offset ) const 368QDateTime Todo::getNextAlarmDateTime( bool * ok, int * offset ) const
369{ 369{
370 if ( isCompleted() || ! hasDueDate() || cancelled() ) { 370 if ( isCompleted() || ! hasDueDate() || cancelled() ) {
371 *ok = false; 371 *ok = false;
372 return QDateTime (); 372 return QDateTime ();
373 } 373 }
374 QDateTime incidenceStart; 374 QDateTime incidenceStart;
375 incidenceStart = dtDue(); 375 incidenceStart = dtDue();
376 bool enabled = false; 376 bool enabled = false;
377 Alarm* alarm; 377 Alarm* alarm;
378 int off; 378 int off = 0;
379 QDateTime alarmStart = QDateTime::currentDateTime().addDays( 3650 );; 379 QDateTime alarmStart = QDateTime::currentDateTime().addDays( 3650 );;
380 // if ( QDateTime::currentDateTime() > incidenceStart ){ 380 // if ( QDateTime::currentDateTime() > incidenceStart ){
381// *ok = false; 381// *ok = false;
382// return incidenceStart; 382// return incidenceStart;
383// } 383// }
384 for (QPtrListIterator<Alarm> it(mAlarms); (alarm = it.current()) != 0; ++it) { 384 for (QPtrListIterator<Alarm> it(mAlarms); (alarm = it.current()) != 0; ++it) {
385 if (alarm->enabled()) { 385 if (alarm->enabled()) {
386 if ( alarm->hasTime () ) { 386 if ( alarm->hasTime () ) {
387 if ( alarm->time() < alarmStart ) { 387 if ( alarm->time() < alarmStart ) {
388 alarmStart = alarm->time(); 388 alarmStart = alarm->time();
389 enabled = true; 389 enabled = true;
390 off = alarmStart.secsTo( incidenceStart ); 390 off = alarmStart.secsTo( incidenceStart );
391 } 391 }
392 392
393 } else { 393 } else {
394 int secs = alarm->startOffset().asSeconds(); 394 int secs = alarm->startOffset().asSeconds();
395 if ( incidenceStart.addSecs( secs ) < alarmStart ) { 395 if ( incidenceStart.addSecs( secs ) < alarmStart ) {
396 alarmStart = incidenceStart.addSecs( secs ); 396 alarmStart = incidenceStart.addSecs( secs );
397 enabled = true; 397 enabled = true;
398 off = -secs; 398 off = -secs;
399 } 399 }
400 } 400 }
401 } 401 }
402 } 402 }
403 if ( enabled ) { 403 if ( enabled ) {
404 if ( alarmStart > QDateTime::currentDateTime() ) { 404 if ( alarmStart > QDateTime::currentDateTime() ) {
405 *ok = true; 405 *ok = true;
406 * offset = off; 406 * offset = off;
407 return alarmStart; 407 return alarmStart;
408 } 408 }
409 } 409 }
410 *ok = false; 410 *ok = false;
411 return QDateTime (); 411 return QDateTime ();
412 412
413} 413}
414 414
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 3adbf61..df5a0d9 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -1,254 +1,254 @@
1/* 1/*
2 This file is part of KDE-Pim/Pi. 2 This file is part of KDE-Pim/Pi.
3 Copyright (c) 2004 Ulf Schenk 3 Copyright (c) 2004 Ulf Schenk
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21// $Id$ 21// $Id$
22 22
23#include "ksyncmanager.h" 23#include "ksyncmanager.h"
24 24
25#include <stdlib.h> 25#include <stdlib.h>
26 26
27#ifndef _WIN32_ 27#ifndef _WIN32_
28#include <unistd.h> 28#include <unistd.h>
29#endif 29#endif
30 30
31 31
32#include "ksyncprofile.h" 32#include "ksyncprofile.h"
33#include "ksyncprefsdialog.h" 33#include "ksyncprefsdialog.h"
34#include "kpimprefs.h" 34#include "kpimprefs.h"
35#include <kmessagebox.h> 35#include <kmessagebox.h>
36 36
37#include <qdir.h> 37#include <qdir.h>
38#include <qprogressbar.h> 38#include <qprogressbar.h>
39#include <qpopupmenu.h> 39#include <qpopupmenu.h>
40#include <qpushbutton.h> 40#include <qpushbutton.h>
41#include <qradiobutton.h> 41#include <qradiobutton.h>
42#include <qbuttongroup.h> 42#include <qbuttongroup.h>
43#include <qtimer.h> 43#include <qtimer.h>
44#include <qmessagebox.h> 44#include <qmessagebox.h>
45#include <qapplication.h> 45#include <qapplication.h>
46#include <qlineedit.h> 46#include <qlineedit.h>
47#include <qdialog.h> 47#include <qdialog.h>
48#include <qlayout.h> 48#include <qlayout.h>
49#include <qtextcodec.h> 49#include <qtextcodec.h>
50#include <qlabel.h> 50#include <qlabel.h>
51#include <qcheckbox.h> 51#include <qcheckbox.h>
52 52
53#include <klocale.h> 53#include <klocale.h>
54#include <kglobal.h> 54#include <kglobal.h>
55#include <kconfig.h> 55#include <kconfig.h>
56#include <kfiledialog.h> 56#include <kfiledialog.h>
57 57
58QDateTime KSyncManager::mRequestedSyncEvent; 58QDateTime KSyncManager::mRequestedSyncEvent;
59 59
60 60
61KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu) 61KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu)
62 : QObject(), mParent(parent), mImplementation(implementation), mTargetApp(ta), mPrefs(prefs ),mSyncMenu(syncmenu) 62 : QObject(), mPrefs(prefs ), mParent(parent),mImplementation(implementation), mTargetApp(ta), mSyncMenu(syncmenu)
63{ 63{
64 mServerSocket = 0; 64 mServerSocket = 0;
65 bar = new QProgressBar ( 1, 0 ); 65 bar = new QProgressBar ( 1, 0 );
66 bar->setCaption (""); 66 bar->setCaption ("");
67 mWriteBackInPast = 2; 67 mWriteBackInPast = 2;
68 int w = 300; 68 int w = 300;
69 if ( QApplication::desktop()->width() < 320 ) 69 if ( QApplication::desktop()->width() < 320 )
70 w = 220; 70 w = 220;
71 int h = bar->sizeHint().height() ; 71 int h = bar->sizeHint().height() ;
72 int dw = QApplication::desktop()->width(); 72 int dw = QApplication::desktop()->width();
73 int dh = QApplication::desktop()->height(); 73 int dh = QApplication::desktop()->height();
74 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 74 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
75 if ( mPrefs->mPassiveSyncAutoStart ) 75 if ( mPrefs->mPassiveSyncAutoStart )
76 enableQuick( false ); 76 enableQuick( false );
77 77
78} 78}
79 79
80KSyncManager::~KSyncManager() 80KSyncManager::~KSyncManager()
81{ 81{
82 delete bar; 82 delete bar;
83} 83}
84 84
85 85
86void KSyncManager::fillSyncMenu() 86void KSyncManager::fillSyncMenu()
87{ 87{
88 if ( mSyncMenu->count() ) 88 if ( mSyncMenu->count() )
89 mSyncMenu->clear(); 89 mSyncMenu->clear();
90 90
91 mSyncMenu->insertItem( i18n("Configure..."), 0 ); 91 mSyncMenu->insertItem( i18n("Configure..."), 0 );
92 mSyncMenu->insertSeparator(); 92 mSyncMenu->insertSeparator();
93 QPopupMenu *clearMenu = new QPopupMenu ( mSyncMenu ); 93 QPopupMenu *clearMenu = new QPopupMenu ( mSyncMenu );
94 mSyncMenu->insertItem( i18n("Remove sync info"),clearMenu, 5000 ); 94 mSyncMenu->insertItem( i18n("Remove sync info"),clearMenu, 5000 );
95 clearMenu->insertItem( i18n("For all profiles"), 1 ); 95 clearMenu->insertItem( i18n("For all profiles"), 1 );
96 clearMenu->insertSeparator(); 96 clearMenu->insertSeparator();
97 connect ( clearMenu, SIGNAL( activated ( int ) ), this, SLOT (slotClearMenu( int ) ) ); 97 connect ( clearMenu, SIGNAL( activated ( int ) ), this, SLOT (slotClearMenu( int ) ) );
98 mSyncMenu->insertSeparator(); 98 mSyncMenu->insertSeparator();
99 if ( mServerSocket == 0 ) { 99 if ( mServerSocket == 0 ) {
100 mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); 100 mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 );
101 } else { 101 } else {
102 mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); 102 mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 );
103 } 103 }
104 mSyncMenu->insertSeparator(); 104 mSyncMenu->insertSeparator();
105 mSyncMenu->insertItem( i18n("Multiple sync"), 1 ); 105 mSyncMenu->insertItem( i18n("Multiple sync"), 1 );
106 mSyncMenu->insertSeparator(); 106 mSyncMenu->insertSeparator();
107 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 107 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
108 config.setGroup("General"); 108 config.setGroup("General");
109 QStringList prof = config.readListEntry("SyncProfileNames"); 109 QStringList prof = config.readListEntry("SyncProfileNames");
110 mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 110 mLocalMachineName = config.readEntry("LocalMachineName","undefined");
111 if ( prof.count() < 2 ) { 111 if ( prof.count() < 2 ) {
112 prof.clear(); 112 prof.clear();
113 QString externalName; 113 QString externalName;
114#ifdef DESKTOP_VERSION 114#ifdef DESKTOP_VERSION
115#ifdef _WIN32_ 115#ifdef _WIN32_
116 externalName = "OutLook(not_implemented)"; 116 externalName = "OutLook(not_implemented)";
117#else 117#else
118 externalName = "KDE_Desktop"; 118 externalName = "KDE_Desktop";
119#endif 119#endif
120#else 120#else
121 externalName = "Sharp_DTM"; 121 externalName = "Sharp_DTM";
122#endif 122#endif
123 prof << externalName; 123 prof << externalName;
124 prof << i18n("Local_file"); 124 prof << i18n("Local_file");
125 prof << i18n("Last_file"); 125 prof << i18n("Last_file");
126 KSyncProfile* temp = new KSyncProfile (); 126 KSyncProfile* temp = new KSyncProfile ();
127 temp->setName( prof[0] ); 127 temp->setName( prof[0] );
128 temp->writeConfig(&config); 128 temp->writeConfig(&config);
129 temp->setName( prof[1] ); 129 temp->setName( prof[1] );
130 temp->writeConfig(&config); 130 temp->writeConfig(&config);
131 temp->setName( prof[2] ); 131 temp->setName( prof[2] );
132 temp->writeConfig(&config); 132 temp->writeConfig(&config);
133 config.setGroup("General"); 133 config.setGroup("General");
134 config.writeEntry("SyncProfileNames",prof); 134 config.writeEntry("SyncProfileNames",prof);
135 config.writeEntry("ExternSyncProfiles",externalName); 135 config.writeEntry("ExternSyncProfiles",externalName);
136 config.sync(); 136 config.sync();
137 delete temp; 137 delete temp;
138 } 138 }
139 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 139 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
140 mSyncProfileNames = prof; 140 mSyncProfileNames = prof;
141 unsigned int i; 141 unsigned int i;
142 for ( i = 0; i < prof.count(); ++i ) { 142 for ( i = 0; i < prof.count(); ++i ) {
143 mSyncMenu->insertItem( prof[i], 1000+i ); 143 mSyncMenu->insertItem( prof[i], 1000+i );
144 clearMenu->insertItem( prof[i], 1000+i ); 144 clearMenu->insertItem( prof[i], 1000+i );
145 if ( i == 2 ) 145 if ( i == 2 )
146 mSyncMenu->insertSeparator(); 146 mSyncMenu->insertSeparator();
147 } 147 }
148 QDir app_dir; 148 QDir app_dir;
149 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available 149 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available
150 if ( mTargetApp == PWMPI) { 150 if ( mTargetApp == PWMPI) {
151 mSyncMenu->removeItem( 1000 ); 151 mSyncMenu->removeItem( 1000 );
152 clearMenu->removeItem( 1000 ); 152 clearMenu->removeItem( 1000 );
153 } 153 }
154#ifndef DESKTOP_VERSION 154#ifndef DESKTOP_VERSION
155 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 155 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
156 mSyncMenu->removeItem( 1000 ); 156 mSyncMenu->removeItem( 1000 );
157 clearMenu->removeItem( 1000 ); 157 clearMenu->removeItem( 1000 );
158 } 158 }
159#endif 159#endif
160 mSyncMenu->removeItem( 1002 ); 160 mSyncMenu->removeItem( 1002 );
161 clearMenu->removeItem( 1002 ); 161 clearMenu->removeItem( 1002 );
162} 162}
163void KSyncManager::slotClearMenu( int action ) 163void KSyncManager::slotClearMenu( int action )
164{ 164{
165 QString syncDevice; 165 QString syncDevice;
166 if ( action > 999 ) { 166 if ( action > 999 ) {
167 syncDevice = mSyncProfileNames[action - 1000] ; 167 syncDevice = mSyncProfileNames[action - 1000] ;
168 } 168 }
169 169
170 170
171 171
172 int result = 0; 172 int result = 0;
173 QString sd; 173 QString sd;
174 if ( syncDevice.isEmpty() ) 174 if ( syncDevice.isEmpty() )
175 sd = i18n("Do you want to\nclear all sync info\nof all profiles?"); 175 sd = i18n("Do you want to\nclear all sync info\nof all profiles?");
176 else 176 else
177 sd = i18n("Do you want to\nclear the sync\ninfo of profile\n%1?\n"). arg( syncDevice ); 177 sd = i18n("Do you want to\nclear the sync\ninfo of profile\n%1?\n"). arg( syncDevice );
178 178
179 result = QMessageBox::warning( mParent, i18n("Warning!"),sd,i18n("OK"), i18n("Cancel"), 0, 179 result = QMessageBox::warning( mParent, i18n("Warning!"),sd,i18n("OK"), i18n("Cancel"), 0,
180 0, 1 ); 180 0, 1 );
181 if ( result ) 181 if ( result )
182 return; 182 return;
183 mImplementation->removeSyncInfo( syncDevice ); 183 mImplementation->removeSyncInfo( syncDevice );
184} 184}
185void KSyncManager::slotSyncMenu( int action ) 185void KSyncManager::slotSyncMenu( int action )
186{ 186{
187 qDebug("KSM::syncaction %d ", action); 187 qDebug("KSM::syncaction %d ", action);
188 if ( action == 5000 ) 188 if ( action == 5000 )
189 return; 189 return;
190 mSyncWithDesktop = false; 190 mSyncWithDesktop = false;
191 if ( action == 0 ) { 191 if ( action == 0 ) {
192 192
193 // seems to be a Qt2 event handling bug 193 // seems to be a Qt2 event handling bug
194 // syncmenu.clear causes a segfault at first time 194 // syncmenu.clear causes a segfault at first time
195 // when we call it after the main event loop, it is ok 195 // when we call it after the main event loop, it is ok
196 // same behaviour when calling OM/Pi via QCOP for the first time 196 // same behaviour when calling OM/Pi via QCOP for the first time
197 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 197 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
198 //confSync(); 198 //confSync();
199 199
200 return; 200 return;
201 } 201 }
202 if ( action == 1 ) { 202 if ( action == 1 ) {
203 multiSync( true ); 203 multiSync( true );
204 return; 204 return;
205 } 205 }
206 if ( action == 2 ) { 206 if ( action == 2 ) {
207 enableQuick(); 207 enableQuick();
208 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 208 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
209 return; 209 return;
210 } 210 }
211 if ( action == 3 ) { 211 if ( action == 3 ) {
212 delete mServerSocket; 212 delete mServerSocket;
213 mServerSocket = 0; 213 mServerSocket = 0;
214 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 214 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
215 return; 215 return;
216 } 216 }
217 217
218 if (blockSave()) 218 if (blockSave())
219 return; 219 return;
220 220
221 setBlockSave(true); 221 setBlockSave(true);
222 bool silent = false; 222 bool silent = false;
223 if ( action == 999 ) { 223 if ( action == 999 ) {
224 //special mode for silent syncing 224 //special mode for silent syncing
225 action = 1000; 225 action = 1000;
226 silent = true; 226 silent = true;
227 } 227 }
228 228
229 mCurrentSyncProfile = action - 1000 ; 229 mCurrentSyncProfile = action - 1000 ;
230 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ; 230 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ;
231 mCurrentSyncName = mLocalMachineName ; 231 mCurrentSyncName = mLocalMachineName ;
232 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 232 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
233 KSyncProfile* temp = new KSyncProfile (); 233 KSyncProfile* temp = new KSyncProfile ();
234 temp->setName(mSyncProfileNames[mCurrentSyncProfile]); 234 temp->setName(mSyncProfileNames[mCurrentSyncProfile]);
235 temp->readConfig(&config); 235 temp->readConfig(&config);
236 if (silent) { 236 if (silent) {
237 mAskForPreferences = false; 237 mAskForPreferences = false;
238 mShowSyncSummary = false; 238 mShowSyncSummary = false;
239 mWriteBackFile = true; 239 mWriteBackFile = true;
240 mSyncAlgoPrefs = 2;// take newest 240 mSyncAlgoPrefs = 2;// take newest
241 } 241 }
242 else { 242 else {
243 mAskForPreferences = temp->getAskForPreferences(); 243 mAskForPreferences = temp->getAskForPreferences();
244 mShowSyncSummary = temp->getShowSummaryAfterSync(); 244 mShowSyncSummary = temp->getShowSummaryAfterSync();
245 mWriteBackFile = temp->getWriteBackFile(); 245 mWriteBackFile = temp->getWriteBackFile();
246 mSyncAlgoPrefs = temp->getSyncPrefs(); 246 mSyncAlgoPrefs = temp->getSyncPrefs();
247 } 247 }
248 mWriteBackExistingOnly = temp->getWriteBackExisting(); 248 mWriteBackExistingOnly = temp->getWriteBackExisting();
249 mIsKapiFile = temp->getIsKapiFile(); 249 mIsKapiFile = temp->getIsKapiFile();
250 mWriteBackInFuture = 0; 250 mWriteBackInFuture = 0;
251 if ( temp->getWriteBackFuture() ) { 251 if ( temp->getWriteBackFuture() ) {
252 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 252 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
253 mWriteBackInPast = temp->getWriteBackPastWeeks( ); 253 mWriteBackInPast = temp->getWriteBackPastWeeks( );
254 } 254 }
@@ -271,481 +271,480 @@ void KSyncManager::slotSyncMenu( int action )
271 } else if ( action == 1002 ) { 271 } else if ( action == 1002 ) {
272 mWriteBackFile = false; 272 mWriteBackFile = false;
273 mAskForPreferences = false; 273 mAskForPreferences = false;
274 mShowSyncSummary = false; 274 mShowSyncSummary = false;
275 mSyncAlgoPrefs = 3; 275 mSyncAlgoPrefs = 3;
276 quickSyncLocalFile(); 276 quickSyncLocalFile();
277 277
278 } else if ( action >= 1003 ) { 278 } else if ( action >= 1003 ) {
279 if ( temp->getIsLocalFileSync() ) { 279 if ( temp->getIsLocalFileSync() ) {
280 switch(mTargetApp) 280 switch(mTargetApp)
281 { 281 {
282 case (KAPI): 282 case (KAPI):
283 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 283 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
284 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 284 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
285 break; 285 break;
286 case (KOPI): 286 case (KOPI):
287 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 287 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
288 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 288 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
289 break; 289 break;
290 case (PWMPI): 290 case (PWMPI):
291 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 291 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
292 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 292 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
293 break; 293 break;
294 default: 294 default:
295 qDebug("KSM::slotSyncMenu: invalid apptype selected"); 295 qDebug("KSM::slotSyncMenu: invalid apptype selected");
296 break; 296 break;
297 297
298 } 298 }
299 } else { 299 } else {
300 if ( temp->getIsPhoneSync() ) { 300 if ( temp->getIsPhoneSync() ) {
301 mPhoneDevice = temp->getPhoneDevice( ) ; 301 mPhoneDevice = temp->getPhoneDevice( ) ;
302 mPhoneConnection = temp->getPhoneConnection( ); 302 mPhoneConnection = temp->getPhoneConnection( );
303 mPhoneModel = temp->getPhoneModel( ); 303 mPhoneModel = temp->getPhoneModel( );
304 syncPhone(); 304 syncPhone();
305 } else if ( temp->getIsPiSync() ) { 305 } else if ( temp->getIsPiSync() ) {
306 if ( mTargetApp == KAPI ) { 306 if ( mTargetApp == KAPI ) {
307 mPassWordPiSync = temp->getRemotePwAB(); 307 mPassWordPiSync = temp->getRemotePwAB();
308 mActiveSyncPort = temp->getRemotePortAB(); 308 mActiveSyncPort = temp->getRemotePortAB();
309 mActiveSyncIP = temp->getRemoteIPAB(); 309 mActiveSyncIP = temp->getRemoteIPAB();
310 } else if ( mTargetApp == KOPI ) { 310 } else if ( mTargetApp == KOPI ) {
311 mPassWordPiSync = temp->getRemotePw(); 311 mPassWordPiSync = temp->getRemotePw();
312 mActiveSyncPort = temp->getRemotePort(); 312 mActiveSyncPort = temp->getRemotePort();
313 mActiveSyncIP = temp->getRemoteIP(); 313 mActiveSyncIP = temp->getRemoteIP();
314 } else { 314 } else {
315 mPassWordPiSync = temp->getRemotePwPWM(); 315 mPassWordPiSync = temp->getRemotePwPWM();
316 mActiveSyncPort = temp->getRemotePortPWM(); 316 mActiveSyncPort = temp->getRemotePortPWM();
317 mActiveSyncIP = temp->getRemoteIPPWM(); 317 mActiveSyncIP = temp->getRemoteIPPWM();
318 } 318 }
319 syncPi(); 319 syncPi();
320 while ( !mPisyncFinished ) { 320 while ( !mPisyncFinished ) {
321 //qDebug("waiting "); 321 //qDebug("waiting ");
322 qApp->processEvents(); 322 qApp->processEvents();
323 } 323 }
324 } else 324 } else
325 syncRemote( temp ); 325 syncRemote( temp );
326 326
327 } 327 }
328 } 328 }
329 delete temp; 329 delete temp;
330 setBlockSave(false); 330 setBlockSave(false);
331} 331}
332 332
333void KSyncManager::enableQuick( bool ask ) 333void KSyncManager::enableQuick( bool ask )
334{ 334{
335 bool autoStart; 335 bool autoStart;
336 bool changed = false; 336 bool changed = false;
337 if ( ask ) { 337 if ( ask ) {
338 QDialog dia ( 0, "input-dialog", true ); 338 QDialog dia ( 0, "input-dialog", true );
339 QLineEdit lab ( &dia ); 339 QLineEdit lab ( &dia );
340 QVBoxLayout lay( &dia ); 340 QVBoxLayout lay( &dia );
341 lab.setText( mPrefs->mPassiveSyncPort ); 341 lab.setText( mPrefs->mPassiveSyncPort );
342 lay.setMargin(7); 342 lay.setMargin(7);
343 lay.setSpacing(7); 343 lay.setSpacing(7);
344 int po = 9197+mTargetApp; 344 int po = 9197+mTargetApp;
345 QLabel label ( i18n("Port number (Default: %1)").arg(po), &dia ); 345 QLabel label ( i18n("Port number (Default: %1)").arg(po), &dia );
346 lay.addWidget( &label); 346 lay.addWidget( &label);
347 lay.addWidget( &lab); 347 lay.addWidget( &lab);
348 348
349 QLineEdit lepw ( &dia ); 349 QLineEdit lepw ( &dia );
350 lepw.setText( mPrefs->mPassiveSyncPw ); 350 lepw.setText( mPrefs->mPassiveSyncPw );
351 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); 351 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia );
352 lay.addWidget( &label2); 352 lay.addWidget( &label2);
353 lay.addWidget( &lepw); 353 lay.addWidget( &lepw);
354 QCheckBox autostart(i18n("Automatically start\nat application startup"), &dia ); 354 QCheckBox autostart(i18n("Automatically start\nat application startup"), &dia );
355 lay.addWidget( &autostart); 355 lay.addWidget( &autostart);
356 autostart.setChecked( mPrefs->mPassiveSyncAutoStart ); 356 autostart.setChecked( mPrefs->mPassiveSyncAutoStart );
357#ifdef DESKTOP_VERSION 357#ifdef DESKTOP_VERSION
358#ifdef _WIN32_ 358#ifdef _WIN32_
359 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia ); 359 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia );
360 syncdesktop.hide();// not implemented! 360 syncdesktop.hide();// not implemented!
361#else 361#else
362 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia ); 362 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia );
363#endif 363#endif
364 lay.addWidget( &syncdesktop); 364 lay.addWidget( &syncdesktop);
365#else 365#else
366 mPrefs->mPassiveSyncWithDesktop = false; 366 mPrefs->mPassiveSyncWithDesktop = false;
367 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia ); 367 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia );
368 syncdesktop.hide(); 368 syncdesktop.hide();
369#endif 369#endif
370 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop ); 370 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop );
371 371
372 dia.setFixedSize( 230,120 ); 372 dia.setFixedSize( 230,120 );
373 dia.setCaption( i18n("Enter port for Pi-Sync") ); 373 dia.setCaption( i18n("Enter port for Pi-Sync") );
374 QPushButton pb ( "OK", &dia); 374 QPushButton pb ( "OK", &dia);
375 lay.addWidget( &pb ); 375 lay.addWidget( &pb );
376 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 376 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
377 dia.show(); 377 dia.show();
378 if ( ! dia.exec() ) 378 if ( ! dia.exec() )
379 return; 379 return;
380 dia.hide(); 380 dia.hide();
381 qApp->processEvents(); 381 qApp->processEvents();
382 if ( mPrefs->mPassiveSyncPw != lepw.text() ) { 382 if ( mPrefs->mPassiveSyncPw != lepw.text() ) {
383 changed = true; 383 changed = true;
384 mPrefs->mPassiveSyncPw = lepw.text(); 384 mPrefs->mPassiveSyncPw = lepw.text();
385 } 385 }
386 if ( mPrefs->mPassiveSyncPort != lab.text() ) { 386 if ( mPrefs->mPassiveSyncPort != lab.text() ) {
387 mPrefs->mPassiveSyncPort = lab.text(); 387 mPrefs->mPassiveSyncPort = lab.text();
388 changed = true; 388 changed = true;
389 } 389 }
390 autoStart = autostart.isChecked(); 390 autoStart = autostart.isChecked();
391 if (mPrefs->mPassiveSyncWithDesktop != syncdesktop.isChecked() ) { 391 if (mPrefs->mPassiveSyncWithDesktop != syncdesktop.isChecked() ) {
392 changed = true; 392 changed = true;
393 mPrefs->mPassiveSyncWithDesktop = syncdesktop.isChecked(); 393 mPrefs->mPassiveSyncWithDesktop = syncdesktop.isChecked();
394 } 394 }
395 } 395 }
396 else 396 else
397 autoStart = mPrefs->mPassiveSyncAutoStart; 397 autoStart = mPrefs->mPassiveSyncAutoStart;
398 if ( autoStart != mPrefs->mPassiveSyncAutoStart ) 398 if ( autoStart != mPrefs->mPassiveSyncAutoStart )
399 changed = true; 399 changed = true;
400 bool ok; 400 bool ok;
401 mPrefs->mPassiveSyncAutoStart = false; 401 mPrefs->mPassiveSyncAutoStart = false;
402 Q_UINT16 port = mPrefs->mPassiveSyncPort.toUInt(&ok); 402 Q_UINT16 port = mPrefs->mPassiveSyncPort.toUInt(&ok);
403 if ( ! ok ) { 403 if ( ! ok ) {
404 KMessageBox::information( 0, i18n("No valid port")); 404 KMessageBox::information( 0, i18n("No valid port"));
405 return; 405 return;
406 } 406 }
407 //qDebug("port %d ", port); 407 //qDebug("port %d ", port);
408 mServerSocket = new KServerSocket ( mPrefs->mPassiveSyncPw, port ,1 ); 408 mServerSocket = new KServerSocket ( mPrefs->mPassiveSyncPw, port ,1 );
409 mServerSocket->setFileName( defaultFileName() );//bbb 409 mServerSocket->setFileName( defaultFileName() );//bbb
410 //qDebug("connected "); 410 //qDebug("connected ");
411 if ( !mServerSocket->ok() ) { 411 if ( !mServerSocket->ok() ) {
412 KMessageBox::information( 0, i18n("Failed to bind or\nlisten to the port!")); 412 KMessageBox::information( 0, i18n("Failed to bind or\nlisten to the port!"));
413 delete mServerSocket; 413 delete mServerSocket;
414 mServerSocket = 0; 414 mServerSocket = 0;
415 return; 415 return;
416 } 416 }
417 mPrefs->mPassiveSyncAutoStart = autoStart; 417 mPrefs->mPassiveSyncAutoStart = autoStart;
418 if ( changed ) { 418 if ( changed ) {
419 mPrefs->writeConfig(); 419 mPrefs->writeConfig();
420 } 420 }
421 connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) ); 421 connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) );
422 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) ); 422 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) );
423} 423}
424 424
425void KSyncManager::syncLocalFile() 425void KSyncManager::syncLocalFile()
426{ 426{
427 427
428 QString fn =mPrefs->mLastSyncedLocalFile; 428 QString fn =mPrefs->mLastSyncedLocalFile;
429 QString ext; 429 QString ext;
430 430
431 switch(mTargetApp) 431 switch(mTargetApp)
432 { 432 {
433 case (KAPI): 433 case (KAPI):
434 ext = "(*.vcf)"; 434 ext = "(*.vcf)";
435 break; 435 break;
436 case (KOPI): 436 case (KOPI):
437 ext = "(*.ics/*.vcs)"; 437 ext = "(*.ics/*.vcs)";
438 break; 438 break;
439 case (PWMPI): 439 case (PWMPI):
440 ext = "(*.pwm)"; 440 ext = "(*.pwm)";
441 break; 441 break;
442 default: 442 default:
443 qDebug("KSM::syncLocalFile: invalid apptype selected"); 443 qDebug("KSM::syncLocalFile: invalid apptype selected");
444 break; 444 break;
445 445
446 } 446 }
447 447
448 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent ); 448 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent );
449 if ( fn == "" ) 449 if ( fn == "" )
450 return; 450 return;
451 if ( syncWithFile( fn, false ) ) { 451 if ( syncWithFile( fn, false ) ) {
452 qDebug("KSM::syncLocalFile() successful "); 452 qDebug("KSM::syncLocalFile() successful ");
453 } 453 }
454 454
455} 455}
456 456
457bool KSyncManager::syncWithFile( QString fn , bool quick ) 457bool KSyncManager::syncWithFile( QString fn , bool quick )
458{ 458{
459 bool ret = false; 459 bool ret = false;
460 QFileInfo info; 460 QFileInfo info;
461 info.setFile( fn ); 461 info.setFile( fn );
462 QString mess; 462 QString mess;
463 bool loadbup = true;
464 if ( !info. exists() ) { 463 if ( !info. exists() ) {
465 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 464 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
466 int result = QMessageBox::warning( mParent, i18n("Warning!"), 465 QMessageBox::warning( mParent, i18n("Warning!"),
467 mess ); 466 mess );
468 return ret; 467 return ret;
469 } 468 }
470 int result = 0; 469 int result = 0;
471 if ( !quick ) { 470 if ( !quick ) {
472 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 471 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
473 result = QMessageBox::warning( mParent, i18n("Warning!"), 472 result = QMessageBox::warning( mParent, i18n("Warning!"),
474 mess, 473 mess,
475 i18n("Sync"), i18n("Cancel"), 0, 474 i18n("Sync"), i18n("Cancel"), 0,
476 0, 1 ); 475 0, 1 );
477 if ( result ) 476 if ( result )
478 return false; 477 return false;
479 } 478 }
480 if ( mAskForPreferences ) 479 if ( mAskForPreferences )
481 if ( !edit_sync_options()) { 480 if ( !edit_sync_options()) {
482 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 481 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
483 return false; 482 return false;
484 } 483 }
485 if ( result == 0 ) { 484 if ( result == 0 ) {
486 //qDebug("Now sycing ... "); 485 //qDebug("Now sycing ... ");
487 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) ) 486 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) )
488 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") ); 487 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") );
489 else 488 else
490 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") ); 489 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") );
491 if ( ! quick ) 490 if ( ! quick )
492 mPrefs->mLastSyncedLocalFile = fn; 491 mPrefs->mLastSyncedLocalFile = fn;
493 } 492 }
494 return ret; 493 return ret;
495} 494}
496 495
497void KSyncManager::quickSyncLocalFile() 496void KSyncManager::quickSyncLocalFile()
498{ 497{
499 498
500 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) { 499 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) {
501 qDebug("KSM::quick syncLocalFile() successful "); 500 qDebug("KSM::quick syncLocalFile() successful ");
502 501
503 } 502 }
504} 503}
505 504
506void KSyncManager::multiSync( bool askforPrefs ) 505void KSyncManager::multiSync( bool askforPrefs )
507{ 506{
508 if (blockSave()) 507 if (blockSave())
509 return; 508 return;
510 setBlockSave(true); 509 setBlockSave(true);
511 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 510 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
512 if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"), 511 if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"),
513 question, 512 question,
514 i18n("Yes"), i18n("No"), 513 i18n("Yes"), i18n("No"),
515 0, 0 ) != 0 ) { 514 0, 0 ) != 0 ) {
516 setBlockSave(false); 515 setBlockSave(false);
517 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!")); 516 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!"));
518 return; 517 return;
519 } 518 }
520 mCurrentSyncDevice = i18n("Multiple profiles") ; 519 mCurrentSyncDevice = i18n("Multiple profiles") ;
521 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; 520 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs;
522 if ( askforPrefs ) { 521 if ( askforPrefs ) {
523 if ( !edit_sync_options()) { 522 if ( !edit_sync_options()) {
524 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted.") ); 523 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted.") );
525 return; 524 return;
526 } 525 }
527 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs; 526 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs;
528 } 527 }
529 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") ); 528 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") );
530 qApp->processEvents(); 529 qApp->processEvents();
531 int num = ringSync() ; 530 int num = ringSync() ;
532 if ( num > 1 ) 531 if ( num > 1 )
533 ringSync(); 532 ringSync();
534 setBlockSave(false); 533 setBlockSave(false);
535 if ( num ) 534 if ( num )
536 emit save(); 535 emit save();
537 if ( num ) 536 if ( num )
538 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) ); 537 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) );
539 else 538 else
540 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 539 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
541 return; 540 return;
542} 541}
543 542
544int KSyncManager::ringSync() 543int KSyncManager::ringSync()
545{ 544{
546 545
547 int syncedProfiles = 0; 546 int syncedProfiles = 0;
548 unsigned int i; 547 unsigned int i;
549 QTime timer; 548 QTime timer;
550 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 549 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
551 QStringList syncProfileNames = mSyncProfileNames; 550 QStringList syncProfileNames = mSyncProfileNames;
552 KSyncProfile* temp = new KSyncProfile (); 551 KSyncProfile* temp = new KSyncProfile ();
553 mAskForPreferences = false; 552 mAskForPreferences = false;
554 for ( i = 0; i < syncProfileNames.count(); ++i ) { 553 for ( i = 0; i < syncProfileNames.count(); ++i ) {
555 mCurrentSyncProfile = i; 554 mCurrentSyncProfile = i;
556 temp->setName(syncProfileNames[mCurrentSyncProfile]); 555 temp->setName(syncProfileNames[mCurrentSyncProfile]);
557 temp->readConfig(&config); 556 temp->readConfig(&config);
558 557
559 bool includeInRingSync; 558 bool includeInRingSync = false;
560 switch(mTargetApp) 559 switch(mTargetApp)
561 { 560 {
562 case (KAPI): 561 case (KAPI):
563 includeInRingSync = temp->getIncludeInRingSyncAB(); 562 includeInRingSync = temp->getIncludeInRingSyncAB();
564 break; 563 break;
565 case (KOPI): 564 case (KOPI):
566 includeInRingSync = temp->getIncludeInRingSync(); 565 includeInRingSync = temp->getIncludeInRingSync();
567 break; 566 break;
568 case (PWMPI): 567 case (PWMPI):
569 includeInRingSync = temp->getIncludeInRingSyncPWM(); 568 includeInRingSync = temp->getIncludeInRingSyncPWM();
570 break; 569 break;
571 default: 570 default:
572 qDebug("KSM::ringSync: invalid apptype selected"); 571 qDebug("KSM::ringSync: invalid apptype selected");
573 break; 572 break;
574 573
575 } 574 }
576 575
577 576
578 if ( includeInRingSync && ( i < 1 || i > 2 )) { 577 if ( includeInRingSync && ( i < 1 || i > 2 )) {
579 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 578 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
580 ++syncedProfiles; 579 ++syncedProfiles;
581 mSyncWithDesktop = false; 580 mSyncWithDesktop = false;
582 // mAskForPreferences = temp->getAskForPreferences(); 581 // mAskForPreferences = temp->getAskForPreferences();
583 mWriteBackFile = temp->getWriteBackFile(); 582 mWriteBackFile = temp->getWriteBackFile();
584 mWriteBackExistingOnly = temp->getWriteBackExisting(); 583 mWriteBackExistingOnly = temp->getWriteBackExisting();
585 mIsKapiFile = temp->getIsKapiFile(); 584 mIsKapiFile = temp->getIsKapiFile();
586 mWriteBackInFuture = 0; 585 mWriteBackInFuture = 0;
587 if ( temp->getWriteBackFuture() ) { 586 if ( temp->getWriteBackFuture() ) {
588 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 587 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
589 mWriteBackInPast = temp->getWriteBackPastWeeks( ); 588 mWriteBackInPast = temp->getWriteBackPastWeeks( );
590 } 589 }
591 mFilterInCal = temp->getFilterInCal(); 590 mFilterInCal = temp->getFilterInCal();
592 mFilterOutCal = temp->getFilterOutCal(); 591 mFilterOutCal = temp->getFilterOutCal();
593 mFilterInAB = temp->getFilterInAB(); 592 mFilterInAB = temp->getFilterInAB();
594 mFilterOutAB = temp->getFilterOutAB(); 593 mFilterOutAB = temp->getFilterOutAB();
595 mShowSyncSummary = false; 594 mShowSyncSummary = false;
596 mCurrentSyncDevice = syncProfileNames[i] ; 595 mCurrentSyncDevice = syncProfileNames[i] ;
597 mCurrentSyncName = mLocalMachineName; 596 mCurrentSyncName = mLocalMachineName;
598 if ( i == 0 ) { 597 if ( i == 0 ) {
599 mIsKapiFile = false; 598 mIsKapiFile = false;
600#ifdef DESKTOP_VERSION 599#ifdef DESKTOP_VERSION
601 syncKDE(); 600 syncKDE();
602#else 601#else
603 syncSharp(); 602 syncSharp();
604#endif 603#endif
605 } else { 604 } else {
606 if ( temp->getIsLocalFileSync() ) { 605 if ( temp->getIsLocalFileSync() ) {
607 switch(mTargetApp) 606 switch(mTargetApp)
608 { 607 {
609 case (KAPI): 608 case (KAPI):
610 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 609 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
611 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 610 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
612 break; 611 break;
613 case (KOPI): 612 case (KOPI):
614 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 613 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
615 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 614 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
616 break; 615 break;
617 case (PWMPI): 616 case (PWMPI):
618 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 617 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
619 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 618 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
620 break; 619 break;
621 default: 620 default:
622 qDebug("KSM: invalid apptype selected"); 621 qDebug("KSM: invalid apptype selected");
623 break; 622 break;
624 } 623 }
625 } else { 624 } else {
626 if ( temp->getIsPhoneSync() ) { 625 if ( temp->getIsPhoneSync() ) {
627 mPhoneDevice = temp->getPhoneDevice( ) ; 626 mPhoneDevice = temp->getPhoneDevice( ) ;
628 mPhoneConnection = temp->getPhoneConnection( ); 627 mPhoneConnection = temp->getPhoneConnection( );
629 mPhoneModel = temp->getPhoneModel( ); 628 mPhoneModel = temp->getPhoneModel( );
630 syncPhone(); 629 syncPhone();
631 } else if ( temp->getIsPiSync() ) { 630 } else if ( temp->getIsPiSync() ) {
632 if ( mTargetApp == KAPI ) { 631 if ( mTargetApp == KAPI ) {
633 mPassWordPiSync = temp->getRemotePwAB(); 632 mPassWordPiSync = temp->getRemotePwAB();
634 mActiveSyncPort = temp->getRemotePortAB(); 633 mActiveSyncPort = temp->getRemotePortAB();
635 mActiveSyncIP = temp->getRemoteIPAB(); 634 mActiveSyncIP = temp->getRemoteIPAB();
636 } else if ( mTargetApp == KOPI ) { 635 } else if ( mTargetApp == KOPI ) {
637 mPassWordPiSync = temp->getRemotePw(); 636 mPassWordPiSync = temp->getRemotePw();
638 mActiveSyncPort = temp->getRemotePort(); 637 mActiveSyncPort = temp->getRemotePort();
639 mActiveSyncIP = temp->getRemoteIP(); 638 mActiveSyncIP = temp->getRemoteIP();
640 } else { 639 } else {
641 mPassWordPiSync = temp->getRemotePwPWM(); 640 mPassWordPiSync = temp->getRemotePwPWM();
642 mActiveSyncPort = temp->getRemotePortPWM(); 641 mActiveSyncPort = temp->getRemotePortPWM();
643 mActiveSyncIP = temp->getRemoteIPPWM(); 642 mActiveSyncIP = temp->getRemoteIPPWM();
644 } 643 }
645 syncPi(); 644 syncPi();
646 while ( !mPisyncFinished ) { 645 while ( !mPisyncFinished ) {
647 //qDebug("waiting "); 646 //qDebug("waiting ");
648 qApp->processEvents(); 647 qApp->processEvents();
649 } 648 }
650 timer.start(); 649 timer.start();
651 while ( timer.elapsed () < 2000 ) { 650 while ( timer.elapsed () < 2000 ) {
652 qApp->processEvents(); 651 qApp->processEvents();
653 } 652 }
654 } else 653 } else
655 syncRemote( temp, false ); 654 syncRemote( temp, false );
656 655
657 } 656 }
658 } 657 }
659 timer.start(); 658 timer.start();
660 mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") ); 659 mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") );
661 while ( timer.elapsed () < 2000 ) { 660 while ( timer.elapsed () < 2000 ) {
662 qApp->processEvents(); 661 qApp->processEvents();
663#ifndef _WIN32_ 662#ifndef _WIN32_
664 sleep (1); 663 sleep (1);
665#endif 664#endif
666 } 665 }
667 666
668 } 667 }
669 668
670 } 669 }
671 delete temp; 670 delete temp;
672 return syncedProfiles; 671 return syncedProfiles;
673} 672}
674 673
675void KSyncManager::syncRemote( KSyncProfile* prof, bool ask) 674void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
676{ 675{
677 QString question; 676 QString question;
678 if ( ask ) { 677 if ( ask ) {
679 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 678 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
680 if ( QMessageBox::information( mParent, i18n("Sync"), 679 if ( QMessageBox::information( mParent, i18n("Sync"),
681 question, 680 question,
682 i18n("Yes"), i18n("No"), 681 i18n("Yes"), i18n("No"),
683 0, 0 ) != 0 ) 682 0, 0 ) != 0 )
684 return; 683 return;
685 } 684 }
686 685
687 QString preCommand; 686 QString preCommand;
688 QString localTempFile; 687 QString localTempFile;
689 QString postCommand; 688 QString postCommand;
690 689
691 switch(mTargetApp) 690 switch(mTargetApp)
692 { 691 {
693 case (KAPI): 692 case (KAPI):
694 preCommand = prof->getPreSyncCommandAB(); 693 preCommand = prof->getPreSyncCommandAB();
695 postCommand = prof->getPostSyncCommandAB(); 694 postCommand = prof->getPostSyncCommandAB();
696 localTempFile = prof->getLocalTempFileAB(); 695 localTempFile = prof->getLocalTempFileAB();
697 break; 696 break;
698 case (KOPI): 697 case (KOPI):
699 preCommand = prof->getPreSyncCommand(); 698 preCommand = prof->getPreSyncCommand();
700 postCommand = prof->getPostSyncCommand(); 699 postCommand = prof->getPostSyncCommand();
701 localTempFile = prof->getLocalTempFile(); 700 localTempFile = prof->getLocalTempFile();
702 break; 701 break;
703 case (PWMPI): 702 case (PWMPI):
704 preCommand = prof->getPreSyncCommandPWM(); 703 preCommand = prof->getPreSyncCommandPWM();
705 postCommand = prof->getPostSyncCommandPWM(); 704 postCommand = prof->getPostSyncCommandPWM();
706 localTempFile = prof->getLocalTempFilePWM(); 705 localTempFile = prof->getLocalTempFilePWM();
707 break; 706 break;
708 default: 707 default:
709 qDebug("KSM::syncRemote: invalid apptype selected"); 708 qDebug("KSM::syncRemote: invalid apptype selected");
710 break; 709 break;
711 } 710 }
712 711
713 712
714 int fi; 713 int fi;
715 if ( (fi = preCommand.find("$PWD$")) > 0 ) { 714 if ( (fi = preCommand.find("$PWD$")) > 0 ) {
716 QString pwd = getPassword(); 715 QString pwd = getPassword();
717 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 ); 716 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 );
718 717
719 } 718 }
720 int maxlen = 30; 719 int maxlen = 30;
721 if ( QApplication::desktop()->width() > 320 ) 720 if ( QApplication::desktop()->width() > 320 )
722 maxlen += 25; 721 maxlen += 25;
723 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) ); 722 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) );
724 int fileSize = 0; 723 int fileSize = 0;
725 int result = system ( preCommand ); 724 int result = system ( preCommand );
726 // 0 : okay 725 // 0 : okay
727 // 256: no such file or dir 726 // 256: no such file or dir
728 // 727 //
729 qDebug("KSM::Sync: Remote copy result(0 = okay): %d ",result ); 728 qDebug("KSM::Sync: Remote copy result(0 = okay): %d ",result );
730 if ( result != 0 ) { 729 if ( result != 0 ) {
731 unsigned int len = maxlen; 730 unsigned int len = maxlen;
732 while ( len < preCommand.length() ) { 731 while ( len < preCommand.length() ) {
733 preCommand.insert( len , "\n" ); 732 preCommand.insert( len , "\n" );
734 len += maxlen +2; 733 len += maxlen +2;
735 } 734 }
736 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ; 735 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ;
737 QMessageBox::information( mParent, i18n("Sync - ERROR"), 736 QMessageBox::information( mParent, i18n("Sync - ERROR"),
738 question, 737 question,
739 i18n("Okay!")) ; 738 i18n("Okay!")) ;
740 mParent->topLevelWidget()->setCaption ("KDE-Pim"); 739 mParent->topLevelWidget()->setCaption ("KDE-Pim");
741 return; 740 return;
742 } 741 }
743 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) ); 742 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) );
744 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 743 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
745 744
746 if ( syncWithFile( localTempFile, true ) ) { 745 if ( syncWithFile( localTempFile, true ) ) {
747 746
748 if ( mWriteBackFile ) { 747 if ( mWriteBackFile ) {
749 int fi; 748 int fi;
750 if ( (fi = postCommand.find("$PWD$")) > 0 ) { 749 if ( (fi = postCommand.find("$PWD$")) > 0 ) {
751 QString pwd = getPassword(); 750 QString pwd = getPassword();
diff --git a/libkdepim/phoneaccess.cpp b/libkdepim/phoneaccess.cpp
index e24ad9e..89db22b 100644
--- a/libkdepim/phoneaccess.cpp
+++ b/libkdepim/phoneaccess.cpp
@@ -1,216 +1,216 @@
1/* 1/*
2 This file is part of libkdepim. 2 This file is part of libkdepim.
3 3
4 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org> 4 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22 22
23#include <qstring.h> 23#include <qstring.h>
24#include <qapplication.h> 24#include <qapplication.h>
25#include <qptrlist.h> 25#include <qptrlist.h>
26#include <qregexp.h> 26#include <qregexp.h>
27#include <qfile.h> 27#include <qfile.h>
28#include <qlabel.h> 28#include <qlabel.h>
29#include <qtextstream.h> 29#include <qtextstream.h>
30#include <qtextcodec.h> 30#include <qtextcodec.h>
31#include <qdir.h> 31#include <qdir.h>
32#include <kmessagebox.h> 32#include <kmessagebox.h>
33#include <stdlib.h> 33#include <stdlib.h>
34#include "phoneaccess.h" 34#include "phoneaccess.h"
35 35
36void PhoneAccess::writeConfig( QString device, QString connection, QString model ) 36void PhoneAccess::writeConfig( QString device, QString connection, QString model )
37{ 37{
38#ifdef _WIN32_ 38#ifdef _WIN32_
39 QString fileName = qApp->applicationDirPath () +"\\gammurc"; 39 QString fileName = qApp->applicationDirPath () +"\\gammurc";
40#else 40#else
41 QString fileName = QDir::homeDirPath() +"/.gammurc"; 41 QString fileName = QDir::homeDirPath() +"/.gammurc";
42#endif 42#endif
43 //qDebug("save %d ", load ); 43 //qDebug("save %d ", load );
44 QString content = "[gammu]\n";; 44 QString content = "[gammu]\n";;
45 bool write = false; 45 bool write = false;
46 bool addPort = true, addConnection = true, addModel = true; 46 bool addPort = true, addConnection = true, addModel = true;
47 QFile file( fileName ); 47 QFile file( fileName );
48 if ( QFile::exists( fileName) ) { 48 if ( QFile::exists( fileName) ) {
49 if (!file.open( IO_ReadOnly ) ) { 49 if (!file.open( IO_ReadOnly ) ) {
50 qDebug("Error: cannot open %s ", fileName.latin1() ); 50 qDebug("Error: cannot open %s ", fileName.latin1() );
51 return; 51 return;
52 } 52 }
53 QString line; 53 QString line;
54 while ( file.readLine( line, 1024 ) > 0 ) { 54 while ( file.readLine( line, 1024 ) > 0 ) {
55 //qDebug("*%s* ", line.latin1() ); 55 //qDebug("*%s* ", line.latin1() );
56 if ( line.left(7 ) == "[gammu]" ) { 56 if ( line.left(7 ) == "[gammu]" ) {
57 ; 57 ;
58 } else 58 } else
59 if ( line.left(4 ) == "port" ) { 59 if ( line.left(4 ) == "port" ) {
60 if ( line == "port = " + device+"\n" ) { 60 if ( line == "port = " + device+"\n" ) {
61 content += line ; 61 content += line ;
62 addPort = false; 62 addPort = false;
63 //qDebug("port found" ); 63 //qDebug("port found" );
64 } 64 }
65 65
66 } else if ( line.left(5 ) == "model" ) { 66 } else if ( line.left(5 ) == "model" ) {
67 if ( line == "model = " + model +"\n") { 67 if ( line == "model = " + model +"\n") {
68 content += line ; 68 content += line ;
69 addModel = false; 69 addModel = false;
70 //qDebug("model found" ); 70 //qDebug("model found" );
71 } 71 }
72 72
73 } else if ( line.left( 10 ) == "connection" ) { 73 } else if ( line.left( 10 ) == "connection" ) {
74 if ( line == "connection = " + connection +"\n") { 74 if ( line == "connection = " + connection +"\n") {
75 addConnection = false; 75 addConnection = false;
76 content += line ; 76 content += line ;
77 //qDebug("con found" ); 77 //qDebug("con found" );
78 } 78 }
79 79
80 } else { 80 } else {
81 content += line ; 81 content += line ;
82 } 82 }
83 } 83 }
84 file.close(); 84 file.close();
85 } else { 85 } else {
86 if ( ! connection.isEmpty() ) { 86 if ( ! connection.isEmpty() ) {
87 addConnection = true; 87 addConnection = true;
88 } 88 }
89 if ( ! device.isEmpty() ) { 89 if ( ! device.isEmpty() ) {
90 addPort = true; 90 addPort = true;
91 91
92 } 92 }
93 if ( ! model.isEmpty() ) { 93 if ( ! model.isEmpty() ) {
94 addModel = true; 94 addModel = true;
95 } 95 }
96 } 96 }
97 97
98 if ( addConnection ) { 98 if ( addConnection ) {
99 write = true; 99 write = true;
100 content += "connection = "; 100 content += "connection = ";
101 content += connection; 101 content += connection;
102 content += "\n"; 102 content += "\n";
103 } 103 }
104 if ( addPort ) { 104 if ( addPort ) {
105 write = true; 105 write = true;
106 content += "port = "; 106 content += "port = ";
107 content += device; 107 content += device;
108 content += "\n"; 108 content += "\n";
109 109
110 } 110 }
111 if ( addModel ) { 111 if ( addModel ) {
112 write = true; 112 write = true;
113 content += "model = "; 113 content += "model = ";
114 content += model; 114 content += model;
115 content += "\n"; 115 content += "\n";
116 } 116 }
117 if ( write ) { 117 if ( write ) {
118 if (!file.open( IO_WriteOnly ) ) { 118 if (!file.open( IO_WriteOnly ) ) {
119 qDebug("Error: cannot write file %s ", fileName.latin1() ); 119 qDebug("Error: cannot write file %s ", fileName.latin1() );
120 return; 120 return;
121 } 121 }
122 qDebug("Writing file %s ", fileName.latin1() ); 122 qDebug("Writing file %s ", fileName.latin1() );
123 QTextStream ts( &file ); 123 QTextStream ts( &file );
124 ts << content ; 124 ts << content ;
125 file.close(); 125 file.close();
126 } 126 }
127 127
128} 128}
129 129
130 130
131bool PhoneAccess::writeToPhone( QString fileName) 131bool PhoneAccess::writeToPhone( QString fileName)
132{ 132{
133 133
134#ifdef DESKTOP_VERSION 134#ifdef DESKTOP_VERSION
135#ifdef _WIN32_ 135#ifdef _WIN32_
136 QString command ="kammu --restore " + fileName ; 136 QString command ="kammu --restore " + fileName ;
137#else 137#else
138 QString command ="./kammu --restore " + fileName ; 138 QString command ="./kammu --restore " + fileName ;
139#endif 139#endif
140#else 140#else
141 QString command ="kammu --restore " + fileName ; 141 QString command ="kammu --restore " + fileName ;
142#endif 142#endif
143 int ret = 1; 143 int ret = 1;
144 while ( ret != 0 ) { 144 while ( ret != 0 ) {
145 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 ); 145 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 );
146 int w = 235; 146 int w = 235;
147 int h = status->sizeHint().height()+20 ; 147 int h = status->sizeHint().height()+20 ;
148 int dw = QApplication::desktop()->width(); 148 int dw = QApplication::desktop()->width();
149 int dh = QApplication::desktop()->height(); 149 int dh = QApplication::desktop()->height();
150 if ( dw > 310 ) 150 if ( dw > 310 )
151 w = 310; 151 w = 310;
152 status->setCaption(i18n("Writing to phone...") ); 152 status->setCaption(i18n("Writing to phone...") );
153 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 153 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
154 status->show(); 154 status->show();
155 status->raise(); 155 status->raise();
156 status->update(); 156 status->update();
157 qApp->processEvents(); 157 qApp->processEvents();
158 status->update(); 158 status->update();
159 qApp->processEvents(); 159 qApp->processEvents();
160 ret = system ( command.latin1()); 160 ret = system ( command.latin1());
161 delete status; 161 delete status;
162 qApp->processEvents(); 162 qApp->processEvents();
163 if ( ret ) { 163 if ( ret ) {
164 qDebug("Error S::command returned %d.", ret); 164 qDebug("Error S::command returned %d.", ret);
165 int retval = KMessageBox::warningContinueCancel(0, 165 int retval = KMessageBox::warningContinueCancel(0,
166 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel")); 166 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel"));
167 if ( retval != KMessageBox::Continue ) 167 if ( retval != KMessageBox::Continue )
168 return false; 168 return false;
169 } 169 }
170 } 170 }
171 return true; 171 return true;
172} 172}
173bool PhoneAccess::readFromPhone( QString fileName) 173bool PhoneAccess::readFromPhone( QString fileName)
174{ 174{
175 175
176#ifdef DESKTOP_VERSION 176#ifdef DESKTOP_VERSION
177#ifdef _WIN32_ 177#ifdef _WIN32_
178 QString command ="kammu --backup " + fileName + " -yes" ; 178 QString command ="kammu --backup " + fileName + " -yes" ;
179#else 179#else
180 QString command ="./kammu --backup " + fileName + " -yes" ; 180 QString command ="./kammu --backup " + fileName + " -yes" ;
181#endif 181#endif
182#else 182#else
183 QString command ="kammu --backup " + fileName + " -yes" ; 183 QString command ="kammu --backup " + fileName + " -yes" ;
184#endif 184#endif
185 int ret; 185 int ret = 1;
186 while ( ret != 0 ) { 186 while ( ret != 0 ) {
187 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 ); 187 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 );
188 int w = 235; 188 int w = 235;
189 int h = status->sizeHint().height()+20 ; 189 int h = status->sizeHint().height()+20 ;
190 int dw = QApplication::desktop()->width(); 190 int dw = QApplication::desktop()->width();
191 int dh = QApplication::desktop()->height(); 191 int dh = QApplication::desktop()->height();
192 if ( dw > 310 ) 192 if ( dw > 310 )
193 w = 310; 193 w = 310;
194 status->setCaption(i18n("Reading from phone...") ); 194 status->setCaption(i18n("Reading from phone...") );
195 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 195 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
196 status->show(); 196 status->show();
197 status->raise(); 197 status->raise();
198 status->update(); 198 status->update();
199 qApp->processEvents(); 199 qApp->processEvents();
200 status->update(); 200 status->update();
201 qApp->processEvents(); 201 qApp->processEvents();
202 ret = system ( command.latin1() ); 202 ret = system ( command.latin1() );
203 delete status; 203 delete status;
204 qApp->processEvents(); 204 qApp->processEvents();
205 if ( ret ) { 205 if ( ret ) {
206 qDebug("Error reading from phone:Command returned %d", ret); 206 qDebug("Error reading from phone:Command returned %d", ret);
207 int retval = KMessageBox::warningContinueCancel(0, 207 int retval = KMessageBox::warningContinueCancel(0,
208 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel")); 208 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel"));
209 if ( retval != KMessageBox::Continue ) 209 if ( retval != KMessageBox::Continue )
210 return false; 210 return false;
211 211
212 } 212 }
213 } 213 }
214 qApp->processEvents(); 214 qApp->processEvents();
215 return true; 215 return true;
216} 216}
diff --git a/microkde/kapplication.cpp b/microkde/kapplication.cpp
index 21aa0a4..f05b91b 100644
--- a/microkde/kapplication.cpp
+++ b/microkde/kapplication.cpp
@@ -1,110 +1,111 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <stdio.h> 2#include <stdio.h>
3 3
4#include "kapplication.h" 4#include "kapplication.h"
5#include "ktextedit.h" 5#include "ktextedit.h"
6#include <qapplication.h> 6#include <qapplication.h>
7#include <qstring.h> 7#include <qstring.h>
8#include <qfile.h> 8#include <qfile.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qdialog.h> 10#include <qdialog.h>
11#include <qlayout.h> 11#include <qlayout.h>
12#include <qtextbrowser.h> 12#include <qtextbrowser.h>
13 13
14int KApplication::random() 14int KApplication::random()
15{ 15{
16 return rand(); 16 return rand();
17} 17}
18 18
19//US 19//US
20QString KApplication::randomString(int length) 20QString KApplication::randomString(int length)
21{ 21{
22 if (length <=0 ) return QString::null; 22 if (length <=0 ) return QString::null;
23 23
24 QString str; 24 QString str;
25 while (length--) 25 while (length--)
26 { 26 {
27 int r=random() % 62; 27 int r=random() % 62;
28 r+=48; 28 r+=48;
29 if (r>57) r+=7; 29 if (r>57) r+=7;
30 if (r>90) r+=6; 30 if (r>90) r+=6;
31 str += char(r); 31 str += char(r);
32 // so what if I work backwards? 32 // so what if I work backwards?
33 } 33 }
34 return str; 34 return str;
35} 35}
36int KApplication::execDialog( QDialog* d ) 36int KApplication::execDialog( QDialog* d )
37{ 37{
38 if (QApplication::desktop()->width() <= 640 ) 38 if (QApplication::desktop()->width() <= 640 )
39 d->showMaximized(); 39 d->showMaximized();
40 else 40 else
41 ;//d->resize( 800, 600 ); 41 ;//d->resize( 800, 600 );
42 return d->exec(); 42 return d->exec();
43} 43}
44void KApplication::showLicence() 44void KApplication::showLicence()
45{ 45{
46 KApplication::showFile( "KDE-Pim/Pi licence", "kdepim/licence.txt" ); 46 KApplication::showFile( "KDE-Pim/Pi licence", "kdepim/licence.txt" );
47} 47}
48 48
49void KApplication::showFile(QString caption, QString fn) 49void KApplication::showFile(QString caption, QString fn)
50{ 50{
51 QString text; 51 QString text;
52 QString fileName; 52 QString fileName;
53#ifndef DESKTOP_VERSION 53#ifndef DESKTOP_VERSION
54 fileName = getenv("QPEDIR"); 54 fileName = getenv("QPEDIR");
55 fileName += "/pics/" + fn ; 55 fileName += "/pics/" + fn ;
56#else 56#else
57 fileName = qApp->applicationDirPath () + "/" + fn; 57 fileName = qApp->applicationDirPath () + "/" + fn;
58#endif 58#endif
59 QFile file( fileName ); 59 QFile file( fileName );
60 if (!file.open( IO_ReadOnly ) ) { 60 if (!file.open( IO_ReadOnly ) ) {
61 return ; 61 return ;
62 } 62 }
63 QTextStream ts( &file ); 63 QTextStream ts( &file );
64 text = ts.read(); 64 text = ts.read();
65 file.close(); 65 file.close();
66 KApplication::showText( caption, text ); 66 KApplication::showText( caption, text );
67 67
68} 68}
69 69
70bool KApplication::convert2latin1(QString fileName) 70bool KApplication::convert2latin1(QString fileName)
71{ 71{
72 QString text; 72 QString text;
73 QFile file( fileName ); 73 QFile file( fileName );
74 if (!file.open( IO_ReadOnly ) ) { 74 if (!file.open( IO_ReadOnly ) ) {
75 return false; 75 return false;
76 76
77 } 77 }
78 QTextStream ts( &file ); 78 QTextStream ts( &file );
79 ts.setEncoding( QTextStream::UnicodeUTF8 ); 79 ts.setEncoding( QTextStream::UnicodeUTF8 );
80 text = ts.read(); 80 text = ts.read();
81 file.close(); 81 file.close();
82 if (!file.open( IO_WriteOnly ) ) { 82 if (!file.open( IO_WriteOnly ) ) {
83 return false; 83 return false;
84 } 84 }
85 QTextStream tsIn( &file ); 85 QTextStream tsIn( &file );
86 tsIn.setEncoding( QTextStream::Latin1 ); 86 tsIn.setEncoding( QTextStream::Latin1 );
87 tsIn << text.latin1(); 87 tsIn << text.latin1();
88 file.close(); 88 file.close();
89 return true;
89 90
90 91
91} 92}
92void KApplication::showText(QString caption, QString text) 93void KApplication::showText(QString caption, QString text)
93{ 94{
94 QDialog dia( 0, "name", true ); ; 95 QDialog dia( 0, "name", true ); ;
95 dia.setCaption( caption ); 96 dia.setCaption( caption );
96 QVBoxLayout* lay = new QVBoxLayout( &dia ); 97 QVBoxLayout* lay = new QVBoxLayout( &dia );
97 lay->setSpacing( 3 ); 98 lay->setSpacing( 3 );
98 lay->setMargin( 3 ); 99 lay->setMargin( 3 );
99 KTextEdit tb ( &dia ); 100 KTextEdit tb ( &dia );
100 tb.setWordWrap( QMultiLineEdit::WidgetWidth ); 101 tb.setWordWrap( QMultiLineEdit::WidgetWidth );
101 lay->addWidget( &tb ); 102 lay->addWidget( &tb );
102 tb.setText( text ); 103 tb.setText( text );
103#ifdef DESKTOP_VERSION 104#ifdef DESKTOP_VERSION
104 dia.resize( 640, 480); 105 dia.resize( 640, 480);
105#else 106#else
106 dia.showMaximized(); 107 dia.showMaximized();
107#endif 108#endif
108 dia.exec(); 109 dia.exec();
109 110
110} 111}
diff --git a/microkde/kdecore/klibloader.cpp b/microkde/kdecore/klibloader.cpp
index 1394154..6d0475a 100644
--- a/microkde/kdecore/klibloader.cpp
+++ b/microkde/kdecore/klibloader.cpp
@@ -307,355 +307,347 @@ class KLibLoaderPrivate
307public: 307public:
308 QPtrList<KLibWrapPrivate> loaded_stack; 308 QPtrList<KLibWrapPrivate> loaded_stack;
309 QPtrList<KLibWrapPrivate> pending_close; 309 QPtrList<KLibWrapPrivate> pending_close;
310 enum {UNKNOWN, UNLOAD, DONT_UNLOAD} unload_mode; 310 enum {UNKNOWN, UNLOAD, DONT_UNLOAD} unload_mode;
311 311
312 QString errorMessage; 312 QString errorMessage;
313}; 313};
314 314
315KLibLoader* KLibLoader::s_self = 0; 315KLibLoader* KLibLoader::s_self = 0;
316 316
317KLibLoader* KLibLoader::self() 317KLibLoader* KLibLoader::self()
318{ 318{
319 if ( !s_self ) 319 if ( !s_self )
320 s_self = new KLibLoader; 320 s_self = new KLibLoader;
321 return s_self; 321 return s_self;
322} 322}
323 323
324void KLibLoader::cleanUp() 324void KLibLoader::cleanUp()
325{ 325{
326 if ( !s_self ) 326 if ( !s_self )
327 return; 327 return;
328 328
329 delete s_self; 329 delete s_self;
330 s_self = 0; 330 s_self = 0;
331} 331}
332 332
333KLibLoader::KLibLoader( QObject* parent, const char* name ) 333KLibLoader::KLibLoader( QObject* parent, const char* name )
334 : QObject( parent, name ) 334 : QObject( parent, name )
335{ 335{
336 s_self = this; 336 s_self = this;
337 d = new KLibLoaderPrivate; 337 d = new KLibLoaderPrivate;
338//US lt_dlinit(); 338//US lt_dlinit();
339 d->unload_mode = KLibLoaderPrivate::UNKNOWN; 339 d->unload_mode = KLibLoaderPrivate::UNKNOWN;
340 if (getenv("KDE_NOUNLOAD") != 0) 340 if (getenv("KDE_NOUNLOAD") != 0)
341 d->unload_mode = KLibLoaderPrivate::DONT_UNLOAD; 341 d->unload_mode = KLibLoaderPrivate::DONT_UNLOAD;
342 else if (getenv("KDE_DOUNLOAD") != 0) 342 else if (getenv("KDE_DOUNLOAD") != 0)
343 d->unload_mode = KLibLoaderPrivate::UNLOAD; 343 d->unload_mode = KLibLoaderPrivate::UNLOAD;
344 d->loaded_stack.setAutoDelete( true ); 344 d->loaded_stack.setAutoDelete( true );
345} 345}
346 346
347KLibLoader::~KLibLoader() 347KLibLoader::~KLibLoader()
348{ 348{
349// kdDebug(150) << "Deleting KLibLoader " << this << " " << name() << endl; 349// kdDebug(150) << "Deleting KLibLoader " << this << " " << name() << endl;
350 350
351 QAsciiDictIterator<KLibWrapPrivate> it( m_libs ); 351 QAsciiDictIterator<KLibWrapPrivate> it( m_libs );
352 for (; it.current(); ++it ) 352 for (; it.current(); ++it )
353 { 353 {
354 kdDebug(150) << "The KLibLoader contains the library " << it.current()->name 354 kdDebug(150) << "The KLibLoader contains the library " << it.current()->name
355 << " (" << it.current()->lib << ")" << endl; 355 << " (" << it.current()->lib << ")" << endl;
356 d->pending_close.append(it.current()); 356 d->pending_close.append(it.current());
357 } 357 }
358 358
359 close_pending(0); 359 close_pending(0);
360 360
361 delete d; 361 delete d;
362} 362}
363 363
364//static 364//static
365QString KLibLoader::findLibrary( const char * name/*US , const KInstance * instance*/ ) 365QString KLibLoader::findLibrary( const char * name/*US , const KInstance * instance*/ )
366{ 366{
367 QCString libname( name ); 367 QCString libname( name );
368 368
369 // only append ".la" if there is no extension 369 // only append ".la" if there is no extension
370 // this allows to load non-libtool libraries as well 370 // this allows to load non-libtool libraries as well
371 // (mhk, 20000228) 371 // (mhk, 20000228)
372 int pos = libname.findRev('/'); 372 int pos = libname.findRev('/');
373 if (pos < 0) 373 if (pos < 0)
374 pos = 0; 374 pos = 0;
375/*US 375/*US
376 if (libname.find('.', pos) < 0) { 376 if (libname.find('.', pos) < 0) {
377 libname += ".la"; 377 libname += ".la";
378 } 378 }
379*/ 379*/
380//US in the microedition we work only with shared libraries. 380//US in the microedition we work only with shared libraries.
381 381
382 if (libname.find('.', pos) < 0) { 382 if (libname.find('.', pos) < 0) {
383#ifdef _WIN32_ 383#ifdef _WIN32_
384 libname += ".dll"; 384 libname += ".dll";
385#else 385#else
386 libname += ".so"; 386 libname += ".so";
387#endif 387#endif
388 } 388 }
389 389
390 // only look up the file if it is not an absolute filename 390 // only look up the file if it is not an absolute filename
391 // (mhk, 20000228) 391 // (mhk, 20000228)
392 QString libfile; 392 QString libfile;
393 if (libname[0] == '/') 393 if (libname[0] == '/')
394 libfile = libname; 394 libfile = libname;
395 else 395 else
396 { 396 {
397//US at this point the libname must exist as real filesname. No expansions will be made later 397//US at this point the libname must exist as real filesname. No expansions will be made later
398// in findResources. Because of that we prepend the lib prefix here to the name 398// in findResources. Because of that we prepend the lib prefix here to the name
399//US I add also the "lib" prefix. I do not how could this could have worked before without it? 399//US I add also the "lib" prefix. I do not how could this could have worked before without it?
400#ifndef _WIN32_ 400#ifndef _WIN32_
401 libname.insert(pos, "lib"); 401 libname.insert(pos, "lib");
402#endif 402#endif
403 403
404 404
405//US libfile = instance->dirs()->findResource( "module", libname ); 405//US libfile = instance->dirs()->findResource( "module", libname );
406 //qDebug("libname = %s ",libname.data() ); 406 //qDebug("libname = %s ",libname.data() );
407 libfile = KGlobal::dirs()->findResource( "module", libname ); 407 libfile = KGlobal::dirs()->findResource( "module", libname );
408 //qDebug("libfile = %s ",libfile.latin1() ); 408 //qDebug("libfile = %s ",libfile.latin1() );
409 409
410 if ( libfile.isEmpty() ) 410 if ( libfile.isEmpty() )
411 { 411 {
412//US libfile = instance->dirs()->findResource( "lib", libname ); 412//US libfile = instance->dirs()->findResource( "lib", libname );
413 libfile = KGlobal::dirs()->findResource( "lib", libname ); 413 libfile = KGlobal::dirs()->findResource( "lib", libname );
414 //qDebug("libfile2 = %s ",libfile.latin1() ); 414 //qDebug("libfile2 = %s ",libfile.latin1() );
415#ifndef NDEBUG 415#ifndef NDEBUG
416 if ( !libfile.isEmpty() && libname.left(3) == "lib" ) // don't warn for kdeinit modules 416 if ( !libfile.isEmpty() && libname.left(3) == "lib" ) // don't warn for kdeinit modules
417 kdDebug(150) << "library " << libname << " not found under 'module' but under 'lib'" << endl; 417 kdDebug(150) << "library " << libname << " not found under 'module' but under 'lib'" << endl;
418#endif 418#endif
419 } 419 }
420 if ( libfile.isEmpty() ) 420 if ( libfile.isEmpty() )
421 { 421 {
422#ifndef NDEBUG 422#ifndef NDEBUG
423 kdDebug(150) << "library=" << libname << ": No file names " << libname.data() << " found in paths." << endl; 423 kdDebug(150) << "library=" << libname << ": No file names " << libname.data() << " found in paths." << endl;
424 self()->d->errorMessage = i18n("Library files for \"%1\" not found in paths").arg(libname); 424 self()->d->errorMessage = i18n("Library files for \"%1\" not found in paths").arg(libname);
425 425
426 qDebug("KLibLoader::library could not find library: %s", libname.data()); 426 qDebug("KLibLoader::library could not find library: %s", libname.data());
427#endif 427#endif
428 428
429 } 429 }
430 else 430 else
431 self()->d->errorMessage = QString::null; 431 self()->d->errorMessage = QString::null;
432 } 432 }
433 433
434 //qDebug("return libfile = %s ",libfile.latin1() ); 434 //qDebug("return libfile = %s ",libfile.latin1() );
435 return libfile; 435 return libfile;
436} 436}
437 437
438 438
439KLibrary* KLibLoader::globalLibrary( const char *name ) 439KLibrary* KLibLoader::globalLibrary( const char *name )
440{ 440{
441KLibrary *tmp; 441KLibrary *tmp;
442/*US 442/*US
443int olt_dlopen_flag = lt_dlopen_flag; 443int olt_dlopen_flag = lt_dlopen_flag;
444 444
445 lt_dlopen_flag |= LT_GLOBAL; 445 lt_dlopen_flag |= LT_GLOBAL;
446 kdDebug(150) << "Loading the next library global with flag " 446 kdDebug(150) << "Loading the next library global with flag "
447 << lt_dlopen_flag 447 << lt_dlopen_flag
448 << "." << endl; 448 << "." << endl;
449*/ 449*/
450 tmp = library(name); 450 tmp = library(name);
451/*US 451/*US
452 lt_dlopen_flag = olt_dlopen_flag; 452 lt_dlopen_flag = olt_dlopen_flag;
453*/ 453*/
454return tmp; 454return tmp;
455} 455}
456 456
457 457
458KLibrary* KLibLoader::library( const char *name ) 458KLibrary* KLibLoader::library( const char *name )
459{ 459{
460 if (!name) 460 if (!name)
461 return 0; 461 return 0;
462 462
463 KLibWrapPrivate* wrap = m_libs[name]; 463 KLibWrapPrivate* wrap = m_libs[name];
464 if (wrap) { 464 if (wrap) {
465 /* Nothing to do to load the library. */ 465 /* Nothing to do to load the library. */
466 wrap->ref_count++; 466 wrap->ref_count++;
467 return wrap->lib; 467 return wrap->lib;
468 } 468 }
469 469
470 /* Test if this library was loaded at some time, but got 470 /* Test if this library was loaded at some time, but got
471 unloaded meanwhile, whithout being dlclose()'ed. */ 471 unloaded meanwhile, whithout being dlclose()'ed. */
472 QPtrListIterator<KLibWrapPrivate> it(d->loaded_stack); 472 QPtrListIterator<KLibWrapPrivate> it(d->loaded_stack);
473 for (; it.current(); ++it) { 473 for (; it.current(); ++it) {
474 if (it.current()->name == name) 474 if (it.current()->name == name)
475 wrap = it.current(); 475 wrap = it.current();
476 } 476 }
477 477
478 if (wrap) { 478 if (wrap) {
479 d->pending_close.removeRef(wrap); 479 d->pending_close.removeRef(wrap);
480 if (!wrap->lib) { 480 if (!wrap->lib) {
481 /* This lib only was in loaded_stack, but not in m_libs. */ 481 /* This lib only was in loaded_stack, but not in m_libs. */
482 wrap->lib = new KLibrary( name, wrap->filename, wrap->handle ); 482 wrap->lib = new KLibrary( name, wrap->filename, wrap->handle );
483 } 483 }
484 wrap->ref_count++; 484 wrap->ref_count++;
485 } else { 485 } else {
486 QString libfile = findLibrary( name ); 486 QString libfile = findLibrary( name );
487 if ( libfile.isEmpty() ) 487 if ( libfile.isEmpty() )
488 return 0; 488 return 0;
489#ifdef DESKTOP_VERSION 489#ifdef DESKTOP_VERSION
490 QLibrary *qlib = new QLibrary( libfile.latin1() ); 490 QLibrary *qlib = new QLibrary( libfile.latin1() );
491#else 491#else
492 QLibrary *qlib = new QLibrary( libfile.latin1(), QLibrary::Immediately ); 492 QLibrary *qlib = new QLibrary( libfile.latin1(), QLibrary::Immediately );
493#endif 493#endif
494 494
495//US lt_dlhandle handle = lt_dlopen( libfile.latin1() ); 495//US lt_dlhandle handle = lt_dlopen( libfile.latin1() );
496//US if ( !handle ) 496//US if ( !handle )
497 if ( !qlib ) 497 if ( !qlib )
498 { 498 {
499//US const char* errmsg = lt_dlerror(); 499 qDebug( "KLibLoader::library could not load library: %s", libfile.latin1());
500 char* errmsg; 500 d->errorMessage = QString::null;
501 sprintf(errmsg, "KLibLoader::library could not load library: %s", libfile.latin1()); 501 return 0;
502 qDebug(errmsg);
503
504 if(errmsg)
505 d->errorMessage = QString::fromLatin1(errmsg);
506 else
507 d->errorMessage = QString::null;
508 kdWarning(150) << "library=" << name << ": file=" << libfile << ": " << d->errorMessage << endl;
509 return 0;
510 } 502 }
511 else 503 else
512 d->errorMessage = QString::null; 504 d->errorMessage = QString::null;
513 505
514 KLibrary *lib = new KLibrary( name, libfile, qlib ); 506 KLibrary *lib = new KLibrary( name, libfile, qlib );
515 wrap = new KLibWrapPrivate(lib, qlib); 507 wrap = new KLibWrapPrivate(lib, qlib);
516 d->loaded_stack.prepend(wrap); 508 d->loaded_stack.prepend(wrap);
517 } 509 }
518 m_libs.insert( name, wrap ); 510 m_libs.insert( name, wrap );
519 511
520 connect( wrap->lib, SIGNAL( destroyed() ), 512 connect( wrap->lib, SIGNAL( destroyed() ),
521 this, SLOT( slotLibraryDestroyed() ) ); 513 this, SLOT( slotLibraryDestroyed() ) );
522 514
523 return wrap->lib; 515 return wrap->lib;
524} 516}
525 517
526QString KLibLoader::lastErrorMessage() const 518QString KLibLoader::lastErrorMessage() const
527{ 519{
528 return d->errorMessage; 520 return d->errorMessage;
529} 521}
530 522
531void KLibLoader::unloadLibrary( const char *libname ) 523void KLibLoader::unloadLibrary( const char *libname )
532{ 524{
533 KLibWrapPrivate *wrap = m_libs[ libname ]; 525 KLibWrapPrivate *wrap = m_libs[ libname ];
534 if (!wrap) 526 if (!wrap)
535 return; 527 return;
536 if (--wrap->ref_count) 528 if (--wrap->ref_count)
537 return; 529 return;
538 530
539// kdDebug(150) << "closing library " << libname << endl; 531// kdDebug(150) << "closing library " << libname << endl;
540 532
541 m_libs.remove( libname ); 533 m_libs.remove( libname );
542 534
543 disconnect( wrap->lib, SIGNAL( destroyed() ), 535 disconnect( wrap->lib, SIGNAL( destroyed() ),
544 this, SLOT( slotLibraryDestroyed() ) ); 536 this, SLOT( slotLibraryDestroyed() ) );
545 close_pending( wrap ); 537 close_pending( wrap );
546} 538}
547 539
548KLibFactory* KLibLoader::factory( const char* name ) 540KLibFactory* KLibLoader::factory( const char* name )
549{ 541{
550 KLibrary* lib = library( name ); 542 KLibrary* lib = library( name );
551 if ( !lib ) 543 if ( !lib )
552 return 0; 544 return 0;
553 545
554 return lib->factory(); 546 return lib->factory();
555} 547}
556 548
557void KLibLoader::slotLibraryDestroyed() 549void KLibLoader::slotLibraryDestroyed()
558{ 550{
559 const KLibrary *lib = static_cast<const KLibrary *>( sender() ); 551 const KLibrary *lib = static_cast<const KLibrary *>( sender() );
560 552
561 QAsciiDictIterator<KLibWrapPrivate> it( m_libs ); 553 QAsciiDictIterator<KLibWrapPrivate> it( m_libs );
562 for (; it.current(); ++it ) 554 for (; it.current(); ++it )
563 if ( it.current()->lib == lib ) 555 if ( it.current()->lib == lib )
564 { 556 {
565 KLibWrapPrivate *wrap = it.current(); 557 KLibWrapPrivate *wrap = it.current();
566 wrap->lib = 0; /* the KLibrary object is already away */ 558 wrap->lib = 0; /* the KLibrary object is already away */
567 m_libs.remove( it.currentKey() ); 559 m_libs.remove( it.currentKey() );
568 close_pending( wrap ); 560 close_pending( wrap );
569 return; 561 return;
570 } 562 }
571} 563}
572 564
573void KLibLoader::close_pending(KLibWrapPrivate *wrap) 565void KLibLoader::close_pending(KLibWrapPrivate *wrap)
574{ 566{
575 if (wrap && !d->pending_close.containsRef( wrap )) 567 if (wrap && !d->pending_close.containsRef( wrap ))
576 d->pending_close.append( wrap ); 568 d->pending_close.append( wrap );
577 569
578 /* First delete all KLibrary objects in pending_close, but _don't_ unload 570 /* First delete all KLibrary objects in pending_close, but _don't_ unload
579 the DSO behind it. */ 571 the DSO behind it. */
580 QPtrListIterator<KLibWrapPrivate> it(d->pending_close); 572 QPtrListIterator<KLibWrapPrivate> it(d->pending_close);
581 for (; it.current(); ++it) { 573 for (; it.current(); ++it) {
582 wrap = it.current(); 574 wrap = it.current();
583 if (wrap->lib) { 575 if (wrap->lib) {
584 disconnect( wrap->lib, SIGNAL( destroyed() ), 576 disconnect( wrap->lib, SIGNAL( destroyed() ),
585 this, SLOT( slotLibraryDestroyed() ) ); 577 this, SLOT( slotLibraryDestroyed() ) );
586 delete wrap->lib; 578 delete wrap->lib;
587 wrap->lib = 0; 579 wrap->lib = 0;
588 } 580 }
589 } 581 }
590 582
591 if (d->unload_mode == KLibLoaderPrivate::DONT_UNLOAD) return; 583 if (d->unload_mode == KLibLoaderPrivate::DONT_UNLOAD) return;
592 584
593 bool deleted_one = false; 585 bool deleted_one = false;
594 while ((wrap = d->loaded_stack.first())) { 586 while ((wrap = d->loaded_stack.first())) {
595 /* Let's first see, if we want to try to unload this lib. 587 /* Let's first see, if we want to try to unload this lib.
596 If the env. var KDE_DOUNLOAD is set, we try to unload every lib. 588 If the env. var KDE_DOUNLOAD is set, we try to unload every lib.
597 If not, we look at the lib itself, and unload it only, if it exports 589 If not, we look at the lib itself, and unload it only, if it exports
598 the symbol __kde_do_unload. */ 590 the symbol __kde_do_unload. */
599 if (d->unload_mode != KLibLoaderPrivate::UNLOAD 591 if (d->unload_mode != KLibLoaderPrivate::UNLOAD
600 && wrap->unload_mode != KLibWrapPrivate::UNLOAD) 592 && wrap->unload_mode != KLibWrapPrivate::UNLOAD)
601 break; 593 break;
602 594
603 /* Now ensure, that the libs are only unloaded in the reverse direction 595 /* Now ensure, that the libs are only unloaded in the reverse direction
604 they were loaded. */ 596 they were loaded. */
605 if (!d->pending_close.containsRef( wrap )) { 597 if (!d->pending_close.containsRef( wrap )) {
606 if (!deleted_one) 598 if (!deleted_one)
607 /* Only diagnose, if we really haven't deleted anything. */ 599 /* Only diagnose, if we really haven't deleted anything. */
608// kdDebug(150) << "try to dlclose " << wrap->name << ": not yet" << endl; 600// kdDebug(150) << "try to dlclose " << wrap->name << ": not yet" << endl;
609 break; 601 break;
610 } 602 }
611 603
612// kdDebug(150) << "try to dlclose " << wrap->name << ": yes, done." << endl; 604// kdDebug(150) << "try to dlclose " << wrap->name << ": yes, done." << endl;
613 605
614#if 0 606#if 0
615#ifndef Q_WS_QWS 607#ifndef Q_WS_QWS
616 if ( !deleted_one ) { 608 if ( !deleted_one ) {
617 /* Only do the hack once in this loop. 609 /* Only do the hack once in this loop.
618 WABA: *HACK* 610 WABA: *HACK*
619 We need to make sure to clear the clipboard before unloading a DSO 611 We need to make sure to clear the clipboard before unloading a DSO
620 because the DSO could have defined an object derived from QMimeSource 612 because the DSO could have defined an object derived from QMimeSource
621 and placed that on the clipboard. */ 613 and placed that on the clipboard. */
622 /*kapp->clipboard()->clear();*/ 614 /*kapp->clipboard()->clear();*/
623 615
624 /* Well.. let's do something more subtle... convert the clipboard context 616 /* Well.. let's do something more subtle... convert the clipboard context
625 to text. That should be safe as it only uses objects defined by Qt. */ 617 to text. That should be safe as it only uses objects defined by Qt. */
626 618
627 QWidgetList *widgetlist = QApplication::topLevelWidgets(); 619 QWidgetList *widgetlist = QApplication::topLevelWidgets();
628 QWidget *co = widgetlist->first(); 620 QWidget *co = widgetlist->first();
629 while (co) { 621 while (co) {
630 if (qstrcmp(co->name(), "internal clipboard owner") == 0) { 622 if (qstrcmp(co->name(), "internal clipboard owner") == 0) {
631 if (XGetSelectionOwner(co->x11Display(), XA_PRIMARY) == co->winId()) 623 if (XGetSelectionOwner(co->x11Display(), XA_PRIMARY) == co->winId())
632 kapp->clipboard()->setText(kapp->clipboard()->text()); 624 kapp->clipboard()->setText(kapp->clipboard()->text());
633 625
634 break; 626 break;
635 } 627 }
636 co = widgetlist->next(); 628 co = widgetlist->next();
637 } 629 }
638 delete widgetlist; 630 delete widgetlist;
639 } 631 }
640#else 632#else
641 // FIXME(E): Implement in Qt Embedded 633 // FIXME(E): Implement in Qt Embedded
642#endif 634#endif
643 635
644#endif // 0 636#endif // 0
645 deleted_one = true; 637 deleted_one = true;
646//US lt_dlclose(wrap->handle); 638//US lt_dlclose(wrap->handle);
647 wrap->handle->unload(); 639 wrap->handle->unload();
648 640
649 d->pending_close.removeRef(wrap); 641 d->pending_close.removeRef(wrap);
650 /* loaded_stack is AutoDelete, so wrap is freed */ 642 /* loaded_stack is AutoDelete, so wrap is freed */
651 d->loaded_stack.remove(); 643 d->loaded_stack.remove();
652 } 644 }
653} 645}
654 646
655void KLibLoader::virtual_hook( int, void* ) 647void KLibLoader::virtual_hook( int, void* )
656{ /*BASE::virtual_hook( id, data );*/ } 648{ /*BASE::virtual_hook( id, data );*/ }
657 649
658void KLibFactory::virtual_hook( int, void* ) 650void KLibFactory::virtual_hook( int, void* )
659{ /*BASE::virtual_hook( id, data );*/ } 651{ /*BASE::virtual_hook( id, data );*/ }
660 652
661//US #include "klibloader.moc" 653//US #include "klibloader.moc"
diff --git a/microkde/kdeui/ktoolbar.cpp b/microkde/kdeui/ktoolbar.cpp
index 1ad1728..09ad0c8 100644
--- a/microkde/kdeui/ktoolbar.cpp
+++ b/microkde/kdeui/ktoolbar.cpp
@@ -689,385 +689,385 @@ void KToolBar::setCurrentComboItem (int id, int index)
689 if (comboBox) 689 if (comboBox)
690 comboBox->setCurrentItem( index ); 690 comboBox->setCurrentItem( index );
691} 691}
692 692
693 693
694void KToolBar::changeComboItem (int id, const QString& text, int index) 694void KToolBar::changeComboItem (int id, const QString& text, int index)
695{ 695{
696 Id2WidgetMap::Iterator it = id2widget.find( id ); 696 Id2WidgetMap::Iterator it = id2widget.find( id );
697 if ( it == id2widget.end() ) 697 if ( it == id2widget.end() )
698 return; 698 return;
699//US QComboBox * comboBox = dynamic_cast<QComboBox *>( *it ); 699//US QComboBox * comboBox = dynamic_cast<QComboBox *>( *it );
700 QComboBox * comboBox = (QComboBox *)( *it ); 700 QComboBox * comboBox = (QComboBox *)( *it );
701 if (comboBox) 701 if (comboBox)
702 comboBox->changeItem( text, index ); 702 comboBox->changeItem( text, index );
703} 703}
704 704
705 705
706void KToolBar::clearCombo (int id) 706void KToolBar::clearCombo (int id)
707{ 707{
708 Id2WidgetMap::Iterator it = id2widget.find( id ); 708 Id2WidgetMap::Iterator it = id2widget.find( id );
709 if ( it == id2widget.end() ) 709 if ( it == id2widget.end() )
710 return; 710 return;
711//US QComboBox * comboBox = dynamic_cast<QComboBox *>( *it ); 711//US QComboBox * comboBox = dynamic_cast<QComboBox *>( *it );
712 QComboBox * comboBox = (QComboBox *)( *it ); 712 QComboBox * comboBox = (QComboBox *)( *it );
713 if (comboBox) 713 if (comboBox)
714 comboBox->clear(); 714 comboBox->clear();
715} 715}
716 716
717 717
718QString KToolBar::getComboItem (int id, int index) const 718QString KToolBar::getComboItem (int id, int index) const
719{ 719{
720 Id2WidgetMap::ConstIterator it = id2widget.find( id ); 720 Id2WidgetMap::ConstIterator it = id2widget.find( id );
721 if ( it == id2widget.end() ) 721 if ( it == id2widget.end() )
722 return QString::null; 722 return QString::null;
723//US QComboBox * comboBox = dynamic_cast<QComboBox *>( *it ); 723//US QComboBox * comboBox = dynamic_cast<QComboBox *>( *it );
724 QComboBox * comboBox = (QComboBox *)( *it ); 724 QComboBox * comboBox = (QComboBox *)( *it );
725 return comboBox ? comboBox->text( index ) : QString::null; 725 return comboBox ? comboBox->text( index ) : QString::null;
726} 726}
727 727
728 728
729KComboBox * KToolBar::getCombo(int id) 729KComboBox * KToolBar::getCombo(int id)
730{ 730{
731 Id2WidgetMap::Iterator it = id2widget.find( id ); 731 Id2WidgetMap::Iterator it = id2widget.find( id );
732 if ( it == id2widget.end() ) 732 if ( it == id2widget.end() )
733 return 0; 733 return 0;
734//US return dynamic_cast<KComboBox *>( *it ); 734//US return dynamic_cast<KComboBox *>( *it );
735 return (KComboBox *)( *it ); 735 return (KComboBox *)( *it );
736} 736}
737 737
738 738
739KLineEdit * KToolBar::getLined (int id) 739KLineEdit * KToolBar::getLined (int id)
740{ 740{
741 Id2WidgetMap::Iterator it = id2widget.find( id ); 741 Id2WidgetMap::Iterator it = id2widget.find( id );
742 if ( it == id2widget.end() ) 742 if ( it == id2widget.end() )
743 return 0; 743 return 0;
744//US return dynamic_cast<KLineEdit *>( *it ); 744//US return dynamic_cast<KLineEdit *>( *it );
745 return (KLineEdit *)( *it ); 745 return (KLineEdit *)( *it );
746} 746}
747 747
748 748
749KToolBarButton * KToolBar::getButton (int id) 749KToolBarButton * KToolBar::getButton (int id)
750{ 750{
751 Id2WidgetMap::Iterator it = id2widget.find( id ); 751 Id2WidgetMap::Iterator it = id2widget.find( id );
752 if ( it == id2widget.end() ) 752 if ( it == id2widget.end() )
753 return 0; 753 return 0;
754//US return dynamic_cast<KToolBarButton *>( *it ); 754//US return dynamic_cast<KToolBarButton *>( *it );
755 return (KToolBarButton *)( *it ); 755 return (KToolBarButton *)( *it );
756} 756}
757 757
758 758
759void KToolBar::alignItemRight (int id, bool right ) 759void KToolBar::alignItemRight (int id, bool right )
760{ 760{
761 Id2WidgetMap::Iterator it = id2widget.find( id ); 761 Id2WidgetMap::Iterator it = id2widget.find( id );
762 if ( it == id2widget.end() ) 762 if ( it == id2widget.end() )
763 return; 763 return;
764 if ( rightAligned && !right && (*it) == rightAligned ) 764 if ( rightAligned && !right && (*it) == rightAligned )
765 rightAligned = 0; 765 rightAligned = 0;
766 if ( (*it) && right ) 766 if ( (*it) && right )
767 rightAligned = (*it); 767 rightAligned = (*it);
768} 768}
769 769
770 770
771QWidget *KToolBar::getWidget (int id) 771QWidget *KToolBar::getWidget (int id)
772{ 772{
773 Id2WidgetMap::Iterator it = id2widget.find( id ); 773 Id2WidgetMap::Iterator it = id2widget.find( id );
774 return ( it == id2widget.end() ) ? 0 : (*it); 774 return ( it == id2widget.end() ) ? 0 : (*it);
775} 775}
776 776
777 777
778void KToolBar::setItemAutoSized (int id, bool yes ) 778void KToolBar::setItemAutoSized (int id, bool yes )
779{ 779{
780 QWidget *w = getWidget(id); 780 QWidget *w = getWidget(id);
781 if ( w && yes ) 781 if ( w && yes )
782 setStretchableWidget( w ); 782 setStretchableWidget( w );
783} 783}
784 784
785 785
786void KToolBar::clear () 786void KToolBar::clear ()
787{ 787{
788 QToolBar::clear(); 788 QToolBar::clear();
789 widget2id.clear(); 789 widget2id.clear();
790 id2widget.clear(); 790 id2widget.clear();
791} 791}
792 792
793 793
794void KToolBar::removeItem(int id) 794void KToolBar::removeItem(int id)
795{ 795{
796 Id2WidgetMap::Iterator it = id2widget.find( id ); 796 Id2WidgetMap::Iterator it = id2widget.find( id );
797 if ( it == id2widget.end() ) 797 if ( it == id2widget.end() )
798 { 798 {
799 kdDebug(220) << "KToolBar::removeItem item " << id << " not found" << endl; 799 kdDebug(220) << "KToolBar::removeItem item " << id << " not found" << endl;
800 return; 800 return;
801 } 801 }
802 QWidget * w = (*it); 802 QWidget * w = (*it);
803 id2widget.remove( id ); 803 id2widget.remove( id );
804 widget2id.remove( w ); 804 widget2id.remove( w );
805 widgets.removeRef( w ); 805 widgets.removeRef( w );
806 delete w; 806 delete w;
807} 807}
808 808
809 809
810void KToolBar::removeItemDelayed(int id) 810void KToolBar::removeItemDelayed(int id)
811{ 811{
812 Id2WidgetMap::Iterator it = id2widget.find( id ); 812 Id2WidgetMap::Iterator it = id2widget.find( id );
813 if ( it == id2widget.end() ) 813 if ( it == id2widget.end() )
814 { 814 {
815 kdDebug(220) << "KToolBar::removeItem item " << id << " not found" << endl; 815 kdDebug(220) << "KToolBar::removeItem item " << id << " not found" << endl;
816 return; 816 return;
817 } 817 }
818 QWidget * w = (*it); 818 QWidget * w = (*it);
819 id2widget.remove( id ); 819 id2widget.remove( id );
820 widget2id.remove( w ); 820 widget2id.remove( w );
821 widgets.removeRef( w ); 821 widgets.removeRef( w );
822 822
823 w->blockSignals(true); 823 w->blockSignals(true);
824 d->idleButtons.append(w); 824 d->idleButtons.append(w);
825 layoutTimer->start( 50, TRUE ); 825 layoutTimer->start( 50, TRUE );
826} 826}
827 827
828 828
829void KToolBar::hideItem (int id) 829void KToolBar::hideItem (int id)
830{ 830{
831 QWidget *w = getWidget(id); 831 QWidget *w = getWidget(id);
832 if ( w ) 832 if ( w )
833 w->hide(); 833 w->hide();
834} 834}
835 835
836 836
837void KToolBar::showItem (int id) 837void KToolBar::showItem (int id)
838{ 838{
839 QWidget *w = getWidget(id); 839 QWidget *w = getWidget(id);
840 if ( w ) 840 if ( w )
841 w->show(); 841 w->show();
842} 842}
843 843
844 844
845int KToolBar::itemIndex (int id) 845int KToolBar::itemIndex (int id)
846{ 846{
847 QWidget *w = getWidget(id); 847 QWidget *w = getWidget(id);
848 return w ? widgets.findRef(w) : -1; 848 return w ? widgets.findRef(w) : -1;
849} 849}
850 850
851 851
852void KToolBar::setFullSize(bool flag ) 852void KToolBar::setFullSize(bool flag )
853{ 853{
854 setHorizontalStretchable( flag ); 854 setHorizontalStretchable( flag );
855 setVerticalStretchable( flag ); 855 setVerticalStretchable( flag );
856} 856}
857 857
858 858
859bool KToolBar::fullSize() const 859bool KToolBar::fullSize() const
860{ 860{
861 return isHorizontalStretchable() || isVerticalStretchable(); 861 return isHorizontalStretchable() || isVerticalStretchable();
862} 862}
863 863
864 864
865void KToolBar::enableMoving(bool flag ) 865void KToolBar::enableMoving(bool flag )
866{ 866{
867//US setMovingEnabled(flag); 867//US setMovingEnabled(flag);
868 this->mainWindow()->setToolBarsMovable(flag); 868 this->mainWindow()->setToolBarsMovable(flag);
869} 869}
870 870
871 871
872void KToolBar::setBarPos (BarPosition bpos) 872void KToolBar::setBarPos (BarPosition bpos)
873{ 873{
874 if ( !mainWindow() ) 874 if ( !mainWindow() )
875 return; 875 return;
876//US mainWindow()->moveDockWindow( this, (Dock)bpos ); 876//US mainWindow()->moveDockWindow( this, (Dock)bpos );
877 mainWindow()->moveToolBar( this, (QMainWindow::ToolBarDock)bpos ); 877 mainWindow()->moveToolBar( this, (QMainWindow::ToolBarDock)bpos );
878} 878}
879 879
880 880
881KToolBar::BarPosition KToolBar::barPos() 881KToolBar::BarPosition KToolBar::barPos() const
882{ 882{
883 if ( !(QMainWindow*)mainWindow() ) 883 if ( !(QMainWindow*)mainWindow() )
884 return KToolBar::Top; 884 return KToolBar::Top;
885//US Dock dock; 885//US Dock dock;
886 QMainWindow::ToolBarDock dock; 886 QMainWindow::ToolBarDock dock;
887 int dm1, dm2; 887 int dm1, dm2;
888 bool dm3; 888 bool dm3;
889 ((QMainWindow*)mainWindow())->getLocation( (QToolBar*)this, dock, dm1, dm3, dm2 ); 889 ((QMainWindow*)mainWindow())->getLocation( (QToolBar*)this, dock, dm1, dm3, dm2 );
890//US if ( dock == DockUnmanaged ) { 890//US if ( dock == DockUnmanaged ) {
891 if ( dock == QMainWindow::Unmanaged ) { 891 if ( dock == QMainWindow::Unmanaged ) {
892 return (KToolBar::BarPosition)Top; 892 return (KToolBar::BarPosition)Top;
893 } 893 }
894 return (BarPosition)dock; 894 return (BarPosition)dock;
895} 895}
896 896
897 897
898bool KToolBar::enable(BarStatus stat) 898bool KToolBar::enable(BarStatus stat)
899{ 899{
900 bool mystat = isVisible(); 900 bool mystat = isVisible();
901 901
902 if ( (stat == Toggle && mystat) || stat == Hide ) 902 if ( (stat == Toggle && mystat) || stat == Hide )
903 hide(); 903 hide();
904 else 904 else
905 show(); 905 show();
906 906
907 return isVisible() == mystat; 907 return isVisible() == mystat;
908} 908}
909 909
910 910
911void KToolBar::setMaxHeight ( int h ) 911void KToolBar::setMaxHeight ( int h )
912{ 912{
913 setMaximumHeight( h ); 913 setMaximumHeight( h );
914} 914}
915 915
916int KToolBar::maxHeight() 916int KToolBar::maxHeight()
917{ 917{
918 return maximumHeight(); 918 return maximumHeight();
919} 919}
920 920
921 921
922void KToolBar::setMaxWidth (int dw) 922void KToolBar::setMaxWidth (int dw)
923{ 923{
924 setMaximumWidth( dw ); 924 setMaximumWidth( dw );
925} 925}
926 926
927 927
928int KToolBar::maxWidth() 928int KToolBar::maxWidth()
929{ 929{
930 return maximumWidth(); 930 return maximumWidth();
931} 931}
932 932
933 933
934void KToolBar::setTitle (const QString& _title) 934void KToolBar::setTitle (const QString& _title)
935{ 935{
936 setLabel( _title ); 936 setLabel( _title );
937} 937}
938 938
939 939
940void KToolBar::enableFloating (bool ) 940void KToolBar::enableFloating (bool )
941{ 941{
942} 942}
943 943
944 944
945void KToolBar::setIconText(IconText it) 945void KToolBar::setIconText(IconText it)
946{ 946{
947 setIconText( it, true ); 947 setIconText( it, true );
948} 948}
949 949
950 950
951void KToolBar::setIconText(IconText icontext, bool update) 951void KToolBar::setIconText(IconText icontext, bool update)
952{ 952{
953 bool doUpdate=false; 953 bool doUpdate=false;
954 954
955 if (icontext != d->m_iconText) { 955 if (icontext != d->m_iconText) {
956 d->m_iconText = icontext; 956 d->m_iconText = icontext;
957 doUpdate=true; 957 doUpdate=true;
958 } 958 }
959 959
960 if (update == false) 960 if (update == false)
961 return; 961 return;
962 962
963 if (doUpdate) 963 if (doUpdate)
964 emit modechange(); // tell buttons what happened 964 emit modechange(); // tell buttons what happened
965 965
966 // ugly hack to force a QMainWindow::triggerLayout( TRUE ) 966 // ugly hack to force a QMainWindow::triggerLayout( TRUE )
967 if ( mainWindow() ) { 967 if ( mainWindow() ) {
968 QMainWindow *mw = mainWindow(); 968 QMainWindow *mw = mainWindow();
969 mw->setUpdatesEnabled( FALSE ); 969 mw->setUpdatesEnabled( FALSE );
970 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 970 mw->setToolBarsMovable( !mw->toolBarsMovable() );
971 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 971 mw->setToolBarsMovable( !mw->toolBarsMovable() );
972 mw->setUpdatesEnabled( TRUE ); 972 mw->setUpdatesEnabled( TRUE );
973 } 973 }
974} 974}
975 975
976 976
977KToolBar::IconText KToolBar::iconText() const 977KToolBar::IconText KToolBar::iconText() const
978{ 978{
979 return d->m_iconText; 979 return d->m_iconText;
980} 980}
981 981
982 982
983void KToolBar::setIconSize(int size) 983void KToolBar::setIconSize(int size)
984{ 984{
985 setIconSize( size, true ); 985 setIconSize( size, true );
986} 986}
987 987
988void KToolBar::setIconSize(int size, bool update) 988void KToolBar::setIconSize(int size, bool update)
989{ 989{
990 bool doUpdate=false; 990 bool doUpdate=false;
991 991
992 if ( size != d->m_iconSize ) { 992 if ( size != d->m_iconSize ) {
993 d->m_iconSize = size; 993 d->m_iconSize = size;
994 doUpdate=true; 994 doUpdate=true;
995 } 995 }
996 996
997 if (update == false) 997 if (update == false)
998 return; 998 return;
999 999
1000 if (doUpdate) 1000 if (doUpdate)
1001 emit modechange(); // tell buttons what happened 1001 emit modechange(); // tell buttons what happened
1002 1002
1003 // ugly hack to force a QMainWindow::triggerLayout( TRUE ) 1003 // ugly hack to force a QMainWindow::triggerLayout( TRUE )
1004 if ( mainWindow() ) { 1004 if ( mainWindow() ) {
1005 QMainWindow *mw = mainWindow(); 1005 QMainWindow *mw = mainWindow();
1006 mw->setUpdatesEnabled( FALSE ); 1006 mw->setUpdatesEnabled( FALSE );
1007 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 1007 mw->setToolBarsMovable( !mw->toolBarsMovable() );
1008 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 1008 mw->setToolBarsMovable( !mw->toolBarsMovable() );
1009 mw->setUpdatesEnabled( TRUE ); 1009 mw->setUpdatesEnabled( TRUE );
1010 } 1010 }
1011} 1011}
1012 1012
1013 1013
1014int KToolBar::iconSize() const 1014int KToolBar::iconSize() const
1015{ 1015{
1016/*US 1016/*US
1017 if ( !d->m_iconSize ) // default value? 1017 if ( !d->m_iconSize ) // default value?
1018 { 1018 {
1019 if (!::qstrcmp(QObject::name(), "mainToolBar")) 1019 if (!::qstrcmp(QObject::name(), "mainToolBar"))
1020 return KGlobal::iconLoader()->currentSize(KIcon::MainToolbar); 1020 return KGlobal::iconLoader()->currentSize(KIcon::MainToolbar);
1021 else 1021 else
1022 return KGlobal::iconLoader()->currentSize(KIcon::Toolbar); 1022 return KGlobal::iconLoader()->currentSize(KIcon::Toolbar);
1023 } 1023 }
1024 return d->m_iconSize; 1024 return d->m_iconSize;
1025*/ 1025*/
1026 int ret = 18; 1026 int ret = 18;
1027 if ( QApplication::desktop()->width() > 320 ) 1027 if ( QApplication::desktop()->width() > 320 )
1028 ret = 30; 1028 ret = 30;
1029 return ret; 1029 return ret;
1030} 1030}
1031 1031
1032 1032
1033void KToolBar::setEnableContextMenu(bool enable ) 1033void KToolBar::setEnableContextMenu(bool enable )
1034{ 1034{
1035 d->m_enableContext = enable; 1035 d->m_enableContext = enable;
1036} 1036}
1037 1037
1038 1038
1039bool KToolBar::contextMenuEnabled() const 1039bool KToolBar::contextMenuEnabled() const
1040{ 1040{
1041 return d->m_enableContext; 1041 return d->m_enableContext;
1042} 1042}
1043 1043
1044 1044
1045void KToolBar::setItemNoStyle(int id, bool no_style ) 1045void KToolBar::setItemNoStyle(int id, bool no_style )
1046{ 1046{
1047 Id2WidgetMap::Iterator it = id2widget.find( id ); 1047 Id2WidgetMap::Iterator it = id2widget.find( id );
1048 if ( it == id2widget.end() ) 1048 if ( it == id2widget.end() )
1049 return; 1049 return;
1050//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it ); 1050//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it );
1051 KToolBarButton * button = (KToolBarButton *)( *it ); 1051 KToolBarButton * button = (KToolBarButton *)( *it );
1052 if (button) 1052 if (button)
1053 button->setNoStyle( no_style ); 1053 button->setNoStyle( no_style );
1054} 1054}
1055 1055
1056 1056
1057void KToolBar::setFlat (bool flag) 1057void KToolBar::setFlat (bool flag)
1058{ 1058{
1059 if ( !mainWindow() ) 1059 if ( !mainWindow() )
1060 return; 1060 return;
1061 if ( flag ) 1061 if ( flag )
1062//US mainWindow()->moveDockWindow( this, DockMinimized ); 1062//US mainWindow()->moveDockWindow( this, DockMinimized );
1063 mainWindow()->moveToolBar( this, QMainWindow::Minimized ); 1063 mainWindow()->moveToolBar( this, QMainWindow::Minimized );
1064 else 1064 else
1065//US mainWindow()->moveDockWindow( this, DockTop ); 1065//US mainWindow()->moveDockWindow( this, DockTop );
1066 mainWindow()->moveToolBar( this, QMainWindow::Top ); 1066 mainWindow()->moveToolBar( this, QMainWindow::Top );
1067 // And remember to save the new look later 1067 // And remember to save the new look later
1068/*US 1068/*US
1069 if ( mainWindow()->inherits( "KMainWindow" ) ) 1069 if ( mainWindow()->inherits( "KMainWindow" ) )
1070 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty(); 1070 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty();
1071*/ 1071*/
1072} 1072}
1073 1073
diff --git a/microkde/kdeui/ktoolbar.h b/microkde/kdeui/ktoolbar.h
index 61b5ea3..49ff856 100644
--- a/microkde/kdeui/ktoolbar.h
+++ b/microkde/kdeui/ktoolbar.h
@@ -557,385 +557,385 @@ public:
557 557
558 /** 558 /**
559 * Inserts @p text in combobox @p id at position @p index. 559 * Inserts @p text in combobox @p id at position @p index.
560 */ 560 */
561 void insertComboItem (int id, const QString& text, int index); 561 void insertComboItem (int id, const QString& text, int index);
562 562
563 /** 563 /**
564 * Inserts @p list in combobox @p id at position @p index. 564 * Inserts @p list in combobox @p id at position @p index.
565 */ 565 */
566 void insertComboList (int id, const QStringList &list, int index); 566 void insertComboList (int id, const QStringList &list, int index);
567 567
568 /** 568 /**
569 * Removes item @p index from combobox @p id. 569 * Removes item @p index from combobox @p id.
570 */ 570 */
571 void removeComboItem (int id, int index); 571 void removeComboItem (int id, int index);
572 572
573 /** 573 /**
574 * Sets item @p index to be current item in combobox @p id. 574 * Sets item @p index to be current item in combobox @p id.
575 */ 575 */
576 void setCurrentComboItem (int id, int index); 576 void setCurrentComboItem (int id, int index);
577 577
578 /** 578 /**
579 * Changes item @p index in combobox @p id to text. 579 * Changes item @p index in combobox @p id to text.
580 * 580 *
581 * @p index = -1 refers current item (one displayed in the button). 581 * @p index = -1 refers current item (one displayed in the button).
582 */ 582 */
583 void changeComboItem (int id, const QString& text, int index=-1); 583 void changeComboItem (int id, const QString& text, int index=-1);
584 584
585 /** 585 /**
586 * Clears the combobox @p id. 586 * Clears the combobox @p id.
587 * 587 *
588 * Does not delete it or hide it. 588 * Does not delete it or hide it.
589 */ 589 */
590 void clearCombo (int id); 590 void clearCombo (int id);
591 591
592 /** 592 /**
593 * Returns text of item @p index from combobox @p id. 593 * Returns text of item @p index from combobox @p id.
594 * 594 *
595 * @p index = -1 refers to current item. 595 * @p index = -1 refers to current item.
596 */ 596 */
597 597
598 QString getComboItem (int id, int index=-1) const; 598 QString getComboItem (int id, int index=-1) const;
599 599
600 /** 600 /**
601 * Returns a pointer to the combobox. 601 * Returns a pointer to the combobox.
602 * 602 *
603 * Example: 603 * Example:
604 * <pre> 604 * <pre>
605 * KComboBox *combo = toolbar->getCombo(combo_id); 605 * KComboBox *combo = toolbar->getCombo(combo_id);
606 * </pre> 606 * </pre>
607 * That way you can get access to other public methods 607 * That way you can get access to other public methods
608 * that @ref KComboBox provides. 608 * that @ref KComboBox provides.
609 */ 609 */
610 KComboBox * getCombo(int id); 610 KComboBox * getCombo(int id);
611 611
612 /** 612 /**
613 * Returns a pointer to KToolBarLined. 613 * Returns a pointer to KToolBarLined.
614 * 614 *
615 * Example: 615 * Example:
616 * <pre> 616 * <pre>
617 * KLineEdit * lined = toolbar->getKToolBarLined(lined_id); 617 * KLineEdit * lined = toolbar->getKToolBarLined(lined_id);
618 * </pre> 618 * </pre>
619 * That way you can get access to other public methods 619 * That way you can get access to other public methods
620 * that @ref KLineEdit provides. @ref KLineEdit is the same thing 620 * that @ref KLineEdit provides. @ref KLineEdit is the same thing
621 * as @ref QLineEdit plus completion signals. 621 * as @ref QLineEdit plus completion signals.
622 */ 622 */
623 KLineEdit * getLined (int id); 623 KLineEdit * getLined (int id);
624 624
625 /** 625 /**
626 * Returns a pointer to KToolBarButton. 626 * Returns a pointer to KToolBarButton.
627 * 627 *
628 * Example: 628 * Example:
629 * <pre> 629 * <pre>
630 * KToolBarButton * button = toolbar->getButton(button_id); 630 * KToolBarButton * button = toolbar->getButton(button_id);
631 * </pre> 631 * </pre>
632 * That way you can get access to other public methods 632 * That way you can get access to other public methods
633 * that @ref KToolBarButton provides. 633 * that @ref KToolBarButton provides.
634 * 634 *
635 * Using this method is not recommended. 635 * Using this method is not recommended.
636 */ 636 */
637 KToolBarButton * getButton (int id); 637 KToolBarButton * getButton (int id);
638 638
639 /** 639 /**
640 * Align item to the right. 640 * Align item to the right.
641 * 641 *
642 * This works only if toolbar is set to full width. 642 * This works only if toolbar is set to full width.
643 * @see setFullWidth() 643 * @see setFullWidth()
644 */ 644 */
645 void alignItemRight (int id, bool right = true); 645 void alignItemRight (int id, bool right = true);
646 646
647 /** 647 /**
648 * Returns a pointer to an inserted widget. 648 * Returns a pointer to an inserted widget.
649 * 649 *
650 * Wrong ids are not tested. 650 * Wrong ids are not tested.
651 * You can do with this whatever you want, 651 * You can do with this whatever you want,
652 * except change its height (hardcoded). If you change its width 652 * except change its height (hardcoded). If you change its width
653 * you will probably have to call QToolBar::updateRects(true) 653 * you will probably have to call QToolBar::updateRects(true)
654 * @see QWidget 654 * @see QWidget
655 * @see updateRects() 655 * @see updateRects()
656 * 656 *
657 * KDE4: make this const! 657 * KDE4: make this const!
658 */ 658 */
659 QWidget *getWidget (int id); 659 QWidget *getWidget (int id);
660 660
661 /** 661 /**
662 * Set item autosized. 662 * Set item autosized.
663 * 663 *
664 * This works only if the toolbar is set to full width. 664 * This works only if the toolbar is set to full width.
665 * Only @p one item can be autosized, and it has to be 665 * Only @p one item can be autosized, and it has to be
666 * the last left-aligned item. Items that come after this must be right 666 * the last left-aligned item. Items that come after this must be right
667 * aligned. Items that can be right aligned are Lineds, Frames, Widgets and 667 * aligned. Items that can be right aligned are Lineds, Frames, Widgets and
668 * Combos. An autosized item will resize itself whenever the toolbar geometry 668 * Combos. An autosized item will resize itself whenever the toolbar geometry
669 * changes to the last right-aligned item (or to end of toolbar if there 669 * changes to the last right-aligned item (or to end of toolbar if there
670 * are no right-aligned items.) 670 * are no right-aligned items.)
671 * @see setFullWidth() 671 * @see setFullWidth()
672 * @see alignItemRight() 672 * @see alignItemRight()
673 */ 673 */
674 void setItemAutoSized (int id, bool yes = true); 674 void setItemAutoSized (int id, bool yes = true);
675 675
676 /** 676 /**
677 * Remove all items. 677 * Remove all items.
678 * 678 *
679 * The toolbar is redrawn after it. 679 * The toolbar is redrawn after it.
680 */ 680 */
681 void clear (); 681 void clear ();
682 682
683 /** 683 /**
684 * Remove item @p id. 684 * Remove item @p id.
685 * 685 *
686 * Item is deleted. Toolbar is redrawn after it. 686 * Item is deleted. Toolbar is redrawn after it.
687 */ 687 */
688 void removeItem (int id); 688 void removeItem (int id);
689 689
690 /** 690 /**
691 * Remove item @p id. 691 * Remove item @p id.
692 * 692 *
693 * Item is deleted when toolbar is redrawn. 693 * Item is deleted when toolbar is redrawn.
694 */ 694 */
695 void removeItemDelayed (int id); 695 void removeItemDelayed (int id);
696 696
697 /** 697 /**
698 * Hide item. 698 * Hide item.
699 */ 699 */
700 void hideItem (int id); 700 void hideItem (int id);
701 701
702 /** 702 /**
703 * Show item. 703 * Show item.
704 */ 704 */
705 void showItem (int id); 705 void showItem (int id);
706 706
707 /** 707 /**
708 * Returns the index of the given item. 708 * Returns the index of the given item.
709 * 709 *
710 * KDE4: make this const! 710 * KDE4: make this const!
711 */ 711 */
712 int itemIndex (int id); 712 int itemIndex (int id);
713 713
714 /** 714 /**
715 * Set toolbar to full parent size (default). 715 * Set toolbar to full parent size (default).
716 * 716 *
717 * In full size mode the bar 717 * In full size mode the bar
718 * extends over the parent's full width or height. If the mode is disabled 718 * extends over the parent's full width or height. If the mode is disabled
719 * the toolbar tries to take as much space as it needs without wrapping, but 719 * the toolbar tries to take as much space as it needs without wrapping, but
720 * it does not exceed the parent box. You can force a certain width or 720 * it does not exceed the parent box. You can force a certain width or
721 * height with @ref setMaxWidth() or @ref setMaxHeight(). 721 * height with @ref setMaxWidth() or @ref setMaxHeight().
722 * 722 *
723 * If you want to use right-aligned items or auto-sized items you must use 723 * If you want to use right-aligned items or auto-sized items you must use
724 * full size mode. 724 * full size mode.
725 */ 725 */
726 void setFullSize(bool flag = true); 726 void setFullSize(bool flag = true);
727 727
728 /** 728 /**
729 * @return @p true if the full-size mode is enabled. Otherwise 729 * @return @p true if the full-size mode is enabled. Otherwise
730 * it returns @false. 730 * it returns @false.
731 */ 731 */
732 bool fullSize() const; 732 bool fullSize() const;
733 733
734 /** 734 /**
735 * @deprecated use setMovingEnabled(bool) instead. 735 * @deprecated use setMovingEnabled(bool) instead.
736 * Enable or disable moving of toolbar. 736 * Enable or disable moving of toolbar.
737 */ 737 */
738 void enableMoving(bool flag = true); 738 void enableMoving(bool flag = true);
739 739
740 /** 740 /**
741 * Set position of toolbar. 741 * Set position of toolbar.
742 * @see BarPosition() 742 * @see BarPosition()
743 */ 743 */
744 void setBarPos (BarPosition bpos); 744 void setBarPos (BarPosition bpos);
745 745
746 /** 746 /**
747 * Returns position of toolbar. 747 * Returns position of toolbar.
748 */ 748 */
749 BarPosition barPos(); 749 BarPosition barPos() const;
750 750
751 /** 751 /**
752 * @deprecated 752 * @deprecated
753 * Show, hide, or toggle toolbar. 753 * Show, hide, or toggle toolbar.
754 * 754 *
755 * This method is provided for compatibility only, 755 * This method is provided for compatibility only,
756 * please use show() and/or hide() instead. 756 * please use show() and/or hide() instead.
757 * @see BarStatus 757 * @see BarStatus
758 */ 758 */
759 bool enable(BarStatus stat); 759 bool enable(BarStatus stat);
760 760
761 /** 761 /**
762 * @deprecated 762 * @deprecated
763 * Use setMaximumHeight() instead. 763 * Use setMaximumHeight() instead.
764 */ 764 */
765 void setMaxHeight (int h); // Set max height for vertical toolbars 765 void setMaxHeight (int h); // Set max height for vertical toolbars
766 766
767 /** 767 /**
768 * @deprecated 768 * @deprecated
769 * Use maximumHeight() instead. 769 * Use maximumHeight() instead.
770 * Returns the value that was set with @ref setMaxHeight(). 770 * Returns the value that was set with @ref setMaxHeight().
771 */ 771 */
772 int maxHeight(); 772 int maxHeight();
773 773
774 /** 774 /**
775 * @deprecated 775 * @deprecated
776 * Use setMaximumWidth() instead. 776 * Use setMaximumWidth() instead.
777 * Set maximal width of horizontal (top or bottom) toolbar. 777 * Set maximal width of horizontal (top or bottom) toolbar.
778 */ 778 */
779 void setMaxWidth (int dw); 779 void setMaxWidth (int dw);
780 780
781 /** 781 /**
782 * @deprecated 782 * @deprecated
783 * Use maximumWidth() instead. 783 * Use maximumWidth() instead.
784 * Returns the value that was set with @ref setMaxWidth(). 784 * Returns the value that was set with @ref setMaxWidth().
785 */ 785 */
786 int maxWidth(); 786 int maxWidth();
787 787
788 /** 788 /**
789 * Set title for toolbar when it floats. 789 * Set title for toolbar when it floats.
790 * 790 *
791 * Titles are however not (yet) 791 * Titles are however not (yet)
792 * visible. You can't change toolbar's title while it's floating. 792 * visible. You can't change toolbar's title while it's floating.
793 */ 793 */
794 void setTitle (const QString& _title); 794 void setTitle (const QString& _title);
795 795
796 /** 796 /**
797 * @deprecated 797 * @deprecated
798 * Use enableMoving() instead. 798 * Use enableMoving() instead.
799 */ 799 */
800 void enableFloating (bool arrrrrrgh); 800 void enableFloating (bool arrrrrrgh);
801 801
802 /** 802 /**
803 * Set the kind of painting for buttons. 803 * Set the kind of painting for buttons.
804 * 804 *
805 * Choose from: 805 * Choose from:
806 * @li IconOnly (only icons), 806 * @li IconOnly (only icons),
807 * @li IconTextRight (icon and text, text is left from icons), 807 * @li IconTextRight (icon and text, text is left from icons),
808 * @li TextOnly (only text), 808 * @li TextOnly (only text),
809 * @li IconTextBottom (icons and text, text is under icons). 809 * @li IconTextBottom (icons and text, text is under icons).
810 * @see IconText 810 * @see IconText
811 * 811 *
812 */ 812 */
813 void setIconText(IconText it); 813 void setIconText(IconText it);
814 // Note: don't merge with the next one, it breaks Qt properties 814 // Note: don't merge with the next one, it breaks Qt properties
815 815
816 /** 816 /**
817 * Similar to @ref setIconText(IconText it) but allows you to 817 * Similar to @ref setIconText(IconText it) but allows you to
818 * disable or enable updating. If @p update is false, then the 818 * disable or enable updating. If @p update is false, then the
819 * buttons will not be updated. This is useful only if you know 819 * buttons will not be updated. This is useful only if you know
820 * that you will be forcing an update later. 820 * that you will be forcing an update later.
821 */ 821 */
822 void setIconText(IconText it, bool update); 822 void setIconText(IconText it, bool update);
823 823
824 /** 824 /**
825 * @return The current text style for buttons. 825 * @return The current text style for buttons.
826 */ 826 */
827 IconText iconText() const; 827 IconText iconText() const;
828 828
829 /** 829 /**
830 * Set the icon size to load. Usually you should not call 830 * Set the icon size to load. Usually you should not call
831 * this, the icon size is taken care of by KIconLoader 831 * this, the icon size is taken care of by KIconLoader
832 * and globally configured. 832 * and globally configured.
833 * By default, the toolbar will load icons of size 32 for main 833 * By default, the toolbar will load icons of size 32 for main
834 * toolbars and 22 for other toolbars 834 * toolbars and 22 for other toolbars
835 * @see KIconLoader. 835 * @see KIconLoader.
836 * 836 *
837 * @param size The size to use 837 * @param size The size to use
838 */ 838 */
839 void setIconSize(int size); 839 void setIconSize(int size);
840 // Note: don't merge with the next one, it breaks Qt properties 840 // Note: don't merge with the next one, it breaks Qt properties
841 841
842 /** 842 /**
843 * Same as @ref setIconText(int size) but allows you 843 * Same as @ref setIconText(int size) but allows you
844 * to disable the toolbar update. 844 * to disable the toolbar update.
845 * 845 *
846 * @param size The size to use 846 * @param size The size to use
847 * @param update If true, then the toolbar will be updated after 847 * @param update If true, then the toolbar will be updated after
848 * this 848 * this
849 */ 849 */
850 void setIconSize(int size, bool update); 850 void setIconSize(int size, bool update);
851 851
852 /** 852 /**
853 * @return The current icon size for buttons. 853 * @return The current icon size for buttons.
854 */ 854 */
855 int iconSize() const; 855 int iconSize() const;
856 856
857 /** 857 /**
858 * This allows you to enable or disable the context menu. 858 * This allows you to enable or disable the context menu.
859 * 859 *
860 * @param enable If false, then the context menu will be disabled 860 * @param enable If false, then the context menu will be disabled
861 */ 861 */
862 void setEnableContextMenu(bool enable = true); 862 void setEnableContextMenu(bool enable = true);
863 863
864 /** 864 /**
865 * Returns whether or not the context menu is disabled 865 * Returns whether or not the context menu is disabled
866 * 866 *
867 * @return The context menu state 867 * @return The context menu state
868 */ 868 */
869 bool contextMenuEnabled() const; 869 bool contextMenuEnabled() const;
870 870
871 /** 871 /**
872 * This will inform a toolbar button to ignore certain style 872 * This will inform a toolbar button to ignore certain style
873 * changes. Specifically, it will ignore IconText (always IconOnly) 873 * changes. Specifically, it will ignore IconText (always IconOnly)
874 * and will not allow image effects to apply. 874 * and will not allow image effects to apply.
875 * 875 *
876 * @param id The button to exclude from styles 876 * @param id The button to exclude from styles
877 * @param no_style If true, then it is excluded (default: true). 877 * @param no_style If true, then it is excluded (default: true).
878 */ 878 */
879 void setItemNoStyle(int id, bool no_style = true); 879 void setItemNoStyle(int id, bool no_style = true);
880 880
881 void setFlat (bool flag); 881 void setFlat (bool flag);
882 882
883 /** 883 /**
884 * @return the number of items in the toolbar 884 * @return the number of items in the toolbar
885 */ 885 */
886 int count() const; 886 int count() const;
887 887
888 /** 888 /**
889 * Instruct the toolbar to save it's current state to either the app 889 * Instruct the toolbar to save it's current state to either the app
890 * config file or to the XML-GUI resource file (whichever has 890 * config file or to the XML-GUI resource file (whichever has
891 * precedence). 891 * precedence).
892 */ 892 */
893 void saveState(); 893 void saveState();
894 894
895 /** 895 /**
896 * Save the toolbar settings to group @p configGroup in @p config. 896 * Save the toolbar settings to group @p configGroup in @p config.
897 */ 897 */
898 void saveSettings(KConfig *config, const QString &configGroup); 898 void saveSettings(KConfig *config, const QString &configGroup);
899 899
900 /** 900 /**
901 * Read the toolbar settings from group @p configGroup in @p config 901 * Read the toolbar settings from group @p configGroup in @p config
902 * and apply them. 902 * and apply them.
903 */ 903 */
904 void applySettings(KConfig *config, const QString &configGroup); 904 void applySettings(KConfig *config, const QString &configGroup);
905 905
906 /** 906 /**
907 * Tell the toolbar what XML-GUI resource file it should use to save 907 * Tell the toolbar what XML-GUI resource file it should use to save
908 * it's state. The state of the toolbar (position, size, etc) is 908 * it's state. The state of the toolbar (position, size, etc) is
909 * saved in KConfig files if the application does not use XML-GUI.. 909 * saved in KConfig files if the application does not use XML-GUI..
910 * but if the app does, then it's saved the XML file. This function 910 * but if the app does, then it's saved the XML file. This function
911 * allows this to happen. 911 * allows this to happen.
912 * 912 *
913 * @param xmlfile The XML-GUI resource file to write to 913 * @param xmlfile The XML-GUI resource file to write to
914 * @param xml The DOM document for the XML-GUI building 914 * @param xml The DOM document for the XML-GUI building
915 */ 915 */
916 // void setXML(const QString& xmlfile, const QDomDocument& xml); 916 // void setXML(const QString& xmlfile, const QDomDocument& xml);
917 /* @internal */ 917 /* @internal */
918 void setXMLGUIClient( KXMLGUIClient *client ); 918 void setXMLGUIClient( KXMLGUIClient *client );
919 919
920 /** 920 /**
921 * Assign a (translated) text to this toolbar. This is used 921 * Assign a (translated) text to this toolbar. This is used
922 * for the tooltip on the handle, and when listing the toolbars. 922 * for the tooltip on the handle, and when listing the toolbars.
923 */ 923 */
924 void setText( const QString & txt ); 924 void setText( const QString & txt );
925 925
926 /** 926 /**
927 * @return the toolbar's text. 927 * @return the toolbar's text.
928 */ 928 */
929 QString text() const; 929 QString text() const;
930 930
931 void setStretchableWidget( QWidget *w ); 931 void setStretchableWidget( QWidget *w );
932 QSizePolicy sizePolicy() const; 932 QSizePolicy sizePolicy() const;
933 bool highlight() const; 933 bool highlight() const;
934 QSize sizeHint() const; 934 QSize sizeHint() const;
935 QSize minimumSizeHint() const; 935 QSize minimumSizeHint() const;
936 QSize minimumSize() const; 936 QSize minimumSize() const;
937 937
938 void hide(); 938 void hide();
939 void show(); 939 void show();
940 940
941 void updateRects( bool = FALSE ) {} 941 void updateRects( bool = FALSE ) {}