summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/details/look_details.cpp2
-rw-r--r--kmicromail/koprefsdialog.cpp2
-rw-r--r--korganizer/datenavigatorcontainer.cpp3
-rw-r--r--korganizer/kodaymatrix.cpp8
-rw-r--r--korganizer/koeventviewerdialog.cpp16
-rw-r--r--korganizer/koeventviewerdialog.h1
-rw-r--r--korganizer/koprefsdialog.cpp3
-rw-r--r--korganizer/mainwindow.cpp4
-rw-r--r--microkde/kglobalsettings.cpp16
-rw-r--r--microkde/kglobalsettings.h1
-rw-r--r--microkde/kutils/kcmultidialog.cpp2
11 files changed, 38 insertions, 20 deletions
diff --git a/kaddressbook/details/look_details.cpp b/kaddressbook/details/look_details.cpp
index 51ec0c0..11d06e9 100644
--- a/kaddressbook/details/look_details.cpp
+++ b/kaddressbook/details/look_details.cpp
@@ -1,419 +1,419 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 1996-2002 Mirko Boehm <mirko@kde.org> 3 Copyright (c) 1996-2002 Mirko Boehm <mirko@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program 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 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <kconfig.h> 24#include <kconfig.h>
25#include <kdebug.h> 25#include <kdebug.h>
26#include <kglobalsettings.h> 26#include <kglobalsettings.h>
27#include <kinstance.h> 27#include <kinstance.h>
28#include <klocale.h> 28#include <klocale.h>
29#include <kstandarddirs.h> 29#include <kstandarddirs.h>
30 30
31#include <qcursor.h> 31#include <qcursor.h>
32#include <qdir.h> 32#include <qdir.h>
33#include <qpainter.h> 33#include <qpainter.h>
34#include <qpopupmenu.h> 34#include <qpopupmenu.h>
35 35
36#include "global.h" 36#include "global.h"
37#include "kabentrypainter.h" 37#include "kabentrypainter.h"
38 38
39#include "look_details.h" 39#include "look_details.h"
40 40
41#define GRID 5 41#define GRID 5
42 42
43const QString KABDetailedView::mBorderedBGDir = "kab3part/backgrounds/bordered/"; 43const QString KABDetailedView::mBorderedBGDir = "kab3part/backgrounds/bordered/";
44const QString KABDetailedView::mTiledBGDir = "kab3part/backgrounds/tiled/"; 44const QString KABDetailedView::mTiledBGDir = "kab3part/backgrounds/tiled/";
45 45
46KABDetailedView::KABDetailedView( QWidget *parent, const char *name ) 46KABDetailedView::KABDetailedView( QWidget *parent, const char *name )
47 : KABBasicLook( parent, name ), mPainter( 0 ), mBackgroundStyle( None ), 47 : KABBasicLook( parent, name ), mPainter( 0 ), mBackgroundStyle( None ),
48 mDefaultBGColor( white ), mHeadLineBGColor( darkBlue ), 48 mDefaultBGColor( white ), mHeadLineBGColor( darkBlue ),
49 mHeadLineTextColor( yellow ), mGrid( 3 ), mMenuBorderedBG( 0 ), 49 mHeadLineTextColor( yellow ), mGrid( 3 ), mMenuBorderedBG( 0 ),
50 mMenuTiledBG( 0 ) 50 mMenuTiledBG( 0 )
51{ 51{
52 KToggleAction** actions[] = { 52 KToggleAction** actions[] = {
53 &mActionShowAddresses, 53 &mActionShowAddresses,
54 &mActionShowEmails, 54 &mActionShowEmails,
55 &mActionShowPhones, 55 &mActionShowPhones,
56 &mActionShowURLs 56 &mActionShowURLs
57 }; 57 };
58 58
59 QString actionTexts[] = { 59 QString actionTexts[] = {
60 i18n( "Show Postal Addresses" ), 60 i18n( "Show Postal Addresses" ),
61 i18n( "Show Email Addresses" ), 61 i18n( "Show Email Addresses" ),
62 i18n( "Show Telephone Numbers" ), 62 i18n( "Show Telephone Numbers" ),
63 i18n( "Show Web Pages (URLs)" ) 63 i18n( "Show Web Pages (URLs)" )
64 }; 64 };
65 65
66 QFont general = KGlobalSettings::generalFont(); 66 QFont general = KGlobalSettings::generalMaxFont();
67 QFont fixed = KGlobalSettings::fixedFont(); 67 QFont fixed = KGlobalSettings::fixedFont();
68 QString gfont = general.family(); 68 QString gfont = general.family();
69 QString ffont = fixed.family(); 69 QString ffont = fixed.family();
70 70
71 int gpointsize = general.pixelSize(); 71 int gpointsize = general.pixelSize();
72 if ( gpointsize == -1 ) 72 if ( gpointsize == -1 )
73 gpointsize = general.pointSize(); 73 gpointsize = general.pointSize();
74 74
75 int fpointsize = fixed.pixelSize(); 75 int fpointsize = fixed.pixelSize();
76 if ( fpointsize == -1 ) 76 if ( fpointsize == -1 )
77 fpointsize = fixed.pointSize(); 77 fpointsize = fixed.pointSize();
78 78
79 mPainter = new KABEntryPainter; 79 mPainter = new KABEntryPainter;
80 80
81 mPainter->setForegroundColor( black ); 81 mPainter->setForegroundColor( black );
82 mPainter->setHeaderColor( mHeadLineTextColor ); 82 mPainter->setHeaderColor( mHeadLineTextColor );
83 mPainter->setUseHeaderColor( mUseHeadLineBGColor ); 83 mPainter->setUseHeaderColor( mUseHeadLineBGColor );
84 mPainter->setBackgroundColor( mHeadLineBGColor ); 84 mPainter->setBackgroundColor( mHeadLineBGColor );
85 85
86 mPainter->setHeaderFont( QFont( gfont, gpointsize + 4, QFont::Bold, true ) ); 86 mPainter->setHeaderFont( QFont( gfont, gpointsize + 4, QFont::Bold, true ) );
87 mPainter->setHeadLineFont( QFont( gfont, gpointsize + 2, QFont::Bold, true ) ); 87 mPainter->setHeadLineFont( QFont( gfont, gpointsize + 2, QFont::Bold, true ) );
88 mPainter->setBodyFont( QFont( gfont, gpointsize, QFont::Normal, false ) ); 88 mPainter->setBodyFont( QFont( gfont, gpointsize, QFont::Normal, false ) );
89 mPainter->setFixedFont( QFont( ffont, fpointsize, QFont::Normal, false ) ); 89 mPainter->setFixedFont( QFont( ffont, fpointsize, QFont::Normal, false ) );
90 mPainter->setCommentFont( QFont( gfont, gpointsize, QFont::Normal, false ) ); 90 mPainter->setCommentFont( QFont( gfont, gpointsize, QFont::Normal, false ) );
91 91
92 const int numActions = sizeof( actions ) / sizeof( actions[ 0 ] ); 92 const int numActions = sizeof( actions ) / sizeof( actions[ 0 ] );
93 93
94 for ( int count = 0; count < numActions; ++count ) { 94 for ( int count = 0; count < numActions; ++count ) {
95 *actions[ count ] = new KToggleAction( actionTexts[ count ] ); 95 *actions[ count ] = new KToggleAction( actionTexts[ count ] );
96 (*actions[ count ])->setChecked( true ); 96 (*actions[ count ])->setChecked( true );
97 } 97 }
98 98
99 setMouseTracking( true ); 99 setMouseTracking( true );
100 100
101 setBackgroundMode( NoBackground ); 101 setBackgroundMode( NoBackground );
102} 102}
103 103
104KABDetailedView::~KABDetailedView() 104KABDetailedView::~KABDetailedView()
105{ 105{
106 delete mPainter; 106 delete mPainter;
107 mPainter = 0; 107 mPainter = 0;
108} 108}
109 109
110bool KABDetailedView::getBackground( QString path, QPixmap& image ) 110bool KABDetailedView::getBackground( QString path, QPixmap& image )
111{ 111{
112 QMap<QString, QPixmap>::iterator pos; 112 QMap<QString, QPixmap>::iterator pos;
113 113
114 pos = mBackgroundMap.find( path ); 114 pos = mBackgroundMap.find( path );
115 if ( pos == mBackgroundMap.end() ) { // the image has not been loaded previously 115 if ( pos == mBackgroundMap.end() ) { // the image has not been loaded previously
116 if ( image.load( path ) ) { 116 if ( image.load( path ) ) {
117 mBackgroundMap[ path ] = image; 117 mBackgroundMap[ path ] = image;
118 return true; 118 return true;
119 } else 119 } else
120 return false; 120 return false;
121 } else { // image found in cache 121 } else { // image found in cache
122 image = pos.data(); 122 image = pos.data();
123 return true; 123 return true;
124 } 124 }
125} 125}
126 126
127void KABDetailedView::paintEvent( QPaintEvent* ) 127void KABDetailedView::paintEvent( QPaintEvent* )
128{ 128{
129 const int BorderSpace = mGrid; 129 const int BorderSpace = mGrid;
130 QPixmap pm( width(), height() ); 130 QPixmap pm( width(), height() );
131 QPainter p; 131 QPainter p;
132 132
133 QRect entryArea = QRect( BorderSpace, mGrid, width() - mGrid - BorderSpace, 133 QRect entryArea = QRect( BorderSpace, mGrid, width() - mGrid - BorderSpace,
134 height() - 2 * mGrid ); 134 height() - 2 * mGrid );
135 p.begin( &pm ); 135 p.begin( &pm );
136 136
137 p.setPen( darkBlue ); 137 p.setPen( darkBlue );
138 p.setBrush( mDefaultBGColor ); 138 p.setBrush( mDefaultBGColor );
139 p.drawRect( 0, 0, width(), height() ); 139 p.drawRect( 0, 0, width(), height() );
140 switch ( mBackgroundStyle ) { 140 switch ( mBackgroundStyle ) {
141 case Tiled: 141 case Tiled:
142 p.drawTiledPixmap( 1, 1, width() - 2, height() - 2, mCurrentBackground ); 142 p.drawTiledPixmap( 1, 1, width() - 2, height() - 2, mCurrentBackground );
143 break; 143 break;
144 case Bordered: 144 case Bordered:
145 p.drawTiledPixmap( 1, 1, QMIN( width() - 2, mCurrentBackground.width() ), 145 p.drawTiledPixmap( 1, 1, QMIN( width() - 2, mCurrentBackground.width() ),
146 height() - 2, mCurrentBackground ); 146 height() - 2, mCurrentBackground );
147 break; 147 break;
148 case None: // no BG image defined for this entry: 148 case None: // no BG image defined for this entry:
149 default: 149 default:
150 if ( mUseDefaultBGImage ) 150 if ( mUseDefaultBGImage )
151 p.drawTiledPixmap( 1, 1, width() - 2, height() - 2, mDefaultBGImage ); 151 p.drawTiledPixmap( 1, 1, width() - 2, height() - 2, mDefaultBGImage );
152 break; 152 break;
153 }; 153 };
154 154
155 p.setViewport( entryArea ); 155 p.setViewport( entryArea );
156 156
157 mPainter->setShowAddresses( mActionShowAddresses->isChecked() ); 157 mPainter->setShowAddresses( mActionShowAddresses->isChecked() );
158 mPainter->setShowEmails( mActionShowEmails->isChecked() ); 158 mPainter->setShowEmails( mActionShowEmails->isChecked() );
159 mPainter->setShowPhones( mActionShowPhones->isChecked() ); 159 mPainter->setShowPhones( mActionShowPhones->isChecked() );
160 mPainter->setShowURLs( mActionShowURLs->isChecked() ); 160 mPainter->setShowURLs( mActionShowURLs->isChecked() );
161 mPainter->printAddressee( addressee(), QRect( 0, 0, entryArea.width(), 161 mPainter->printAddressee( addressee(), QRect( 0, 0, entryArea.width(),
162 entryArea.height() ), &p ); 162 entryArea.height() ), &p );
163 p.end(); 163 p.end();
164 bitBlt( this, 0, 0, &pm ); 164 bitBlt( this, 0, 0, &pm );
165} 165}
166 166
167void KABDetailedView::mouseMoveEvent( QMouseEvent *e ) 167void KABDetailedView::mouseMoveEvent( QMouseEvent *e )
168{ 168{
169 QPoint bias( mGrid, mGrid ); 169 QPoint bias( mGrid, mGrid );
170 int rc; 170 int rc;
171 bool hit = false; 171 bool hit = false;
172 172
173 if ( ( rc = mPainter->hitsEmail( e->pos() - bias ) ) != -1 ) 173 if ( ( rc = mPainter->hitsEmail( e->pos() - bias ) ) != -1 )
174 hit = true; 174 hit = true;
175 else if ( ( rc = mPainter->hitsURL( e->pos() - bias ) ) != -1 ) 175 else if ( ( rc = mPainter->hitsURL( e->pos() - bias ) ) != -1 )
176 hit = true; 176 hit = true;
177 else if ( ( rc = mPainter->hitsPhone( e->pos() - bias ) ) != -1 ) 177 else if ( ( rc = mPainter->hitsPhone( e->pos() - bias ) ) != -1 )
178 hit = true; 178 hit = true;
179 else if ( ( rc = mPainter->hitsTalk( e->pos() - bias ) ) != -1 ) 179 else if ( ( rc = mPainter->hitsTalk( e->pos() - bias ) ) != -1 )
180 hit = true; 180 hit = true;
181 181
182 if ( hit ) { 182 if ( hit ) {
183 if ( cursor().shape() != PointingHandCursor ) 183 if ( cursor().shape() != PointingHandCursor )
184 setCursor( PointingHandCursor ); 184 setCursor( PointingHandCursor );
185 else if( cursor().shape() != ArrowCursor ) 185 else if( cursor().shape() != ArrowCursor )
186 setCursor(ArrowCursor); 186 setCursor(ArrowCursor);
187 } 187 }
188} 188}
189 189
190void KABDetailedView::mousePressEvent( QMouseEvent *e ) 190void KABDetailedView::mousePressEvent( QMouseEvent *e )
191{ 191{
192 QPopupMenu menu( this ); 192 QPopupMenu menu( this );
193 QPopupMenu *menuBG = new QPopupMenu( &menu ); 193 QPopupMenu *menuBG = new QPopupMenu( &menu );
194 mMenuBorderedBG = new QPopupMenu( &menu ); 194 mMenuBorderedBG = new QPopupMenu( &menu );
195 mMenuTiledBG = new QPopupMenu( &menu ); 195 mMenuTiledBG = new QPopupMenu( &menu );
196 196
197 menu.insertItem( i18n( "Select Background" ), menuBG ); 197 menu.insertItem( i18n( "Select Background" ), menuBG );
198 menuBG->insertItem( i18n( "Bordered Backgrounds" ), mMenuBorderedBG ); 198 menuBG->insertItem( i18n( "Bordered Backgrounds" ), mMenuBorderedBG );
199 menuBG->insertItem( i18n( "Tiled Backgrounds" ), mMenuTiledBG ); 199 menuBG->insertItem( i18n( "Tiled Backgrounds" ), mMenuTiledBG );
200 menu.insertSeparator(); 200 menu.insertSeparator();
201 201
202 QPoint point = e->pos() - QPoint( mGrid, mGrid ); 202 QPoint point = e->pos() - QPoint( mGrid, mGrid );
203 int rc; 203 int rc;
204 QStringList dirsBorderedBG, dirsTiledBG; 204 QStringList dirsBorderedBG, dirsTiledBG;
205 QDir dir; 205 QDir dir;
206 206
207 switch( e->button() ) { 207 switch( e->button() ) {
208 case QMouseEvent::RightButton: 208 case QMouseEvent::RightButton:
209 if ( isReadOnly() ) 209 if ( isReadOnly() )
210 menu.setItemEnabled( menu.idAt( 0 ), false ); 210 menu.setItemEnabled( menu.idAt( 0 ), false );
211 else { 211 else {
212 // TODO: settings need to be saved in view options 212 // TODO: settings need to be saved in view options
213 dirsBorderedBG = KGlobal::instance()->dirs()->findDirs( "data", mBorderedBGDir ); 213 dirsBorderedBG = KGlobal::instance()->dirs()->findDirs( "data", mBorderedBGDir );
214 if ( dirsBorderedBG.count() > 0 ) { 214 if ( dirsBorderedBG.count() > 0 ) {
215 dir.setPath( dirsBorderedBG[ 0 ] ); 215 dir.setPath( dirsBorderedBG[ 0 ] );
216 mBorders = dir.entryList( QDir::Files ); 216 mBorders = dir.entryList( QDir::Files );
217 for ( uint count = 0; count < mBorders.count(); ++count ) 217 for ( uint count = 0; count < mBorders.count(); ++count )
218 mMenuBorderedBG->insertItem( mBorders[ count ], count ); 218 mMenuBorderedBG->insertItem( mBorders[ count ], count );
219 219
220 connect( mMenuBorderedBG, SIGNAL( activated( int ) ), 220 connect( mMenuBorderedBG, SIGNAL( activated( int ) ),
221 SLOT( slotBorderedBGSelected( int ) ) ); 221 SLOT( slotBorderedBGSelected( int ) ) );
222 } else 222 } else
223 menuBG->setItemEnabled( menuBG->idAt( 0 ), false ); 223 menuBG->setItemEnabled( menuBG->idAt( 0 ), false );
224 224
225 dirsTiledBG = KGlobal::instance()->dirs()->findDirs( "data", mTiledBGDir ); 225 dirsTiledBG = KGlobal::instance()->dirs()->findDirs( "data", mTiledBGDir );
226 if ( dirsTiledBG.count() > 0 ) { 226 if ( dirsTiledBG.count() > 0 ) {
227 dir.setPath( dirsTiledBG[ 0 ] ); 227 dir.setPath( dirsTiledBG[ 0 ] );
228 mTiles = dir.entryList( QDir::Files ); 228 mTiles = dir.entryList( QDir::Files );
229 for ( uint count = 0; count < mTiles.count(); ++count ) 229 for ( uint count = 0; count < mTiles.count(); ++count )
230 mMenuTiledBG->insertItem( mTiles[ count ], count ); 230 mMenuTiledBG->insertItem( mTiles[ count ], count );
231 231
232 connect( mMenuTiledBG, SIGNAL( activated( int ) ), 232 connect( mMenuTiledBG, SIGNAL( activated( int ) ),
233 SLOT( slotTiledBGSelected( int ) ) ); 233 SLOT( slotTiledBGSelected( int ) ) );
234 } else 234 } else
235 menuBG->setItemEnabled( menuBG->idAt( 1 ), false ); 235 menuBG->setItemEnabled( menuBG->idAt( 1 ), false );
236 } 236 }
237 237
238 mActionShowAddresses->plug( &menu ); 238 mActionShowAddresses->plug( &menu );
239 mActionShowEmails->plug( &menu ); 239 mActionShowEmails->plug( &menu );
240 mActionShowPhones->plug( &menu ); 240 mActionShowPhones->plug( &menu );
241 mActionShowURLs->plug( &menu ); 241 mActionShowURLs->plug( &menu );
242 242
243 menu.exec( e->globalPos() ); 243 menu.exec( e->globalPos() );
244 break; 244 break;
245 245
246 case QMouseEvent::LeftButton: 246 case QMouseEvent::LeftButton:
247 // find whether the pointer touches an email address, URL, 247 // find whether the pointer touches an email address, URL,
248 // talk address or telephone number: 248 // talk address or telephone number:
249 if ( ( rc = mPainter->hitsEmail( point ) ) != -1 ) { 249 if ( ( rc = mPainter->hitsEmail( point ) ) != -1 ) {
250 emit sendEmail( addressee().emails()[ rc ] ); 250 emit sendEmail( addressee().emails()[ rc ] );
251 break; 251 break;
252 } 252 }
253 if ( ( rc = mPainter->hitsURL( point ) ) != -1 ) { 253 if ( ( rc = mPainter->hitsURL( point ) ) != -1 ) {
254 emit browse( addressee().url().prettyURL() ); 254 emit browse( addressee().url().prettyURL() );
255 break; 255 break;
256 } 256 }
257 if ( ( rc = mPainter->hitsPhone( point ) ) != -1 ) { 257 if ( ( rc = mPainter->hitsPhone( point ) ) != -1 ) {
258 // not implemented yet 258 // not implemented yet
259 break; 259 break;
260 } 260 }
261 if ( ( rc = mPainter->hitsTalk( point ) ) != -1 ) { 261 if ( ( rc = mPainter->hitsTalk( point ) ) != -1 ) {
262 // not implemented yet 262 // not implemented yet
263 break; 263 break;
264 } 264 }
265 break; 265 break;
266 default: 266 default:
267 break; 267 break;
268 } 268 }
269 269
270 mMenuBorderedBG = 0; 270 mMenuBorderedBG = 0;
271 mMenuTiledBG = 0; 271 mMenuTiledBG = 0;
272} 272}
273 273
274void KABDetailedView::setAddressee( const KABC::Addressee &addr ) 274void KABDetailedView::setAddressee( const KABC::Addressee &addr )
275{ 275{
276 BackgroundStyle style = None; 276 BackgroundStyle style = None;
277 QString dir, file, styleSetting; 277 QString dir, file, styleSetting;
278 KABBasicLook::setAddressee( addr ); 278 KABBasicLook::setAddressee( addr );
279 279
280 // TODO: preload path and styleSetting with possible preference values 280 // TODO: preload path and styleSetting with possible preference values
281 styleSetting = addressee().custom( "kab", "BackgroundStyle" ); 281 styleSetting = addressee().custom( "kab", "BackgroundStyle" );
282 style = (BackgroundStyle)styleSetting.toInt(); 282 style = (BackgroundStyle)styleSetting.toInt();
283 file = addressee().custom( "kab", "BackgroundImage" ); 283 file = addressee().custom( "kab", "BackgroundImage" );
284 if ( !file.isEmpty() ) { 284 if ( !file.isEmpty() ) {
285 switch ( style ) { 285 switch ( style ) {
286 case Tiled: 286 case Tiled:
287 dir = mTiledBGDir; 287 dir = mTiledBGDir;
288 break; 288 break;
289 case Bordered: 289 case Bordered:
290 dir = mBorderedBGDir; 290 dir = mBorderedBGDir;
291 break; 291 break;
292 case None: 292 case None:
293 default: 293 default:
294 break; 294 break;
295 } 295 }
296 296
297 QStringList dirs = KGlobal::instance()->dirs()->findDirs( "data", dir ); 297 QStringList dirs = KGlobal::instance()->dirs()->findDirs( "data", dir );
298 mBackgroundStyle = None; 298 mBackgroundStyle = None;
299 if ( !dirs.isEmpty() ) { 299 if ( !dirs.isEmpty() ) {
300 uint count = 0; 300 uint count = 0;
301 for ( ; count < dirs.count(); ++count ) { 301 for ( ; count < dirs.count(); ++count ) {
302 QDir folder; 302 QDir folder;
303 folder.setPath( dirs[ count ] ); 303 folder.setPath( dirs[ count ] );
304 file = folder.absPath() + "/" + file; 304 file = folder.absPath() + "/" + file;
305 if ( getBackground( file, mCurrentBackground ) ) { 305 if ( getBackground( file, mCurrentBackground ) ) {
306 mBackgroundStyle = style; 306 mBackgroundStyle = style;
307 break; 307 break;
308 } 308 }
309 } 309 }
310 310
311 if ( count == dirs.count() ) { 311 if ( count == dirs.count() ) {
312 kdDebug(5720) << "KABDetailedView::setEntry: " << file 312 kdDebug(5720) << "KABDetailedView::setEntry: " << file
313 << " not locatable." << endl; 313 << " not locatable." << endl;
314 } 314 }
315 } 315 }
316 } else { // no background here 316 } else { // no background here
317 mBackgroundStyle = None; 317 mBackgroundStyle = None;
318 mCurrentBackground.resize( 0, 0 ); 318 mCurrentBackground.resize( 0, 0 );
319 } 319 }
320 320
321 repaint( false ); 321 repaint( false );
322} 322}
323 323
324void KABDetailedView::slotBorderedBGSelected( int index ) 324void KABDetailedView::slotBorderedBGSelected( int index )
325{ 325{
326 if ( index >= 0 && (uint)index < mBorders.count() && !isReadOnly() ) { 326 if ( index >= 0 && (uint)index < mBorders.count() && !isReadOnly() ) {
327 // get the selection and make it a full path 327 // get the selection and make it a full path
328 QString path = mBorders[ index ]; 328 QString path = mBorders[ index ];
329 mBackgroundStyle = Bordered; 329 mBackgroundStyle = Bordered;
330 addressee().insertCustom( "kab", "BackgroundStyle", 330 addressee().insertCustom( "kab", "BackgroundStyle",
331 QString().setNum( mBackgroundStyle ) ); 331 QString().setNum( mBackgroundStyle ) );
332 addressee().insertCustom( "kab", "BackgroundImage", path ); 332 addressee().insertCustom( "kab", "BackgroundImage", path );
333 setAddressee( addressee() ); 333 setAddressee( addressee() );
334 } 334 }
335} 335}
336 336
337void KABDetailedView::slotTiledBGSelected( int index ) 337void KABDetailedView::slotTiledBGSelected( int index )
338{ 338{
339 if ( index >= 0 && (uint)index < mTiles.count() && !isReadOnly() ) { 339 if ( index >= 0 && (uint)index < mTiles.count() && !isReadOnly() ) {
340 QString path = mTiles[ index ]; 340 QString path = mTiles[ index ];
341 mBackgroundStyle = Tiled; 341 mBackgroundStyle = Tiled;
342 addressee().insertCustom( "kab", "BackgroundStyle", 342 addressee().insertCustom( "kab", "BackgroundStyle",
343 QString().setNum( mBackgroundStyle ) ); 343 QString().setNum( mBackgroundStyle ) );
344 addressee().insertCustom( "kab", "BackgroundImage", path ); 344 addressee().insertCustom( "kab", "BackgroundImage", path );
345 setAddressee( addressee() ); 345 setAddressee( addressee() );
346 } 346 }
347} 347}
348 348
349void KABDetailedView::setReadOnly( bool state ) 349void KABDetailedView::setReadOnly( bool state )
350{ 350{
351 KABBasicLook::setReadOnly( state ); 351 KABBasicLook::setReadOnly( state );
352 repaint( false ); 352 repaint( false );
353} 353}
354 354
355void KABDetailedView::restoreSettings( KConfig *config ) 355void KABDetailedView::restoreSettings( KConfig *config )
356{ 356{
357 QFont general = KGlobalSettings::generalFont(); 357 QFont general = KGlobalSettings::generalFont();
358 QFont fixed = KGlobalSettings::fixedFont(); 358 QFont fixed = KGlobalSettings::fixedFont();
359 QString gfont = general.family(); 359 QString gfont = general.family();
360 QString ffont = fixed.family(); 360 QString ffont = fixed.family();
361 361
362 int gpointsize = general.pixelSize(); 362 int gpointsize = general.pixelSize();
363 if ( gpointsize == -1 ) 363 if ( gpointsize == -1 )
364 gpointsize = general.pointSize(); 364 gpointsize = general.pointSize();
365 365
366 int fpointsize = fixed.pixelSize(); 366 int fpointsize = fixed.pixelSize();
367 if ( fpointsize == -1 ) 367 if ( fpointsize == -1 )
368 fpointsize = fixed.pointSize(); 368 fpointsize = fixed.pointSize();
369 369
370 config->setGroup( ConfigView ); 370 config->setGroup( ConfigView );
371 371
372 // load the default background image: 372 // load the default background image:
373 QString bgImage; 373 QString bgImage;
374 mUseDefaultBGImage = config->readBoolEntry( ConfigView_UseDefaultBackground, true ); 374 mUseDefaultBGImage = config->readBoolEntry( ConfigView_UseDefaultBackground, true );
375 mDefaultBGColor = config->readColorEntry( ConfigView_DefaultBackgroundColor, &white ); 375 mDefaultBGColor = config->readColorEntry( ConfigView_DefaultBackgroundColor, &white );
376 bgImage = config->readEntry( ConfigView_DefaultBackgroundImage, "konqueror/tiles/kenwimer.png" ); 376 bgImage = config->readEntry( ConfigView_DefaultBackgroundImage, "konqueror/tiles/kenwimer.png" );
377 377
378 if ( mUseDefaultBGImage ) { 378 if ( mUseDefaultBGImage ) {
379 uint count = 0; 379 uint count = 0;
380 QStringList dirs = KGlobal::instance()->dirs()->findDirs( "data", "/" ); 380 QStringList dirs = KGlobal::instance()->dirs()->findDirs( "data", "/" );
381 if ( !dirs.isEmpty() ) { 381 if ( !dirs.isEmpty() ) {
382 for ( count = 0; count < dirs.count(); ++count ) { 382 for ( count = 0; count < dirs.count(); ++count ) {
383 if ( getBackground( dirs[ count ] + "/" + bgImage, mDefaultBGImage ) ) 383 if ( getBackground( dirs[ count ] + "/" + bgImage, mDefaultBGImage ) )
384 break; 384 break;
385 } 385 }
386 } 386 }
387 387
388 if ( count == dirs.count() ) { 388 if ( count == dirs.count() ) {
389 mUseDefaultBGImage = getBackground( bgImage, mDefaultBGImage ); 389 mUseDefaultBGImage = getBackground( bgImage, mDefaultBGImage );
390 if ( !mUseDefaultBGImage ) 390 if ( !mUseDefaultBGImage )
391 kdDebug(5720) << "KABDetailedView::configure: " 391 kdDebug(5720) << "KABDetailedView::configure: "
392 << "default BG image selected, but could not be loaded." 392 << "default BG image selected, but could not be loaded."
393 << endl; 393 << endl;
394 } 394 }
395 } 395 }
396 396
397 mDefaultBGColor = config->readColorEntry( ConfigView_DefaultBackgroundColor, &white ); 397 mDefaultBGColor = config->readColorEntry( ConfigView_DefaultBackgroundColor, &white );
398 mHeadLineBGColor = config->readColorEntry( ConfigView_HeadlineBGColor, &darkBlue ); 398 mHeadLineBGColor = config->readColorEntry( ConfigView_HeadlineBGColor, &darkBlue );
399 mHeadLineTextColor = config->readColorEntry( ConfigView_HeadlineTextColor, &yellow ); 399 mHeadLineTextColor = config->readColorEntry( ConfigView_HeadlineTextColor, &yellow );
400 mUseHeadLineBGColor = config->readBoolEntry( ConfigView_UseHeadlineBGColor, true ); 400 mUseHeadLineBGColor = config->readBoolEntry( ConfigView_UseHeadlineBGColor, true );
401 401
402 if ( !mPainter ) 402 if ( !mPainter )
403 mPainter = new KABEntryPainter; 403 mPainter = new KABEntryPainter;
404 404
405 mPainter->setForegroundColor( black ); 405 mPainter->setForegroundColor( black );
406 mPainter->setHeaderColor( mHeadLineTextColor ); 406 mPainter->setHeaderColor( mHeadLineTextColor );
407 mPainter->setUseHeaderColor( mUseHeadLineBGColor ); 407 mPainter->setUseHeaderColor( mUseHeadLineBGColor );
408 mPainter->setBackgroundColor( mHeadLineBGColor ); 408 mPainter->setBackgroundColor( mHeadLineBGColor );
409 409
410 mPainter->setHeaderFont( QFont( gfont, gpointsize + 4, QFont::Bold, true ) ); 410 mPainter->setHeaderFont( QFont( gfont, gpointsize + 4, QFont::Bold, true ) );
411 mPainter->setHeadLineFont( QFont( gfont, gpointsize + 2, QFont::Bold, true ) ); 411 mPainter->setHeadLineFont( QFont( gfont, gpointsize + 2, QFont::Bold, true ) );
412 mPainter->setBodyFont( QFont( gfont, gpointsize, QFont::Normal, false ) ); 412 mPainter->setBodyFont( QFont( gfont, gpointsize, QFont::Normal, false ) );
413 mPainter->setFixedFont( QFont( ffont, fpointsize, QFont::Normal, false ) ); 413 mPainter->setFixedFont( QFont( ffont, fpointsize, QFont::Normal, false ) );
414 mPainter->setCommentFont( QFont( gfont, gpointsize, QFont::Normal, false ) ); 414 mPainter->setCommentFont( QFont( gfont, gpointsize, QFont::Normal, false ) );
415} 415}
416 416
417#ifndef KAB_EMBEDDED 417#ifndef KAB_EMBEDDED
418#include "look_details.moc" 418#include "look_details.moc"
419#endif //KAB_EMBEDDED 419#endif //KAB_EMBEDDED
diff --git a/kmicromail/koprefsdialog.cpp b/kmicromail/koprefsdialog.cpp
index 9cde5cf..7de7064 100644
--- a/kmicromail/koprefsdialog.cpp
+++ b/kmicromail/koprefsdialog.cpp
@@ -1,583 +1,583 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program 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 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#include <kdialog.h> 23#include <kdialog.h>
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qgroupbox.h> 26#include <qgroupbox.h>
27#include <qbuttongroup.h> 27#include <qbuttongroup.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qfont.h> 29#include <qfont.h>
30#include <qslider.h> 30#include <qslider.h>
31#include <qfile.h> 31#include <qfile.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qvbox.h> 34#include <qvbox.h>
35#include <qhbox.h> 35#include <qhbox.h>
36#include <qregexp.h> 36#include <qregexp.h>
37#include <qspinbox.h> 37#include <qspinbox.h>
38#include <qdatetime.h> 38#include <qdatetime.h>
39#include <qcheckbox.h> 39#include <qcheckbox.h>
40#include <qradiobutton.h> 40#include <qradiobutton.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qstrlist.h> 42#include <qstrlist.h>
43#include <qapplication.h> 43#include <qapplication.h>
44 44
45#include <kcolorbutton.h> 45#include <kcolorbutton.h>
46#include <kdebug.h> 46#include <kdebug.h>
47#include <klocale.h> 47#include <klocale.h>
48#include <kglobal.h> 48#include <kglobal.h>
49#include <kfontdialog.h> 49#include <kfontdialog.h>
50#include <kfiledialog.h> 50#include <kfiledialog.h>
51#include <kmessagebox.h> 51#include <kmessagebox.h>
52#include <kcolordialog.h> 52#include <kcolordialog.h>
53#include <kiconloader.h> 53#include <kiconloader.h>
54#include <kemailsettings.h> 54#include <kemailsettings.h>
55#include <kstandarddirs.h> 55#include <kstandarddirs.h>
56#include <kglobalsettings.h> 56#include <kglobalsettings.h>
57 57
58#include <klineedit.h> 58#include <klineedit.h>
59 59
60 60
61#include "koprefs.h" 61#include "koprefs.h"
62 62
63#include "koprefsdialog.h" 63#include "koprefsdialog.h"
64//#include <kprefswidget.h> 64//#include <kprefswidget.h>
65 65
66 66
67KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) : 67KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) :
68 KPrefsDialog(KOPrefs::instance(),parent,name,true) 68 KPrefsDialog(KOPrefs::instance(),parent,name,true)
69{ 69{
70 70
71 setFont( KGlobalSettings::generalFont() ); 71 setFont( KGlobalSettings::generalMaxFont() );
72 setCaption( i18n("Settings - some need a restart (nr)")); 72 setCaption( i18n("Settings - some need a restart (nr)"));
73 setupGlobalTab(); 73 setupGlobalTab();
74 setupMainTab(); 74 setupMainTab();
75 setupMailTab();; 75 setupMailTab();;
76 setupFontsTab(); 76 setupFontsTab();
77 readConfig(); 77 readConfig();
78#ifndef DESKTOP_VERSION 78#ifndef DESKTOP_VERSION
79 if ( QApplication::desktop()->height() == 480 ) 79 if ( QApplication::desktop()->height() == 480 )
80 hideButtons(); 80 hideButtons();
81#endif 81#endif
82 82
83#if 0 83#if 0
84 84
85 setupMainTab(); 85 setupMainTab();
86 setupLocaleTab(); 86 setupLocaleTab();
87 setupTimeZoneTab(); 87 setupTimeZoneTab();
88 setupTimeTab(); 88 setupTimeTab();
89 setupLocaleDateTab(); 89 setupLocaleDateTab();
90 setupFontsTab(); 90 setupFontsTab();
91 setupColorsTab(); 91 setupColorsTab();
92 setupViewsTab(); 92 setupViewsTab();
93 //setupSyncTab(); 93 //setupSyncTab();
94 //setupSyncAlgTab(); 94 //setupSyncAlgTab();
95 //setupPrinterTab(); 95 //setupPrinterTab();
96 //setupGroupSchedulingTab(); 96 //setupGroupSchedulingTab();
97 //setupGroupAutomationTab(); 97 //setupGroupAutomationTab();
98#endif 98#endif
99} 99}
100 100
101#include "kpimglobalprefs.h" 101#include "kpimglobalprefs.h"
102 102
103KOPrefsDialog::~KOPrefsDialog() 103KOPrefsDialog::~KOPrefsDialog()
104{ 104{
105} 105}
106void KOPrefsDialog::setupGlobalTab() 106void KOPrefsDialog::setupGlobalTab()
107{ 107{
108 QFrame *topFrame = addPage(i18n("Global"),0,0); 108 QFrame *topFrame = addPage(i18n("Global"),0,0);
109 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); 109 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" );
110 QVBoxLayout *topLayout = new QVBoxLayout(topFrame); 110 QVBoxLayout *topLayout = new QVBoxLayout(topFrame);
111 topLayout->addWidget( kdelibcfg ); 111 topLayout->addWidget( kdelibcfg );
112 112
113 113
114} 114}
115void KOPrefsDialog::setupMainTab() 115void KOPrefsDialog::setupMainTab()
116{ 116{
117 QFrame *topFrame = addPage(i18n("General"),0,0); 117 QFrame *topFrame = addPage(i18n("General"),0,0);
118 118
119 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 119 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
120 topLayout->setSpacing(spacingHint()); 120 topLayout->setSpacing(spacingHint());
121 topLayout->setMargin(marginHint()); 121 topLayout->setMargin(marginHint());
122 122
123 123
124 mNameEdit = new QLineEdit(topFrame); 124 mNameEdit = new QLineEdit(topFrame);
125 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 125 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
126 topLayout->addWidget(mNameLabel,0,0); 126 topLayout->addWidget(mNameLabel,0,0);
127 topLayout->addWidget(mNameEdit,0,1); 127 topLayout->addWidget(mNameEdit,0,1);
128 128
129 mEmailEdit = new QLineEdit(topFrame); 129 mEmailEdit = new QLineEdit(topFrame);
130 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 130 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
131 topLayout->addWidget(mEmailLabel,1,0); 131 topLayout->addWidget(mEmailLabel,1,0);
132 topLayout->addWidget(mEmailEdit,1,1); 132 topLayout->addWidget(mEmailEdit,1,1);
133 QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame); 133 QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame);
134 topLayout->addMultiCellWidget(lab,2,2,0,1); 134 topLayout->addMultiCellWidget(lab,2,2,0,1);
135 KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"), 135 KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"),
136 &(KOPrefs::instance()->mUseKapi),topFrame); 136 &(KOPrefs::instance()->mUseKapi),topFrame);
137 topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1); 137 topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1);
138} 138}
139 139
140void KOPrefsDialog::setupMailTab() 140void KOPrefsDialog::setupMailTab()
141{ 141{
142 QFrame *topFrame = addPage(i18n("Mail"),0,0); 142 QFrame *topFrame = addPage(i18n("Mail"),0,0);
143 143
144 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 144 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
145 topLayout->setSpacing(spacingHint()); 145 topLayout->setSpacing(spacingHint());
146 topLayout->setMargin(marginHint()); 146 topLayout->setMargin(marginHint());
147 147
148 KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"), 148 KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"),
149 &(KOPrefs::instance()->mViewAsHtml),topFrame); 149 &(KOPrefs::instance()->mViewAsHtml),topFrame);
150 topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1); 150 topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1);
151 151
152 152
153 ttt = addWidBool(i18n("Send mails later"), 153 ttt = addWidBool(i18n("Send mails later"),
154 &(KOPrefs::instance()->mSendLater),topFrame); 154 &(KOPrefs::instance()->mSendLater),topFrame);
155 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1); 155 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1);
156 ttt = addWidBool(i18n("Show \"To\" field in list view"), 156 ttt = addWidBool(i18n("Show \"To\" field in list view"),
157 &(KOPrefs::instance()->mShowToField),topFrame); 157 &(KOPrefs::instance()->mShowToField),topFrame);
158 topLayout->addMultiCellWidget(ttt->checkBox(),2,2,0,1); 158 topLayout->addMultiCellWidget(ttt->checkBox(),2,2,0,1);
159 159
160 int iii =3; 160 int iii =3;
161 ttt = addWidBool(i18n("Show info fields at startup"), 161 ttt = addWidBool(i18n("Show info fields at startup"),
162 &(KOPrefs::instance()->mShowInfoStart),topFrame); 162 &(KOPrefs::instance()->mShowInfoStart),topFrame);
163 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 163 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
164 ++iii; 164 ++iii;
165 ttt = addWidBool(i18n("Show \"Subject\" info field"), 165 ttt = addWidBool(i18n("Show \"Subject\" info field"),
166 &(KOPrefs::instance()->mShowInfoSub),topFrame); 166 &(KOPrefs::instance()->mShowInfoSub),topFrame);
167 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 167 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
168 ++iii; 168 ++iii;
169 ttt = addWidBool(i18n("Show \"From\" info field"), 169 ttt = addWidBool(i18n("Show \"From\" info field"),
170 &(KOPrefs::instance()->mShowInfoFrom),topFrame); 170 &(KOPrefs::instance()->mShowInfoFrom),topFrame);
171 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 171 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
172 ++iii; 172 ++iii;
173 ttt = addWidBool(i18n("Show \"To\" info field"), 173 ttt = addWidBool(i18n("Show \"To\" info field"),
174 &(KOPrefs::instance()->mShowInfoTo),topFrame); 174 &(KOPrefs::instance()->mShowInfoTo),topFrame);
175 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 175 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
176 ++iii; 176 ++iii;
177 177
178 /* 178 /*
179 mCodecEdit = new QLineEdit(topFrame); 179 mCodecEdit = new QLineEdit(topFrame);
180 topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1); 180 topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1);
181 topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1); 181 topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1);
182 topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1); 182 topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1);
183 */ 183 */
184} 184}
185void KOPrefsDialog::setupFontsTab() 185void KOPrefsDialog::setupFontsTab()
186{ 186{
187 187
188 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 188 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
189 // DesktopIcon("fonts",KIcon::SizeMedium)); 189 // DesktopIcon("fonts",KIcon::SizeMedium));
190 190
191 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 191 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
192 topLayout->setSpacing(1); 192 topLayout->setSpacing(1);
193 topLayout->setMargin(3); 193 topLayout->setMargin(3);
194 KPrefsDialogWidFont * tVFont; 194 KPrefsDialogWidFont * tVFont;
195 int i = 0; 195 int i = 0;
196 KPrefsDialogWidFont *timeLabelsFont = 196 KPrefsDialogWidFont *timeLabelsFont =
197 addWidFont(i18n("OK"),i18n("Application(nr)"), 197 addWidFont(i18n("OK"),i18n("Application(nr)"),
198 &(KOPrefs::instance()->mAppFont),topFrame); 198 &(KOPrefs::instance()->mAppFont),topFrame);
199 topLayout->addWidget(timeLabelsFont->label(),i,0); 199 topLayout->addWidget(timeLabelsFont->label(),i,0);
200 topLayout->addWidget(timeLabelsFont->preview(),i,1); 200 topLayout->addWidget(timeLabelsFont->preview(),i,1);
201 topLayout->addWidget(timeLabelsFont->button(),i,2); 201 topLayout->addWidget(timeLabelsFont->button(),i,2);
202 ++i; 202 ++i;
203 203
204 204
205 timeLabelsFont = 205 timeLabelsFont =
206 addWidFont(i18n("Dear Mr."),i18n("Compose mail:"), 206 addWidFont(i18n("Dear Mr."),i18n("Compose mail:"),
207 &(KOPrefs::instance()->mComposeFont),topFrame); 207 &(KOPrefs::instance()->mComposeFont),topFrame);
208 topLayout->addWidget(timeLabelsFont->label(),i,0); 208 topLayout->addWidget(timeLabelsFont->label(),i,0);
209 topLayout->addWidget(timeLabelsFont->preview(),i,1); 209 topLayout->addWidget(timeLabelsFont->preview(),i,1);
210 topLayout->addWidget(timeLabelsFont->button(),i,2); 210 topLayout->addWidget(timeLabelsFont->button(),i,2);
211 ++i; 211 ++i;
212 212
213 KPrefsDialogWidFont *timeBarFont = 213 KPrefsDialogWidFont *timeBarFont =
214 addWidFont(i18n("Hello"),i18n("Read mail:"), 214 addWidFont(i18n("Hello"),i18n("Read mail:"),
215 &(KOPrefs::instance()->mReadFont),topFrame); 215 &(KOPrefs::instance()->mReadFont),topFrame);
216 topLayout->addWidget(timeBarFont->label(),i,0); 216 topLayout->addWidget(timeBarFont->label(),i,0);
217 topLayout->addWidget(timeBarFont->preview(),i,1); 217 topLayout->addWidget(timeBarFont->preview(),i,1);
218 topLayout->addWidget(timeBarFont->button(),i,2); 218 topLayout->addWidget(timeBarFont->button(),i,2);
219 ++i; 219 ++i;
220 220
221 topLayout->setColStretch(1,1); 221 topLayout->setColStretch(1,1);
222 topLayout->setRowStretch(4,1); 222 topLayout->setRowStretch(4,1);
223 223
224} 224}
225void KOPrefsDialog::usrReadConfig() 225void KOPrefsDialog::usrReadConfig()
226{ 226{
227 227
228 mNameEdit->setText(KOPrefs::instance()->mName); 228 mNameEdit->setText(KOPrefs::instance()->mName);
229 mEmailEdit->setText(KOPrefs::instance()->mEmail); 229 mEmailEdit->setText(KOPrefs::instance()->mEmail);
230 //mCodecEdit->setText(KOPrefs::instance()->mSendCodec); 230 //mCodecEdit->setText(KOPrefs::instance()->mSendCodec);
231 kdelibcfg->readConfig(); 231 kdelibcfg->readConfig();
232} 232}
233void KOPrefsDialog::usrWriteConfig() 233void KOPrefsDialog::usrWriteConfig()
234{ 234{
235 KOPrefs::instance()->mName = mNameEdit->text(); 235 KOPrefs::instance()->mName = mNameEdit->text();
236 KOPrefs::instance()->mEmail = mEmailEdit->text(); 236 KOPrefs::instance()->mEmail = mEmailEdit->text();
237 //KOPrefs::instance()->mSendCodec = mCodecEdit->text(); 237 //KOPrefs::instance()->mSendCodec = mCodecEdit->text();
238 kdelibcfg->writeConfig(); 238 kdelibcfg->writeConfig();
239 239
240 240
241} 241}
242 242
243#if 0 243#if 0
244void KOPrefsDialog::setupLocaleDateTab() 244void KOPrefsDialog::setupLocaleDateTab()
245{ 245{
246QFrame *topFrame = addPage(i18n("Date Format"),0,0); 246QFrame *topFrame = addPage(i18n("Date Format"),0,0);
247 QGridLayout *topLayout = new QGridLayout(topFrame,3,2); 247 QGridLayout *topLayout = new QGridLayout(topFrame,3,2);
248 topLayout->setSpacing(spacingHint()); 248 topLayout->setSpacing(spacingHint());
249 topLayout->setMargin(marginHint()); 249 topLayout->setMargin(marginHint());
250 int iii = 0; 250 int iii = 0;
251 251
252 252
253 KPrefsWidRadios *syncPrefsGroup = 253 KPrefsWidRadios *syncPrefsGroup =
254 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame); 254 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame);
255 QString format; 255 QString format;
256 if ( QApplication::desktop()->width() < 480 ) 256 if ( QApplication::desktop()->width() < 480 )
257 format = "(%d.%m.%Y)"; 257 format = "(%d.%m.%Y)";
258 else 258 else
259 format = "(%d.%m.%Y|%A %d %B %Y)"; 259 format = "(%d.%m.%Y|%A %d %B %Y)";
260 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); 260 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format));
261 if ( QApplication::desktop()->width() < 480 ) 261 if ( QApplication::desktop()->width() < 480 )
262 format = "(%m.%d.%Y)"; 262 format = "(%m.%d.%Y)";
263 else 263 else
264 format = "(%m.%d.%Y|%A %B %d %Y)"; 264 format = "(%m.%d.%Y|%A %B %d %Y)";
265 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); 265 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format));
266 if ( QApplication::desktop()->width() < 480 ) 266 if ( QApplication::desktop()->width() < 480 )
267 format = "(%Y-%m-%d)"; 267 format = "(%Y-%m-%d)";
268 else 268 else
269 format = "(%Y-%m-%d|%A %Y %B %d)"; 269 format = "(%Y-%m-%d|%A %Y %B %d)";
270 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); 270 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format));
271 syncPrefsGroup->addRadio(i18n("User defined")); 271 syncPrefsGroup->addRadio(i18n("User defined"));
272 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 272 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
273 ++iii; 273 ++iii;
274 ++iii; 274 ++iii;
275 QLabel * lab; 275 QLabel * lab;
276 mUserDateFormatLong = new QLineEdit(topFrame); 276 mUserDateFormatLong = new QLineEdit(topFrame);
277 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); 277 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame);
278 topLayout->addWidget(lab ,iii,0); 278 topLayout->addWidget(lab ,iii,0);
279 topLayout->addWidget(mUserDateFormatLong,iii,1); 279 topLayout->addWidget(mUserDateFormatLong,iii,1);
280 ++iii; 280 ++iii;
281 mUserDateFormatShort = new QLineEdit(topFrame); 281 mUserDateFormatShort = new QLineEdit(topFrame);
282 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); 282 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame);
283 topLayout->addWidget(lab ,iii,0); 283 topLayout->addWidget(lab ,iii,0);
284 topLayout->addWidget(mUserDateFormatShort,iii,1); 284 topLayout->addWidget(mUserDateFormatShort,iii,1);
285 ++iii; 285 ++iii;
286 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); 286 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame);
287 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 287 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
288 ++iii; 288 ++iii;
289 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); 289 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame);
290 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 290 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
291 ++iii; 291 ++iii;
292 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); 292 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame);
293 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 293 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
294 ++iii; 294 ++iii;
295 295
296} 296}
297 297
298void KOPrefsDialog::setupLocaleTab() 298void KOPrefsDialog::setupLocaleTab()
299{ 299{
300 QFrame *topFrame = addPage(i18n("Locale"),0,0); 300 QFrame *topFrame = addPage(i18n("Locale"),0,0);
301 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 301 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
302 topLayout->setSpacing(spacingHint()); 302 topLayout->setSpacing(spacingHint());
303 topLayout->setMargin(marginHint()); 303 topLayout->setMargin(marginHint());
304 int iii = 0; 304 int iii = 0;
305 KPrefsWidRadios *syncPrefsGroup = 305 KPrefsWidRadios *syncPrefsGroup =
306 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame); 306 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame);
307 syncPrefsGroup->addRadio(i18n("English")); 307 syncPrefsGroup->addRadio(i18n("English"));
308 syncPrefsGroup->addRadio(i18n("German")); 308 syncPrefsGroup->addRadio(i18n("German"));
309 syncPrefsGroup->addRadio(i18n("French")); 309 syncPrefsGroup->addRadio(i18n("French"));
310 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)")); 310 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)"));
311 if ( QApplication::desktop()->width() < 300 ) 311 if ( QApplication::desktop()->width() < 300 )
312 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 312 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
313 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 313 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
314 ++iii; 314 ++iii;
315 315
316 syncPrefsGroup = 316 syncPrefsGroup =
317 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame); 317 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame);
318 if ( QApplication::desktop()->width() > 300 ) 318 if ( QApplication::desktop()->width() > 300 )
319 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 319 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
320 syncPrefsGroup->addRadio(i18n("24:00")); 320 syncPrefsGroup->addRadio(i18n("24:00"));
321 syncPrefsGroup->addRadio(i18n("12:00am")); 321 syncPrefsGroup->addRadio(i18n("12:00am"));
322 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 322 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
323 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 323 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
324 ++iii; 324 ++iii;
325 KPrefsDialogWidBool *sb; 325 KPrefsDialogWidBool *sb;
326 if ( QApplication::desktop()->width() < 300 ) { 326 if ( QApplication::desktop()->width() < 300 ) {
327 sb = 327 sb =
328 addWidBool(i18n("Week starts on Sunday"), 328 addWidBool(i18n("Week starts on Sunday"),
329 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame); 329 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame);
330 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 330 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
331 ++iii; 331 ++iii;
332 sb = 332 sb =
333 addWidBool(i18n("Use short date in (WN/E) view"), 333 addWidBool(i18n("Use short date in (WN/E) view"),
334 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 334 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
335 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 335 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
336 } 336 }
337 else { 337 else {
338 QWidget * hb = new QWidget( topFrame ); 338 QWidget * hb = new QWidget( topFrame );
339 QHBoxLayout *hbLayout = new QHBoxLayout(hb); 339 QHBoxLayout *hbLayout = new QHBoxLayout(hb);
340 sb = 340 sb =
341 addWidBool(i18n("Week starts on Sunday"), 341 addWidBool(i18n("Week starts on Sunday"),
342 &(KOPrefs::instance()->mWeekStartsOnSunday),hb); 342 &(KOPrefs::instance()->mWeekStartsOnSunday),hb);
343 hbLayout->addWidget(sb->checkBox() ); 343 hbLayout->addWidget(sb->checkBox() );
344 sb = 344 sb =
345 addWidBool(i18n("Use short date in (WN/E) view"), 345 addWidBool(i18n("Use short date in (WN/E) view"),
346 &(KOPrefs::instance()->mShortDateInViewer),hb); 346 &(KOPrefs::instance()->mShortDateInViewer),hb);
347 hbLayout->addWidget(sb->checkBox() ); 347 hbLayout->addWidget(sb->checkBox() );
348 topLayout->addMultiCellWidget(hb, iii,iii,0,1); 348 topLayout->addMultiCellWidget(hb, iii,iii,0,1);
349 349
350 } 350 }
351 //#ifndef DESKTOP_VERSION 351 //#ifndef DESKTOP_VERSION
352#if 0 352#if 0
353 ++iii; 353 ++iii;
354 sb = 354 sb =
355 addWidBool(i18n("Quick load/save (w/o Unicode)"), 355 addWidBool(i18n("Quick load/save (w/o Unicode)"),
356 &(KOPrefs::instance()->mUseQuicksave),topFrame); 356 &(KOPrefs::instance()->mUseQuicksave),topFrame);
357 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 357 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
358#endif 358#endif
359} 359}
360void KOPrefsDialog::showSyncPage() 360void KOPrefsDialog::showSyncPage()
361{ 361{
362 showPage ( 2 ) ; 362 showPage ( 2 ) ;
363 363
364} 364}
365void KOPrefsDialog::setupSyncAlgTab() 365void KOPrefsDialog::setupSyncAlgTab()
366{ 366{
367#if 0 367#if 0
368 QLabel * lab; 368 QLabel * lab;
369 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0); 369 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0);
370 mSetupSyncAlgTab = topFrame; 370 mSetupSyncAlgTab = topFrame;
371 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 371 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
372 topLayout->setSpacing(spacingHint()); 372 topLayout->setSpacing(spacingHint());
373 topLayout->setMargin(marginHint()); 373 topLayout->setMargin(marginHint());
374 int iii = 0; 374 int iii = 0;
375 375
376 KPrefsDialogWidBool *sb = 376 KPrefsDialogWidBool *sb =
377 addWidBool(i18n("Ask for preferences before syncing"), 377 addWidBool(i18n("Ask for preferences before syncing"),
378 &(KOPrefs::instance()->mAskForPreferences),topFrame); 378 &(KOPrefs::instance()->mAskForPreferences),topFrame);
379 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 379 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
380 380
381 ++iii; 381 ++iii;
382 382
383 KPrefsWidRadios *syncPrefsGroup = 383 KPrefsWidRadios *syncPrefsGroup =
384 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs), 384 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs),
385 topFrame); 385 topFrame);
386 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 386 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
387 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 387 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
388 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 388 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
389 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 389 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
390 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 390 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
391 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 391 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
392 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 392 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
393 ++iii; 393 ++iii;
394 sb = 394 sb =
395 addWidBool(i18n("Show summary after syncing"), 395 addWidBool(i18n("Show summary after syncing"),
396 &(KOPrefs::instance()->mShowSyncSummary),topFrame); 396 &(KOPrefs::instance()->mShowSyncSummary),topFrame);
397 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 397 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
398 398
399 ++iii; 399 ++iii;
400#endif 400#endif
401 401
402 402
403 403
404} 404}
405 405
406 406
407void KOPrefsDialog::setupSyncTab() 407void KOPrefsDialog::setupSyncTab()
408{ 408{
409#if 0 409#if 0
410 QLabel * lab; 410 QLabel * lab;
411 QFrame *topFrame = addPage(i18n("Sync Network"),0,0); 411 QFrame *topFrame = addPage(i18n("Sync Network"),0,0);
412 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 412 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
413 topLayout->setSpacing(spacingHint()); 413 topLayout->setSpacing(spacingHint());
414 topLayout->setMargin(marginHint()); 414 topLayout->setMargin(marginHint());
415 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame); 415 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame);
416 int iii = 0; 416 int iii = 0;
417 topLayout->addMultiCellWidget(lab , iii,iii,0,1); 417 topLayout->addMultiCellWidget(lab , iii,iii,0,1);
418 ++iii; 418 ++iii;
419 419
420 mRemoteIPEdit = new QLineEdit(topFrame); 420 mRemoteIPEdit = new QLineEdit(topFrame);
421 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame); 421 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame);
422 topLayout->addWidget(lab ,iii,0); 422 topLayout->addWidget(lab ,iii,0);
423 topLayout->addWidget(mRemoteIPEdit,iii,1); 423 topLayout->addWidget(mRemoteIPEdit,iii,1);
424 ++iii; 424 ++iii;
425 mRemoteUser = new QLineEdit(topFrame); 425 mRemoteUser = new QLineEdit(topFrame);
426 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame); 426 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame);
427 topLayout->addWidget(lab ,iii,0); 427 topLayout->addWidget(lab ,iii,0);
428 topLayout->addWidget(mRemoteUser, iii,1); 428 topLayout->addWidget(mRemoteUser, iii,1);
429 ++iii; 429 ++iii;
430 430
431 mRemoteFile = new QLineEdit(topFrame); 431 mRemoteFile = new QLineEdit(topFrame);
432 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame); 432 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame);
433 topLayout->addWidget(lab ,iii,0); 433 topLayout->addWidget(lab ,iii,0);
434 topLayout->addWidget(mRemoteFile,iii,1); 434 topLayout->addWidget(mRemoteFile,iii,1);
435 ++iii; 435 ++iii;
436 436
437 mLocalTempFile = new QLineEdit(topFrame); 437 mLocalTempFile = new QLineEdit(topFrame);
438 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame); 438 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame);
439 topLayout->addWidget(lab ,iii,0); 439 topLayout->addWidget(lab ,iii,0);
440 topLayout->addWidget(mLocalTempFile,iii,1); 440 topLayout->addWidget(mLocalTempFile,iii,1);
441 ++iii; 441 ++iii;
442 442
443 KPrefsDialogWidBool *wb = 443 KPrefsDialogWidBool *wb =
444 addWidBool(i18n("Write back synced file"), 444 addWidBool(i18n("Write back synced file"),
445 &(KOPrefs::instance()->mWriteBackFile),topFrame); 445 &(KOPrefs::instance()->mWriteBackFile),topFrame);
446 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 446 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
447 ++iii; 447 ++iii;
448 wb = 448 wb =
449 addWidBool(i18n("Write back existing entries only"), 449 addWidBool(i18n("Write back existing entries only"),
450 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame); 450 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame);
451 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 451 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
452 ++iii; 452 ++iii;
453 453
454#endif 454#endif
455} 455}
456 456
457void KOPrefsDialog::setupMainTab() 457void KOPrefsDialog::setupMainTab()
458{ 458{
459 QFrame *topFrame = addPage(i18n("General"),0,0); 459 QFrame *topFrame = addPage(i18n("General"),0,0);
460 // DesktopIcon("identity",KIcon::SizeMedium)); 460 // DesktopIcon("identity",KIcon::SizeMedium));
461 461
462 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 462 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
463 topLayout->setSpacing(spacingHint()); 463 topLayout->setSpacing(spacingHint());
464 topLayout->setMargin(marginHint()); 464 topLayout->setMargin(marginHint());
465 465
466 // KPrefsDialogWidBool *emailControlCenter = 466 // KPrefsDialogWidBool *emailControlCenter =
467// addWidBool(i18n("&Use email settings from Control Center"), 467// addWidBool(i18n("&Use email settings from Control Center"),
468// &(KOPrefs::instance()->mEmailControlCenter),topFrame); 468// &(KOPrefs::instance()->mEmailControlCenter),topFrame);
469// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1); 469// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1);
470 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)), 470 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)),
471 // SLOT(toggleEmailSettings(bool))); 471 // SLOT(toggleEmailSettings(bool)));
472 472
473 mNameEdit = new QLineEdit(topFrame); 473 mNameEdit = new QLineEdit(topFrame);
474 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 474 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
475 topLayout->addWidget(mNameLabel,0,0); 475 topLayout->addWidget(mNameLabel,0,0);
476 topLayout->addWidget(mNameEdit,0,1); 476 topLayout->addWidget(mNameEdit,0,1);
477 477
478 mEmailEdit = new QLineEdit(topFrame); 478 mEmailEdit = new QLineEdit(topFrame);
479 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 479 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
480 topLayout->addWidget(mEmailLabel,1,0); 480 topLayout->addWidget(mEmailLabel,1,0);
481 topLayout->addWidget(mEmailEdit,1,1); 481 topLayout->addWidget(mEmailEdit,1,1);
482 KPrefsDialogWidBool *wb; 482 KPrefsDialogWidBool *wb;
483 QHBox *dummy; 483 QHBox *dummy;
484 if ( QApplication::desktop()->width() > 480 ) { 484 if ( QApplication::desktop()->width() > 480 ) {
485 dummy = new QHBox(topFrame); 485 dummy = new QHBox(topFrame);
486 } else { 486 } else {
487 dummy = new QVBox(topFrame); 487 dummy = new QVBox(topFrame);
488 } 488 }
489 489
490 topLayout->addMultiCellWidget(dummy, 2,2,0,1); 490 topLayout->addMultiCellWidget(dummy, 2,2,0,1);
491 addWidBool(i18n("Full menu bar(nr)"), 491 addWidBool(i18n("Full menu bar(nr)"),
492 &(KOPrefs::instance()->mShowFullMenu),dummy); 492 &(KOPrefs::instance()->mShowFullMenu),dummy);
493 493
494 494
495 addWidBool(i18n("Mini icons in toolbar(nr)"), 495 addWidBool(i18n("Mini icons in toolbar(nr)"),
496 &(KOPrefs::instance()->mToolBarMiniIcons),dummy); 496 &(KOPrefs::instance()->mToolBarMiniIcons),dummy);
497 497
498 498
499 dummy = new QHBox(topFrame); 499 dummy = new QHBox(topFrame);
500 new QLabel(i18n("Days in What's Next:"),dummy); 500 new QLabel(i18n("Days in What's Next:"),dummy);
501 mWhatsNextSpin = new QSpinBox(1,14,1,dummy); 501 mWhatsNextSpin = new QSpinBox(1,14,1,dummy);
502 502
503 topLayout->addMultiCellWidget(dummy,3,3,0,1); 503 topLayout->addMultiCellWidget(dummy,3,3,0,1);
504 504
505 505
506 506
507 dummy = new QHBox(topFrame); 507 dummy = new QHBox(topFrame);
508 new QLabel(i18n("Days in Next-X-Days:"),dummy); 508 new QLabel(i18n("Days in Next-X-Days:"),dummy);
509 mNextXDaysSpin = new QSpinBox(2,14,1,dummy); 509 mNextXDaysSpin = new QSpinBox(2,14,1,dummy);
510 510
511 topLayout->addMultiCellWidget(dummy,4,4,0,1); 511 topLayout->addMultiCellWidget(dummy,4,4,0,1);
512 512
513 QHBox *prioBox = new QHBox(topFrame); 513 QHBox *prioBox = new QHBox(topFrame);
514 // intervalBox->setSpacing(spacingHint()); 514 // intervalBox->setSpacing(spacingHint());
515 topLayout->addMultiCellWidget(prioBox,5,5,0,1); 515 topLayout->addMultiCellWidget(prioBox,5,5,0,1);
516 QString messa = i18n("Show topmost todo prios in What's Next:"); 516 QString messa = i18n("Show topmost todo prios in What's Next:");
517 517
518 if ( QApplication::desktop()->width() < 300 ) 518 if ( QApplication::desktop()->width() < 300 )
519 messa = i18n("Show topmost todo prios in What's N.:"); 519 messa = i18n("Show topmost todo prios in What's N.:");
520 QLabel *prioLabel = new QLabel(messa, prioBox); 520 QLabel *prioLabel = new QLabel(messa, prioBox);
521 mPrioSpin = new QSpinBox(0,5,1,prioBox); 521 mPrioSpin = new QSpinBox(0,5,1,prioBox);
522 if ( QApplication::desktop()->width() < 300 ) 522 if ( QApplication::desktop()->width() < 300 )
523 mPrioSpin->setFixedWidth( 40 ); 523 mPrioSpin->setFixedWidth( 40 );
524 524
525 // KPrefsDialogWidBool *bcc = 525 // KPrefsDialogWidBool *bcc =
526// addWidBool(i18n("Send copy to owner when mailing events"), 526// addWidBool(i18n("Send copy to owner when mailing events"),
527// &(KOPrefs::instance()->mBcc),topFrame); 527// &(KOPrefs::instance()->mBcc),topFrame);
528// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1); 528// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1);
529 529
530 530
531 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame); 531 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame);
532 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1); 532 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1);
533 533
534 // addWidBool(i18n("Enable automatic saving of calendar"), 534 // addWidBool(i18n("Enable automatic saving of calendar"),
535 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup); 535 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup);
536 536
537 QHBox *intervalBox = new QHBox(topFrame); 537 QHBox *intervalBox = new QHBox(topFrame);
538 // intervalBox->setSpacing(spacingHint()); 538 // intervalBox->setSpacing(spacingHint());
539 topLayout->addMultiCellWidget(intervalBox,6,6,0,1); 539 topLayout->addMultiCellWidget(intervalBox,6,6,0,1);
540 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox); 540 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox);
541 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox); 541 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox);
542 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin); 542 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin);
543 /* 543 /*
544 QHBox * agendasize = new QHBox ( topFrame ); 544 QHBox * agendasize = new QHBox ( topFrame );
545 545
546 new QLabel (i18n("AllDayAgenda Height:"), agendasize ); 546 new QLabel (i18n("AllDayAgenda Height:"), agendasize );
547 547
548 548
549 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize); 549 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize);
550 topLayout->addMultiCellWidget(agendasize,7,7,0,1); 550 topLayout->addMultiCellWidget(agendasize,7,7,0,1);
551 */ 551 */
552 KPrefsDialogWidBool *verticalScreen = 552 KPrefsDialogWidBool *verticalScreen =
553 addWidBool(i18n("Show vertical screen (Needs restart)"), 553 addWidBool(i18n("Show vertical screen (Needs restart)"),
554 &(KOPrefs::instance()->mVerticalScreen),topFrame); 554 &(KOPrefs::instance()->mVerticalScreen),topFrame);
555 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0); 555 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0);
556 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1); 556 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1);
557 557
558 KPrefsDialogWidBool *ask = 558 KPrefsDialogWidBool *ask =
559 addWidBool(i18n("Ask for quit when closing KO/Pi"), 559 addWidBool(i18n("Ask for quit when closing KO/Pi"),
560 &(KOPrefs::instance()->mAskForQuit),topFrame); 560 &(KOPrefs::instance()->mAskForQuit),topFrame);
561 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1); 561 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1);
562 562
563 563
564 /* 564 /*
565 KPrefsDialogWidBool *confirmCheck = 565 KPrefsDialogWidBool *confirmCheck =
566 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm), 566 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm),
567 topFrame); 567 topFrame);
568 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1); 568 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1);
569 569
570 570
571 mEnableGroupScheduling = 571 mEnableGroupScheduling =
572 addWidBool(i18n("Enable group scheduling"), 572 addWidBool(i18n("Enable group scheduling"),
573 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame); 573 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame);
574 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0); 574 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0);
575 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()), 575 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()),
576 SLOT(warningGroupScheduling())); 576 SLOT(warningGroupScheduling()));
577 577
578 mEnableProjectView = 578 mEnableProjectView =
579 addWidBool(i18n("Enable project view"), 579 addWidBool(i18n("Enable project view"),
580 &(KOPrefs::instance()->mEnableProjectView),topFrame); 580 &(KOPrefs::instance()->mEnableProjectView),topFrame);
581 topLayout->addWidget(mEnableProjectView->checkBox(),9,0); 581 topLayout->addWidget(mEnableProjectView->checkBox(),9,0);
582 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()), 582 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()),
583 SLOT(warningProjectView())); 583 SLOT(warningProjectView()));
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp
index e57daa4..f9c8b73 100644
--- a/korganizer/datenavigatorcontainer.cpp
+++ b/korganizer/datenavigatorcontainer.cpp
@@ -1,443 +1,442 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 3
4 Copyright (c) 2001,2002,2003 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2001,2002,2003 Cornelius Schumacher <schumacher@kde.org>
5 Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> 5 Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 20
21 As a special exception, permission is given to link this program 21 As a special exception, permission is given to link this program
22 with any edition of Qt, and distribute the resulting executable, 22 with any edition of Qt, and distribute the resulting executable,
23 without including the source code for Qt in the source distribution. 23 without including the source code for Qt in the source distribution.
24*/ 24*/
25 25
26#include <kdebug.h> 26#include <kdebug.h>
27#include <klocale.h> 27#include <klocale.h>
28 28
29//#include "koglobals.h" 29//#include "koglobals.h"
30#include "navigatorbar.h" 30#include "navigatorbar.h"
31#include "kdatenavigator.h" 31#include "kdatenavigator.h"
32 32
33#include <kcalendarsystem.h> 33#include <kcalendarsystem.h>
34 34
35#include "datenavigatorcontainer.h" 35#include "datenavigatorcontainer.h"
36#include "koprefs.h" 36#include "koprefs.h"
37 37
38DateNavigatorContainer::DateNavigatorContainer( QWidget *parent, 38DateNavigatorContainer::DateNavigatorContainer( QWidget *parent,
39 const char *name ) 39 const char *name )
40 : QWidget( parent, name ), mCalendar( 0 ), 40 : QWidget( parent, name ), mCalendar( 0 ),
41 mHorizontalCount( 1 ), mVerticalCount( 1 ) 41 mHorizontalCount( 1 ), mVerticalCount( 1 )
42{ 42{
43 mResizeEnabled = false; 43 mResizeEnabled = false;
44 mExtraViews.setAutoDelete( true ); 44 mExtraViews.setAutoDelete( true );
45 45
46 mNavigatorView = new KDateNavigator( this, name ); 46 mNavigatorView = new KDateNavigator( this, name );
47 mNavigatorView->hide(); 47 mNavigatorView->hide();
48 connectNavigatorView( mNavigatorView ); 48 connectNavigatorView( mNavigatorView );
49 //setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) ); 49 //setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) );
50 mLastDisplayedDN = 0; 50 mLastDisplayedDN = 0;
51 mUpdateTimer; 51 mUpdateTimer;
52 mUpdateTimer = new QTimer( this ); 52 mUpdateTimer = new QTimer( this );
53 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( checkUpdateDayMatrixDates() )); 53 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( checkUpdateDayMatrixDates() ));
54 mFirstSelectedDate = QDate::currentDate(); 54 mFirstSelectedDate = QDate::currentDate();
55 mSelectedDateCount = 1; 55 mSelectedDateCount = 1;
56} 56}
57 57
58DateNavigatorContainer::~DateNavigatorContainer() 58DateNavigatorContainer::~DateNavigatorContainer()
59{ 59{
60} 60}
61 61
62void DateNavigatorContainer::connectNavigatorView( KDateNavigator *v ) 62void DateNavigatorContainer::connectNavigatorView( KDateNavigator *v )
63{ 63{
64 connect( v, SIGNAL( datesSelected( const KCal::DateList & ) ), 64 connect( v, SIGNAL( datesSelected( const KCal::DateList & ) ),
65 SIGNAL( datesSelected( const KCal::DateList & ) ) ); 65 SIGNAL( datesSelected( const KCal::DateList & ) ) );
66#if 0 66#if 0
67 connect( v, SIGNAL( incidenceDropped( Incidence *, const QDate & ) ), 67 connect( v, SIGNAL( incidenceDropped( Incidence *, const QDate & ) ),
68 SIGNAL( incidenceDropped( Incidence *, const QDate & ) ) ); 68 SIGNAL( incidenceDropped( Incidence *, const QDate & ) ) );
69 connect( v, SIGNAL( incidenceDroppedMove( Incidence *, const QDate & ) ), 69 connect( v, SIGNAL( incidenceDroppedMove( Incidence *, const QDate & ) ),
70 SIGNAL( incidenceDroppedMove( Incidence *, const QDate & ) ) ); 70 SIGNAL( incidenceDroppedMove( Incidence *, const QDate & ) ) );
71#endif 71#endif
72 connect( v, SIGNAL( weekClicked( const QDate & ) ), 72 connect( v, SIGNAL( weekClicked( const QDate & ) ),
73 SIGNAL( weekClicked( const QDate & ) ) ); 73 SIGNAL( weekClicked( const QDate & ) ) );
74 connect( v, SIGNAL( showMonth( const QDate & ) ), 74 connect( v, SIGNAL( showMonth( const QDate & ) ),
75 SIGNAL( showMonth( const QDate & ) ) ); 75 SIGNAL( showMonth( const QDate & ) ) );
76 76
77 connect( v, SIGNAL( goPrevious() ), SIGNAL( goPrevious() ) ); 77 connect( v, SIGNAL( goPrevious() ), SIGNAL( goPrevious() ) );
78 connect( v, SIGNAL( goNext() ), SIGNAL( goNext() ) ); 78 connect( v, SIGNAL( goNext() ), SIGNAL( goNext() ) );
79 79
80 connect( v, SIGNAL( goNextMonth() ), SLOT( slotgoNextMonth() ) ); 80 connect( v, SIGNAL( goNextMonth() ), SLOT( slotgoNextMonth() ) );
81 connect( v, SIGNAL( goPrevMonth() ), SLOT( slotgoPrevMonth() ) ); 81 connect( v, SIGNAL( goPrevMonth() ), SLOT( slotgoPrevMonth() ) );
82 connect( v, SIGNAL( goNextYear() ), SLOT( slotgoNextYear() ) ); 82 connect( v, SIGNAL( goNextYear() ), SLOT( slotgoNextYear() ) );
83 connect( v, SIGNAL( goPrevYear() ), SLOT( slotgoPrevYear() ) ); 83 connect( v, SIGNAL( goPrevYear() ), SLOT( slotgoPrevYear() ) );
84 84
85 connect( v, SIGNAL( monthSelected( int ) ), SLOT( slotMonthSelected( int ) ) ); 85 connect( v, SIGNAL( monthSelected( int ) ), SLOT( slotMonthSelected( int ) ) );
86} 86}
87void DateNavigatorContainer::slotgoNextYear() 87void DateNavigatorContainer::slotgoNextYear()
88{ 88{
89 jumpMonth( 12 ); 89 jumpMonth( 12 );
90 emit goNextYear(); 90 emit goNextYear();
91 91
92} 92}
93void DateNavigatorContainer::slotgoPrevYear() 93void DateNavigatorContainer::slotgoPrevYear()
94{ 94{
95 jumpMonth( -12 ); 95 jumpMonth( -12 );
96 emit goPrevYear(); 96 emit goPrevYear();
97 97
98} 98}
99void DateNavigatorContainer::slotgoPrevMonth() 99void DateNavigatorContainer::slotgoPrevMonth()
100{ 100{
101 jumpMonth( -1 ); 101 jumpMonth( -1 );
102 emit goPrevMonth(); 102 emit goPrevMonth();
103 103
104} 104}
105void DateNavigatorContainer::slotgoNextMonth() 105void DateNavigatorContainer::slotgoNextMonth()
106{ 106{
107 jumpMonth( 1 ); 107 jumpMonth( 1 );
108 emit goNextMonth(); 108 emit goNextMonth();
109} 109}
110void DateNavigatorContainer::jumpMonth( int month ) 110void DateNavigatorContainer::jumpMonth( int month )
111{ 111{
112 112
113 QDate baseDate = mNavigatorView->baseDate(); 113 QDate baseDate = mNavigatorView->baseDate();
114 computeMonthSelected( baseDate.month() + month, false ); 114 computeMonthSelected( baseDate.month() + month, false );
115} 115}
116void DateNavigatorContainer::slotMonthSelected( int month ) 116void DateNavigatorContainer::slotMonthSelected( int month )
117{ 117{
118 computeMonthSelected( month, true ); 118 computeMonthSelected( month, true );
119} 119}
120void DateNavigatorContainer::computeMonthSelected( int month , bool forceEmit ) 120void DateNavigatorContainer::computeMonthSelected( int month , bool forceEmit )
121{ 121{
122 //qDebug("slotMonthSelected %d ", month); 122 //qDebug("slotMonthSelected %d ", month);
123 QDate baseDate = mNavigatorView->baseDate(); 123 QDate baseDate = mNavigatorView->baseDate();
124 if ( baseDate.month() == month ) 124 if ( baseDate.month() == month )
125 return; 125 return;
126 //qDebug("month %d %d ",baseDate.month(),month); 126 //qDebug("month %d %d ",baseDate.month(),month);
127 QDate date = QDate ( baseDate.year(), baseDate.month() , 15 ); 127 QDate date = QDate ( baseDate.year(), baseDate.month() , 15 );
128 date = date.addDays( -(baseDate.month()-month ) *30 ); 128 date = date.addDays( -(baseDate.month()-month ) *30 );
129 QDate newBase = QDate ( date.year(), date.month() ,1 ); 129 QDate newBase = QDate ( date.year(), date.month() ,1 );
130 130
131 //qDebug("NEW BASE %s", newBase.toString().latin1()); 131 //qDebug("NEW BASE %s", newBase.toString().latin1());
132 mNavigatorView->setBaseDate( newBase ); 132 mNavigatorView->setBaseDate( newBase );
133 QDate last = lastAvailableDate(); 133 QDate last = lastAvailableDate();
134 QDate first = firstAvailableDate(); 134 QDate first = firstAvailableDate();
135
136 QDate selFirst = mFirstSelectedDate; 135 QDate selFirst = mFirstSelectedDate;
137 QDate selLast = selFirst.addDays( mSelectedDateCount-1 ); 136 QDate selLast = selFirst.addDays( mSelectedDateCount-1 );
138 if ( selFirst >= first && selLast <= last ) { 137 if ( selFirst >= first && selLast <= last ) {
139 setBaseDates(); 138 setBaseDates();
140 if ( forceEmit ) 139 if ( forceEmit )
141 updateDayMatrixDates(); 140 updateDayMatrixDates();
142 } 141 }
143 else { 142 else {
144 setBaseDates(); 143 setBaseDates();
145 if ( forceEmit ) 144 if ( forceEmit )
146 updateDayMatrixDates(); 145 updateDayMatrixDates();
147 if ( forceEmit ) 146 if ( forceEmit )
148 emit monthSelected( month ); 147 emit monthSelected( month );
149 } 148 }
150} 149}
151void DateNavigatorContainer::setCalendar( Calendar *cal ) 150void DateNavigatorContainer::setCalendar( Calendar *cal )
152{ 151{
153 mCalendar = cal; 152 mCalendar = cal;
154 mNavigatorView->setCalendar( cal ); 153 mNavigatorView->setCalendar( cal );
155 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 154 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
156 KDateNavigator *n = mExtraViews.at( i ); 155 KDateNavigator *n = mExtraViews.at( i );
157 n->setCalendar( cal ); 156 n->setCalendar( cal );
158 } 157 }
159} 158}
160void DateNavigatorContainer::checkUpdateDayMatrixDates() 159void DateNavigatorContainer::checkUpdateDayMatrixDates()
161{ 160{
162 //qDebug("KODNC: wid %d hei %d ", width(), height()); 161 //qDebug("KODNC: wid %d hei %d ", width(), height());
163 mUpdateTimer->stop(); 162 mUpdateTimer->stop();
164 //return; 163 //return;
165 if ( width() < 3 || height() < 3 ) 164 if ( width() < 3 || height() < 3 )
166 return; 165 return;
167 static int lastWid = 0; 166 static int lastWid = 0;
168 static int lastHei = 0; 167 static int lastHei = 0;
169 if ( lastWid == width() && height() == lastHei ) { 168 if ( lastWid == width() && height() == lastHei ) {
170 qDebug("KODNC: No layout computing needed. "); 169 qDebug("KODNC: No layout computing needed. ");
171 } else { 170 } else {
172 lastWid = width(); 171 lastWid = width();
173 lastHei = height(); 172 lastHei = height();
174 173
175 QSize minSize = mNavigatorView->yourSizeHint(); 174 QSize minSize = mNavigatorView->yourSizeHint();
176 175
177 int verticalCount = size().height() / minSize.height(); 176 int verticalCount = size().height() / minSize.height();
178 int horizontalCount = size().width() / minSize.width(); 177 int horizontalCount = size().width() / minSize.width();
179 //qDebug(" wattdatt %d new %d %d ", size().width() ,e->size().width() , minSize.width() ); 178 //qDebug(" wattdatt %d new %d %d ", size().width() ,e->size().width() , minSize.width() );
180 //qDebug("COUNT %d %d %d %d ", verticalCount, horizontalCount , mVerticalCount, mHorizontalCount ); 179 //qDebug("COUNT %d %d %d %d ", verticalCount, horizontalCount , mVerticalCount, mHorizontalCount );
181 bool fontchange = false; 180 bool fontchange = false;
182 if ( horizontalCount == 1) 181 if ( horizontalCount == 1)
183 horizontalCount = size().width() / mNavigatorView->yourFullSizeHint().width(); 182 horizontalCount = size().width() / mNavigatorView->yourFullSizeHint().width();
184 QFont fo; 183 QFont fo;
185 if ( horizontalCount != mHorizontalCount || 184 if ( horizontalCount != mHorizontalCount ||
186 verticalCount != mVerticalCount ) { 185 verticalCount != mVerticalCount ) {
187 uint count = horizontalCount * verticalCount; 186 uint count = horizontalCount * verticalCount;
188 if ( count == 0 ) { 187 if ( count == 0 ) {
189 bool ok; 188 bool ok;
190 fo = mNavigatorView->yourFontHint( size() , &ok ); 189 fo = mNavigatorView->yourFontHint( size() , &ok );
191 //mNavigatorView->resize( size() ); 190 //mNavigatorView->resize( size() );
192 //if ( ! ok ) 191 //if ( ! ok )
193 // return; 192 // return;
194 int butt = 2; 193 int butt = 2;
195 horizontalCount = size().width() / mNavigatorView->sizeHintTwoButtons( ).width(); 194 horizontalCount = size().width() / mNavigatorView->sizeHintTwoButtons( ).width();
196 if ( horizontalCount <= 1 ) 195 if ( horizontalCount <= 1 )
197 minSize = mNavigatorView->sizeHintTwoButtons( 4 ); 196 minSize = mNavigatorView->sizeHintTwoButtons( 4 );
198 else 197 else
199 minSize = mNavigatorView->sizeHintTwoButtons(); 198 minSize = mNavigatorView->sizeHintTwoButtons();
200 verticalCount = size().height() / minSize.height(); 199 verticalCount = size().height() / minSize.height();
201 horizontalCount = size().width() / minSize.width(); 200 horizontalCount = size().width() / minSize.width();
202 if ( horizontalCount == 0 ) 201 if ( horizontalCount == 0 )
203 horizontalCount = 1; 202 horizontalCount = 1;
204 if ( verticalCount == 0 ) 203 if ( verticalCount == 0 )
205 verticalCount = 1; 204 verticalCount = 1;
206 fontchange = true; 205 fontchange = true;
207 count = horizontalCount * verticalCount; 206 count = horizontalCount * verticalCount;
208 } else { 207 } else {
209 if ( mNavigatorView->fontChanged() ) { 208 if ( mNavigatorView->fontChanged() ) {
210 fontchange = true; 209 fontchange = true;
211 fo = KOPrefs::instance()->mDateNavigatorFont; 210 fo = KOPrefs::instance()->mDateNavigatorFont;
212 mNavigatorView->changeFont( fo ); 211 mNavigatorView->changeFont( fo );
213 mNavigatorView->unsetFontChanged(); 212 mNavigatorView->unsetFontChanged();
214 } 213 }
215 } 214 }
216 mLastDisplayedDN = horizontalCount*verticalCount-1; 215 mLastDisplayedDN = horizontalCount*verticalCount-1;
217 while ( count > ( mExtraViews.count() + 1 ) ) { 216 while ( count > ( mExtraViews.count() + 1 ) ) {
218 KDateNavigator *n = new KDateNavigator( this ); 217 KDateNavigator *n = new KDateNavigator( this );
219 n->setMonthSignalOffset ( mExtraViews.count()+1 ); 218 n->setMonthSignalOffset ( mExtraViews.count()+1 );
220 mExtraViews.append( n ); 219 mExtraViews.append( n );
221 n->setCalendar( mCalendar ); 220 n->setCalendar( mCalendar );
222 connectNavigatorView( n ); 221 connectNavigatorView( n );
223 // n->show(); 222 // n->show();
224 } 223 }
225 224
226 setBaseDates(); 225 setBaseDates();
227 if ( fontchange ) { 226 if ( fontchange ) {
228 //mNavigatorView->changeFont( fo ); 227 //mNavigatorView->changeFont( fo );
229 uint i; 228 uint i;
230 for( i = 0; i < mExtraViews.count(); ++i ) { 229 for( i = 0; i < mExtraViews.count(); ++i ) {
231 KDateNavigator *view = mExtraViews.at( i ); 230 KDateNavigator *view = mExtraViews.at( i );
232 view->changeFont( fo ); 231 view->changeFont( fo );
233 } 232 }
234 } 233 }
235 mHorizontalCount = horizontalCount; 234 mHorizontalCount = horizontalCount;
236 mVerticalCount = verticalCount; 235 mVerticalCount = verticalCount;
237 236
238 } 237 }
239 if ( mNavigatorView->fontChanged() && ! fontchange ) { 238 if ( mNavigatorView->fontChanged() && ! fontchange ) {
240 qDebug("KDNC: Resetting all fonts "); 239 qDebug("KDNC: Resetting all fonts ");
241 fo = KOPrefs::instance()->mDateNavigatorFont; 240 fo = KOPrefs::instance()->mDateNavigatorFont;
242 mNavigatorView->changeFont( fo ); 241 mNavigatorView->changeFont( fo );
243 mNavigatorView->unsetFontChanged(); 242 mNavigatorView->unsetFontChanged();
244 uint i; 243 uint i;
245 for( i = 0; i < mExtraViews.count(); ++i ) { 244 for( i = 0; i < mExtraViews.count(); ++i ) {
246 KDateNavigator *view = mExtraViews.at( i ); 245 KDateNavigator *view = mExtraViews.at( i );
247 view->changeFont( fo ); 246 view->changeFont( fo );
248 } 247 }
249 } 248 }
250 int theight = height() / mVerticalCount; 249 int theight = height() / mVerticalCount;
251 int twidth = width() / mHorizontalCount; 250 int twidth = width() / mHorizontalCount;
252 251
253 NavigatorBar *bar = mNavigatorView->navigatorBar(); 252 NavigatorBar *bar = mNavigatorView->navigatorBar();
254 if ( mHorizontalCount > 1 ) bar->showButtons( true, false ); 253 if ( mHorizontalCount > 1 ) bar->showButtons( true, false );
255 else bar->showButtons( true, true ); 254 else bar->showButtons( true, true );
256 255
257 mNavigatorView->setGeometry(0, 256 mNavigatorView->setGeometry(0,
258 0, twidth, theight ); 257 0, twidth, theight );
259 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 258 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
260 int x = ( i + 1 ) % mHorizontalCount; 259 int x = ( i + 1 ) % mHorizontalCount;
261 int y = ( i + 1 ) / mHorizontalCount; 260 int y = ( i + 1 ) / mHorizontalCount;
262 261
263 KDateNavigator *view = mExtraViews.at( i ); 262 KDateNavigator *view = mExtraViews.at( i );
264 bar = view->navigatorBar(); 263 bar = view->navigatorBar();
265 if ( y > 0 ) bar->showButtons( false, false ); 264 if ( y > 0 ) bar->showButtons( false, false );
266 else { 265 else {
267 if ( x + 1 == mHorizontalCount ) bar->showButtons( false, true ); 266 if ( x + 1 == mHorizontalCount ) bar->showButtons( false, true );
268 else bar->showButtons( false, false ); 267 else bar->showButtons( false, false );
269 } 268 }
270 view->setGeometry( x * twidth, 269 view->setGeometry( x * twidth,
271 y * theight, twidth, theight ); 270 y * theight, twidth, theight );
272 } 271 }
273 int iii = 0; 272 int iii = 0;
274 int ccc = mHorizontalCount * mVerticalCount; 273 int ccc = mHorizontalCount * mVerticalCount;
275 mNavigatorView->show(); 274 mNavigatorView->show();
276 while ( iii < ( mExtraViews.count() ) ) { 275 while ( iii < ( mExtraViews.count() ) ) {
277 if ( iii < ccc-1 ) 276 if ( iii < ccc-1 )
278 mExtraViews.at( iii )->show(); 277 mExtraViews.at( iii )->show();
279 else 278 else
280 mExtraViews.at( iii )->hide(); 279 mExtraViews.at( iii )->hide();
281 ++iii; 280 ++iii;
282 } 281 }
283 } 282 }
284 283
285 QDate last = lastAvailableDate(); 284 QDate last = lastAvailableDate();
286 QDate first = firstAvailableDate(); 285 QDate first = firstAvailableDate();
287 286
288 QDate selFirst = mFirstSelectedDate; 287 QDate selFirst = mFirstSelectedDate;
289 QDate selLast = selFirst.addDays( mSelectedDateCount-1 ); 288 QDate selLast = selFirst.addDays( mSelectedDateCount-1 );
290 if ( selFirst >= first && selLast <= last ) { 289 if ( selFirst >= first && selLast <= last ) {
291 updateDayMatrixDates(); 290 updateDayMatrixDates();
292 } 291 }
293 else { 292 else {
294 updateDayMatrixDates(); 293 updateDayMatrixDates();
295 emit monthSelected( mFirstSelectedDate.month() ); 294 emit monthSelected( mFirstSelectedDate.month() );
296 } 295 }
297} 296}
298void DateNavigatorContainer::updateDayMatrixDates() 297void DateNavigatorContainer::updateDayMatrixDates()
299{ 298{
300 QDate fDate = mFirstSelectedDate; 299 QDate fDate = mFirstSelectedDate;
301 QDate lDate = fDate.addDays( mSelectedDateCount - 1 ); 300 QDate lDate = fDate.addDays( mSelectedDateCount - 1 );
302 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate ); 301 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate );
303 mNavigatorView->dayMatrix()->repaint( false ); 302 mNavigatorView->dayMatrix()->repaint( false );
304 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 303 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
305 KDateNavigator *n = mExtraViews.at( i ); 304 KDateNavigator *n = mExtraViews.at( i );
306 if ( n->dayMatrix()->setSelectedDaysFrom( fDate , lDate ) ) { 305 if ( n->dayMatrix()->setSelectedDaysFrom( fDate , lDate ) ) {
307 n->dayMatrix()->repaint( false ); 306 n->dayMatrix()->repaint( false );
308 } 307 }
309 } 308 }
310} 309}
311 310
312void DateNavigatorContainer::updateDayMatrix() 311void DateNavigatorContainer::updateDayMatrix()
313{ 312{
314 mNavigatorView->updateDayMatrix(); 313 mNavigatorView->updateDayMatrix();
315 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 314 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
316 KDateNavigator *n = mExtraViews.at( i ); 315 KDateNavigator *n = mExtraViews.at( i );
317 n->updateDayMatrix(); 316 n->updateDayMatrix();
318 } 317 }
319} 318}
320 319
321void DateNavigatorContainer::updateToday() 320void DateNavigatorContainer::updateToday()
322{ 321{
323 qDebug("DateNavigatorContainer::updateToday() NOT IMPL "); 322 qDebug("DateNavigatorContainer::updateToday() NOT IMPL ");
324#if 0 323#if 0
325 mNavigatorView->updateToday(); 324 mNavigatorView->updateToday();
326 KDateNavigator *n; 325 KDateNavigator *n;
327 for( n = mExtraViews.first(); n; n = mExtraViews.next() ) { 326 for( n = mExtraViews.first(); n; n = mExtraViews.next() ) {
328 n->updateToday(); 327 n->updateToday();
329 } 328 }
330#endif 329#endif
331} 330}
332 331
333void DateNavigatorContainer::updateView() 332void DateNavigatorContainer::updateView()
334{ 333{
335 mNavigatorView->updateView(); 334 mNavigatorView->updateView();
336 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 335 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
337 KDateNavigator *n = mExtraViews.at( i ); 336 KDateNavigator *n = mExtraViews.at( i );
338 n->updateView(); 337 n->updateView();
339 } 338 }
340} 339}
341 340
342void DateNavigatorContainer::updateConfig() 341void DateNavigatorContainer::updateConfig()
343{ 342{
344 mNavigatorView->updateConfig(); 343 mNavigatorView->updateConfig();
345 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 344 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
346 KDateNavigator *n = mExtraViews.at( i ); 345 KDateNavigator *n = mExtraViews.at( i );
347 n->updateConfig(); 346 n->updateConfig();
348 } 347 }
349} 348}
350QDate DateNavigatorContainer::lastAvailableDate() const 349QDate DateNavigatorContainer::lastAvailableDate() const
351{ 350{
352 QDate date = mNavigatorView->baseDate(); 351 QDate date = mNavigatorView->baseDate();
353 QDate last = QDate ( date.year(), date.month(), date.daysInMonth() ); 352 QDate last = QDate ( date.year(), date.month(), date.daysInMonth() );
354 int iii = mLastDisplayedDN; 353 int iii = mLastDisplayedDN;
355 if ( mLastDisplayedDN ) 354 if ( mLastDisplayedDN )
356 last = last.addDays( 1); 355 last = last.addDays( 1);
357 while ( iii ) { 356 while ( iii ) {
358 last = last.addDays( last.daysInMonth ()); 357 last = last.addDays( last.daysInMonth ());
359 //qDebug("DATE %s ", last.toString().latin1() ); 358 //qDebug("DATE %s ", last.toString().latin1() );
360 --iii; 359 --iii;
361 } 360 }
362 if ( mLastDisplayedDN ) 361 if ( mLastDisplayedDN )
363 last = last.addDays( -1); 362 last = last.addDays( -1);
364 return last; 363 return last;
365} 364}
366QDate DateNavigatorContainer::firstAvailableDate() const 365QDate DateNavigatorContainer::firstAvailableDate() const
367{ 366{
368 return QDate ( mNavigatorView->baseDate().year(), mNavigatorView->baseDate().month(), 1 ); 367 return QDate ( mNavigatorView->baseDate().year(), mNavigatorView->baseDate().month(), 1 );
369} 368}
370void DateNavigatorContainer::selectDates( const DateList &dateList ) 369void DateNavigatorContainer::selectDates( const DateList &dateList )
371{ 370{
372 mFirstSelectedDate = dateList.first() ; 371 mFirstSelectedDate = dateList.first() ;
373 mSelectedDateCount = dateList.count() ; 372 mSelectedDateCount = dateList.count() ;
374 if ( !mLastDisplayedDN ) { 373 if ( !mLastDisplayedDN ) {
375 mNavigatorView->selectDates( dateList ); 374 mNavigatorView->selectDates( dateList );
376 return; 375 return;
377 } 376 }
378 QDate fDate = dateList.first(); 377 QDate fDate = dateList.first();
379 QDate lDate = dateList.last(); 378 QDate lDate = dateList.last();
380 //qDebug("%s %s ", lastAvailableDate().toString().latin1(), firstAvailableDate().toString().latin1() ); 379 //qDebug("%s %s ", lastAvailableDate().toString().latin1(), firstAvailableDate().toString().latin1() );
381 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() ); 380 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() );
382 if ( lDate <= lastAvailableDate() && firstAvailableDate() <= fDate) { 381 if ( lDate <= lastAvailableDate() && firstAvailableDate() <= fDate) {
383 updateDayMatrixDates(); 382 updateDayMatrixDates();
384 return; 383 return;
385 } 384 }
386 mNavigatorView->selectDates( dateList ); 385 mNavigatorView->selectDates( dateList );
387 setBaseDates(); 386 setBaseDates();
388 if ( mLastDisplayedDN ) { 387 if ( mLastDisplayedDN ) {
389 KDateNavigator *view = mExtraViews.at( 0 ); 388 KDateNavigator *view = mExtraViews.at( 0 );
390 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); 389 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
391 view->dayMatrix()->repaint( false ); 390 view->dayMatrix()->repaint( false );
392 if ( mLastDisplayedDN > 1 ) { 391 if ( mLastDisplayedDN > 1 ) {
393 KDateNavigator *view = mExtraViews.at( 1 ); 392 KDateNavigator *view = mExtraViews.at( 1 );
394 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); 393 view->dayMatrix()->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
395 view->dayMatrix()->repaint( false ); 394 view->dayMatrix()->repaint( false );
396 } 395 }
397 } 396 }
398} 397}
399 398
400void DateNavigatorContainer::setBaseDates() 399void DateNavigatorContainer::setBaseDates()
401{ 400{
402 QDate baseDate = mNavigatorView->baseDate(); 401 QDate baseDate = mNavigatorView->baseDate();
403 bool doRepaint = true; 402 bool doRepaint = true;
404 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 403 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
405 KDateNavigator *n = mExtraViews.at( i ); 404 KDateNavigator *n = mExtraViews.at( i );
406 baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 ); 405 baseDate = baseDate.addDays( baseDate.daysInMonth () - baseDate.day() +1 );
407 n->setBaseDate( baseDate, doRepaint ); 406 n->setBaseDate( baseDate, doRepaint );
408 } 407 }
409} 408}
410void DateNavigatorContainer::setResizeEnabled() 409void DateNavigatorContainer::setResizeEnabled()
411{ 410{
412 mResizeEnabled = true; 411 mResizeEnabled = true;
413 //qDebug("DateNavigatorContainer::setResizeEnabled "); 412 //qDebug("DateNavigatorContainer::setResizeEnabled ");
414 checkUpdateDayMatrixDates(); 413 checkUpdateDayMatrixDates();
415} 414}
416void DateNavigatorContainer::resizeEvent( QResizeEvent * e ) 415void DateNavigatorContainer::resizeEvent( QResizeEvent * e )
417{ 416{
418 417
419 //qDebug("DateNavigatorContainer::resizeEvent %d %d ", width(), height()); 418 //qDebug("DateNavigatorContainer::resizeEvent %d %d ", width(), height());
420 //qDebug("COUNT %d ", mExtraViews.count()); 419 //qDebug("COUNT %d ", mExtraViews.count());
421 if ( ! mResizeEnabled ) { 420 if ( ! mResizeEnabled ) {
422 //qDebug("NOT ResizeEnabled"); 421 //qDebug("NOT ResizeEnabled");
423 return; 422 return;
424 } 423 }
425 else 424 else
426#ifdef DESKTOP_VERSION 425#ifdef DESKTOP_VERSION
427 mUpdateTimer->start( 100 ); 426 mUpdateTimer->start( 100 );
428#else 427#else
429 mUpdateTimer->start( 50 ); 428 mUpdateTimer->start( 50 );
430#endif 429#endif
431 430
432 //updateDayMatrixDates(); 431 //updateDayMatrixDates();
433} 432}
434 433
435QSize DateNavigatorContainer::minimumSizeHint() const 434QSize DateNavigatorContainer::minimumSizeHint() const
436{ 435{
437 return mNavigatorView->minimumSizeHint(); 436 return mNavigatorView->minimumSizeHint();
438} 437}
439 438
440QSize DateNavigatorContainer::sizeHint() const 439QSize DateNavigatorContainer::sizeHint() const
441{ 440{
442 return mNavigatorView->yourSizeHint(); 441 return mNavigatorView->yourSizeHint();
443} 442}
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 322131f..ecca374 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -1,858 +1,858 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at> 3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at>
4 Parts of the source code have been copied from kdpdatebutton.cpp 4 Parts of the source code have been copied from kdpdatebutton.cpp
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program 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 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source ode for Qt in the source distribution. 22 without including the source ode for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qevent.h> 25#include <qevent.h>
26#include <qpainter.h> 26#include <qpainter.h>
27#include <qptrlist.h> 27#include <qptrlist.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qwhatsthis.h> 29#include <qwhatsthis.h>
30 30
31#include <kglobal.h> 31#include <kglobal.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35#include <libkcal/vcaldrag.h> 35#include <libkcal/vcaldrag.h>
36#include <libkcal/icaldrag.h> 36#include <libkcal/icaldrag.h>
37#include <libkcal/dndfactory.h> 37#include <libkcal/dndfactory.h>
38#include <libkcal/calendarresources.h> 38#include <libkcal/calendarresources.h>
39#include <libkcal/resourcecalendar.h> 39#include <libkcal/resourcecalendar.h>
40#include <kresources/resourceselectdialog.h> 40#include <kresources/resourceselectdialog.h>
41 41
42#include <kcalendarsystem.h> 42#include <kcalendarsystem.h>
43 43
44#ifndef KORG_NOPLUGINS 44#ifndef KORG_NOPLUGINS
45#include "kocore.h" 45#include "kocore.h"
46#endif 46#endif
47#include "koprefs.h" 47#include "koprefs.h"
48#include "koglobals.h" 48#include "koglobals.h"
49 49
50#include "kodaymatrix.h" 50#include "kodaymatrix.h"
51 51
52// ============================================================================ 52// ============================================================================
53// D Y N A M I C T I P 53// D Y N A M I C T I P
54// ============================================================================ 54// ============================================================================
55 55
56DynamicTip::DynamicTip( QWidget * parent ) 56DynamicTip::DynamicTip( QWidget * parent )
57 : QToolTip( parent ) 57 : QToolTip( parent )
58{ 58{
59 matrix = (KODayMatrix*)parent; 59 matrix = (KODayMatrix*)parent;
60} 60}
61 61
62class KODaymatrixWhatsThis :public QWhatsThis 62class KODaymatrixWhatsThis :public QWhatsThis
63{ 63{
64public: 64public:
65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;}; 65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;};
66 ~KODaymatrixWhatsThis() { ; }; 66 ~KODaymatrixWhatsThis() { ; };
67 67
68protected: 68protected:
69 virtual QString text( const QPoint& p ) 69 virtual QString text( const QPoint& p )
70 { 70 {
71 return _view->getWhatsThisText( p ) ; 71 return _view->getWhatsThisText( p ) ;
72 } 72 }
73private: 73private:
74 KODayMatrix * _view; 74 KODayMatrix * _view;
75}; 75};
76 76
77void DynamicTip::maybeTip( const QPoint &pos ) 77void DynamicTip::maybeTip( const QPoint &pos )
78{ 78{
79 //calculate which cell of the matrix the mouse is in 79 //calculate which cell of the matrix the mouse is in
80 QRect sz = matrix->frameRect(); 80 QRect sz = matrix->frameRect();
81 int dheight = sz.height()*7 / 42; 81 int dheight = sz.height()*7 / 42;
82 int dwidth = sz.width() / 7; 82 int dwidth = sz.width() / 7;
83 int row = pos.y()/dheight; 83 int row = pos.y()/dheight;
84 int col = pos.x()/dwidth; 84 int col = pos.x()/dwidth;
85 85
86 QRect rct(col*dwidth, row*dheight, dwidth, dheight); 86 QRect rct(col*dwidth, row*dheight, dwidth, dheight);
87 87
88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" << 88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" <<
89// col << "][" << row << "] => " <<(col+row*7) << endl; 89// col << "][" << row << "] => " <<(col+row*7) << endl;
90 90
91 //show holiday names only 91 //show holiday names only
92 QString str = matrix->getHolidayLabel(col+row*7); 92 QString str = matrix->getHolidayLabel(col+row*7);
93 if (str.isEmpty()) return; 93 if (str.isEmpty()) return;
94 tip(rct, str); 94 tip(rct, str);
95} 95}
96 96
97 97
98// ============================================================================ 98// ============================================================================
99// K O D A Y M A T R I X 99// K O D A Y M A T R I X
100// ============================================================================ 100// ============================================================================
101 101
102const int KODayMatrix::NOSELECTION = -1000; 102const int KODayMatrix::NOSELECTION = -1000;
103const int KODayMatrix::NUMDAYS = 42; 103const int KODayMatrix::NUMDAYS = 42;
104 104
105KODayMatrix::KODayMatrix( QWidget *parent, const char *name ) 105KODayMatrix::KODayMatrix( QWidget *parent, const char *name )
106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 ) 106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 )
107 107
108#if 0 108#if 0
109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) : 109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) :
110 QFrame(parent, name) 110 QFrame(parent, name)
111#endif 111#endif
112{ 112{
113 oldW = 0; 113 oldW = 0;
114 oldH = 0; 114 oldH = 0;
115 myPix.resize( 150, 120 ); 115 myPix.resize( 150, 120 );
116 mRedrawNeeded = true; 116 mRedrawNeeded = true;
117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this); 117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this);
118 mPendingUpdateBeforeRepaint = false; 118 mPendingUpdateBeforeRepaint = false;
119 mouseDown = false; 119 mouseDown = false;
120 // initialize dynamic arrays 120 // initialize dynamic arrays
121 bDays.resize ( NUMDAYS ); 121 bDays.resize ( NUMDAYS );
122 pDays.resize ( NUMDAYS ); 122 pDays.resize ( NUMDAYS );
123 hDays.resize ( NUMDAYS ); 123 hDays.resize ( NUMDAYS );
124 eDays.resize ( NUMDAYS ); 124 eDays.resize ( NUMDAYS );
125 days = new QDate[NUMDAYS]; 125 days = new QDate[NUMDAYS];
126 daylbls = new QString[NUMDAYS]; 126 daylbls = new QString[NUMDAYS];
127 //events = new int[NUMDAYS]; 127 //events = new int[NUMDAYS];
128 mToolTip = new DynamicTip(this); 128 mToolTip = new DynamicTip(this);
129 129
130 // set default values used for drawing the matrix 130 // set default values used for drawing the matrix
131 mDefaultBackColor = palette().active().base(); 131 mDefaultBackColor = palette().active().base();
132 mDefaultTextColor = palette().active().foreground(); 132 mDefaultTextColor = palette().active().foreground();
133 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); 133 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor);
134 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor); 134 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor);
135 mSelectedDaysColor = QColor("white"); 135 mSelectedDaysColor = QColor("white");
136 mTodayMarginWidth = 2; 136 mTodayMarginWidth = 2;
137 mSelEnd = mSelStart = NOSELECTION; 137 mSelEnd = mSelStart = NOSELECTION;
138 138
139 setAcceptDrops(true); 139 setAcceptDrops(true);
140 //setFont( QFont("Arial", 10) ); 140 //setFont( QFont("Arial", 10) );
141 141
142 mUpdateTimer = new QTimer( this ); 142 mUpdateTimer = new QTimer( this );
143 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); 143 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() ));
144 mRepaintTimer = new QTimer( this ); 144 mRepaintTimer = new QTimer( this );
145 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); 145 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() ));
146 mDayChanged = false; 146 mDayChanged = false;
147 updateView(); 147 updateView();
148} 148}
149QString KODayMatrix::getWhatsThisText( QPoint p ) 149QString KODayMatrix::getWhatsThisText( QPoint p )
150{ 150{
151 151
152 int tmp = getDayIndexFrom(p.x(), p.y()); 152 int tmp = getDayIndexFrom(p.x(), p.y());
153 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar ) 153 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar )
154 return QString(); 154 return QString();
155 QDate mDate = days[tmp]; 155 QDate mDate = days[tmp];
156 QPtrList<Event> eventlist = mCalendar->events(mDate); 156 QPtrList<Event> eventlist = mCalendar->events(mDate);
157 Event *event; 157 Event *event;
158 QStringList mToolTip; 158 QStringList mToolTip;
159 for(event=eventlist.first();event != 0;event=eventlist.next()) { 159 for(event=eventlist.first();event != 0;event=eventlist.next()) {
160 QString mToolTipText; 160 QString mToolTipText;
161 QString text; 161 QString text;
162 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 162 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
163 if (event->isMultiDay()) { 163 if (event->isMultiDay()) {
164 QString prefix = "<->";multiday = 2; 164 QString prefix = "<->";multiday = 2;
165 QString time; 165 QString time;
166 if ( event->doesRecur() ) { 166 if ( event->doesRecur() ) {
167 if ( event->recursOn( mDate) ) { 167 if ( event->recursOn( mDate) ) {
168 prefix ="->" ;multiday = 1; 168 prefix ="->" ;multiday = 1;
169 } 169 }
170 else { 170 else {
171 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 171 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
172 if ( event->recursOn( mDate.addDays( -days)) ) { 172 if ( event->recursOn( mDate.addDays( -days)) ) {
173 prefix ="<-" ;multiday = 3; 173 prefix ="<-" ;multiday = 3;
174 } 174 }
175 } 175 }
176 } else { 176 } else {
177 if (mDate == event->dtStart().date()) { 177 if (mDate == event->dtStart().date()) {
178 prefix ="->" ;multiday = 1; 178 prefix ="->" ;multiday = 1;
179 } else if (mDate == event->dtEnd().date()) { 179 } else if (mDate == event->dtEnd().date()) {
180 prefix ="<-" ;multiday = 3; 180 prefix ="<-" ;multiday = 3;
181 } 181 }
182 } 182 }
183 if ( !event->doesFloat() ) { 183 if ( !event->doesFloat() ) {
184 if ( mDate == event->dtStart().date () ) 184 if ( mDate == event->dtStart().date () )
185 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 185 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
186 else if ( mDate == event->dtEnd().date () ) 186 else if ( mDate == event->dtEnd().date () )
187 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 187 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
188 188
189 } 189 }
190 text = time + event->summary(); 190 text = time + event->summary();
191 mToolTipText += prefix + text; 191 mToolTipText += prefix + text;
192 } else { 192 } else {
193 if (event->doesFloat()) { 193 if (event->doesFloat()) {
194 text = event->summary(); 194 text = event->summary();
195 mToolTipText += text; 195 mToolTipText += text;
196 } 196 }
197 else { 197 else {
198 text = KGlobal::locale()->formatTime(event->dtStart().time()); 198 text = KGlobal::locale()->formatTime(event->dtStart().time());
199 text += " " + event->summary(); 199 text += " " + event->summary();
200 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 200 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
201 } 201 }
202 } 202 }
203 if ( !event->location().isEmpty() ) 203 if ( !event->location().isEmpty() )
204 mToolTipText += " (" + event->location() + ")"; 204 mToolTipText += " (" + event->location() + ")";
205#if QT_VERSION >= 0x030000 205#if QT_VERSION >= 0x030000
206 mToolTipText.replace( '<' , "&lt;" ); 206 mToolTipText.replace( '<' , "&lt;" );
207 mToolTipText.replace( '>' , "&gt;" ); 207 mToolTipText.replace( '>' , "&gt;" );
208#else 208#else
209 if ( mToolTipText.find ('<') >= 0 ) { 209 if ( mToolTipText.find ('<') >= 0 ) {
210 mToolTipText.replace( QRegExp("<") , "&lt;" ); 210 mToolTipText.replace( QRegExp("<") , "&lt;" );
211 } 211 }
212 if ( mToolTipText.find ('>') >= 0 ) { 212 if ( mToolTipText.find ('>') >= 0 ) {
213 mToolTipText.replace( QRegExp(">") , "&gt;" ); 213 mToolTipText.replace( QRegExp(">") , "&gt;" );
214 } 214 }
215#endif 215#endif
216 //qDebug("TTT: %s ", mToolTipText.latin1()); 216 //qDebug("TTT: %s ", mToolTipText.latin1());
217 mToolTip.append( mToolTipText ); 217 mToolTip.append( mToolTipText );
218 } 218 }
219 mToolTip.sort(); 219 mToolTip.sort();
220 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>"); 220 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>");
221} 221}
222void KODayMatrix::setCalendar( Calendar *cal ) 222void KODayMatrix::setCalendar( Calendar *cal )
223{ 223{
224 mCalendar = cal; 224 mCalendar = cal;
225 225
226 setAcceptDrops( mCalendar ); 226 setAcceptDrops( mCalendar );
227 227
228 updateEvents(); 228 updateEvents();
229} 229}
230 230
231QColor KODayMatrix::getShadedColor(QColor color) 231QColor KODayMatrix::getShadedColor(QColor color)
232{ 232{
233 QColor shaded; 233 QColor shaded;
234 int h=0; 234 int h=0;
235 int s=0; 235 int s=0;
236 int v=0; 236 int v=0;
237 color.hsv(&h,&s,&v); 237 color.hsv(&h,&s,&v);
238 s = s/4; 238 s = s/4;
239 v = 192+v/4; 239 v = 192+v/4;
240 shaded.setHsv(h,s,v); 240 shaded.setHsv(h,s,v);
241 241
242 return shaded; 242 return shaded;
243} 243}
244 244
245KODayMatrix::~KODayMatrix() 245KODayMatrix::~KODayMatrix()
246{ 246{
247 // delete mKODaymatrixWhatsThis; 247 // delete mKODaymatrixWhatsThis;
248 delete [] days; 248 delete [] days;
249 delete [] daylbls; 249 delete [] daylbls;
250 //delete [] events; 250 //delete [] events;
251 delete mToolTip; 251 delete mToolTip;
252} 252}
253 253
254/* 254/*
255void KODayMatrix::setStartDate(QDate start) 255void KODayMatrix::setStartDate(QDate start)
256{ 256{
257 updateView(start); 257 updateView(start);
258} 258}
259*/ 259*/
260 260
261void KODayMatrix::addSelectedDaysTo(DateList& selDays) 261void KODayMatrix::addSelectedDaysTo(DateList& selDays)
262{ 262{
263 263
264 if (mSelStart == NOSELECTION) { 264 if (mSelStart == NOSELECTION) {
265 return; 265 return;
266 } 266 }
267 267
268 //cope with selection being out of matrix limits at top (< 0) 268 //cope with selection being out of matrix limits at top (< 0)
269 int i0 = mSelStart; 269 int i0 = mSelStart;
270 if (i0 < 0) { 270 if (i0 < 0) {
271 for (int i = i0; i < 0; i++) { 271 for (int i = i0; i < 0; i++) {
272 selDays.append(days[0].addDays(i)); 272 selDays.append(days[0].addDays(i));
273 } 273 }
274 i0 = 0; 274 i0 = 0;
275 } 275 }
276 276
277 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1) 277 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1)
278 if (mSelEnd > NUMDAYS-1) { 278 if (mSelEnd > NUMDAYS-1) {
279 for (int i = i0; i <= NUMDAYS-1; i++) { 279 for (int i = i0; i <= NUMDAYS-1; i++) {
280 selDays.append(days[i]); 280 selDays.append(days[i]);
281 } 281 }
282 for (int i = NUMDAYS; i < mSelEnd; i++) { 282 for (int i = NUMDAYS; i < mSelEnd; i++) {
283 selDays.append(days[0].addDays(i)); 283 selDays.append(days[0].addDays(i));
284 } 284 }
285 285
286 // apply normal routine to selection being entirely within matrix limits 286 // apply normal routine to selection being entirely within matrix limits
287 } else { 287 } else {
288 for (int i = i0; i <= mSelEnd; i++) { 288 for (int i = i0; i <= mSelEnd; i++) {
289 selDays.append(days[i]); 289 selDays.append(days[i]);
290 } 290 }
291 } 291 }
292} 292}
293 293
294bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) 294bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
295{ 295{
296 mRedrawNeeded = true; 296 mRedrawNeeded = true;
297 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION ); 297 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION );
298 mSelStart = startdate.daysTo(start); 298 mSelStart = startdate.daysTo(start);
299 if ( mSelStart < 0 ) 299 if ( mSelStart < 0 )
300 mSelStart = 0; 300 mSelStart = 0;
301 mSelEnd = startdate.daysTo(end); 301 mSelEnd = startdate.daysTo(end);
302 if ( mSelEnd > NUMDAYS-1 ) 302 if ( mSelEnd > NUMDAYS-1 )
303 mSelEnd = NUMDAYS-1; 303 mSelEnd = NUMDAYS-1;
304 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) { 304 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) {
305 clearSelection(); 305 clearSelection();
306 if ( noSel ) 306 if ( noSel )
307 return false; 307 return false;
308 } 308 }
309 309
310 return true; 310 return true;
311} 311}
312void KODayMatrix::clearSelection() 312void KODayMatrix::clearSelection()
313{ 313{
314 mSelEnd = mSelStart = NOSELECTION; 314 mSelEnd = mSelStart = NOSELECTION;
315} 315}
316 316
317 317
318void KODayMatrix::recalculateToday() 318void KODayMatrix::recalculateToday()
319{ 319{
320 today = -1; 320 today = -1;
321 for (int i=0; i<NUMDAYS; i++) { 321 for (int i=0; i<NUMDAYS; i++) {
322 //events[i] = 0; 322 //events[i] = 0;
323 days[i] = startdate.addDays(i); 323 days[i] = startdate.addDays(i);
324 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 324 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
325 325
326 // if today is in the currently displayed month, hilight today 326 // if today is in the currently displayed month, hilight today
327 if (days[i].year() == QDate::currentDate().year() && 327 if (days[i].year() == QDate::currentDate().year() &&
328 days[i].month() == QDate::currentDate().month() && 328 days[i].month() == QDate::currentDate().month() &&
329 days[i].day() == QDate::currentDate().day()) { 329 days[i].day() == QDate::currentDate().day()) {
330 today = i; 330 today = i;
331 } 331 }
332 } 332 }
333 // qDebug(QString("Today is visible at %1.").arg(today)); 333 // qDebug(QString("Today is visible at %1.").arg(today));
334} 334}
335 335
336void KODayMatrix::updateView() 336void KODayMatrix::updateView()
337{ 337{
338 updateView(startdate); 338 updateView(startdate);
339} 339}
340void KODayMatrix::repaintViewTimed() 340void KODayMatrix::repaintViewTimed()
341{ 341{
342 mRedrawNeeded = true; 342 mRedrawNeeded = true;
343 bDays.fill( false); 343 // bDays.fill( false);
344 pDays.fill( false); 344 //pDays.fill( false);
345 hDays.fill( false); 345 //hDays.fill( false);
346 eDays.fill( false); 346 //eDays.fill( false);
347 mRepaintTimer->stop(); 347 mRepaintTimer->stop();
348 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday 348 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday
349 int i; 349 int i;
350 for(i = 0; i < NUMDAYS; i++) { 350 for(i = 0; i < NUMDAYS; i++) {
351 if ( ( (i+startDay) % 7 == 0 ) ) { 351 if ( ( (i+startDay) % 7 == 0 ) ) {
352 pDays.setBit(i); 352 pDays.setBit(i);
353 } 353 }
354 } 354 }
355 repaint(false); 355 repaint(false);
356} 356}
357void KODayMatrix::computeEvent(Event *event, int i ) 357void KODayMatrix::computeEvent(Event *event, int i )
358{ 358{
359 QString holiStr = mHolidays[i]; 359 QString holiStr = mHolidays[i];
360 if ( event->isHoliday()) { 360 if ( event->isHoliday()) {
361 pDays.setBit(i); 361 pDays.setBit(i);
362 hDays.setBit(i); 362 hDays.setBit(i);
363 if ( !holiStr.isEmpty() ) 363 if ( !holiStr.isEmpty() )
364 holiStr += "\n"; 364 holiStr += "\n";
365 holiStr += event->summary(); 365 holiStr += event->summary();
366 if ( !event->location().isEmpty() ) 366 if ( !event->location().isEmpty() )
367 holiStr += " (" + event->location() + ")"; 367 holiStr += " (" + event->location() + ")";
368 mHolidays[i] =holiStr ; 368 mHolidays[i] =holiStr ;
369 } 369 }
370 if ( event->isBirthday()) { 370 if ( event->isBirthday()) {
371 pDays.setBit(i); 371 pDays.setBit(i);
372 if ( !holiStr.isEmpty() ) 372 if ( !holiStr.isEmpty() )
373 holiStr += "\n"; 373 holiStr += "\n";
374 holiStr += i18n("Birthday") + ": "+event->summary(); 374 holiStr += i18n("Birthday") + ": "+event->summary();
375 if ( !event->location().isEmpty() ) 375 if ( !event->location().isEmpty() )
376 holiStr += " (" + event->location() + ")"; 376 holiStr += " (" + event->location() + ")";
377 bDays.setBit(i); 377 bDays.setBit(i);
378 mHolidays[i] =holiStr ; 378 mHolidays[i] =holiStr ;
379 } 379 }
380 eDays.setBit(i); 380 eDays.setBit(i);
381} 381}
382void KODayMatrix::updateViewTimed() 382void KODayMatrix::updateViewTimed()
383{ 383{
384 mUpdateTimer->stop(); 384 mUpdateTimer->stop();
385 if ( !mCalendar ) { 385 if ( !mCalendar ) {
386 qDebug("NOT CAL "); 386 qDebug("NOT CAL ");
387 return; 387 return;
388 } 388 }
389#if 1 389#if 1
390 390
391 int i; 391 int i;
392 int timeSpan = NUMDAYS-1; 392 int timeSpan = NUMDAYS-1;
393 QPtrList<Event> events = mCalendar->events(); 393 QPtrList<Event> events = mCalendar->events();
394 Event *event; 394 Event *event;
395 QDateTime dt; 395 QDateTime dt;
396 bool ok; 396 bool ok;
397 bDays.fill( false); 397 bDays.fill( false);
398 pDays.fill( false); 398 pDays.fill( false);
399 hDays.fill( false); 399 hDays.fill( false);
400 eDays.fill( false); 400 eDays.fill( false);
401 mHolidays.clear(); 401 mHolidays.clear();
402 QDate mStartDate = days[0]; 402 QDate mStartDate = days[0];
403 QDate endDate = mStartDate.addDays( timeSpan ); 403 QDate endDate = mStartDate.addDays( timeSpan );
404 for( event = events.first(); event; event = events.next() ) { // for event 404 for( event = events.first(); event; event = events.next() ) { // for event
405 ushort recurType = event->recurrence()->doesRecur(); 405 ushort recurType = event->recurrence()->doesRecur();
406 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 406 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
407 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 407 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
408 continue; 408 continue;
409 } 409 }
410 if ( event->doesRecur() ) { 410 if ( event->doesRecur() ) {
411 bool last; 411 bool last;
412 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 412 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
413 QDateTime incidenceEnd; 413 QDateTime incidenceEnd;
414 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 414 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
415 bool invalid = false; 415 bool invalid = false;
416 while( true ) { 416 while( true ) {
417 if ( incidenceStart.isValid() ) { 417 if ( incidenceStart.isValid() ) {
418 incidenceEnd = incidenceStart.addDays( eventlen ); 418 incidenceEnd = incidenceStart.addDays( eventlen );
419 int st = incidenceStart.date().daysTo( endDate ); 419 int st = incidenceStart.date().daysTo( endDate );
420 if ( st >= 0 ) { // start before timeend 420 if ( st >= 0 ) { // start before timeend
421 int end = mStartDate.daysTo( incidenceEnd.date() ); 421 int end = mStartDate.daysTo( incidenceEnd.date() );
422 if ( end >= 0 ) { // end after timestart --- got one! 422 if ( end >= 0 ) { // end after timestart --- got one!
423 //normalize 423 //normalize
424 st = timeSpan - st; 424 st = timeSpan - st;
425 if ( st < 0 ) st = 0; 425 if ( st < 0 ) st = 0;
426 if ( end > timeSpan ) end = timeSpan; 426 if ( end > timeSpan ) end = timeSpan;
427 int iii; 427 int iii;
428 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 428 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
429 for ( iii = st;iii<= end;++iii) { 429 for ( iii = st;iii<= end;++iii) {
430 computeEvent( event, iii ); 430 computeEvent( event, iii );
431 } 431 }
432 } 432 }
433 } 433 }
434 } else { 434 } else {
435 if ( invalid ) 435 if ( invalid )
436 break; 436 break;
437 invalid = true; 437 invalid = true;
438 //qDebug("invalid %s", event->summary().latin1()); 438 //qDebug("invalid %s", event->summary().latin1());
439 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 439 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
440 } 440 }
441 if ( last ) 441 if ( last )
442 break; 442 break;
443 bool ok; 443 bool ok;
444 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 444 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
445 if ( ! ok ) 445 if ( ! ok )
446 break; 446 break;
447 if ( incidenceStart.date() > endDate ) 447 if ( incidenceStart.date() > endDate )
448 break; 448 break;
449 } 449 }
450 } else { // no recur 450 } else { // no recur
451 int st = event->dtStart().date().daysTo( endDate ); 451 int st = event->dtStart().date().daysTo( endDate );
452 if ( st >= 0 ) { // start before timeend 452 if ( st >= 0 ) { // start before timeend
453 int end = mStartDate.daysTo( event->dtEnd().date() ); 453 int end = mStartDate.daysTo( event->dtEnd().date() );
454 if ( end >= 0 ) { // end after timestart --- got one! 454 if ( end >= 0 ) { // end after timestart --- got one!
455 //normalize 455 //normalize
456 st = timeSpan - st; 456 st = timeSpan - st;
457 if ( st < 0 ) st = 0; 457 if ( st < 0 ) st = 0;
458 if ( end > timeSpan ) end = timeSpan; 458 if ( end > timeSpan ) end = timeSpan;
459 int iii; 459 int iii;
460 for ( iii = st;iii<= end;++iii) 460 for ( iii = st;iii<= end;++iii)
461 computeEvent( event, iii ); 461 computeEvent( event, iii );
462 } 462 }
463 } 463 }
464 } 464 }
465 } 465 }
466 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday 466 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday
467 for(i = 0; i < NUMDAYS; i++) { 467 for(i = 0; i < NUMDAYS; i++) {
468 if ( ( (i+startDay) % 7 == 0 ) ) { 468 if ( ( (i+startDay) % 7 == 0 ) ) {
469 pDays.setBit(i); 469 pDays.setBit(i);
470 } 470 }
471 } 471 }
472 472
473#if 0 473#if 0
474 // insert due todos 474 // insert due todos
475 QPtrList<Todo> todos = calendar()->todos( ); 475 QPtrList<Todo> todos = calendar()->todos( );
476 Todo *todo; 476 Todo *todo;
477 for(todo = todos.first(); todo; todo = todos.next()) { 477 for(todo = todos.first(); todo; todo = todos.next()) {
478 //insertTodo( todo ); 478 //insertTodo( todo );
479 if ( todo->hasDueDate() ) { 479 if ( todo->hasDueDate() ) {
480 int day = mStartDate.daysTo( todo->dtDue().date() ); 480 int day = mStartDate.daysTo( todo->dtDue().date() );
481 if ( day >= 0 && day < timeSpan + 1) { 481 if ( day >= 0 && day < timeSpan + 1) {
482 (*cells)[day]->insertTodo( todo ); 482 (*cells)[day]->insertTodo( todo );
483 } 483 }
484 } 484 }
485 } 485 }
486#endif 486#endif
487 487
488#else 488#else
489 //qDebug("KODayMatrix::updateViewTimed "); 489 //qDebug("KODayMatrix::updateViewTimed ");
490 for(int i = 0; i < NUMDAYS; i++) { 490 for(int i = 0; i < NUMDAYS; i++) {
491 // if events are set for the day then remember to draw it bold 491 // if events are set for the day then remember to draw it bold
492 QPtrList<Event> eventlist = mCalendar->events(days[i]); 492 QPtrList<Event> eventlist = mCalendar->events(days[i]);
493 Event *event; 493 Event *event;
494 int numEvents = eventlist.count(); 494 int numEvents = eventlist.count();
495 QString holiStr = ""; 495 QString holiStr = "";
496 bDays.clearBit(i); 496 bDays.clearBit(i);
497 hDays.clearBit(i); 497 hDays.clearBit(i);
498 eDays.clearBit(i); 498 eDays.clearBit(i);
499 for(event=eventlist.first();event != 0;event=eventlist.next()) { 499 for(event=eventlist.first();event != 0;event=eventlist.next()) {
500 qDebug("FFFFFFFFFFFFFFFFFFFFFFFFF "); 500 qDebug("FFFFFFFFFFFFFFFFFFFFFFFFF ");
501 ushort recurType = event->recurrence()->doesRecur(); 501 ushort recurType = event->recurrence()->doesRecur();
502 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 502 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
503 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 503 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
504 numEvents--; 504 numEvents--;
505 } 505 }
506 if ( event->isHoliday()) { 506 if ( event->isHoliday()) {
507 hDays.setBit(i); 507 hDays.setBit(i);
508 if ( !holiStr.isEmpty() ) 508 if ( !holiStr.isEmpty() )
509 holiStr += "\n"; 509 holiStr += "\n";
510 holiStr += event->summary(); 510 holiStr += event->summary();
511 if ( !event->location().isEmpty() ) 511 if ( !event->location().isEmpty() )
512 holiStr += " (" + event->location() + ")"; 512 holiStr += " (" + event->location() + ")";
513 } 513 }
514 if ( event->isBirthday()) { 514 if ( event->isBirthday()) {
515 if ( !holiStr.isEmpty() ) 515 if ( !holiStr.isEmpty() )
516 holiStr += "\n"; 516 holiStr += "\n";
517 holiStr += i18n("Birthday") + ": "+event->summary(); 517 holiStr += i18n("Birthday") + ": "+event->summary();
518 if ( !event->location().isEmpty() ) 518 if ( !event->location().isEmpty() )
519 holiStr += " (" + event->location() + ")"; 519 holiStr += " (" + event->location() + ")";
520 bDays.setBit(i); 520 bDays.setBit(i);
521 } 521 }
522 } 522 }
523 if ( numEvents ) 523 if ( numEvents )
524 eDays.setBit(i); 524 eDays.setBit(i);
525 //if it is a holy day then draw it red. Sundays are consider holidays, too 525 //if it is a holy day then draw it red. Sundays are consider holidays, too
526 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) || 526 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) ||
527 !holiStr.isEmpty()) { 527 !holiStr.isEmpty()) {
528 mHolidays[i] = holiStr; 528 mHolidays[i] = holiStr;
529 } else { 529 } else {
530 mHolidays[i] = QString::null; 530 mHolidays[i] = QString::null;
531 } 531 }
532 } 532 }
533#endif 533#endif
534 mRedrawNeeded = true; 534 mRedrawNeeded = true;
535 if ( ! mPendingUpdateBeforeRepaint ) 535 if ( ! mPendingUpdateBeforeRepaint )
536 repaint(false); 536 repaint(false);
537} 537}
538void KODayMatrix::updateView(QDate actdate) 538void KODayMatrix::updateView(QDate actdate)
539{ 539{
540 540
541 if ( ! actdate.isValid() ) { 541 if ( ! actdate.isValid() ) {
542 //qDebug("date not valid "); 542 //qDebug("date not valid ");
543 return; 543 return;
544 } 544 }
545 mDayChanged = false; 545 mDayChanged = false;
546 //flag to indicate if the starting day of the matrix has changed by this call 546 //flag to indicate if the starting day of the matrix has changed by this call
547 //mDayChanged = false; 547 //mDayChanged = false;
548 // if a new startdate is to be set then apply Cornelius's calculation 548 // if a new startdate is to be set then apply Cornelius's calculation
549 // of the first day to be shown 549 // of the first day to be shown
550 if (actdate != startdate) { 550 if (actdate != startdate) {
551 // reset index of selection according to shift of starting date from startdate to actdate 551 // reset index of selection according to shift of starting date from startdate to actdate
552 if (mSelStart != NOSELECTION) { 552 if (mSelStart != NOSELECTION) {
553 int tmp = actdate.daysTo(startdate); 553 int tmp = actdate.daysTo(startdate);
554 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl; 554 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl;
555 // shift selection if new one would be visible at least partly ! 555 // shift selection if new one would be visible at least partly !
556 556
557 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) { 557 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) {
558 // nested if is required for next X display pushed from a different month - correction required 558 // nested if is required for next X display pushed from a different month - correction required
559 // otherwise, for month forward and backward, it must be avoided 559 // otherwise, for month forward and backward, it must be avoided
560 if( mSelStart > NUMDAYS || mSelStart < 0 ) 560 if( mSelStart > NUMDAYS || mSelStart < 0 )
561 mSelStart = mSelStart + tmp; 561 mSelStart = mSelStart + tmp;
562 if( mSelEnd > NUMDAYS || mSelEnd < 0 ) 562 if( mSelEnd > NUMDAYS || mSelEnd < 0 )
563 mSelEnd = mSelEnd + tmp; 563 mSelEnd = mSelEnd + tmp;
564 } 564 }
565 } 565 }
566 startdate = actdate; 566 startdate = actdate;
567 mDayChanged = true; 567 mDayChanged = true;
568 recalculateToday(); 568 recalculateToday();
569 mRedrawNeeded = true; 569 mRedrawNeeded = true;
570 } 570 }
571 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() ); 571 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() );
572 if ( !isVisible() ) { 572 if ( !isVisible() ) {
573 mPendingUpdateBeforeRepaint = true; 573 mPendingUpdateBeforeRepaint = true;
574 } else { 574 } else {
575#ifdef DESKTOP_VERSION 575#ifdef DESKTOP_VERSION
576 //mRepaintTimer->start( 100 ); 576 //mRepaintTimer->start( 100 );
577 //updateViewTimed(); 577 //updateViewTimed();
578 mUpdateTimer->start( 50 ); 578 mUpdateTimer->start( 50 );
579#else 579#else
580 mRepaintTimer->start( 350 ); 580 mRepaintTimer->start( 350 );
581 mUpdateTimer->start( 800 ); 581 mUpdateTimer->start( 800 );
582#endif 582#endif
583 } 583 }
584} 584}
585void KODayMatrix::updateEvents() 585void KODayMatrix::updateEvents()
586{ 586{
587 if ( !mCalendar ) return; 587 if ( !mCalendar ) return;
588 588
589 for( int i = 0; i < NUMDAYS; i++ ) { 589 for( int i = 0; i < NUMDAYS; i++ ) {
590 // if events are set for the day then remember to draw it bold 590 // if events are set for the day then remember to draw it bold
591 QPtrList<Event> eventlist = mCalendar->events( days[ i ] ); 591 QPtrList<Event> eventlist = mCalendar->events( days[ i ] );
592 int numEvents = eventlist.count(); 592 int numEvents = eventlist.count();
593 Event *event; 593 Event *event;
594 for( event = eventlist.first(); event != 0;event=eventlist.next()) { 594 for( event = eventlist.first(); event != 0;event=eventlist.next()) {
595 ushort recurType = event->doesRecur(); 595 ushort recurType = event->doesRecur();
596 596
597 if ( ( recurType == Recurrence::rDaily && 597 if ( ( recurType == Recurrence::rDaily &&
598 !KOPrefs::instance()->mDailyRecur ) || 598 !KOPrefs::instance()->mDailyRecur ) ||
599 ( recurType == Recurrence::rWeekly && 599 ( recurType == Recurrence::rWeekly &&
600 !KOPrefs::instance()->mWeeklyRecur ) ) { 600 !KOPrefs::instance()->mWeeklyRecur ) ) {
601 numEvents--; 601 numEvents--;
602 } 602 }
603 } 603 }
604 if ( numEvents ) 604 if ( numEvents )
605 eDays.setBit(i); 605 eDays.setBit(i);
606 else 606 else
607 eDays.clearBit(i); 607 eDays.clearBit(i);
608 } 608 }
609} 609}
610 610
611const QDate& KODayMatrix::getDate(int offset) 611const QDate& KODayMatrix::getDate(int offset)
612{ 612{
613 if (offset < 0 || offset > NUMDAYS-1) { 613 if (offset < 0 || offset > NUMDAYS-1) {
614 qDebug("Wrong offset2 %d", offset); 614 qDebug("Wrong offset2 %d", offset);
615 return days[0]; 615 return days[0];
616 } 616 }
617 return days[offset]; 617 return days[offset];
618} 618}
619 619
620QString KODayMatrix::getHolidayLabel(int offset) 620QString KODayMatrix::getHolidayLabel(int offset)
621{ 621{
622 if (offset < 0 || offset > NUMDAYS-1) { 622 if (offset < 0 || offset > NUMDAYS-1) {
623 qDebug("Wrong offset1 %d", offset); 623 qDebug("Wrong offset1 %d", offset);
624 return QString(); 624 return QString();
625 } 625 }
626 return mHolidays[offset]; 626 return mHolidays[offset];
627} 627}
628 628
629int KODayMatrix::getDayIndexFrom(int x, int y) 629int KODayMatrix::getDayIndexFrom(int x, int y)
630{ 630{
631 int colModulo = (width()-2) % 7; 631 int colModulo = (width()-2) % 7;
632 int rowModulo = (height()-2) % 6; 632 int rowModulo = (height()-2) % 6;
633#if 0 633#if 0
634 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ? 634 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ?
635 6 - x/daysize.width() : x/daysize.width()); 635 6 - x/daysize.width() : x/daysize.width());
636#endif 636#endif
637 int xVal = (x-colModulo/2-2)/daysize.width(); 637 int xVal = (x-colModulo/2-2)/daysize.width();
638 int yVal = (y-rowModulo/2-2)/daysize.height(); 638 int yVal = (y-rowModulo/2-2)/daysize.height();
639 639
640 640
641 return 7*(yVal) + xVal; 641 return 7*(yVal) + xVal;
642 642
643} 643}
644 644
645// ---------------------------------------------------------------------------- 645// ----------------------------------------------------------------------------
646// M O U S E E V E N T H A N D L I N G 646// M O U S E E V E N T H A N D L I N G
647// ---------------------------------------------------------------------------- 647// ----------------------------------------------------------------------------
648 648
649void KODayMatrix::mousePressEvent (QMouseEvent* e) 649void KODayMatrix::mousePressEvent (QMouseEvent* e)
650{ 650{
651 651
652 if ( e->button() == LeftButton ) 652 if ( e->button() == LeftButton )
653 mouseDown = true; 653 mouseDown = true;
654 mSelStart = getDayIndexFrom(e->x(), e->y()); 654 mSelStart = getDayIndexFrom(e->x(), e->y());
655 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1; 655 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1;
656 mSelInit = mSelStart; 656 mSelInit = mSelStart;
657 mSelEnd = mSelStart; 657 mSelEnd = mSelStart;
658 mRedrawNeeded = true; 658 mRedrawNeeded = true;
659 repaint(false); 659 repaint(false);
660} 660}
661 661
662void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) 662void KODayMatrix::mouseReleaseEvent (QMouseEvent* e)
663{ 663{
664 mRedrawNeeded = true; 664 mRedrawNeeded = true;
665 if ( e->button() == LeftButton ) 665 if ( e->button() == LeftButton )
666 if ( ! mouseDown ) { 666 if ( ! mouseDown ) {
667 return; 667 return;
668 } 668 }
669 else 669 else
670 mouseDown = false; 670 mouseDown = false;
671 int tmp = getDayIndexFrom(e->x(), e->y()); 671 int tmp = getDayIndexFrom(e->x(), e->y());
672 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 672 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
673 673
674 if (mSelInit > tmp) { 674 if (mSelInit > tmp) {
675 mSelEnd = mSelInit; 675 mSelEnd = mSelInit;
676 if (tmp != mSelStart) { 676 if (tmp != mSelStart) {
677 mSelStart = tmp; 677 mSelStart = tmp;
678 repaint(false); 678 repaint(false);
679 } 679 }
680 } else { 680 } else {
681 mSelStart = mSelInit; 681 mSelStart = mSelInit;
682 682
683 //repaint only if selection has changed 683 //repaint only if selection has changed
684 if (tmp != mSelEnd) { 684 if (tmp != mSelEnd) {
685 mSelEnd = tmp; 685 mSelEnd = tmp;
686 repaint(false); 686 repaint(false);
687 } 687 }
688 } 688 }
689 689
690 DateList daylist; 690 DateList daylist;
691 if ( mSelStart < 0 ) 691 if ( mSelStart < 0 )
692 mSelStart = 0; 692 mSelStart = 0;
693 for (int i = mSelStart; i <= mSelEnd; i++) { 693 for (int i = mSelStart; i <= mSelEnd; i++) {
694 daylist.append(days[i]); 694 daylist.append(days[i]);
695 } 695 }
696 emit selected((const DateList)daylist); 696 emit selected((const DateList)daylist);
697 697
698} 698}
699 699
700void KODayMatrix::mouseMoveEvent (QMouseEvent* e) 700void KODayMatrix::mouseMoveEvent (QMouseEvent* e)
701{ 701{
702 if ( ! mouseDown ) { 702 if ( ! mouseDown ) {
703 return; 703 return;
704 } 704 }
705 mRedrawNeeded = true; 705 mRedrawNeeded = true;
706 int tmp = getDayIndexFrom(e->x(), e->y()); 706 int tmp = getDayIndexFrom(e->x(), e->y());
707 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 707 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
708 708
709 if (mSelInit > tmp) { 709 if (mSelInit > tmp) {
710 mSelEnd = mSelInit; 710 mSelEnd = mSelInit;
711 if (tmp != mSelStart) { 711 if (tmp != mSelStart) {
712 mSelStart = tmp; 712 mSelStart = tmp;
713 repaint(false); 713 repaint(false);
714 } 714 }
715 } else { 715 } else {
716 mSelStart = mSelInit; 716 mSelStart = mSelInit;
717 717
718 //repaint only if selection has changed 718 //repaint only if selection has changed
719 if (tmp != mSelEnd) { 719 if (tmp != mSelEnd) {
720 mSelEnd = tmp; 720 mSelEnd = tmp;
721 repaint(false); 721 repaint(false);
722 } 722 }
723 } 723 }
724} 724}
725 725
726// ---------------------------------------------------------------------------- 726// ----------------------------------------------------------------------------
727// D R A G ' N D R O P H A N D L I N G 727// D R A G ' N D R O P H A N D L I N G
728// ---------------------------------------------------------------------------- 728// ----------------------------------------------------------------------------
729 729
730void KODayMatrix::dragEnterEvent(QDragEnterEvent *e) 730void KODayMatrix::dragEnterEvent(QDragEnterEvent *e)
731{ 731{
732#ifndef KORG_NODND 732#ifndef KORG_NODND
733 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 733 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
734 e->ignore(); 734 e->ignore();
735 return; 735 return;
736 } 736 }
737 737
738 // some visual feedback 738 // some visual feedback
739// oldPalette = palette(); 739// oldPalette = palette();
740// setPalette(my_HilitePalette); 740// setPalette(my_HilitePalette);
741// update(); 741// update();
742#endif 742#endif
743} 743}
744 744
745void KODayMatrix::dragMoveEvent(QDragMoveEvent *e) 745void KODayMatrix::dragMoveEvent(QDragMoveEvent *e)
746{ 746{
747#ifndef KORG_NODND 747#ifndef KORG_NODND
748 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 748 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
749 e->ignore(); 749 e->ignore();
750 return; 750 return;
751 } 751 }
752 752
753 e->accept(); 753 e->accept();
754#endif 754#endif
755} 755}
756 756
757void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/) 757void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/)
758{ 758{
759#ifndef KORG_NODND 759#ifndef KORG_NODND
760// setPalette(oldPalette); 760// setPalette(oldPalette);
761// update(); 761// update();
762#endif 762#endif
763} 763}
764 764
765void KODayMatrix::dropEvent(QDropEvent *e) 765void KODayMatrix::dropEvent(QDropEvent *e)
766{ 766{
767#ifndef KORG_NODND 767#ifndef KORG_NODND
768// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl; 768// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl;
769 769
770 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 770 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
771 e->ignore(); 771 e->ignore();
772 return; 772 return;
773 } 773 }
774 774
775 DndFactory factory( mCalendar ); 775 DndFactory factory( mCalendar );
776 Event *event = factory.createDrop(e); 776 Event *event = factory.createDrop(e);
777 777
778 if (event) { 778 if (event) {
779 e->acceptAction(); 779 e->acceptAction();
780 780
781 Event *existingEvent = mCalendar->event(event->uid()); 781 Event *existingEvent = mCalendar->event(event->uid());
782 782
783 if(existingEvent) { 783 if(existingEvent) {
784 // uniquify event 784 // uniquify event
785 event->recreate(); 785 event->recreate();
786/* 786/*
787 KMessageBox::sorry(this, 787 KMessageBox::sorry(this,
788 i18n("Event already exists in this calendar."), 788 i18n("Event already exists in this calendar."),
789 i18n("Drop Event")); 789 i18n("Drop Event"));
790 delete event; 790 delete event;
791 return; 791 return;
792*/ 792*/
793 } 793 }
794// kdDebug() << "Drop new Event" << endl; 794// kdDebug() << "Drop new Event" << endl;
795 // Adjust date 795 // Adjust date
796 QDateTime start = event->dtStart(); 796 QDateTime start = event->dtStart();
797 QDateTime end = event->dtEnd(); 797 QDateTime end = event->dtEnd();
798 int duration = start.daysTo(end); 798 int duration = start.daysTo(end);
799 int idx = getDayIndexFrom(e->pos().x(), e->pos().y()); 799 int idx = getDayIndexFrom(e->pos().x(), e->pos().y());
800 800
801 start.setDate(days[idx]); 801 start.setDate(days[idx]);
802 end.setDate(days[idx].addDays(duration)); 802 end.setDate(days[idx].addDays(duration));
803 803
804 event->setDtStart(start); 804 event->setDtStart(start);
805 event->setDtEnd(end); 805 event->setDtEnd(end);
806 mCalendar->addEvent(event); 806 mCalendar->addEvent(event);
807 807
808 emit eventDropped(event); 808 emit eventDropped(event);
809 } else { 809 } else {
810// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl; 810// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl;
811 e->ignore(); 811 e->ignore();
812 } 812 }
813#endif 813#endif
814} 814}
815 815
816// ---------------------------------------------------------------------------- 816// ----------------------------------------------------------------------------
817// P A I N T E V E N T H A N D L I N G 817// P A I N T E V E N T H A N D L I N G
818// ---------------------------------------------------------------------------- 818// ----------------------------------------------------------------------------
819 819
820void KODayMatrix::paintEvent(QPaintEvent * pevent) 820void KODayMatrix::paintEvent(QPaintEvent * pevent)
821{ 821{
822 822
823 if ( width() <= 0 || height() <= 0 ) 823 if ( width() <= 0 || height() <= 0 )
824 return; 824 return;
825 if ( mPendingUpdateBeforeRepaint ) { 825 if ( mPendingUpdateBeforeRepaint ) {
826 updateViewTimed(); 826 updateViewTimed();
827 mPendingUpdateBeforeRepaint = false; 827 mPendingUpdateBeforeRepaint = false;
828 } 828 }
829#if 0 829#if 0
830 if ( myPix.width() != width() || myPix.height()!=height() ) { 830 if ( myPix.width() != width() || myPix.height()!=height() ) {
831 myPix.resize(size() ); 831 myPix.resize(size() );
832 mRedrawNeeded = true; 832 mRedrawNeeded = true;
833 } 833 }
834#endif 834#endif
835 if ( oldW != width() || oldH !=height() ) 835 if ( oldW != width() || oldH !=height() )
836 mRedrawNeeded = true; 836 mRedrawNeeded = true;
837 837
838 oldH = height() ; 838 oldH = height() ;
839 oldW = width(); 839 oldW = width();
840 if ( myPix.width() < width() || myPix.height() < height() ) { 840 if ( myPix.width() < width() || myPix.height() < height() ) {
841 myPix.resize(size() ); 841 myPix.resize(size() );
842 mRedrawNeeded = true; 842 mRedrawNeeded = true;
843 843
844 } 844 }
845 845
846 if ( mRedrawNeeded ) { 846 if ( mRedrawNeeded ) {
847 //qDebug("REDRAW "); 847 //qDebug("REDRAW ");
848 QPainter p(&myPix); 848 QPainter p(&myPix);
849 p.setFont(font()); 849 p.setFont(font());
850 850
851 851
852 int dheight = daysize.height(); 852 int dheight = daysize.height();
853 int dwidth = daysize.width(); 853 int dwidth = daysize.width();
854 int row,col; 854 int row,col;
855 int selw, selh; 855 int selw, selh;
856 int xyOff = frameWidth(); 856 int xyOff = frameWidth();
857 int colModulo = (width()-2) % 7; 857 int colModulo = (width()-2) % 7;
858 int rowModulo = (height()-2) % 6; 858 int rowModulo = (height()-2) % 6;
diff --git a/korganizer/koeventviewerdialog.cpp b/korganizer/koeventviewerdialog.cpp
index 35d084d..1dce841 100644
--- a/korganizer/koeventviewerdialog.cpp
+++ b/korganizer/koeventviewerdialog.cpp
@@ -1,308 +1,314 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program 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 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#include <klocale.h> 20#include <klocale.h>
21 21
22#include <libkcal/event.h> 22#include <libkcal/event.h>
23#include <qtimer.h> 23#include <qtimer.h>
24#include <qpushbutton.h> 24#include <qpushbutton.h>
25 25
26#include "koeventviewer.h" 26#include "koeventviewer.h"
27#include <kmessagebox.h> 27#include <kmessagebox.h>
28#include "koprefs.h" 28#include "koprefs.h"
29#include <libkcal/todo.h> 29#include <libkcal/todo.h>
30#include "qapp.h" 30#include "qapp.h"
31 31
32#include "koeventviewerdialog.h" 32#include "koeventviewerdialog.h"
33extern int globalFlagBlockAgenda; 33extern int globalFlagBlockAgenda;
34 34
35KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name) 35KOEventViewerDialog::KOEventViewerDialog(QWidget *parent,const char *name)
36 : KDialogBase(parent,name, 36 : KDialogBase(parent,name,
37#ifndef DESKTOP_VERSION 37#ifndef DESKTOP_VERSION
38 true , 38 true ,
39#else 39#else
40 false, 40 false,
41#endif 41#endif
42 i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda")) 42 i18n("Event Viewer"),Ok|User1|Close,Close, false, i18n("Agenda"))
43{ 43{
44 sendSignalViewerClosed = true; 44 sendSignalViewerClosed = true;
45 mEventViewer = new KOEventViewer(this); 45 mEventViewer = new KOEventViewer(this);
46 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); 46 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont );
47 setMainWidget(mEventViewer); 47 setMainWidget(mEventViewer);
48 setButtonText(Ok, i18n("Edit") ); 48 setButtonText(Ok, i18n("Edit") );
49 49
50 QObject::connect(findButton( Ok ),SIGNAL(clicked()), 50 QObject::connect(findButton( Ok ),SIGNAL(clicked()),
51 SLOT(editIncidence())); 51 SLOT(editIncidence()));
52 QObject::connect(this,SIGNAL(user1Clicked()), 52 QObject::connect(this,SIGNAL(user1Clicked()),
53 SLOT(showIncidence())); 53 SLOT(showIncidence()));
54 mIncidence = 0; 54 mIncidence = 0;
55 // TODO: Set a sensible size (based on the content?). 55 // TODO: Set a sensible size (based on the content?).
56 //showMaximized(); 56 //showMaximized();
57 //qDebug("++++++++++++KOEventViewerDialog() "); 57 //qDebug("++++++++++++KOEventViewerDialog() ");
58 // if ( KOPrefs::instance()->mCompactDialogs ) { 58 // if ( KOPrefs::instance()->mCompactDialogs ) {
59// setFixedSize( 240,284 ); 59// setFixedSize( 240,284 );
60// move( 0, 15 ); 60// move( 0, 15 );
61// } else { 61// } else {
62// setMinimumSize(300,200); 62// setMinimumSize(300,200);
63// resize(320,300); 63// resize(320,300);
64// } 64// }
65 mSyncMode = false; 65 mSyncMode = false;
66 mSyncResult = 0; 66 mSyncResult = 0;
67 67
68} 68}
69 69
70KOEventViewerDialog::~KOEventViewerDialog() 70KOEventViewerDialog::~KOEventViewerDialog()
71{ 71{
72 //qDebug("-------~KOEventViewerDialog() "); 72 //qDebug("-------~KOEventViewerDialog() ");
73} 73}
74void KOEventViewerDialog::showMe() 74void KOEventViewerDialog::showMe()
75{ 75{
76 76
77#ifdef DESKTOP_VERSION 77#ifdef DESKTOP_VERSION
78 int x,y,w,h; 78 int x,y,w,h;
79 x = geometry().x(); 79 x = geometry().x();
80 y = geometry().y(); 80 y = geometry().y();
81 w = width(); 81 w = width();
82 h = height(); 82 h = height();
83 show(); 83 show();
84 setGeometry(x,y,w,h); 84 setGeometry(x,y,w,h);
85 raise();
85#else 86#else
86 showMaximized(); 87 showMaximized();
87#endif 88#endif
88 raise(); 89 QTimer::singleShot( 1, this, SLOT ( setMyFocus() ) );
89 setActiveWindow();
90 mEventViewer->setFocus();
91 //raise();
92 90
93} 91}
92void KOEventViewerDialog::setMyFocus()
93{
94
95 setActiveWindow();
96 mEventViewer->setFocus();
97
98}
94void KOEventViewerDialog::print() 99void KOEventViewerDialog::print()
95{ 100{
96 mEventViewer->printMe(); 101 mEventViewer->printMe();
97 102
98} 103}
99void KOEventViewerDialog::setSyncMode( bool b ) 104void KOEventViewerDialog::setSyncMode( bool b )
100{ 105{
101 mSyncMode = b; 106 mSyncMode = b;
102 //qDebug("KOEventViewerDialog::setSyncMode %d ",mSyncMode ); 107 //qDebug("KOEventViewerDialog::setSyncMode %d ",mSyncMode );
103 if ( mSyncMode ) { 108 if ( mSyncMode ) {
104 findButton( Close )->setText( i18n("Cancel Sync")); 109 findButton( Close )->setText( i18n("Cancel Sync"));
105 findButton( Ok )->setText( i18n("Remote")); 110 findButton( Ok )->setText( i18n("Remote"));
106 findButton( User1 )->setText( i18n("Local")); 111 findButton( User1 )->setText( i18n("Local"));
107 } else { 112 } else {
108 findButton( Close )->setText( i18n("Close")); 113 findButton( Close )->setText( i18n("Close"));
109 findButton( Ok )->setText( i18n("Edit")); 114 findButton( Ok )->setText( i18n("Edit"));
110 findButton( User1 )->setText( i18n("Agenda")); 115 findButton( User1 )->setText( i18n("Agenda"));
111 } 116 }
112 mEventViewer->setSyncMode( b ); 117 mEventViewer->setSyncMode( b );
113} 118}
114void KOEventViewerDialog::setColorMode( int m ) 119void KOEventViewerDialog::setColorMode( int m )
115{ 120{
116 mEventViewer->setColorMode( m ); 121 mEventViewer->setColorMode( m );
117} 122}
118int KOEventViewerDialog::executeS( bool local ) 123int KOEventViewerDialog::executeS( bool local )
119{ 124{
120 mSyncResult = 3; 125 mSyncResult = 3;
121 if ( local ) 126 if ( local )
122 findButton( User1 )->setFocus(); 127 findButton( User1 )->setFocus();
123 else 128 else
124 findButton( Ok )->setFocus(); 129 findButton( Ok )->setFocus();
125 exec(); 130 exec();
126 return mSyncResult; 131 return mSyncResult;
127} 132}
128 133
129void KOEventViewerDialog::updateConfig() 134void KOEventViewerDialog::updateConfig()
130{ 135{
131 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont ); 136 mEventViewer->setFont( KOPrefs::instance()->mEventViewFont );
132 137
133} 138}
134void KOEventViewerDialog::setEvent(Event *event) 139void KOEventViewerDialog::setEvent(Event *event)
135{ 140{
136 mEventViewer->setEvent(event); 141 mEventViewer->setEvent(event);
137 mIncidence = event; 142 mIncidence = event;
138 mEventViewer->setFocus(); 143 mEventViewer->setFocus();
139 //findButton( Close )->setFocus(); 144 //findButton( Close )->setFocus();
140 if ( !mSyncMode ) { 145 if ( !mSyncMode ) {
141 findButton( User1 )->setText( i18n("Agenda")); 146 findButton( User1 )->setText( i18n("Agenda"));
142 } 147 }
143} 148}
144void KOEventViewerDialog::setIncidence(Incidence *in ) 149void KOEventViewerDialog::setIncidence(Incidence *in )
145{ 150{
146 if ( in->type() == "Event" ) 151 if ( in->type() == "Event" )
147 setEvent( (Event*) in ); 152 setEvent( (Event*) in );
148 else if ( in->type() =="Todo" ) 153 else if ( in->type() =="Todo" )
149 setTodo( (Todo*) in ); 154 setTodo( (Todo*) in );
150 else if ( in->type() =="Journal" ) 155 else if ( in->type() =="Journal" )
151 setJournal( (Journal*) in ); 156 setJournal( (Journal*) in );
152} 157}
153void KOEventViewerDialog::addIncidence(Incidence *in) 158void KOEventViewerDialog::addIncidence(Incidence *in)
154{ 159{
155 if ( in->type() == "Event" ) 160 if ( in->type() == "Event" )
156 addEvent( (Event*) in ); 161 addEvent( (Event*) in );
157 else if ( in->type() =="Todo" ) 162 else if ( in->type() =="Todo" )
158 mEventViewer->setTodo( (Todo*) in, false ); 163 mEventViewer->setTodo( (Todo*) in, false );
159 else if ( in->type() =="Journal" ) 164 else if ( in->type() =="Journal" )
160 mEventViewer->setJournal( (Journal*) in, false ); 165 mEventViewer->setJournal( (Journal*) in, false );
161 if ( mSyncMode ) { 166 if ( mSyncMode ) {
162 findButton( User1 )->setFocus(); 167 findButton( User1 )->setFocus();
163 setCaption(i18n("Conflict! Please choose entry")); 168 setCaption(i18n("Conflict! Please choose entry"));
164 } 169 }
165} 170}
166 171
167void KOEventViewerDialog::addEvent(Event *event) 172void KOEventViewerDialog::addEvent(Event *event)
168{ 173{
169 mEventViewer->addEvent(event); 174 mEventViewer->addEvent(event);
170 mIncidence = event; 175 mIncidence = event;
171 mEventViewer->setFocus(); 176 mEventViewer->setFocus();
172 //findButton( Close )->setFocus(); 177 //findButton( Close )->setFocus();
173 if ( !mSyncMode ) { 178 if ( !mSyncMode ) {
174 findButton( User1 )->setText( i18n("Agenda")); 179 findButton( User1 )->setText( i18n("Agenda"));
175 } 180 }
176} 181}
177 182
178void KOEventViewerDialog::setTodo(Todo *event) 183void KOEventViewerDialog::setTodo(Todo *event)
179{ 184{
180 mEventViewer->setTodo(event); 185 mEventViewer->setTodo(event);
181 mIncidence = (Incidence*)event; 186 mIncidence = (Incidence*)event;
182 mEventViewer->setFocus(); 187 mEventViewer->setFocus();
183 //findButton( Close )->setFocus(); 188 //findButton( Close )->setFocus();
184 if ( !mSyncMode ) { 189 if ( !mSyncMode ) {
185 findButton( User1 )->setText( i18n("Set complete")); 190 findButton( User1 )->setText( i18n("Set complete"));
186 } 191 }
187} 192}
188void KOEventViewerDialog::setJournal(Journal *j) 193void KOEventViewerDialog::setJournal(Journal *j)
189{ 194{
190 mEventViewer->setJournal(j); 195 mEventViewer->setJournal(j);
191 mIncidence = (Incidence*)j; 196 mIncidence = (Incidence*)j;
192 mEventViewer->setFocus(); 197 mEventViewer->setFocus();
193 //findButton( Close )->setFocus(); 198 //findButton( Close )->setFocus();
194 if ( !mSyncMode ) { 199 if ( !mSyncMode ) {
195 findButton( User1 )->setText( i18n("Agenda")); 200 findButton( User1 )->setText( i18n("Agenda"));
196 } 201 }
197} 202}
198 203
199void KOEventViewerDialog::addText(QString text) 204void KOEventViewerDialog::addText(QString text)
200{ 205{
201 mEventViewer->addText(text); 206 mEventViewer->addText(text);
202 mEventViewer->setFocus(); 207 mEventViewer->setFocus();
203 //findButton( Close )->setFocus(); 208 //findButton( Close )->setFocus();
204} 209}
205void KOEventViewerDialog::editIncidence() 210void KOEventViewerDialog::editIncidence()
206{ 211{
207 sendSignalViewerClosed = false; 212 sendSignalViewerClosed = false;
208 if ( mSyncMode ) { 213 if ( mSyncMode ) {
209 mSyncResult = 2; 214 mSyncResult = 2;
210 accept(); 215 accept();
211 return; 216 return;
212 } 217 }
213 if ( mIncidence ){ 218 if ( mIncidence ){
214#ifndef DESKTOP_VERSION 219#ifndef DESKTOP_VERSION
215 hide(); 220 //hide();
221 close();
216#endif 222#endif
217 emit editIncidence( mIncidence ); 223 emit editIncidence( mIncidence );
218 } 224 }
219} 225}
220void KOEventViewerDialog::showIncidence() 226void KOEventViewerDialog::showIncidence()
221{ 227{
222 sendSignalViewerClosed = false; 228 sendSignalViewerClosed = false;
223 if ( mSyncMode ) { 229 if ( mSyncMode ) {
224 mSyncResult = 1; 230 mSyncResult = 1;
225 accept(); 231 accept();
226 return; 232 return;
227 } 233 }
228 234
229 if ( mIncidence ){ 235 if ( mIncidence ){
230#ifndef DESKTOP_VERSION 236#ifndef DESKTOP_VERSION
231 hide(); 237 hide();
232#endif 238#endif
233 QDate date; 239 QDate date;
234 if ( mIncidence->type() == "Todo" ) { 240 if ( mIncidence->type() == "Todo" ) {
235 /* 241 /*
236 if ( ((Todo*)mIncidence)->hasDueDate() ) 242 if ( ((Todo*)mIncidence)->hasDueDate() )
237 date = ((Todo*)mIncidence)->dtDue().date(); 243 date = ((Todo*)mIncidence)->dtDue().date();
238 else { 244 else {
239 globalFlagBlockAgenda = 2; 245 globalFlagBlockAgenda = 2;
240 emit showAgendaView( false ); 246 emit showAgendaView( false );
241 return; 247 return;
242 } 248 }
243 */ 249 */
244 ((Todo*)mIncidence)->setCompleted( true ); 250 ((Todo*)mIncidence)->setCompleted( true );
245 ((Todo*)mIncidence)->setCompleted(QDateTime::currentDateTime() ); 251 ((Todo*)mIncidence)->setCompleted(QDateTime::currentDateTime() );
246 hide(); 252 hide();
247 emit todoCompleted(((Todo*)mIncidence)); 253 emit todoCompleted(((Todo*)mIncidence));
248 return; 254 return;
249 255
250 } else 256 } else
251 date = mIncidence->dtStart().date(); 257 date = mIncidence->dtStart().date();
252 globalFlagBlockAgenda = 1; 258 globalFlagBlockAgenda = 1;
253 emit showAgendaView( false ); 259 emit showAgendaView( false );
254 globalFlagBlockAgenda = 2; 260 globalFlagBlockAgenda = 2;
255 emit jumpToTime( date ); 261 emit jumpToTime( date );
256 } 262 }
257} 263}
258void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e ) 264void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e )
259{ 265{
260 switch ( e->key() ) { 266 switch ( e->key() ) {
261 267
262 case Qt::Key_A : 268 case Qt::Key_A :
263 case Qt::Key_L : 269 case Qt::Key_L :
264 showIncidence(); 270 showIncidence();
265 break; 271 break;
266 case Qt::Key_E : 272 case Qt::Key_E :
267 case Qt::Key_R : 273 case Qt::Key_R :
268 editIncidence(); 274 editIncidence();
269 break; 275 break;
270 case Qt::Key_C: 276 case Qt::Key_C:
271 case Qt::Key_Escape: 277 case Qt::Key_Escape:
272 sendSignalViewerClosed = true; 278 sendSignalViewerClosed = true;
273 close(); 279 close();
274 break; 280 break;
275 case Qt::Key_I: 281 case Qt::Key_I:
276#ifndef DESKTOP_VERSION 282#ifndef DESKTOP_VERSION
277 sendSignalViewerClosed = true; 283 sendSignalViewerClosed = true;
278 close(); 284 close();
279#else 285#else
280 sendSignalViewerClosed = true; 286 sendSignalViewerClosed = true;
281 slotViewerClosed(); 287 slotViewerClosed();
282 //accept(); 288 //accept();
283#endif 289#endif
284 break; 290 break;
285 default: 291 default:
286 KDialogBase::keyPressEvent ( e ); 292 KDialogBase::keyPressEvent ( e );
287 break; 293 break;
288 } 294 }
289 295
290} 296}
291void KOEventViewerDialog::hideEvent ( QHideEvent * e ) 297void KOEventViewerDialog::hideEvent ( QHideEvent * e )
292{ 298{
293 KDialogBase::hideEvent ( e ); 299 KDialogBase::hideEvent ( e );
294 QTimer::singleShot( 1, this, SLOT (slotViewerClosed() ) ); 300 QTimer::singleShot( 1, this, SLOT (slotViewerClosed() ) );
295} 301}
296 302
297void KOEventViewerDialog::slotViewerClosed() 303void KOEventViewerDialog::slotViewerClosed()
298{ 304{
299 if ( mSyncMode ) 305 if ( mSyncMode )
300 return; 306 return;
301 307
302 if ( sendSignalViewerClosed ) { 308 if ( sendSignalViewerClosed ) {
303 //qDebug("KOEventViewerDialog::hideEvent "); 309 //qDebug("KOEventViewerDialog::hideEvent ");
304 emit signalViewerClosed(); 310 emit signalViewerClosed();
305 } 311 }
306 sendSignalViewerClosed = true; 312 sendSignalViewerClosed = true;
307} 313}
308 314
diff --git a/korganizer/koeventviewerdialog.h b/korganizer/koeventviewerdialog.h
index 8e1cd44..29fee49 100644
--- a/korganizer/koeventviewerdialog.h
+++ b/korganizer/koeventviewerdialog.h
@@ -1,76 +1,77 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000, 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000, 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program 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 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19#ifndef KOEVENTVIEWERDIALOG_H 19#ifndef KOEVENTVIEWERDIALOG_H
20#define KOEVENTVIEWERDIALOG_H 20#define KOEVENTVIEWERDIALOG_H
21// 21//
22// Viewer dialog for events. 22// Viewer dialog for events.
23// 23//
24 24
25#include <qtextview.h> 25#include <qtextview.h>
26 26
27#include <kdialogbase.h> 27#include <kdialogbase.h>
28 28
29#include <libkcal/event.h> 29#include <libkcal/event.h>
30 30
31using namespace KCal; 31using namespace KCal;
32 32
33class KOEventViewer; 33class KOEventViewer;
34 34
35class KOEventViewerDialog : public KDialogBase { 35class KOEventViewerDialog : public KDialogBase {
36 Q_OBJECT 36 Q_OBJECT
37 public: 37 public:
38 KOEventViewerDialog(QWidget *parent=0,const char *name=0); 38 KOEventViewerDialog(QWidget *parent=0,const char *name=0);
39 virtual ~KOEventViewerDialog(); 39 virtual ~KOEventViewerDialog();
40 40
41 void setEvent(Event *event); 41 void setEvent(Event *event);
42 void addEvent(Event *event); 42 void addEvent(Event *event);
43 void setTodo(Todo *event); 43 void setTodo(Todo *event);
44 void setJournal(Journal *journal); 44 void setJournal(Journal *journal);
45 void setIncidence(Incidence *inc); 45 void setIncidence(Incidence *inc);
46 void addIncidence(Incidence *inc); 46 void addIncidence(Incidence *inc);
47 void addText(QString text); 47 void addText(QString text);
48 void showMe(); 48 void showMe();
49 void setSyncMode( bool ); 49 void setSyncMode( bool );
50 void setColorMode( int m ); 50 void setColorMode( int m );
51 int executeS( bool ); 51 int executeS( bool );
52 public slots: 52 public slots:
53 void updateConfig(); 53 void updateConfig();
54 void print(); 54 void print();
55 void setMyFocus();
55 signals: 56 signals:
56 void editIncidence( Incidence* ); 57 void editIncidence( Incidence* );
57 void jumpToTime( const QDate &); 58 void jumpToTime( const QDate &);
58 void showAgendaView( bool ); 59 void showAgendaView( bool );
59 void todoCompleted(Todo*); 60 void todoCompleted(Todo*);
60 void signalViewerClosed(); 61 void signalViewerClosed();
61private slots: 62private slots:
62 void slotViewerClosed(); 63 void slotViewerClosed();
63 void editIncidence(); 64 void editIncidence();
64 void showIncidence(); 65 void showIncidence();
65 protected: 66 protected:
66 void hideEvent ( QHideEvent * e ); 67 void hideEvent ( QHideEvent * e );
67 private: 68 private:
68 bool sendSignalViewerClosed; 69 bool sendSignalViewerClosed;
69 bool mSyncMode; 70 bool mSyncMode;
70 int mSyncResult; 71 int mSyncResult;
71 KOEventViewer *mEventViewer; 72 KOEventViewer *mEventViewer;
72 Incidence* mIncidence; 73 Incidence* mIncidence;
73 void keyPressEvent ( QKeyEvent * e ); 74 void keyPressEvent ( QKeyEvent * e );
74}; 75};
75 76
76#endif 77#endif
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index e72f94b..0bbb3bf 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -1,1234 +1,1233 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program 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 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qgroupbox.h> 26#include <qgroupbox.h>
27#include <qbuttongroup.h> 27#include <qbuttongroup.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qfont.h> 29#include <qfont.h>
30#include <qslider.h> 30#include <qslider.h>
31#include <qfile.h> 31#include <qfile.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qvbox.h> 34#include <qvbox.h>
35#include <qhbox.h> 35#include <qhbox.h>
36#include <qregexp.h> 36#include <qregexp.h>
37#include <qspinbox.h> 37#include <qspinbox.h>
38#include <qdatetime.h> 38#include <qdatetime.h>
39#include <qcheckbox.h> 39#include <qcheckbox.h>
40#include <qradiobutton.h> 40#include <qradiobutton.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qstrlist.h> 42#include <qstrlist.h>
43#include <qapplication.h> 43#include <qapplication.h>
44 44
45#include <kcolorbutton.h> 45#include <kcolorbutton.h>
46#include <kdebug.h> 46#include <kdebug.h>
47#include <klocale.h> 47#include <klocale.h>
48#include <kglobal.h> 48#include <kglobal.h>
49#include <kfontdialog.h> 49#include <kfontdialog.h>
50#include <kfiledialog.h> 50#include <kfiledialog.h>
51#include <kmessagebox.h> 51#include <kmessagebox.h>
52#include <kcolordialog.h> 52#include <kcolordialog.h>
53#include <kiconloader.h> 53#include <kiconloader.h>
54#include <kemailsettings.h> 54#include <kemailsettings.h>
55#include <kstandarddirs.h> 55#include <kstandarddirs.h>
56#include <kglobalsettings.h> 56#include <kglobalsettings.h>
57 57
58#include <kurlrequester.h> 58#include <kurlrequester.h>
59#include <klineedit.h> 59#include <klineedit.h>
60 60
61#if defined(USE_SOLARIS) 61#if defined(USE_SOLARIS)
62#include <sys/param.h> 62#include <sys/param.h>
63 63
64#define ZONEINFODIR "/usr/share/lib/zoneinfo" 64#define ZONEINFODIR "/usr/share/lib/zoneinfo"
65#define INITFILE "/etc/default/init" 65#define INITFILE "/etc/default/init"
66#endif 66#endif
67 67
68#include "koprefs.h" 68#include "koprefs.h"
69 69
70#include "koprefsdialog.h" 70#include "koprefsdialog.h"
71#include "kpimglobalprefs.h" 71#include "kpimglobalprefs.h"
72 72
73 73
74KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) : 74KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) :
75 KPrefsDialog(KOPrefs::instance(),parent,name,true) 75 KPrefsDialog(KOPrefs::instance(),parent,name,true)
76{ 76{
77 77
78 setFont( KGlobalSettings::generalFont() ); 78 setFont( KGlobalSettings::generalMaxFont() );
79 setCaption( i18n("Preferences - some settings need a restart (nr)")); 79 setCaption( i18n("Preferences - some settings need a restart (nr)"));
80 mCategoryDict.setAutoDelete(true); 80 mCategoryDict.setAutoDelete(true);
81 81
82 KGlobal::locale()->insertCatalogue("timezones"); 82 KGlobal::locale()->insertCatalogue("timezones");
83 mSpacingHint = spacingHintSmall(); 83 mSpacingHint = spacingHintSmall();
84 mMarginHint = marginHintSmall(); 84 mMarginHint = marginHintSmall();
85#ifndef DESKTOP_VERSION 85#ifndef DESKTOP_VERSION
86 if ( QApplication::desktop()->height() == 480 ) 86 if ( QApplication::desktop()->height() == 480 )
87 hideButtons(); 87 hideButtons();
88#endif 88#endif
89 89
90 setupGlobalTab(); 90 setupGlobalTab();
91 setupMainTab(); 91 setupMainTab();
92 // setupLocaleTab(); 92 // setupLocaleTab();
93 //setupTimeZoneTab(); 93 //setupTimeZoneTab();
94 setupTimeTab(); 94 setupTimeTab();
95 //setupLocaleDateTab(); 95 //setupLocaleDateTab();
96 setupFontsTab(); 96 setupFontsTab();
97 setupColorsTab(); 97 setupColorsTab();
98 setupViewsTab(); 98 setupViewsTab();
99 //setupSyncTab(); 99 //setupSyncTab();
100 //setupSyncAlgTab(); 100 //setupSyncAlgTab();
101 //setupPrinterTab(); 101 //setupPrinterTab();
102 //setupGroupSchedulingTab(); 102 //setupGroupSchedulingTab();
103 //setupGroupAutomationTab(); 103 //setupGroupAutomationTab();
104 104
105 105
106} 106}
107 107
108 108
109KOPrefsDialog::~KOPrefsDialog() 109KOPrefsDialog::~KOPrefsDialog()
110{ 110{
111} 111}
112void KOPrefsDialog::setupGlobalTab() 112void KOPrefsDialog::setupGlobalTab()
113{ 113{
114 QFrame *topFrame = addPage(i18n("Global"),0,0); 114 QFrame *topFrame = addPage(i18n("Global"),0,0);
115 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); 115 kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" );
116 QVBoxLayout *topLayout = new QVBoxLayout(topFrame); 116 QVBoxLayout *topLayout = new QVBoxLayout(topFrame);
117 topLayout->addWidget( kdelibcfg ); 117 topLayout->addWidget( kdelibcfg );
118 118
119 119
120} 120}
121void KOPrefsDialog::setupLocaleDateTab() 121void KOPrefsDialog::setupLocaleDateTab()
122{ 122{
123#if 0 123#if 0
124QFrame *topFrame = addPage(i18n("Date Format"),0,0); 124QFrame *topFrame = addPage(i18n("Date Format"),0,0);
125 QGridLayout *topLayout = new QGridLayout(topFrame,3,2); 125 QGridLayout *topLayout = new QGridLayout(topFrame,3,2);
126 topLayout->setSpacing(mSpacingHint); 126 topLayout->setSpacing(mSpacingHint);
127 topLayout->setMargin(mMarginHint); 127 topLayout->setMargin(mMarginHint);
128 int iii = 0; 128 int iii = 0;
129 129
130 130
131 KPrefsDialogWidRadios *syncPrefsGroup = 131 KPrefsDialogWidRadios *syncPrefsGroup =
132 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame); 132 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame);
133 QString format; 133 QString format;
134 if ( QApplication::desktop()->width() < 480 ) 134 if ( QApplication::desktop()->width() < 480 )
135 format = "(%d.%m.%Y)"; 135 format = "(%d.%m.%Y)";
136 else 136 else
137 format = "(%d.%m.%Y|%A %d %B %Y)"; 137 format = "(%d.%m.%Y|%A %d %B %Y)";
138 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); 138 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format));
139 if ( QApplication::desktop()->width() < 480 ) 139 if ( QApplication::desktop()->width() < 480 )
140 format = "(%m.%d.%Y)"; 140 format = "(%m.%d.%Y)";
141 else 141 else
142 format = "(%m.%d.%Y|%A %B %d %Y)"; 142 format = "(%m.%d.%Y|%A %B %d %Y)";
143 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); 143 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format));
144 if ( QApplication::desktop()->width() < 480 ) 144 if ( QApplication::desktop()->width() < 480 )
145 format = "(%Y-%m-%d)"; 145 format = "(%Y-%m-%d)";
146 else 146 else
147 format = "(%Y-%m-%d|%A %Y %B %d)"; 147 format = "(%Y-%m-%d|%A %Y %B %d)";
148 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); 148 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format));
149 syncPrefsGroup->addRadio(i18n("User defined")); 149 syncPrefsGroup->addRadio(i18n("User defined"));
150 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 150 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
151 ++iii; 151 ++iii;
152 ++iii; 152 ++iii;
153 QLabel * lab; 153 QLabel * lab;
154 mUserDateFormatLong = new QLineEdit(topFrame); 154 mUserDateFormatLong = new QLineEdit(topFrame);
155 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); 155 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame);
156 topLayout->addWidget(lab ,iii,0); 156 topLayout->addWidget(lab ,iii,0);
157 topLayout->addWidget(mUserDateFormatLong,iii,1); 157 topLayout->addWidget(mUserDateFormatLong,iii,1);
158 ++iii; 158 ++iii;
159 mUserDateFormatShort = new QLineEdit(topFrame); 159 mUserDateFormatShort = new QLineEdit(topFrame);
160 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); 160 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame);
161 topLayout->addWidget(lab ,iii,0); 161 topLayout->addWidget(lab ,iii,0);
162 topLayout->addWidget(mUserDateFormatShort,iii,1); 162 topLayout->addWidget(mUserDateFormatShort,iii,1);
163 ++iii; 163 ++iii;
164 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); 164 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame);
165 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 165 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
166 ++iii; 166 ++iii;
167 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); 167 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame);
168 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 168 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
169 ++iii; 169 ++iii;
170 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); 170 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame);
171 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 171 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
172 ++iii; 172 ++iii;
173#endif 173#endif
174 174
175} 175}
176 176
177void KOPrefsDialog::setupLocaleTab() 177void KOPrefsDialog::setupLocaleTab()
178{ 178{
179#if 0 179#if 0
180 QFrame *topFrame = addPage(i18n("Locale"),0,0); 180 QFrame *topFrame = addPage(i18n("Locale"),0,0);
181 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 181 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
182 topLayout->setSpacing(mSpacingHint); 182 topLayout->setSpacing(mSpacingHint);
183 topLayout->setMargin(mMarginHint); 183 topLayout->setMargin(mMarginHint);
184 int iii = 0; 184 int iii = 0;
185 KPrefsDialogWidRadios *syncPrefsGroup = 185 KPrefsDialogWidRadios *syncPrefsGroup =
186 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame); 186 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame);
187 syncPrefsGroup->addRadio(i18n("English")); 187 syncPrefsGroup->addRadio(i18n("English"));
188 syncPrefsGroup->addRadio(i18n("German")); 188 syncPrefsGroup->addRadio(i18n("German"));
189 syncPrefsGroup->addRadio(i18n("French")); 189 syncPrefsGroup->addRadio(i18n("French"));
190 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)")); 190 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)"));
191 if ( QApplication::desktop()->width() < 300 ) 191 if ( QApplication::desktop()->width() < 300 )
192 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 192 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
193 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 193 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
194 ++iii; 194 ++iii;
195 195
196 syncPrefsGroup = 196 syncPrefsGroup =
197 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame); 197 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame);
198 if ( QApplication::desktop()->width() > 300 ) 198 if ( QApplication::desktop()->width() > 300 )
199 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 199 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
200 syncPrefsGroup->addRadio(i18n("24:00")); 200 syncPrefsGroup->addRadio(i18n("24:00"));
201 syncPrefsGroup->addRadio(i18n("12:00am")); 201 syncPrefsGroup->addRadio(i18n("12:00am"));
202 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 202 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
203 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 203 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
204 ++iii; 204 ++iii;
205 KPrefsDialogWidBool *sb; 205 KPrefsDialogWidBool *sb;
206 if ( QApplication::desktop()->width() < 300 ) { 206 if ( QApplication::desktop()->width() < 300 ) {
207 sb = 207 sb =
208 addWidBool(i18n("Week starts on Sunday"), 208 addWidBool(i18n("Week starts on Sunday"),
209 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame); 209 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame);
210 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 210 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
211 ++iii; 211 ++iii;
212 sb = 212 sb =
213 addWidBool(i18n("Use short date in (WN/E) view"), 213 addWidBool(i18n("Use short date in (WN/E) view"),
214 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 214 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
215 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 215 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
216 } 216 }
217 else { 217 else {
218 QWidget * hb = new QWidget( topFrame ); 218 QWidget * hb = new QWidget( topFrame );
219 QHBoxLayout *hbLayout = new QHBoxLayout(hb); 219 QHBoxLayout *hbLayout = new QHBoxLayout(hb);
220 sb = 220 sb =
221 addWidBool(i18n("Week starts on Sunday"), 221 addWidBool(i18n("Week starts on Sunday"),
222 &(KOPrefs::instance()->mWeekStartsOnSunday),hb); 222 &(KOPrefs::instance()->mWeekStartsOnSunday),hb);
223 hbLayout->addWidget(sb->checkBox() ); 223 hbLayout->addWidget(sb->checkBox() );
224 sb = 224 sb =
225 addWidBool(i18n("Use short date in (WN/E) view"), 225 addWidBool(i18n("Use short date in (WN/E) view"),
226 &(KOPrefs::instance()->mShortDateInViewer),hb); 226 &(KOPrefs::instance()->mShortDateInViewer),hb);
227 hbLayout->addWidget(sb->checkBox() ); 227 hbLayout->addWidget(sb->checkBox() );
228 topLayout->addMultiCellWidget(hb, iii,iii,0,1); 228 topLayout->addMultiCellWidget(hb, iii,iii,0,1);
229 229
230 } 230 }
231 // KPrefsDialogWidBool *sb; //#ifndef DESKTOP_VERSION 231 // KPrefsDialogWidBool *sb; //#ifndef DESKTOP_VERSION
232#if 0 232#if 0
233 ++iii; 233 ++iii;
234 sb = 234 sb =
235 addWidBool(i18n("Quick load/save (w/o Unicode)"), 235 addWidBool(i18n("Quick load/save (w/o Unicode)"),
236 &(KOPrefs::instance()->mUseQuicksave),topFrame); 236 &(KOPrefs::instance()->mUseQuicksave),topFrame);
237 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 237 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
238#endif 238#endif
239#endif 239#endif
240} 240}
241void KOPrefsDialog::showSyncPage() 241void KOPrefsDialog::showSyncPage()
242{ 242{
243 showPage ( 0 ) ; 243 showPage ( 0 ) ;
244 kdelibcfg->showTimeZoneTab() ; 244 kdelibcfg->showTimeZoneTab() ;
245 245
246} 246}
247void KOPrefsDialog::setupSyncAlgTab() 247void KOPrefsDialog::setupSyncAlgTab()
248{ 248{
249#if 0 249#if 0
250 QLabel * lab; 250 QLabel * lab;
251 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0); 251 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0);
252 mSetupSyncAlgTab = topFrame; 252 mSetupSyncAlgTab = topFrame;
253 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 253 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
254 topLayout->setSpacing(mSpacingHint); 254 topLayout->setSpacing(mSpacingHint);
255 topLayout->setMargin(mMarginHint); 255 topLayout->setMargin(mMarginHint);
256 int iii = 0; 256 int iii = 0;
257 257
258 KPrefsDialogWidBool *sb = 258 KPrefsDialogWidBool *sb =
259 addWidBool(i18n("Ask for preferences before syncing"), 259 addWidBool(i18n("Ask for preferences before syncing"),
260 &(KOPrefs::instance()->mAskForPreferences),topFrame); 260 &(KOPrefs::instance()->mAskForPreferences),topFrame);
261 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 261 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
262 262
263 ++iii; 263 ++iii;
264 264
265 KPrefsDialogWidRadios *syncPrefsGroup = 265 KPrefsDialogWidRadios *syncPrefsGroup =
266 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs), 266 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs),
267 topFrame); 267 topFrame);
268 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 268 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
269 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 269 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
270 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 270 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
271 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 271 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
272 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 272 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
273 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 273 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
274 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 274 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
275 ++iii; 275 ++iii;
276 sb = 276 sb =
277 addWidBool(i18n("Show summary after syncing"), 277 addWidBool(i18n("Show summary after syncing"),
278 &(KOPrefs::instance()->mShowSyncSummary),topFrame); 278 &(KOPrefs::instance()->mShowSyncSummary),topFrame);
279 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 279 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
280 280
281 ++iii; 281 ++iii;
282#endif 282#endif
283 283
284 284
285 285
286} 286}
287 287
288 288
289void KOPrefsDialog::setupSyncTab() 289void KOPrefsDialog::setupSyncTab()
290{ 290{
291#if 0 291#if 0
292 QLabel * lab; 292 QLabel * lab;
293 QFrame *topFrame = addPage(i18n("Sync Network"),0,0); 293 QFrame *topFrame = addPage(i18n("Sync Network"),0,0);
294 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 294 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
295 topLayout->setSpacing(mSpacingHint); 295 topLayout->setSpacing(mSpacingHint);
296 topLayout->setMargin(mMarginHint); 296 topLayout->setMargin(mMarginHint);
297 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame); 297 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame);
298 int iii = 0; 298 int iii = 0;
299 topLayout->addMultiCellWidget(lab , iii,iii,0,1); 299 topLayout->addMultiCellWidget(lab , iii,iii,0,1);
300 ++iii; 300 ++iii;
301 301
302 mRemoteIPEdit = new QLineEdit(topFrame); 302 mRemoteIPEdit = new QLineEdit(topFrame);
303 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame); 303 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame);
304 topLayout->addWidget(lab ,iii,0); 304 topLayout->addWidget(lab ,iii,0);
305 topLayout->addWidget(mRemoteIPEdit,iii,1); 305 topLayout->addWidget(mRemoteIPEdit,iii,1);
306 ++iii; 306 ++iii;
307 mRemoteUser = new QLineEdit(topFrame); 307 mRemoteUser = new QLineEdit(topFrame);
308 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame); 308 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame);
309 topLayout->addWidget(lab ,iii,0); 309 topLayout->addWidget(lab ,iii,0);
310 topLayout->addWidget(mRemoteUser, iii,1); 310 topLayout->addWidget(mRemoteUser, iii,1);
311 ++iii; 311 ++iii;
312 312
313 mRemoteFile = new QLineEdit(topFrame); 313 mRemoteFile = new QLineEdit(topFrame);
314 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame); 314 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame);
315 topLayout->addWidget(lab ,iii,0); 315 topLayout->addWidget(lab ,iii,0);
316 topLayout->addWidget(mRemoteFile,iii,1); 316 topLayout->addWidget(mRemoteFile,iii,1);
317 ++iii; 317 ++iii;
318 318
319 mLocalTempFile = new QLineEdit(topFrame); 319 mLocalTempFile = new QLineEdit(topFrame);
320 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame); 320 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame);
321 topLayout->addWidget(lab ,iii,0); 321 topLayout->addWidget(lab ,iii,0);
322 topLayout->addWidget(mLocalTempFile,iii,1); 322 topLayout->addWidget(mLocalTempFile,iii,1);
323 ++iii; 323 ++iii;
324 324
325 KPrefsDialogWidBool *wb = 325 KPrefsDialogWidBool *wb =
326 addWidBool(i18n("Write back synced file"), 326 addWidBool(i18n("Write back synced file"),
327 &(KOPrefs::instance()->mWriteBackFile),topFrame); 327 &(KOPrefs::instance()->mWriteBackFile),topFrame);
328 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 328 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
329 ++iii; 329 ++iii;
330 wb = 330 wb =
331 addWidBool(i18n("Write back existing entries only"), 331 addWidBool(i18n("Write back existing entries only"),
332 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame); 332 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame);
333 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 333 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
334 ++iii; 334 ++iii;
335 335
336#endif 336#endif
337} 337}
338 338
339void KOPrefsDialog::setupMainTab() 339void KOPrefsDialog::setupMainTab()
340{ 340{
341 QFrame *topFrame = addPage(i18n("General"),0,0); 341 QFrame *topFrame = addPage(i18n("General"),0,0);
342 // DesktopIcon("identity",KIcon::SizeMedium)); 342 // DesktopIcon("identity",KIcon::SizeMedium));
343 343
344 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 344 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
345 topLayout->setSpacing(mSpacingHint); 345 topLayout->setSpacing(mSpacingHint);
346 topLayout->setMargin(mMarginHint); 346 topLayout->setMargin(mMarginHint);
347 347
348 // KPrefsDialogWidBool *emailControlCenter = 348 // KPrefsDialogWidBool *emailControlCenter =
349// addWidBool(i18n("&Use email settings from Control Center"), 349// addWidBool(i18n("&Use email settings from Control Center"),
350// &(KOPrefs::instance()->mEmailControlCenter),topFrame); 350// &(KOPrefs::instance()->mEmailControlCenter),topFrame);
351// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1); 351// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1);
352 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)), 352 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)),
353 // SLOT(toggleEmailSettings(bool))); 353 // SLOT(toggleEmailSettings(bool)));
354 354
355 mNameEdit = new QLineEdit(topFrame); 355 mNameEdit = new QLineEdit(topFrame);
356 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 356 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
357 topLayout->addWidget(mNameLabel,0,0); 357 topLayout->addWidget(mNameLabel,0,0);
358 topLayout->addWidget(mNameEdit,0,1); 358 topLayout->addWidget(mNameEdit,0,1);
359 359
360 mEmailEdit = new QLineEdit(topFrame); 360 mEmailEdit = new QLineEdit(topFrame);
361 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 361 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
362 topLayout->addWidget(mEmailLabel,1,0); 362 topLayout->addWidget(mEmailLabel,1,0);
363 topLayout->addWidget(mEmailEdit,1,1); 363 topLayout->addWidget(mEmailEdit,1,1);
364 KPrefsDialogWidBool *wb; 364 KPrefsDialogWidBool *wb;
365 365
366 366
367 367
368 KPrefsDialogWidBool *widbool = addWidBool(i18n("Full menu bar(nr)"), 368 KPrefsDialogWidBool *widbool = addWidBool(i18n("Full menu bar(nr)"),
369 &(KOPrefs::instance()->mShowFullMenu),topFrame); 369 &(KOPrefs::instance()->mShowFullMenu),topFrame);
370 topLayout->addMultiCellWidget( widbool->checkBox(), 2,2,0,1); 370 topLayout->addMultiCellWidget( widbool->checkBox(), 2,2,0,1);
371 371
372 372
373 widbool = addWidBool(i18n("Mini icons in toolbar(nr)"), 373 widbool = addWidBool(i18n("Mini icons in toolbar(nr)"),
374 &(KOPrefs::instance()->mToolBarMiniIcons),topFrame); 374 &(KOPrefs::instance()->mToolBarMiniIcons),topFrame);
375 topLayout->addMultiCellWidget( widbool->checkBox(), 3,3,0,1); 375 topLayout->addMultiCellWidget( widbool->checkBox(), 3,3,0,1);
376 376
377 377
378 KPrefsDialogWidBool *verticalScreen = 378 KPrefsDialogWidBool *verticalScreen =
379 addWidBool(i18n("Show vertical screen (Needs restart)"), 379 addWidBool(i18n("Show vertical screen (Needs restart)"),
380 &(KOPrefs::instance()->mVerticalScreen),topFrame); 380 &(KOPrefs::instance()->mVerticalScreen),topFrame);
381 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0); 381 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0);
382 topLayout->addMultiCellWidget(verticalScreen->checkBox(),4,4,0,1); 382 topLayout->addMultiCellWidget(verticalScreen->checkBox(),4,4,0,1);
383 383
384 384
385 QHBox *dummy = new QHBox(topFrame); 385 QHBox *dummy = new QHBox(topFrame);
386 new QLabel(i18n("Days in Next-X-Days:"),dummy); 386 new QLabel(i18n("Days in Next-X-Days:"),dummy);
387 mNextXDaysSpin = new QSpinBox(2,14,1,dummy); 387 mNextXDaysSpin = new QSpinBox(2,14,1,dummy);
388 388
389 topLayout->addMultiCellWidget(dummy,5,5,0,1); 389 topLayout->addMultiCellWidget(dummy,5,5,0,1);
390 390
391 391
392 392
393 // KPrefsDialogWidBool *bcc = 393 // KPrefsDialogWidBool *bcc =
394// addWidBool(i18n("Send copy to owner when mailing events"), 394// addWidBool(i18n("Send copy to owner when mailing events"),
395// &(KOPrefs::instance()->mBcc),topFrame); 395// &(KOPrefs::instance()->mBcc),topFrame);
396// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1); 396// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1);
397 397
398 398
399 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame); 399 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame);
400 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1); 400 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1);
401 401
402 // addWidBool(i18n("Enable automatic saving of calendar"), 402 // addWidBool(i18n("Enable automatic saving of calendar"),
403 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup); 403 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup);
404 404
405 QHBox *intervalBox = new QHBox(topFrame); 405 QHBox *intervalBox = new QHBox(topFrame);
406 // intervalBox->setSpacing(mSpacingHint); 406 // intervalBox->setSpacing(mSpacingHint);
407 topLayout->addMultiCellWidget(intervalBox,6,6,0,1); 407 topLayout->addMultiCellWidget(intervalBox,6,6,0,1);
408 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox); 408 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox);
409 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox); 409 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox);
410 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin); 410 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin);
411 /* 411 /*
412 QHBox * agendasize = new QHBox ( topFrame ); 412 QHBox * agendasize = new QHBox ( topFrame );
413 413
414 new QLabel (i18n("AllDayAgenda Height:"), agendasize ); 414 new QLabel (i18n("AllDayAgenda Height:"), agendasize );
415 415
416 416
417 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize); 417 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize);
418 topLayout->addMultiCellWidget(agendasize,7,7,0,1); 418 topLayout->addMultiCellWidget(agendasize,7,7,0,1);
419 */ 419 */
420 420
421 421
422 KPrefsDialogWidBool *ask = 422 KPrefsDialogWidBool *ask =
423 addWidBool(i18n("Ask for quit when closing KO/Pi"), 423 addWidBool(i18n("Ask for quit when closing KO/Pi"),
424 &(KOPrefs::instance()->mAskForQuit),topFrame); 424 &(KOPrefs::instance()->mAskForQuit),topFrame);
425 topLayout->addMultiCellWidget(ask->checkBox(),7,7,0,1); 425 topLayout->addMultiCellWidget(ask->checkBox(),7,7,0,1);
426 426
427 427
428 /* 428 /*
429 KPrefsDialogWidBool *confirmCheck = 429 KPrefsDialogWidBool *confirmCheck =
430 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm), 430 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm),
431 topFrame); 431 topFrame);
432 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1); 432 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1);
433 433
434 434
435 mEnableGroupScheduling = 435 mEnableGroupScheduling =
436 addWidBool(i18n("Enable group scheduling"), 436 addWidBool(i18n("Enable group scheduling"),
437 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame); 437 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame);
438 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0); 438 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0);
439 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()), 439 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()),
440 SLOT(warningGroupScheduling())); 440 SLOT(warningGroupScheduling()));
441 441
442 mEnableProjectView = 442 mEnableProjectView =
443 addWidBool(i18n("Enable project view"), 443 addWidBool(i18n("Enable project view"),
444 &(KOPrefs::instance()->mEnableProjectView),topFrame); 444 &(KOPrefs::instance()->mEnableProjectView),topFrame);
445 topLayout->addWidget(mEnableProjectView->checkBox(),9,0); 445 topLayout->addWidget(mEnableProjectView->checkBox(),9,0);
446 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()), 446 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()),
447 SLOT(warningProjectView())); 447 SLOT(warningProjectView()));
448 448
449 // Can't be disabled anymore 449 // Can't be disabled anymore
450 mEnableGroupScheduling->checkBox()->hide(); 450 mEnableGroupScheduling->checkBox()->hide();
451 451
452 // Disable setting, because this feature now becomes stable 452 // Disable setting, because this feature now becomes stable
453 mEnableProjectView->checkBox()->hide(); 453 mEnableProjectView->checkBox()->hide();
454 454
455 KPrefsDialogWidRadios *defaultFormatGroup = 455 KPrefsDialogWidRadios *defaultFormatGroup =
456 addWidRadios(i18n("Default Calendar Format"), 456 addWidRadios(i18n("Default Calendar Format"),
457 &(KOPrefs::instance()->mDefaultFormat),topFrame); 457 &(KOPrefs::instance()->mDefaultFormat),topFrame);
458 defaultFormatGroup->addRadio(i18n("vCalendar")); 458 defaultFormatGroup->addRadio(i18n("vCalendar"));
459 defaultFormatGroup->addRadio(i18n("iCalendar")); 459 defaultFormatGroup->addRadio(i18n("iCalendar"));
460 460
461 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1); 461 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1);
462 462
463 // Default format unconditionally is iCalendar 463 // Default format unconditionally is iCalendar
464 defaultFormatGroup->groupBox()->hide(); 464 defaultFormatGroup->groupBox()->hide();
465 465
466 KPrefsDialogWidRadios *mailClientGroup = 466 KPrefsDialogWidRadios *mailClientGroup =
467 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient), 467 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient),
468 topFrame); 468 topFrame);
469 mailClientGroup->addRadio(i18n("KMail")); 469 mailClientGroup->addRadio(i18n("KMail"));
470 mailClientGroup->addRadio(i18n("Sendmail")); 470 mailClientGroup->addRadio(i18n("Sendmail"));
471 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1); 471 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1);
472 472
473 KPrefsDialogWidBool *htmlsave = 473 KPrefsDialogWidBool *htmlsave =
474 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave), 474 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave),
475 topFrame); 475 topFrame);
476 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1); 476 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1);
477 477
478 KPrefsDialogWidRadios *destinationGroup = 478 KPrefsDialogWidRadios *destinationGroup =
479 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination), 479 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination),
480 topFrame); 480 topFrame);
481 destinationGroup->addRadio(i18n("be added to the standard resource")); 481 destinationGroup->addRadio(i18n("be added to the standard resource"));
482 destinationGroup->addRadio(i18n("be asked which resource to use")); 482 destinationGroup->addRadio(i18n("be asked which resource to use"));
483 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1); 483 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1);
484 484
485 topLayout->setRowStretch(14,1); 485 topLayout->setRowStretch(14,1);
486 */ 486 */
487} 487}
488 488
489 489
490void KOPrefsDialog::setupTimeTab() 490void KOPrefsDialog::setupTimeTab()
491{ 491{
492 QFrame *topFrame = addPage(i18n("Time"),0,0); 492 QFrame *topFrame = addPage(i18n("Time"),0,0);
493 // DesktopIcon("clock",KIcon::SizeMedium)); 493 // DesktopIcon("clock",KIcon::SizeMedium));
494 494
495 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 495 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
496 topLayout->setSpacing(mSpacingHint); 496 topLayout->setSpacing(mSpacingHint);
497 topLayout->setMargin(mMarginHint); 497 topLayout->setMargin(mMarginHint);
498 498
499 QHBox *dummy = new QHBox(topFrame); 499 QHBox *dummy = new QHBox(topFrame);
500 KPrefsDialogWidTime *dayBegins = 500 KPrefsDialogWidTime *dayBegins =
501 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 501 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
502 dummy); 502 dummy);
503 //topLayout->addWidget(dayBegins->label(),2,0); 503 //topLayout->addWidget(dayBegins->label(),2,0);
504 504
505 //topLayout->addWidget(dayBegins->spinBox(),2,1); 505 //topLayout->addWidget(dayBegins->spinBox(),2,1);
506 topLayout->addMultiCellWidget(dummy,0,0,0,1); 506 topLayout->addMultiCellWidget(dummy,0,0,0,1);
507 507
508 topLayout->addWidget(new QLabel(i18n("Default appointment time:"), 508 topLayout->addWidget(new QLabel(i18n("Default appointment time:"),
509 topFrame),1,0); 509 topFrame),1,0);
510 mStartTimeSpin = new QSpinBox(0,23,1,topFrame); 510 mStartTimeSpin = new QSpinBox(0,23,1,topFrame);
511 mStartTimeSpin->setSuffix(":00"); 511 mStartTimeSpin->setSuffix(":00");
512 topLayout->addWidget(mStartTimeSpin,1,1); 512 topLayout->addWidget(mStartTimeSpin,1,1);
513 513
514 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"), 514 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"),
515 topFrame),2,0); 515 topFrame),2,0);
516 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame); 516 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame);
517 mDefaultDurationSpin->setSuffix(":00"); 517 mDefaultDurationSpin->setSuffix(":00");
518 topLayout->addWidget(mDefaultDurationSpin,2,1); 518 topLayout->addWidget(mDefaultDurationSpin,2,1);
519 519
520 QStringList alarmList; 520 QStringList alarmList;
521 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes") 521 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes")
522 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ; 522 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ;
523 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame), 523 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame),
524 3,0); 524 3,0);
525 mAlarmTimeCombo = new QComboBox(topFrame); 525 mAlarmTimeCombo = new QComboBox(topFrame);
526 mAlarmTimeCombo->insertStringList(alarmList); 526 mAlarmTimeCombo->insertStringList(alarmList);
527 topLayout->addWidget(mAlarmTimeCombo,3,1); 527 topLayout->addWidget(mAlarmTimeCombo,3,1);
528 528
529 529
530 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal, 530 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal,
531 i18n("Working Hours"), 531 i18n("Working Hours"),
532 topFrame); 532 topFrame);
533 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1); 533 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1);
534 workingHoursGroup->layout()->setSpacing( 0 ); 534 workingHoursGroup->layout()->setSpacing( 0 );
535 workingHoursGroup->layout()->setMargin( 4 ); 535 workingHoursGroup->layout()->setMargin( 4 );
536 QHBox *workStartBox = new QHBox(workingHoursGroup); 536 QHBox *workStartBox = new QHBox(workingHoursGroup);
537 // workStartBox->setMargin( 0 ); 537 // workStartBox->setMargin( 0 );
538 addWidTime(i18n("Daily starting hour:"), 538 addWidTime(i18n("Daily starting hour:"),
539 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox); 539 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox);
540 540
541 QHBox *workEndBox = new QHBox(workingHoursGroup); 541 QHBox *workEndBox = new QHBox(workingHoursGroup);
542 //workEndBox->setMargin( 0 ); 542 //workEndBox->setMargin( 0 );
543 addWidTime(i18n("Daily ending hour:"), 543 addWidTime(i18n("Daily ending hour:"),
544 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox); 544 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
545 QVBox *excludeBox = new QVBox(workingHoursGroup); 545 QVBox *excludeBox = new QVBox(workingHoursGroup);
546 //excludeBox->setMargin( 0 ); 546 //excludeBox->setMargin( 0 );
547 addWidBool(i18n("Exclude holidays"), 547 addWidBool(i18n("Exclude holidays"),
548 &(KOPrefs::instance()->mExcludeHolidays),excludeBox); 548 &(KOPrefs::instance()->mExcludeHolidays),excludeBox);
549 549
550 addWidBool(i18n("Exclude Saturdays"), 550 addWidBool(i18n("Exclude Saturdays"),
551 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox); 551 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox);
552 552
553// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"), 553// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"),
554 // &(KOPrefs::instance()->mMarcusBainsShowSeconds), 554 // &(KOPrefs::instance()->mMarcusBainsShowSeconds),
555 // topFrame); 555 // topFrame);
556// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0); 556// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0);
557 557
558 // topLayout->setRowStretch(6,1); 558 // topLayout->setRowStretch(6,1);
559} 559}
560 560
561 561
562void KOPrefsDialog::setupViewsTab() 562void KOPrefsDialog::setupViewsTab()
563{ 563{
564 564
565 QFrame *topFrame = addPage(i18n("Views"),0,0); 565 QFrame *topFrame = addPage(i18n("Views"),0,0);
566 // DesktopIcon("viewmag",KIcon::SizeMedium)); 566 // DesktopIcon("viewmag",KIcon::SizeMedium));
567 567
568 QGridLayout *topLayout = new QGridLayout(topFrame,6,1); 568 QGridLayout *topLayout = new QGridLayout(topFrame,6,1);
569 topLayout->setSpacing(mSpacingHint); 569 topLayout->setSpacing(mSpacingHint);
570 topLayout->setMargin(mMarginHint); 570 topLayout->setMargin(mMarginHint);
571 571
572// QBoxLayout *dayBeginsLayout = new QHBoxLayout; 572// QBoxLayout *dayBeginsLayout = new QHBoxLayout;
573// topLayout->addLayout(dayBeginsLayout,0,0); 573// topLayout->addLayout(dayBeginsLayout,0,0);
574 574
575// KPrefsDialogWidTime *dayBegins = 575// KPrefsDialogWidTime *dayBegins =
576// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 576// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
577// topFrame); 577// topFrame);
578// dayBeginsLayout->addWidget(dayBegins->label()); 578// dayBeginsLayout->addWidget(dayBegins->label());
579// dayBeginsLayout->addStretch(1); 579// dayBeginsLayout->addStretch(1);
580// dayBeginsLayout->addWidget(dayBegins->spinBox()); 580// dayBeginsLayout->addWidget(dayBegins->spinBox());
581 581
582// QBoxLayout *nextDaysLayout = new QHBoxLayout; 582// QBoxLayout *nextDaysLayout = new QHBoxLayout;
583// topLayout->addLayout(nextDaysLayout,1,0); 583// topLayout->addLayout(nextDaysLayout,1,0);
584// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); 584// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame));
585// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); 585// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame);
586// nextDaysLayout->addStretch(1); 586// nextDaysLayout->addStretch(1);
587// nextDaysLayout->addWidget(mNextXDaysSpin); 587// nextDaysLayout->addWidget(mNextXDaysSpin);
588 588
589 589
590 int ii = 0; 590 int ii = 0;
591 KPrefsDialogWidBool *dummy = 591 KPrefsDialogWidBool *dummy =
592 addWidBool(i18n("Edit item on doubleclick (if not, show)"), 592 addWidBool(i18n("Edit item on doubleclick (if not, show)"),
593 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); 593 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame);
594 topLayout->addWidget(dummy->checkBox(),ii++,0); 594 topLayout->addWidget(dummy->checkBox(),ii++,0);
595 595
596 596
597 597
598 598
599 599
600 600
601 // topLayout->addWidget(hourSizeGroup,ii++,0); 601 // topLayout->addWidget(hourSizeGroup,ii++,0);
602 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0); 602 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0);
603 //topLayout->setRowStretch(11,1); 603 //topLayout->setRowStretch(11,1);
604 604
605 605
606 606
607 607
608#if 0 608#if 0
609 609
610 topFrame = addPage(i18n("ViewChange"),0,0); 610 topFrame = addPage(i18n("ViewChange"),0,0);
611 // DesktopIcon("viewmag",KIcon::SizeMedium)); 611 // DesktopIcon("viewmag",KIcon::SizeMedium));
612 612
613 topLayout = new QGridLayout(topFrame,6,1); 613 topLayout = new QGridLayout(topFrame,6,1);
614 topLayout->setSpacing(mSpacingHint); 614 topLayout->setSpacing(mSpacingHint);
615 topLayout->setMargin(mMarginHint); 615 topLayout->setMargin(mMarginHint);
616 ii = 0; 616 ii = 0;
617 617
618#endif 618#endif
619 619
620 dummy = 620 dummy =
621 addWidBool(i18n("Hold fullscreen on view change"), 621 addWidBool(i18n("Hold fullscreen on view change"),
622 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame); 622 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame);
623 topLayout->addWidget(dummy->checkBox(),ii++,0); 623 topLayout->addWidget(dummy->checkBox(),ii++,0);
624 624
625 dummy = 625 dummy =
626 addWidBool(i18n("Hold non-fullscreen on view change"), 626 addWidBool(i18n("Hold non-fullscreen on view change"),
627 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame); 627 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame);
628 topLayout->addWidget(dummy->checkBox(),ii++,0); 628 topLayout->addWidget(dummy->checkBox(),ii++,0);
629 629
630 630
631 631
632 KPrefsDialogWidBool *fullViewMonth = 632 KPrefsDialogWidBool *fullViewMonth =
633 addWidBool(i18n("Next days view uses full window"), 633 addWidBool(i18n("Next days view uses full window"),
634 &(KOPrefs::instance()->mFullViewMonth),topFrame); 634 &(KOPrefs::instance()->mFullViewMonth),topFrame);
635 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0); 635 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0);
636 636
637 637
638 KPrefsDialogWidBool *fullViewTodo = 638 KPrefsDialogWidBool *fullViewTodo =
639 addWidBool(i18n("Event list view uses full window"), 639 addWidBool(i18n("Event list view uses full window"),
640 &(KOPrefs::instance()->mFullViewTodo),topFrame); 640 &(KOPrefs::instance()->mFullViewTodo),topFrame);
641 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0); 641 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0);
642 dummy = 642 dummy =
643 addWidBool(i18n("Listview uses monthly timespan"), 643 addWidBool(i18n("Listview uses monthly timespan"),
644 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame); 644 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame);
645 topLayout->addWidget(dummy->checkBox(),ii++,0); 645 topLayout->addWidget(dummy->checkBox(),ii++,0);
646 dummy = 646 dummy =
647 addWidBool(i18n("Highlight selection in Time Edit"), 647 addWidBool(i18n("Highlight selection in Time Edit"),
648 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame); 648 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame);
649 topLayout->addWidget( dummy->checkBox(), ii++,0); 649 topLayout->addWidget( dummy->checkBox(), ii++,0);
650 650
651 KPrefsDialogWidBool *dailyRecur = 651 KPrefsDialogWidBool *dailyRecur =
652 addWidBool(i18n("Show events that recur daily in date nav."), 652 addWidBool(i18n("Show events that recur daily in date nav."),
653 &(KOPrefs::instance()->mDailyRecur),topFrame); 653 &(KOPrefs::instance()->mDailyRecur),topFrame);
654 topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 654 topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
655 655
656 KPrefsDialogWidBool *weeklyRecur = 656 KPrefsDialogWidBool *weeklyRecur =
657 addWidBool(i18n("Show ev. that recur weekly in date nav."), 657 addWidBool(i18n("Show ev. that recur weekly in date nav."),
658 &(KOPrefs::instance()->mWeeklyRecur),topFrame); 658 &(KOPrefs::instance()->mWeeklyRecur),topFrame);
659 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); 659 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0);
660 660
661#ifdef DESKTOP_VERSION 661#ifdef DESKTOP_VERSION
662 KPrefsDialogWidBool *enableToolTips = 662 KPrefsDialogWidBool *enableToolTips =
663 addWidBool(i18n("Enable tooltips displaying summary of ev."), 663 addWidBool(i18n("Enable tooltips displaying summary of ev."),
664 &(KOPrefs::instance()->mEnableToolTips),topFrame); 664 &(KOPrefs::instance()->mEnableToolTips),topFrame);
665 topLayout->addWidget(enableToolTips->checkBox(),ii++,0); 665 topLayout->addWidget(enableToolTips->checkBox(),ii++,0);
666#endif 666#endif
667 // ********************************************************* 667 // *********************************************************
668 668
669 topFrame = addPage(i18n("Agenda View"),0,0); 669 topFrame = addPage(i18n("Agenda View"),0,0);
670 // DesktopIcon("viewmag",KIcon::SizeMedium)); 670 // DesktopIcon("viewmag",KIcon::SizeMedium));
671 671
672 topLayout = new QGridLayout(topFrame,5,1); 672 topLayout = new QGridLayout(topFrame,5,1);
673 topLayout->setSpacing(mSpacingHint); 673 topLayout->setSpacing(mSpacingHint);
674 topLayout->setMargin(mMarginHint); 674 topLayout->setMargin(mMarginHint);
675 ii = 0; 675 ii = 0;
676 676
677 677
678 dummy = 678 dummy =
679 addWidBool(i18n("Show time in agenda items"), 679 addWidBool(i18n("Show time in agenda items"),
680 &(KOPrefs::instance()->mShowTimeInAgenda),topFrame); 680 &(KOPrefs::instance()->mShowTimeInAgenda),topFrame);
681 topLayout->addWidget(dummy->checkBox(),ii++,0); 681 topLayout->addWidget(dummy->checkBox(),ii++,0);
682 682
683 dummy = 683 dummy =
684 addWidBool(i18n("Highlight current day in agenda"), 684 addWidBool(i18n("Highlight current day in agenda"),
685 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); 685 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame);
686 topLayout->addWidget(dummy->checkBox(),ii++,0); 686 topLayout->addWidget(dummy->checkBox(),ii++,0);
687 687
688 dummy = 688 dummy =
689 addWidBool(i18n("Use light color for highlight current day"), 689 addWidBool(i18n("Use light color for highlight current day"),
690 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); 690 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame);
691 topLayout->addWidget(dummy->checkBox(),ii++,0); 691 topLayout->addWidget(dummy->checkBox(),ii++,0);
692 692
693 693
694 KPrefsDialogWidBool *marcusBainsEnabled = 694 KPrefsDialogWidBool *marcusBainsEnabled =
695 addWidBool(i18n("Show current time"), 695 addWidBool(i18n("Show current time"),
696 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame); 696 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
697 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0); 697 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0);
698 698
699 699
700 dummy = 700 dummy =
701 addWidBool(i18n("Set agenda to DayBeginsAt on change"), 701 addWidBool(i18n("Set agenda to DayBeginsAt on change"),
702 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame); 702 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame);
703 topLayout->addWidget(dummy->checkBox(),ii++,0); 703 topLayout->addWidget(dummy->checkBox(),ii++,0);
704 704
705 dummy = 705 dummy =
706 addWidBool(i18n("Set agenda to current time on change"), 706 addWidBool(i18n("Set agenda to current time on change"),
707 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame); 707 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame);
708 topLayout->addWidget(dummy->checkBox(),ii++,0); 708 topLayout->addWidget(dummy->checkBox(),ii++,0);
709 709
710 710
711 711
712 712
713 713
714 714
715 715
716 topFrame = addPage(i18n("Month View"),0,0); 716 topFrame = addPage(i18n("Month View"),0,0);
717 // DesktopIcon("viewmag",KIcon::SizeMedium)); 717 // DesktopIcon("viewmag",KIcon::SizeMedium));
718 718
719 topLayout = new QGridLayout(topFrame,5,1); 719 topLayout = new QGridLayout(topFrame,5,1);
720 topLayout->setSpacing(mSpacingHint); 720 topLayout->setSpacing(mSpacingHint);
721 topLayout->setMargin(mMarginHint); 721 topLayout->setMargin(mMarginHint);
722 qDebug("%d %d ",mSpacingHint, mMarginHint );
723 ii = 0; 722 ii = 0;
724 QLabel *lab; 723 QLabel *lab;
725 QHBox *habo = new QHBox( topFrame ); 724 QHBox *habo = new QHBox( topFrame );
726 if ( QApplication::desktop()->width() <= 480 ) { 725 if ( QApplication::desktop()->width() <= 480 ) {
727 lab = new QLabel ( i18n("Show events that recur "), topFrame ); 726 lab = new QLabel ( i18n("Show events that recur "), topFrame );
728 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 727 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
729 ii++; 728 ii++;
730 } else { 729 } else {
731 new QLabel ( i18n("Show events that recur "), habo ); 730 new QLabel ( i18n("Show events that recur "), habo );
732 } 731 }
733 dailyRecur = 732 dailyRecur =
734 addWidBool(i18n("daily"), 733 addWidBool(i18n("daily"),
735 &(KOPrefs::instance()->mMonthDailyRecur),habo); 734 &(KOPrefs::instance()->mMonthDailyRecur),habo);
736 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 735 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
737 736
738 weeklyRecur = 737 weeklyRecur =
739 addWidBool(i18n("weekly"), 738 addWidBool(i18n("weekly"),
740 &(KOPrefs::instance()->mMonthWeeklyRecur),habo); 739 &(KOPrefs::instance()->mMonthWeeklyRecur),habo);
741 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 740 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
742 ii++; 741 ii++;
743 742
744 743
745 habo = new QHBox( topFrame ); 744 habo = new QHBox( topFrame );
746 if ( QApplication::desktop()->width() <= 480 ) { 745 if ( QApplication::desktop()->width() <= 480 ) {
747 lab = new QLabel (i18n("Show in every cell ") , topFrame ); 746 lab = new QLabel (i18n("Show in every cell ") , topFrame );
748 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 747 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
749 ii++; 748 ii++;
750 749
751 } else { 750 } else {
752 new QLabel ( i18n("Show in every cell "), habo ); 751 new QLabel ( i18n("Show in every cell "), habo );
753 } 752 }
754 weeklyRecur = 753 weeklyRecur =
755 addWidBool(i18n("short month"), 754 addWidBool(i18n("short month"),
756 &(KOPrefs::instance()->mMonthShowShort),habo); 755 &(KOPrefs::instance()->mMonthShowShort),habo);
757 weeklyRecur = 756 weeklyRecur =
758 addWidBool(i18n("icons"), 757 addWidBool(i18n("icons"),
759 &(KOPrefs::instance()->mMonthShowIcons),habo); 758 &(KOPrefs::instance()->mMonthShowIcons),habo);
760 759
761 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 760 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
762 ii++; 761 ii++;
763#ifdef DESKTOP_VERSION 762#ifdef DESKTOP_VERSION
764 KPrefsDialogWidBool *enableMonthScroll = 763 KPrefsDialogWidBool *enableMonthScroll =
765 addWidBool(i18n("Enable scrollbars in month view cells"), 764 addWidBool(i18n("Enable scrollbars in month view cells"),
766 &(KOPrefs::instance()->mEnableMonthScroll),topFrame); 765 &(KOPrefs::instance()->mEnableMonthScroll),topFrame);
767 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); 766 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0);
768#endif 767#endif
769 dummy = 768 dummy =
770 addWidBool(i18n("Week view mode uses bigger font"), 769 addWidBool(i18n("Week view mode uses bigger font"),
771 &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame); 770 &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame);
772 topLayout->addWidget(dummy->checkBox(),ii++,0); 771 topLayout->addWidget(dummy->checkBox(),ii++,0);
773 dummy = 772 dummy =
774 addWidBool(i18n("Show Sat/Sun together"), 773 addWidBool(i18n("Show Sat/Sun together"),
775 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); 774 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame);
776 topLayout->addWidget(dummy->checkBox(),ii++,0); 775 topLayout->addWidget(dummy->checkBox(),ii++,0);
777 776
778 KPrefsDialogWidBool *coloredCategoriesInMonthView = 777 KPrefsDialogWidBool *coloredCategoriesInMonthView =
779 addWidBool(i18n("Month view uses category colors"), 778 addWidBool(i18n("Month view uses category colors"),
780 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); 779 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame);
781 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 780 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
782 781
783 dummy = 782 dummy =
784 addWidBool(i18n("Categorie colors are applied to text"), 783 addWidBool(i18n("Categorie colors are applied to text"),
785 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame); 784 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame);
786 topLayout->addWidget(dummy->checkBox(),ii++,0); 785 topLayout->addWidget(dummy->checkBox(),ii++,0);
787 coloredCategoriesInMonthView = 786 coloredCategoriesInMonthView =
788 addWidBool(i18n("Month view uses day colors"), 787 addWidBool(i18n("Month view uses day colors"),
789 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame); 788 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame);
790 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 789 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
791 790
792 KPrefsDialogWidColor *holidayColor = 791 KPrefsDialogWidColor *holidayColor =
793 addWidColor(i18n("Day color odd months"), 792 addWidColor(i18n("Day color odd months"),
794 &(KOPrefs::instance()->mMonthViewOddColor),topFrame); 793 &(KOPrefs::instance()->mMonthViewOddColor),topFrame);
795 topLayout->addWidget(holidayColor->label(),ii,0); 794 topLayout->addWidget(holidayColor->label(),ii,0);
796 topLayout->addWidget(holidayColor->button(),ii++,1); 795 topLayout->addWidget(holidayColor->button(),ii++,1);
797 796
798 holidayColor = 797 holidayColor =
799 addWidColor(i18n("Day color even months"), 798 addWidColor(i18n("Day color even months"),
800 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame); 799 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame);
801 topLayout->addWidget(holidayColor->label(),ii,0); 800 topLayout->addWidget(holidayColor->label(),ii,0);
802 topLayout->addWidget(holidayColor->button(),ii++,1); 801 topLayout->addWidget(holidayColor->button(),ii++,1);
803 802
804 803
805 holidayColor = 804 holidayColor =
806 addWidColor(i18n("Color for Sundays + category \"Holiday\""), 805 addWidColor(i18n("Color for Sundays + category \"Holiday\""),
807 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame); 806 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame);
808 topLayout->addWidget(holidayColor->label(),ii,0); 807 topLayout->addWidget(holidayColor->label(),ii,0);
809 topLayout->addWidget(holidayColor->button(),ii++,1); 808 topLayout->addWidget(holidayColor->button(),ii++,1);
810 // *********************** What'sNext View 809 // *********************** What'sNext View
811 topFrame = addPage(i18n("What's Next View"),0,0); 810 topFrame = addPage(i18n("What's Next View"),0,0);
812 // DesktopIcon("viewmag",KIcon::SizeMedium)); 811 // DesktopIcon("viewmag",KIcon::SizeMedium));
813 812
814 topLayout = new QGridLayout(topFrame,4,1); 813 topLayout = new QGridLayout(topFrame,4,1);
815 topLayout->setSpacing(mSpacingHint); 814 topLayout->setSpacing(mSpacingHint);
816 topLayout->setMargin(mMarginHint); 815 topLayout->setMargin(mMarginHint);
817 ii = 0; 816 ii = 0;
818 817
819 818
820 QHBox* hdummy = new QHBox(topFrame); 819 QHBox* hdummy = new QHBox(topFrame);
821 new QLabel(i18n("Days in What's Next:"),hdummy); 820 new QLabel(i18n("Days in What's Next:"),hdummy);
822 mWhatsNextSpin = new QSpinBox(1,14,1,hdummy); 821 mWhatsNextSpin = new QSpinBox(1,14,1,hdummy);
823 822
824 topLayout->addWidget(hdummy,ii++,0); 823 topLayout->addWidget(hdummy,ii++,0);
825 824
826 QHBox *prioBox = new QHBox(topFrame); 825 QHBox *prioBox = new QHBox(topFrame);
827 // intervalBox->setSpacing(mSpacingHint); 826 // intervalBox->setSpacing(mSpacingHint);
828 topLayout->addWidget(prioBox,ii++,0); 827 topLayout->addWidget(prioBox,ii++,0);
829 828
830 QLabel *prioLabel = new QLabel(i18n("Number of max.displayed todo prios:"), prioBox); 829 QLabel *prioLabel = new QLabel(i18n("Number of max.displayed todo prios:"), prioBox);
831 mPrioSpin = new QSpinBox(0,5,1,prioBox); 830 mPrioSpin = new QSpinBox(0,5,1,prioBox);
832 if ( QApplication::desktop()->width() < 300 ) 831 if ( QApplication::desktop()->width() < 300 )
833 mPrioSpin->setFixedWidth( 40 ); 832 mPrioSpin->setFixedWidth( 40 );
834 833
835 KPrefsDialogWidBool *passwdk = 834 KPrefsDialogWidBool *passwdk =
836 835
837 addWidBool(i18n("Show events, that are done"), 836 addWidBool(i18n("Show events, that are done"),
838 &(KOPrefs::instance()->mWNViewShowsPast),topFrame); 837 &(KOPrefs::instance()->mWNViewShowsPast),topFrame);
839 topLayout->addWidget(passwdk->checkBox(), ii++,0); 838 topLayout->addWidget(passwdk->checkBox(), ii++,0);
840 passwdk = 839 passwdk =
841 addWidBool(i18n("Show parent To-Do's"), 840 addWidBool(i18n("Show parent To-Do's"),
842 &(KOPrefs::instance()->mWNViewShowsParents),topFrame); 841 &(KOPrefs::instance()->mWNViewShowsParents),topFrame);
843 topLayout->addWidget(passwdk->checkBox(), ii++,0); 842 topLayout->addWidget(passwdk->checkBox(), ii++,0);
844 843
845 passwdk = 844 passwdk =
846 addWidBool(i18n("Show location"), 845 addWidBool(i18n("Show location"),
847 &(KOPrefs::instance()->mWNViewShowLocation),topFrame); 846 &(KOPrefs::instance()->mWNViewShowLocation),topFrame);
848 topLayout->addWidget(passwdk->checkBox(), ii++,0); 847 topLayout->addWidget(passwdk->checkBox(), ii++,0);
849 848
850 passwdk = 849 passwdk =
851 addWidBool(i18n("Show Sync Events in WN+Agenda"), 850 addWidBool(i18n("Show Sync Events in WN+Agenda"),
852 &(KOPrefs::instance()->mShowSyncEvents),topFrame); 851 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
853 topLayout->addWidget(passwdk->checkBox(), ii++,0); 852 topLayout->addWidget(passwdk->checkBox(), ii++,0);
854 passwdk = 853 passwdk =
855 addWidBool(i18n("Use short date in WN+Event view"), 854 addWidBool(i18n("Use short date in WN+Event view"),
856 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 855 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
857 topLayout->addWidget(passwdk->checkBox(), ii++,0); 856 topLayout->addWidget(passwdk->checkBox(), ii++,0);
858 857
859 858
860 859
861 860
862 // *********************** Todo View 861 // *********************** Todo View
863 862
864 topFrame = addPage(i18n("Todo View"),0,0); 863 topFrame = addPage(i18n("Todo View"),0,0);
865 // DesktopIcon("viewmag",KIcon::SizeMedium)); 864 // DesktopIcon("viewmag",KIcon::SizeMedium));
866 865
867 topLayout = new QGridLayout(topFrame,4,1); 866 topLayout = new QGridLayout(topFrame,4,1);
868 topLayout->setSpacing(mSpacingHint); 867 topLayout->setSpacing(mSpacingHint);
869 topLayout->setMargin(mMarginHint); 868 topLayout->setMargin(mMarginHint);
870 ii = 0; 869 ii = 0;
871dummy = 870dummy =
872 addWidBool(i18n("Hide not running Todos in To-do view"), 871 addWidBool(i18n("Hide not running Todos in To-do view"),
873 &(KOPrefs::instance()->mHideNonStartedTodos),topFrame); 872 &(KOPrefs::instance()->mHideNonStartedTodos),topFrame);
874 topLayout->addWidget(dummy->checkBox(),ii++,0); 873 topLayout->addWidget(dummy->checkBox(),ii++,0);
875 874
876 875
877 KPrefsDialogWidBool *showCompletedTodo = 876 KPrefsDialogWidBool *showCompletedTodo =
878 addWidBool(i18n("To-do view shows completed Todos"), 877 addWidBool(i18n("To-do view shows completed Todos"),
879 &(KOPrefs::instance()->mShowCompletedTodo),topFrame); 878 &(KOPrefs::instance()->mShowCompletedTodo),topFrame);
880 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); 879 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0);
881 dummy = 880 dummy =
882 addWidBool(i18n("To-do view shows complete as 'xx %'"), 881 addWidBool(i18n("To-do view shows complete as 'xx %'"),
883 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); 882 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame);
884 topLayout->addWidget(dummy->checkBox(),ii++,0); 883 topLayout->addWidget(dummy->checkBox(),ii++,0);
885 884
886 dummy = 885 dummy =
887 addWidBool(i18n("Small To-do view uses smaller font"), 886 addWidBool(i18n("Small To-do view uses smaller font"),
888 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); 887 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame);
889 topLayout->addWidget(dummy->checkBox(),ii++,0); 888 topLayout->addWidget(dummy->checkBox(),ii++,0);
890 889
891 890
892 891
893 dummy = 892 dummy =
894 addWidBool(i18n("Todo view uses category colors"), 893 addWidBool(i18n("Todo view uses category colors"),
895 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame); 894 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame);
896 topLayout->addWidget(dummy->checkBox(),ii++,0); 895 topLayout->addWidget(dummy->checkBox(),ii++,0);
897 896
898 897
899 QWidget* wid = new QWidget( topFrame ); 898 QWidget* wid = new QWidget( topFrame );
900 // Todo due today color 899 // Todo due today color
901 KPrefsDialogWidColor *todoDueTodayColor = 900 KPrefsDialogWidColor *todoDueTodayColor =
902 addWidColor(i18n("Todo due today color:"), 901 addWidColor(i18n("Todo due today color:"),
903 &(KOPrefs::instance()->mTodoDueTodayColor),wid); 902 &(KOPrefs::instance()->mTodoDueTodayColor),wid);
904 QHBoxLayout *widLayout = new QHBoxLayout(wid); 903 QHBoxLayout *widLayout = new QHBoxLayout(wid);
905 widLayout->addWidget( todoDueTodayColor->label() ); 904 widLayout->addWidget( todoDueTodayColor->label() );
906 widLayout->addWidget( todoDueTodayColor->button() ); 905 widLayout->addWidget( todoDueTodayColor->button() );
907 topLayout->addWidget(wid,ii++,0); 906 topLayout->addWidget(wid,ii++,0);
908 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1); 907 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1);
909 908
910 // Todo overdue color 909 // Todo overdue color
911 wid = new QWidget( topFrame ); 910 wid = new QWidget( topFrame );
912 widLayout = new QHBoxLayout(wid); 911 widLayout = new QHBoxLayout(wid);
913 KPrefsDialogWidColor *todoOverdueColor = 912 KPrefsDialogWidColor *todoOverdueColor =
914 addWidColor(i18n("Todo overdue color:"), 913 addWidColor(i18n("Todo overdue color:"),
915 &(KOPrefs::instance()->mTodoOverdueColor),wid); 914 &(KOPrefs::instance()->mTodoOverdueColor),wid);
916 widLayout->addWidget(todoOverdueColor->label()); 915 widLayout->addWidget(todoOverdueColor->label());
917 widLayout->addWidget(todoOverdueColor->button()); 916 widLayout->addWidget(todoOverdueColor->button());
918 topLayout->addWidget(wid,ii++,0); 917 topLayout->addWidget(wid,ii++,0);
919 918
920 dummy = 919 dummy =
921 addWidBool(i18n("Colors are applied to text"), 920 addWidBool(i18n("Colors are applied to text"),
922 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 921 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
923 topLayout->addWidget(dummy->checkBox(),ii++,0); 922 topLayout->addWidget(dummy->checkBox(),ii++,0);
924 923
925 dummy = 924 dummy =
926 addWidBool(i18n("Allday Agenda view shows todos"), 925 addWidBool(i18n("Allday Agenda view shows todos"),
927 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame); 926 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame);
928 topLayout->addWidget(dummy->checkBox(),ii++,0); 927 topLayout->addWidget(dummy->checkBox(),ii++,0);
929 928
930 929
931 topFrame = addPage(i18n("View Options"),0,0); 930 topFrame = addPage(i18n("View Options"),0,0);
932 931
933 topLayout = new QGridLayout(topFrame,4,1); 932 topLayout = new QGridLayout(topFrame,4,1);
934 topLayout->setSpacing(mSpacingHint); 933 topLayout->setSpacing(mSpacingHint);
935 topLayout->setMargin(mMarginHint); 934 topLayout->setMargin(mMarginHint);
936 ii = 0; 935 ii = 0;
937 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame); 936 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame);
938 topLayout->addWidget(lab ,ii++,0); 937 topLayout->addWidget(lab ,ii++,0);
939 938
940 dummy = addWidBool(i18n("Details"), 939 dummy = addWidBool(i18n("Details"),
941 &(KOPrefs::instance()->mEVshowDetails),topFrame); 940 &(KOPrefs::instance()->mEVshowDetails),topFrame);
942 topLayout->addWidget(dummy->checkBox(),ii++,0); 941 topLayout->addWidget(dummy->checkBox(),ii++,0);
943 dummy = addWidBool(i18n("Created time"), 942 dummy = addWidBool(i18n("Created time"),
944 &(KOPrefs::instance()->mEVshowCreated),topFrame); 943 &(KOPrefs::instance()->mEVshowCreated),topFrame);
945 topLayout->addWidget(dummy->checkBox(),ii++,0); 944 topLayout->addWidget(dummy->checkBox(),ii++,0);
946 dummy = addWidBool(i18n("Last modified time"), 945 dummy = addWidBool(i18n("Last modified time"),
947 &(KOPrefs::instance()->mEVshowChanged),topFrame); 946 &(KOPrefs::instance()->mEVshowChanged),topFrame);
948 topLayout->addWidget(dummy->checkBox(),ii++,0); 947 topLayout->addWidget(dummy->checkBox(),ii++,0);
949 948
950 949
951 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame); 950 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame);
952 topLayout->addWidget(lab ,ii++,0); 951 topLayout->addWidget(lab ,ii++,0);
953 952
954 dummy = addWidBool(i18n("Details"), 953 dummy = addWidBool(i18n("Details"),
955 &(KOPrefs::instance()->mWTshowDetails),topFrame); 954 &(KOPrefs::instance()->mWTshowDetails),topFrame);
956 topLayout->addWidget(dummy->checkBox(),ii++,0); 955 topLayout->addWidget(dummy->checkBox(),ii++,0);
957 dummy = addWidBool(i18n("Created time"), 956 dummy = addWidBool(i18n("Created time"),
958 &(KOPrefs::instance()->mWTshowCreated),topFrame); 957 &(KOPrefs::instance()->mWTshowCreated),topFrame);
959 topLayout->addWidget(dummy->checkBox(),ii++,0); 958 topLayout->addWidget(dummy->checkBox(),ii++,0);
960 dummy = addWidBool(i18n("Last modified time"), 959 dummy = addWidBool(i18n("Last modified time"),
961 &(KOPrefs::instance()->mWTshowChanged),topFrame); 960 &(KOPrefs::instance()->mWTshowChanged),topFrame);
962 topLayout->addWidget(dummy->checkBox(),ii++,0); 961 topLayout->addWidget(dummy->checkBox(),ii++,0);
963 962
964 963
965 topFrame = addPage(i18n("Alarm"),0,0); 964 topFrame = addPage(i18n("Alarm"),0,0);
966 // DesktopIcon("viewmag",KIcon::SizeMedium)); 965 // DesktopIcon("viewmag",KIcon::SizeMedium));
967 966
968 topLayout = new QGridLayout(topFrame,2,1); 967 topLayout = new QGridLayout(topFrame,2,1);
969 topLayout->setSpacing(mSpacingHint); 968 topLayout->setSpacing(mSpacingHint);
970 topLayout->setMargin(mMarginHint); 969 topLayout->setMargin(mMarginHint);
971 int iii = 0; 970 int iii = 0;
972 971
973 dummy = 972 dummy =
974 addWidBool(i18n("Use internal alarm notification"), 973 addWidBool(i18n("Use internal alarm notification"),
975 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 974 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
976 topLayout->addWidget(dummy->checkBox(),iii++,0); 975 topLayout->addWidget(dummy->checkBox(),iii++,0);
977 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 976 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
978 977
979 topLayout->addWidget(lab ,iii++,0); 978 topLayout->addWidget(lab ,iii++,0);
980#ifndef DESKTOP_VERSION 979#ifndef DESKTOP_VERSION
981 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 980 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
982#else 981#else
983 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 982 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
984 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 983 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
985#endif 984#endif
986 985
987 QHBox* dummyBox = new QHBox(topFrame); 986 QHBox* dummyBox = new QHBox(topFrame);
988 new QLabel(i18n("Play beeps count:"),dummyBox); 987 new QLabel(i18n("Play beeps count:"),dummyBox);
989 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 988 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
990 topLayout->addWidget(dummyBox,iii++,0); 989 topLayout->addWidget(dummyBox,iii++,0);
991 990
992 dummyBox = new QHBox(topFrame); 991 dummyBox = new QHBox(topFrame);
993 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 992 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
994 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 993 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
995 topLayout->addWidget(dummyBox,iii++,0); 994 topLayout->addWidget(dummyBox,iii++,0);
996 995
997 dummyBox = new QHBox(topFrame); 996 dummyBox = new QHBox(topFrame);
998 new QLabel(i18n("Default suspend time in min:"),dummyBox); 997 new QLabel(i18n("Default suspend time in min:"),dummyBox);
999 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 998 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
1000 topLayout->addWidget(dummyBox,iii++,0); 999 topLayout->addWidget(dummyBox,iii++,0);
1001 1000
1002 dummyBox = new QHBox(topFrame); 1001 dummyBox = new QHBox(topFrame);
1003 new QLabel(i18n("Auto suspend count:"),dummyBox); 1002 new QLabel(i18n("Auto suspend count:"),dummyBox);
1004 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 1003 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
1005 topLayout->addWidget(dummyBox,iii++,0); 1004 topLayout->addWidget(dummyBox,iii++,0);
1006 1005
1007 1006
1008 1007
1009 1008
1010 1009
1011 1010
1012 1011
1013 QHBox* hbo = new QHBox ( topFrame ); 1012 QHBox* hbo = new QHBox ( topFrame );
1014 mDefaultAlarmFile = new QLineEdit(hbo); 1013 mDefaultAlarmFile = new QLineEdit(hbo);
1015 QPushButton * loadTemplate = new QPushButton(hbo); 1014 QPushButton * loadTemplate = new QPushButton(hbo);
1016 QPixmap icon; 1015 QPixmap icon;
1017 if ( QApplication::desktop()->width() < 321 ) 1016 if ( QApplication::desktop()->width() < 321 )
1018 icon = SmallIcon("fileimport16"); 1017 icon = SmallIcon("fileimport16");
1019 else 1018 else
1020 icon = SmallIcon("fileimport"); 1019 icon = SmallIcon("fileimport");
1021 loadTemplate->setIconSet (icon ) ; 1020 loadTemplate->setIconSet (icon ) ;
1022 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) ); 1021 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) );
1023 int size = loadTemplate->sizeHint().height(); 1022 int size = loadTemplate->sizeHint().height();
1024 loadTemplate->setFixedSize( size, size ); 1023 loadTemplate->setFixedSize( size, size );
1025 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame); 1024 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame);
1026 // topLayout->addWidget(lab ,iii++,0); 1025 // topLayout->addWidget(lab ,iii++,0);
1027 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame); 1026 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame);
1028 topLayout->addWidget(lab ,iii++,0); 1027 topLayout->addWidget(lab ,iii++,0);
1029 topLayout->addWidget(hbo,iii++,0); 1028 topLayout->addWidget(hbo,iii++,0);
1030 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame); 1029 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame);
1031 1030
1032// topLayout->addWidget(lab ,iii++,0); 1031// topLayout->addWidget(lab ,iii++,0);
1033// #ifndef DESKTOP_VERSION 1032// #ifndef DESKTOP_VERSION
1034// lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1033// lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1035// #else 1034// #else
1036// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1035// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1037// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1036// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1038// #endif 1037// #endif
1039 1038
1040 1039
1041} 1040}
1042 1041
1043void KOPrefsDialog::selectSoundFile() 1042void KOPrefsDialog::selectSoundFile()
1044{ 1043{
1045 QString fileName = mDefaultAlarmFile->text(); 1044 QString fileName = mDefaultAlarmFile->text();
1046 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this ); 1045 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this );
1047 if ( fileName.length() > 0 ) 1046 if ( fileName.length() > 0 )
1048 mDefaultAlarmFile->setText( fileName ); 1047 mDefaultAlarmFile->setText( fileName );
1049} 1048}
1050void KOPrefsDialog::setupFontsTab() 1049void KOPrefsDialog::setupFontsTab()
1051{ 1050{
1052 1051
1053 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 1052 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
1054 // DesktopIcon("fonts",KIcon::SizeMedium)); 1053 // DesktopIcon("fonts",KIcon::SizeMedium));
1055 1054
1056 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 1055 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
1057 topLayout->setSpacing(1); 1056 topLayout->setSpacing(1);
1058 topLayout->setMargin(3); 1057 topLayout->setMargin(3);
1059 KPrefsDialogWidFont * tVFont; 1058 KPrefsDialogWidFont * tVFont;
1060 int i = 0; 1059 int i = 0;
1061 KPrefsDialogWidFont *timeLabelsFont = 1060 KPrefsDialogWidFont *timeLabelsFont =
1062 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"), 1061 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"),
1063 &(KOPrefs::instance()->mDateNavigatorFont),topFrame); 1062 &(KOPrefs::instance()->mDateNavigatorFont),topFrame);
1064 topLayout->addWidget(timeLabelsFont->label(),i,0); 1063 topLayout->addWidget(timeLabelsFont->label(),i,0);
1065 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1064 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1066 topLayout->addWidget(timeLabelsFont->button(),i,2); 1065 topLayout->addWidget(timeLabelsFont->button(),i,2);
1067 ++i; 1066 ++i;
1068 1067
1069 1068
1070 timeLabelsFont = 1069 timeLabelsFont =
1071 addWidFont(i18n("Mon 15"),i18n("Date Labels:"), 1070 addWidFont(i18n("Mon 15"),i18n("Date Labels:"),
1072 &(KOPrefs::instance()->mTimeLabelsFont),topFrame); 1071 &(KOPrefs::instance()->mTimeLabelsFont),topFrame);
1073 topLayout->addWidget(timeLabelsFont->label(),i,0); 1072 topLayout->addWidget(timeLabelsFont->label(),i,0);
1074 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1073 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1075 topLayout->addWidget(timeLabelsFont->button(),i,2); 1074 topLayout->addWidget(timeLabelsFont->button(),i,2);
1076 ++i; 1075 ++i;
1077 1076
1078 KPrefsDialogWidFont *timeBarFont = 1077 KPrefsDialogWidFont *timeBarFont =
1079 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"), 1078 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"),
1080 &(KOPrefs::instance()->mTimeBarFont),topFrame); 1079 &(KOPrefs::instance()->mTimeBarFont),topFrame);
1081 topLayout->addWidget(timeBarFont->label(),i,0); 1080 topLayout->addWidget(timeBarFont->label(),i,0);
1082 topLayout->addWidget(timeBarFont->preview(),i,1); 1081 topLayout->addWidget(timeBarFont->preview(),i,1);
1083 topLayout->addWidget(timeBarFont->button(),i,2); 1082 topLayout->addWidget(timeBarFont->button(),i,2);
1084 ++i; 1083 ++i;
1085 1084
1086 1085
1087 KPrefsDialogWidFont *marcusBainsFont = 1086 KPrefsDialogWidFont *marcusBainsFont =
1088 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"), 1087 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"),
1089 &(KOPrefs::instance()->mMarcusBainsFont),topFrame); 1088 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
1090 topLayout->addWidget(marcusBainsFont->label(),i,0); 1089 topLayout->addWidget(marcusBainsFont->label(),i,0);
1091 topLayout->addWidget(marcusBainsFont->preview(),i,1); 1090 topLayout->addWidget(marcusBainsFont->preview(),i,1);
1092 topLayout->addWidget(marcusBainsFont->button(),i,2); 1091 topLayout->addWidget(marcusBainsFont->button(),i,2);
1093 ++i; 1092 ++i;
1094 1093
1095 tVFont = 1094 tVFont =
1096 addWidFont(i18n("Summary"),i18n("Event Viewer:"), 1095 addWidFont(i18n("Summary"),i18n("Event Viewer:"),
1097 &(KOPrefs::instance()->mEventViewFont),topFrame); 1096 &(KOPrefs::instance()->mEventViewFont),topFrame);
1098 topLayout->addWidget(tVFont->label(),i,0); 1097 topLayout->addWidget(tVFont->label(),i,0);
1099 topLayout->addWidget(tVFont->preview(),i,1); 1098 topLayout->addWidget(tVFont->preview(),i,1);
1100 topLayout->addWidget(tVFont->button(),i,2); 1099 topLayout->addWidget(tVFont->button(),i,2);
1101 ++i; 1100 ++i;
1102 1101
1103 1102
1104 1103
1105 tVFont = 1104 tVFont =
1106 addWidFont(i18n("Details"),i18n("EditorBox:"), 1105 addWidFont(i18n("Details"),i18n("EditorBox:"),
1107 &(KOPrefs::instance()->mEditBoxFont),topFrame); 1106 &(KOPrefs::instance()->mEditBoxFont),topFrame);
1108 topLayout->addWidget(tVFont->label(),i,0); 1107 topLayout->addWidget(tVFont->label(),i,0);
1109 topLayout->addWidget(tVFont->preview(),i,1); 1108 topLayout->addWidget(tVFont->preview(),i,1);
1110 topLayout->addWidget(tVFont->button(),i,2); 1109 topLayout->addWidget(tVFont->button(),i,2);
1111 ++i; 1110 ++i;
1112 1111
1113 1112
1114 1113
1115 topLayout->setColStretch(1,1); 1114 topLayout->setColStretch(1,1);
1116 topLayout->setRowStretch(4,1); 1115 topLayout->setRowStretch(4,1);
1117 1116
1118 1117
1119 i = 0; 1118 i = 0;
1120 topFrame = addPage(i18n("View Fonts"),0, 1119 topFrame = addPage(i18n("View Fonts"),0,
1121 DesktopIcon("fonts",KIcon::SizeMedium)); 1120 DesktopIcon("fonts",KIcon::SizeMedium));
1122 1121
1123 topLayout = new QGridLayout(topFrame,7,3); 1122 topLayout = new QGridLayout(topFrame,7,3);
1124 topLayout->setSpacing(1); 1123 topLayout->setSpacing(1);
1125 topLayout->setMargin(3); 1124 topLayout->setMargin(3);
1126 1125
1127 tVFont = 1126 tVFont =
1128 addWidFont(i18n("Configure KO"),i18n("What's Next View:"), 1127 addWidFont(i18n("Configure KO"),i18n("What's Next View:"),
1129 &(KOPrefs::instance()->mWhatsNextFont),topFrame); 1128 &(KOPrefs::instance()->mWhatsNextFont),topFrame);
1130 topLayout->addWidget(tVFont->label(),i,0); 1129 topLayout->addWidget(tVFont->label(),i,0);
1131 topLayout->addWidget(tVFont->preview(),i,1); 1130 topLayout->addWidget(tVFont->preview(),i,1);
1132 topLayout->addWidget(tVFont->button(),i,2); 1131 topLayout->addWidget(tVFont->button(),i,2);
1133 ++i; 1132 ++i;
1134 KPrefsDialogWidFont *agendaViewFont = 1133 KPrefsDialogWidFont *agendaViewFont =
1135 addWidFont(i18n("Event text"),i18n("Agenda view:"), 1134 addWidFont(i18n("Event text"),i18n("Agenda view:"),
1136 &(KOPrefs::instance()->mAgendaViewFont),topFrame); 1135 &(KOPrefs::instance()->mAgendaViewFont),topFrame);
1137 topLayout->addWidget(agendaViewFont->label(),i,0); 1136 topLayout->addWidget(agendaViewFont->label(),i,0);
1138 topLayout->addWidget(agendaViewFont->preview(),i,1); 1137 topLayout->addWidget(agendaViewFont->preview(),i,1);
1139 topLayout->addWidget(agendaViewFont->button(),i,2); 1138 topLayout->addWidget(agendaViewFont->button(),i,2);
1140 ++i; 1139 ++i;
1141 1140
1142 1141
1143 KPrefsDialogWidFont *monthViewFont = 1142 KPrefsDialogWidFont *monthViewFont =
1144 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"), 1143 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"),
1145 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame); 1144 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame);
1146 topLayout->addWidget(monthViewFont->label(),i,0); 1145 topLayout->addWidget(monthViewFont->label(),i,0);
1147 topLayout->addWidget(monthViewFont->preview(),i,1); 1146 topLayout->addWidget(monthViewFont->preview(),i,1);
1148 topLayout->addWidget(monthViewFont->button(),i,2); 1147 topLayout->addWidget(monthViewFont->button(),i,2);
1149 ++i; 1148 ++i;
1150 1149
1151 1150
1152 KPrefsDialogWidFont *lVFont = 1151 KPrefsDialogWidFont *lVFont =
1153 addWidFont(i18n("Event"),i18n("List View:"), 1152 addWidFont(i18n("Event"),i18n("List View:"),
1154 &(KOPrefs::instance()->mListViewFont),topFrame); 1153 &(KOPrefs::instance()->mListViewFont),topFrame);
1155 topLayout->addWidget(lVFont->label(),i,0); 1154 topLayout->addWidget(lVFont->label(),i,0);
1156 topLayout->addWidget(lVFont->preview(),i,1); 1155 topLayout->addWidget(lVFont->preview(),i,1);
1157 topLayout->addWidget(lVFont->button(),i,2); 1156 topLayout->addWidget(lVFont->button(),i,2);
1158 ++i; 1157 ++i;
1159 1158
1160 1159
1161 tVFont = 1160 tVFont =
1162 addWidFont(i18n("ToDo"),i18n("ToDoView:"), 1161 addWidFont(i18n("ToDo"),i18n("ToDoView:"),
1163 &(KOPrefs::instance()->mTodoViewFont),topFrame); 1162 &(KOPrefs::instance()->mTodoViewFont),topFrame);
1164 topLayout->addWidget(tVFont->label(),i,0); 1163 topLayout->addWidget(tVFont->label(),i,0);
1165 topLayout->addWidget(tVFont->preview(),i,1); 1164 topLayout->addWidget(tVFont->preview(),i,1);
1166 topLayout->addWidget(tVFont->button(),i,2); 1165 topLayout->addWidget(tVFont->button(),i,2);
1167 ++i; 1166 ++i;
1168 1167
1169 1168
1170 tVFont = 1169 tVFont =
1171 addWidFont(i18n("Today"),i18n("JournalView:"), 1170 addWidFont(i18n("Today"),i18n("JournalView:"),
1172 &(KOPrefs::instance()->mJornalViewFont),topFrame); 1171 &(KOPrefs::instance()->mJornalViewFont),topFrame);
1173 topLayout->addWidget(tVFont->label(),i,0); 1172 topLayout->addWidget(tVFont->label(),i,0);
1174 topLayout->addWidget(tVFont->preview(),i,1); 1173 topLayout->addWidget(tVFont->preview(),i,1);
1175 topLayout->addWidget(tVFont->button(),i,2); 1174 topLayout->addWidget(tVFont->button(),i,2);
1176 ++i; 1175 ++i;
1177 1176
1178 1177
1179 1178
1180 1179
1181 topLayout->setColStretch(1,1); 1180 topLayout->setColStretch(1,1);
1182 topLayout->setRowStretch(4,1); 1181 topLayout->setRowStretch(4,1);
1183 1182
1184 1183
1185 1184
1186 1185
1187} 1186}
1188 1187
1189void KOPrefsDialog::setupColorsTab() 1188void KOPrefsDialog::setupColorsTab()
1190{ 1189{
1191 QFrame *topFrame = addPage(i18n("Colors"),0,0); 1190 QFrame *topFrame = addPage(i18n("Colors"),0,0);
1192 // DesktopIcon("colorize",KIcon::SizeMedium)); 1191 // DesktopIcon("colorize",KIcon::SizeMedium));
1193 1192
1194 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1193 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
1195 // topLayout->setSpacing(mSpacingHint); 1194 // topLayout->setSpacing(mSpacingHint);
1196 // topLayout->setMargin(mMarginHint); 1195 // topLayout->setMargin(mMarginHint);
1197 1196
1198 topLayout->setSpacing(2); 1197 topLayout->setSpacing(2);
1199 topLayout->setMargin(3); 1198 topLayout->setMargin(3);
1200 1199
1201 int ii = 1; 1200 int ii = 1;
1202 QGroupBox *categoryGroup ; 1201 QGroupBox *categoryGroup ;
1203 1202
1204 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"), 1203 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"),
1205 topFrame); 1204 topFrame);
1206 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1); 1205 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1);
1207 1206
1208 mCategoryCombo = new QComboBox(categoryGroup); 1207 mCategoryCombo = new QComboBox(categoryGroup);
1209 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1208 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1210 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor())); 1209 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor()));
1211 1210
1212 mCategoryButton = new KColorButton(categoryGroup); 1211 mCategoryButton = new KColorButton(categoryGroup);
1213 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor())); 1212 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor()));
1214 updateCategoryColor(); 1213 updateCategoryColor();
1215 1214
1216 1215
1217 // Holiday Color 1216 // Holiday Color
1218 1217
1219 KPrefsDialogWidColor *holidayColor = 1218 KPrefsDialogWidColor *holidayColor =
1220 addWidColor(i18n("Holiday color:"), 1219 addWidColor(i18n("Holiday color:"),
1221 &(KOPrefs::instance()->mHolidayColor),topFrame); 1220 &(KOPrefs::instance()->mHolidayColor),topFrame);
1222 topLayout->addWidget(holidayColor->label(),ii,0); 1221 topLayout->addWidget(holidayColor->label(),ii,0);
1223 topLayout->addWidget(holidayColor->button(),ii++,1); 1222 topLayout->addWidget(holidayColor->button(),ii++,1);
1224 1223
1225 // Highlight Color 1224 // Highlight Color
1226 KPrefsDialogWidColor *highlightColor = 1225 KPrefsDialogWidColor *highlightColor =
1227 addWidColor(i18n("Highlight color:"), 1226 addWidColor(i18n("Highlight color:"),
1228 &(KOPrefs::instance()->mHighlightColor),topFrame); 1227 &(KOPrefs::instance()->mHighlightColor),topFrame);
1229 topLayout->addWidget(highlightColor->label(),ii,0); 1228 topLayout->addWidget(highlightColor->label(),ii,0);
1230 topLayout->addWidget(highlightColor->button(),ii++,1); 1229 topLayout->addWidget(highlightColor->button(),ii++,1);
1231 1230
1232 // Event color 1231 // Event color
1233 KPrefsDialogWidColor *eventColor = 1232 KPrefsDialogWidColor *eventColor =
1234 addWidColor(i18n("Default event color:"), 1233 addWidColor(i18n("Default event color:"),
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 9505d06..94f4677 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1265,1028 +1265,1024 @@ void MainWindow::initActions()
1265 if (p-> mShowIconFilter) 1265 if (p-> mShowIconFilter)
1266 configureToolBarMenu->setItemChecked( 7, true ); 1266 configureToolBarMenu->setItemChecked( 7, true );
1267 if (p-> mShowIconOnetoolbar) 1267 if (p-> mShowIconOnetoolbar)
1268 configureToolBarMenu->setItemChecked( 6, true ); 1268 configureToolBarMenu->setItemChecked( 6, true );
1269 1269
1270 1270
1271 if ( filterMenubar ) 1271 if ( filterMenubar )
1272 connect( mView->filterView(), SIGNAL( filterChanged() ), SLOT( updateFilterToolbar() ) ); 1272 connect( mView->filterView(), SIGNAL( filterChanged() ), SLOT( updateFilterToolbar() ) );
1273 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 1273 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
1274 configureAgenda( p->mHourSize ); 1274 configureAgenda( p->mHourSize );
1275 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 1275 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
1276} 1276}
1277 1277
1278void MainWindow::exportToPhone( int mode ) 1278void MainWindow::exportToPhone( int mode )
1279{ 1279{
1280 1280
1281 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1281 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1282 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1282 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1283 KOex2phonePrefs ex2phone; 1283 KOex2phonePrefs ex2phone;
1284 1284
1285 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 1285 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
1286 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 1286 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
1287 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1287 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
1288 if ( mode == 1 ) 1288 if ( mode == 1 )
1289 ex2phone.setCaption(i18n("Export complete calendar")); 1289 ex2phone.setCaption(i18n("Export complete calendar"));
1290 if ( mode == 2 ) 1290 if ( mode == 2 )
1291 ex2phone.setCaption(i18n("Export filtered calendar")); 1291 ex2phone.setCaption(i18n("Export filtered calendar"));
1292 1292
1293 if ( !ex2phone.exec() ) { 1293 if ( !ex2phone.exec() ) {
1294 return; 1294 return;
1295 } 1295 }
1296 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1296 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1297 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1297 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1298 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1298 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1299 1299
1300 int inFuture = 0; 1300 int inFuture = 0;
1301 if ( ex2phone.mWriteBackFuture->isChecked() ) 1301 if ( ex2phone.mWriteBackFuture->isChecked() )
1302 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1302 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1303 QPtrList<Incidence> delSel; 1303 QPtrList<Incidence> delSel;
1304 if ( mode == 1 ) 1304 if ( mode == 1 )
1305 delSel = mCalendar->rawIncidences(); 1305 delSel = mCalendar->rawIncidences();
1306 if ( mode == 2 ) 1306 if ( mode == 2 )
1307 delSel = mCalendar->incidences(); 1307 delSel = mCalendar->incidences();
1308 CalendarLocal* cal = new CalendarLocal(); 1308 CalendarLocal* cal = new CalendarLocal();
1309 cal->setLocalTime(); 1309 cal->setLocalTime();
1310 Incidence *incidence = delSel.first(); 1310 Incidence *incidence = delSel.first();
1311 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1311 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1312 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 1312 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
1313 while ( incidence ) { 1313 while ( incidence ) {
1314 if ( incidence->type() != "Journal" ) { 1314 if ( incidence->type() != "Journal" ) {
1315 bool add = true; 1315 bool add = true;
1316 if ( inFuture ) { 1316 if ( inFuture ) {
1317 QDateTime dt; 1317 QDateTime dt;
1318 if ( incidence->type() == "Todo" ) { 1318 if ( incidence->type() == "Todo" ) {
1319 Todo * t = (Todo*)incidence; 1319 Todo * t = (Todo*)incidence;
1320 if ( t->hasDueDate() ) 1320 if ( t->hasDueDate() )
1321 dt = t->dtDue(); 1321 dt = t->dtDue();
1322 else 1322 else
1323 dt = cur.addSecs( 62 ); 1323 dt = cur.addSecs( 62 );
1324 } 1324 }
1325 else { 1325 else {
1326 bool ok; 1326 bool ok;
1327 dt = incidence->getNextOccurence( cur, &ok ); 1327 dt = incidence->getNextOccurence( cur, &ok );
1328 if ( !ok ) 1328 if ( !ok )
1329 dt = cur.addSecs( -62 ); 1329 dt = cur.addSecs( -62 );
1330 } 1330 }
1331 if ( dt < cur || dt > end ) { 1331 if ( dt < cur || dt > end ) {
1332 add = false; 1332 add = false;
1333 } 1333 }
1334 } 1334 }
1335 if ( add ) { 1335 if ( add ) {
1336 Incidence *in = incidence->clone(); 1336 Incidence *in = incidence->clone();
1337 cal->addIncidence( in ); 1337 cal->addIncidence( in );
1338 } 1338 }
1339 } 1339 }
1340 incidence = delSel.next(); 1340 incidence = delSel.next();
1341 } 1341 }
1342 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 1342 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1343 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 1343 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1344 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1344 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1345 1345
1346 setCaption( i18n("Writing to phone...")); 1346 setCaption( i18n("Writing to phone..."));
1347 if ( PhoneFormat::writeToPhone( cal ) ) 1347 if ( PhoneFormat::writeToPhone( cal ) )
1348 setCaption( i18n("Export to phone successful!")); 1348 setCaption( i18n("Export to phone successful!"));
1349 else 1349 else
1350 setCaption( i18n("Error exporting to phone!")); 1350 setCaption( i18n("Error exporting to phone!"));
1351 delete cal; 1351 delete cal;
1352} 1352}
1353 1353
1354 1354
1355void MainWindow::setDefaultPreferences() 1355void MainWindow::setDefaultPreferences()
1356{ 1356{
1357 KOPrefs *p = KOPrefs::instance(); 1357 KOPrefs *p = KOPrefs::instance();
1358 1358
1359 p->mCompactDialogs = true; 1359 p->mCompactDialogs = true;
1360 p->mConfirm = true; 1360 p->mConfirm = true;
1361 // p->mEnableQuickTodo = false; 1361 // p->mEnableQuickTodo = false;
1362 1362
1363} 1363}
1364 1364
1365QString MainWindow::resourcePath() 1365QString MainWindow::resourcePath()
1366{ 1366{
1367 return KGlobal::iconLoader()->iconPath(); 1367 return KGlobal::iconLoader()->iconPath();
1368} 1368}
1369 1369
1370void MainWindow::displayText( QString text ,QString cap ) 1370void MainWindow::displayText( QString text ,QString cap )
1371{ 1371{
1372 QDialog dia( this, "name", true ); ; 1372 QDialog dia( this, "name", true ); ;
1373 dia.setCaption( cap ); 1373 dia.setCaption( cap );
1374 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1374 QVBoxLayout* lay = new QVBoxLayout( &dia );
1375 lay->setSpacing( 3 ); 1375 lay->setSpacing( 3 );
1376 lay->setMargin( 3 ); 1376 lay->setMargin( 3 );
1377 QTextBrowser tb ( &dia ); 1377 QTextBrowser tb ( &dia );
1378 lay->addWidget( &tb ); 1378 lay->addWidget( &tb );
1379 tb.setText( text ); 1379 tb.setText( text );
1380#ifdef DESKTOP_VERSION 1380#ifdef DESKTOP_VERSION
1381 dia.resize( 640, 480); 1381 dia.resize( 640, 480);
1382#else 1382#else
1383 dia.showMaximized(); 1383 dia.showMaximized();
1384#endif 1384#endif
1385 dia.exec(); 1385 dia.exec();
1386} 1386}
1387 1387
1388void MainWindow::features() 1388void MainWindow::features()
1389{ 1389{
1390 1390
1391 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" ); 1391 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" );
1392} 1392}
1393 1393
1394void MainWindow::usertrans() 1394void MainWindow::usertrans()
1395{ 1395{
1396 1396
1397 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" ); 1397 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" );
1398} 1398}
1399 1399
1400void MainWindow::storagehowto() 1400void MainWindow::storagehowto()
1401{ 1401{
1402 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" ); 1402 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" );
1403} 1403}
1404void MainWindow::kdesynchowto() 1404void MainWindow::kdesynchowto()
1405{ 1405{
1406 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 1406 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
1407} 1407}
1408void MainWindow::multisynchowto() 1408void MainWindow::multisynchowto()
1409{ 1409{
1410 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 1410 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
1411} 1411}
1412void MainWindow::synchowto() 1412void MainWindow::synchowto()
1413{ 1413{
1414 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1414 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1415} 1415}
1416void MainWindow::faq() 1416void MainWindow::faq()
1417{ 1417{
1418 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" ); 1418 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" );
1419 1419
1420} 1420}
1421void MainWindow::whatsNew() 1421void MainWindow::whatsNew()
1422{ 1422{
1423 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 1423 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1424 1424
1425} 1425}
1426void MainWindow::licence() 1426void MainWindow::licence()
1427{ 1427{
1428 KApplication::showLicence(); 1428 KApplication::showLicence();
1429 1429
1430} 1430}
1431void MainWindow::about() 1431void MainWindow::about()
1432{ 1432{
1433 QString version; 1433 QString version;
1434#include <../version> 1434#include <../version>
1435 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1435 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1436 i18n("KOrganizer/Platform-independent\n") + 1436 i18n("KOrganizer/Platform-independent\n") +
1437 "(KO/Pi) " + version + " - " + 1437 "(KO/Pi) " + version + " - " +
1438 1438
1439#ifdef DESKTOP_VERSION 1439#ifdef DESKTOP_VERSION
1440 i18n("Desktop Edition\n") + 1440 i18n("Desktop Edition\n") +
1441#else 1441#else
1442 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + 1442 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") +
1443#endif 1443#endif
1444 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") ); 1444 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") );
1445} 1445}
1446void MainWindow::keyBindings() 1446void MainWindow::keyBindings()
1447{ 1447{
1448 QString cap = i18n("KO/Pi Keys + Colors"); 1448 QString cap = i18n("KO/Pi Keys + Colors");
1449 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1449 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1450 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1450 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1451 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") + 1451 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") +
1452 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") + 1452 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") +
1453 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1453 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1454 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1454 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1455 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1455 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1456 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1456 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1457 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1457 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1458 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+ 1458 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+
1459 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1459 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1460 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1460 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1461 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1461 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1462 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ 1462 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+
1463 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1463 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1464 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1464 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1465 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+ 1465 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+
1466 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1466 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1467 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1467 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1468 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1468 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1469 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1469 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1470 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1470 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1471 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1471 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1472 i18n("<p><h3>In agenda view:</h3></p>\n") + 1472 i18n("<p><h3>In agenda view:</h3></p>\n") +
1473 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1473 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1474 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1474 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1475 i18n("<p><h3>In todo view:</h3></p>\n") + 1475 i18n("<p><h3>In todo view:</h3></p>\n") +
1476 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1476 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1477 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1477 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1478 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1478 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1479 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1479 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1480 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1480 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1481 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1481 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1482 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1482 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1483 i18n("<p><h3>In list view:</h3></p>\n") + 1483 i18n("<p><h3>In list view:</h3></p>\n") +
1484 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1484 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1485 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1485 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1486 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1486 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1487 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1487 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1488 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1488 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1489 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1489 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1490 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1490 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1491 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1491 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1492 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1492 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1493 i18n("<p><b>E</b>: Edit item</p>\n") + 1493 i18n("<p><b>E</b>: Edit item</p>\n") +
1494 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1494 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1495 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1495 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1496 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1496 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1497 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1497 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1498 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1498 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1499 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1499 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1500 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1500 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1501 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1501 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1502 i18n("<p><b>White</b>: Item readonly</p>\n"); 1502 i18n("<p><b>White</b>: Item readonly</p>\n");
1503 displayText( text, cap); 1503 displayText( text, cap);
1504} 1504}
1505void MainWindow::aboutAutoSaving() 1505void MainWindow::aboutAutoSaving()
1506{ 1506{
1507 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"); 1507 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n");
1508 1508
1509 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); 1509 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text);
1510 1510
1511} 1511}
1512void MainWindow::aboutKnownBugs() 1512void MainWindow::aboutKnownBugs()
1513{ 1513{
1514 QMessageBox* msg; 1514 QMessageBox* msg;
1515 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1515 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1516 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ 1516 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+
1517 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1517 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1518 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") + 1518 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") +
1519 i18n("\nor report them in the bugtracker on\n") + 1519 i18n("\nor report them in the bugtracker on\n") +
1520 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1520 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1521 QMessageBox::NoIcon, 1521 QMessageBox::NoIcon,
1522 QMessageBox::Ok, 1522 QMessageBox::Ok,
1523 QMessageBox::NoButton, 1523 QMessageBox::NoButton,
1524 QMessageBox::NoButton); 1524 QMessageBox::NoButton);
1525 msg->exec(); 1525 msg->exec();
1526 delete msg; 1526 delete msg;
1527 1527
1528} 1528}
1529 1529
1530QString MainWindow::defaultFileName() 1530QString MainWindow::defaultFileName()
1531{ 1531{
1532 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1532 return locateLocal( "data", "korganizer/mycalendar.ics" );
1533} 1533}
1534QString MainWindow::syncFileName() 1534QString MainWindow::syncFileName()
1535{ 1535{
1536#ifdef DESKTOP_VERSION 1536#ifdef DESKTOP_VERSION
1537 return locateLocal( "tmp", "synccalendar.ics" ); 1537 return locateLocal( "tmp", "synccalendar.ics" );
1538#else 1538#else
1539 return QString( "/tmp/synccalendar.ics" ); 1539 return QString( "/tmp/synccalendar.ics" );
1540#endif 1540#endif
1541} 1541}
1542#include "koglobals.h" 1542#include "koglobals.h"
1543#include <kcalendarsystem.h> 1543#include <kcalendarsystem.h>
1544void MainWindow::updateWeek(QDate seda) 1544void MainWindow::updateWeek(QDate seda)
1545{ 1545{
1546 int weekNum = KGlobal::locale()->weekNum ( seda ); 1546 int weekNum = KGlobal::locale()->weekNum ( seda );
1547 mWeekPixmap.fill( mWeekBgColor ); 1547 mWeekPixmap.fill( mWeekBgColor );
1548 QPainter p ( &mWeekPixmap ); 1548 QPainter p ( &mWeekPixmap );
1549 p.setFont( mWeekFont ); 1549 p.setFont( mWeekFont );
1550 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) ); 1550 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) );
1551 p.end(); 1551 p.end();
1552 QIconSet icon3 ( mWeekPixmap ); 1552 QIconSet icon3 ( mWeekPixmap );
1553 mWeekAction->setIconSet ( icon3 ); 1553 mWeekAction->setIconSet ( icon3 );
1554 1554
1555} 1555}
1556void MainWindow::updateWeekNum(const DateList &selectedDates) 1556void MainWindow::updateWeekNum(const DateList &selectedDates)
1557{ 1557{
1558 updateWeek( selectedDates.first() ); 1558 updateWeek( selectedDates.first() );
1559} 1559}
1560void MainWindow::processIncidenceSelection( Incidence *incidence ) 1560void MainWindow::processIncidenceSelection( Incidence *incidence )
1561{ 1561{
1562 1562
1563 if ( !incidence ) { 1563 if ( !incidence ) {
1564 enableIncidenceActions( false ); 1564 enableIncidenceActions( false );
1565 1565
1566 mNewSubTodoAction->setEnabled( false ); 1566 mNewSubTodoAction->setEnabled( false );
1567 setCaptionToDates(); 1567 setCaptionToDates();
1568 return; 1568 return;
1569 1569
1570 } 1570 }
1571 1571
1572 //KGlobal::locale()->formatDateTime(nextA, true); 1572 //KGlobal::locale()->formatDateTime(nextA, true);
1573 QString startString = ""; 1573 QString startString = "";
1574 if ( incidence->type() != "Todo" ) { 1574 if ( incidence->type() != "Todo" ) {
1575 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1575 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1576 if ( incidence->doesFloat() ) { 1576 if ( incidence->doesFloat() ) {
1577 startString += ": "+incidence->dtStartDateStr( true ); 1577 startString += ": "+incidence->dtStartDateStr( true );
1578 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1578 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1579 1579
1580 } else { 1580 } else {
1581 startString = ": "+incidence->dtStartStr(true); 1581 startString = ": "+incidence->dtStartStr(true);
1582 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1582 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1583 1583
1584 } 1584 }
1585 1585
1586 } else { 1586 } else {
1587 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1587 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1588 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1588 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1589 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1589 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1590 if ( incidence->categories().contains( i18n("Birthday") ) || incidence->categories().contains( i18n("Anniversary") ) ) { 1590 if ( incidence->categories().contains( i18n("Birthday") ) || incidence->categories().contains( i18n("Anniversary") ) ) {
1591 bool ok; 1591 bool ok;
1592 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); 1592 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok );
1593 if ( ok ) { 1593 if ( ok ) {
1594 int years = noc.date().year() - incidence->dtStart().date().year(); 1594 int years = noc.date().year() - incidence->dtStart().date().year();
1595 startString += i18n(" (%1 y.)"). arg( years ); 1595 startString += i18n(" (%1 y.)"). arg( years );
1596 } 1596 }
1597 } 1597 }
1598 else 1598 else
1599 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1599 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1600 } 1600 }
1601 1601
1602 } 1602 }
1603 else 1603 else
1604 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1604 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1605 if ( !incidence->location().isEmpty() ) 1605 if ( !incidence->location().isEmpty() )
1606 startString += " (" +incidence->location()+")"; 1606 startString += " (" +incidence->location()+")";
1607 setCaption( incidence->summary()+startString); 1607 setCaption( incidence->summary()+startString);
1608 1608
1609 enableIncidenceActions( true ); 1609 enableIncidenceActions( true );
1610 1610
1611 if ( incidence->type() == "Event" ) { 1611 if ( incidence->type() == "Event" ) {
1612 mShowAction->setText( i18n("Show Event...") ); 1612 mShowAction->setText( i18n("Show Event...") );
1613 mEditAction->setText( i18n("Edit Event...") ); 1613 mEditAction->setText( i18n("Edit Event...") );
1614 mDeleteAction->setText( i18n("Delete Event...") ); 1614 mDeleteAction->setText( i18n("Delete Event...") );
1615 1615
1616 mNewSubTodoAction->setEnabled( false ); 1616 mNewSubTodoAction->setEnabled( false );
1617 } else if ( incidence->type() == "Todo" ) { 1617 } else if ( incidence->type() == "Todo" ) {
1618 mShowAction->setText( i18n("Show Todo...") ); 1618 mShowAction->setText( i18n("Show Todo...") );
1619 mEditAction->setText( i18n("Edit Todo...") ); 1619 mEditAction->setText( i18n("Edit Todo...") );
1620 mDeleteAction->setText( i18n("Delete Todo...") ); 1620 mDeleteAction->setText( i18n("Delete Todo...") );
1621 1621
1622 mNewSubTodoAction->setEnabled( true ); 1622 mNewSubTodoAction->setEnabled( true );
1623 } else { 1623 } else {
1624 mShowAction->setText( i18n("Show...") ); 1624 mShowAction->setText( i18n("Show...") );
1625 mShowAction->setText( i18n("Edit...") ); 1625 mShowAction->setText( i18n("Edit...") );
1626 mShowAction->setText( i18n("Delete...") ); 1626 mShowAction->setText( i18n("Delete...") );
1627 1627
1628 mNewSubTodoAction->setEnabled( false ); 1628 mNewSubTodoAction->setEnabled( false );
1629 } 1629 }
1630} 1630}
1631 1631
1632void MainWindow::enableIncidenceActions( bool enabled ) 1632void MainWindow::enableIncidenceActions( bool enabled )
1633{ 1633{
1634 mShowAction->setEnabled( enabled ); 1634 mShowAction->setEnabled( enabled );
1635 mEditAction->setEnabled( enabled ); 1635 mEditAction->setEnabled( enabled );
1636 mDeleteAction->setEnabled( enabled ); 1636 mDeleteAction->setEnabled( enabled );
1637 1637
1638 mCloneAction->setEnabled( enabled ); 1638 mCloneAction->setEnabled( enabled );
1639 mMoveAction->setEnabled( enabled ); 1639 mMoveAction->setEnabled( enabled );
1640 mBeamAction->setEnabled( enabled ); 1640 mBeamAction->setEnabled( enabled );
1641 mCancelAction->setEnabled( enabled ); 1641 mCancelAction->setEnabled( enabled );
1642} 1642}
1643 1643
1644void MainWindow::importOL() 1644void MainWindow::importOL()
1645{ 1645{
1646#ifdef _OL_IMPORT_ 1646#ifdef _OL_IMPORT_
1647 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1647 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1648 id->exec(); 1648 id->exec();
1649 delete id; 1649 delete id;
1650 mView->updateView(); 1650 mView->updateView();
1651#endif 1651#endif
1652} 1652}
1653void MainWindow::importBday() 1653void MainWindow::importBday()
1654{ 1654{
1655 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1655 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1656 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1656 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1657 i18n("Import!"), i18n("Cancel"), 0, 1657 i18n("Import!"), i18n("Cancel"), 0,
1658 0, 1 ); 1658 0, 1 );
1659 if ( result == 0 ) { 1659 if ( result == 0 ) {
1660 mView->importBday(); 1660 mView->importBday();
1661 1661
1662 } 1662 }
1663 1663
1664 1664
1665} 1665}
1666void MainWindow::importQtopia() 1666void MainWindow::importQtopia()
1667{ 1667{
1668 //#ifndef DESKTOP_VERSION 1668 //#ifndef DESKTOP_VERSION
1669 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); 1669 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing");
1670#ifdef DESKTOP_VERSION 1670#ifdef DESKTOP_VERSION
1671 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); 1671 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml");
1672#endif 1672#endif
1673 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, 1673 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess,
1674 i18n("Import!"), i18n("Cancel"), 0, 1674 i18n("Import!"), i18n("Cancel"), 0,
1675 0, 1 ); 1675 0, 1 );
1676 if ( result == 0 ) { 1676 if ( result == 0 ) {
1677#ifndef DESKTOP_VERSION 1677#ifndef DESKTOP_VERSION
1678 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1678 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1679 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1679 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1680 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1680 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1681#else 1681#else
1682 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; 1682 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml";
1683 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; 1683 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml";
1684 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; 1684 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml";
1685#endif 1685#endif
1686 mView->importQtopia( categories, datebook, todolist ); 1686 mView->importQtopia( categories, datebook, todolist );
1687 } 1687 }
1688#if 0 1688#if 0
1689 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1689 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1690 i18n("Not supported \non desktop!\n"), 1690 i18n("Not supported \non desktop!\n"),
1691 i18n("Ok"), i18n("Cancel"), 0, 1691 i18n("Ok"), i18n("Cancel"), 0,
1692 0, 1 ); 1692 0, 1 );
1693 1693
1694#endif 1694#endif
1695} 1695}
1696 1696
1697void MainWindow::saveOnClose() 1697void MainWindow::saveOnClose()
1698{ 1698{
1699 KOPrefs *p = KOPrefs::instance(); 1699 KOPrefs *p = KOPrefs::instance();
1700 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1700 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1701 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); 1701 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal );
1702 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); 1702 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal );
1703 if ( filterToolBar ) { 1703 if ( filterToolBar ) {
1704 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); 1704 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal );
1705 } 1705 }
1706#ifdef DESKTOP_VERSION 1706#ifdef DESKTOP_VERSION
1707 1707
1708 QPoint myP; 1708 QPoint myP;
1709 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); 1709 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) );
1710 if ( p->mToolBarHor ) 1710 if ( p->mToolBarHor )
1711 p->mToolBarUp = myP.y() > height()/2; 1711 p->mToolBarUp = myP.y() > height()/2;
1712 else 1712 else
1713 p->mToolBarUp = myP.x() > width()/2; 1713 p->mToolBarUp = myP.x() > width()/2;
1714 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); 1714 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) );
1715 if ( p->mToolBarHorV ) 1715 if ( p->mToolBarHorV )
1716 p->mToolBarUpV = myP.y() > height()/2; 1716 p->mToolBarUpV = myP.y() > height()/2;
1717 else 1717 else
1718 p->mToolBarUpV = myP.x() > width()/2 ; 1718 p->mToolBarUpV = myP.x() > width()/2 ;
1719 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); 1719 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) );
1720 if ( p->mToolBarHorN ) 1720 if ( p->mToolBarHorN )
1721 p->mToolBarUpN = myP.y() > height()/2; 1721 p->mToolBarUpN = myP.y() > height()/2;
1722 else 1722 else
1723 p->mToolBarUpN = myP.x() > width()/2 ; 1723 p->mToolBarUpN = myP.x() > width()/2 ;
1724 if ( filterToolBar ) { 1724 if ( filterToolBar ) {
1725 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); 1725 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) );
1726 if ( p->mToolBarHorF ) 1726 if ( p->mToolBarHorF )
1727 p->mToolBarUpF = myP.y() > height()/2; 1727 p->mToolBarUpF = myP.y() > height()/2;
1728 else 1728 else
1729 p->mToolBarUpF = myP.x() > width()/2 ; 1729 p->mToolBarUpF = myP.x() > width()/2 ;
1730 } 1730 }
1731#else 1731#else
1732 if ( p->mToolBarHor ) 1732 if ( p->mToolBarHor )
1733 p->mToolBarUp = iconToolBar->y() > height()/2; 1733 p->mToolBarUp = iconToolBar->y() > height()/2;
1734 else 1734 else
1735 p->mToolBarUp = iconToolBar->x() > width()/2; 1735 p->mToolBarUp = iconToolBar->x() > width()/2;
1736 if ( p->mToolBarHorV ) 1736 if ( p->mToolBarHorV )
1737 p->mToolBarUpV = viewToolBar->y() > height()/2; 1737 p->mToolBarUpV = viewToolBar->y() > height()/2;
1738 else 1738 else
1739 p->mToolBarUpV = viewToolBar->x() > width()/2 ; 1739 p->mToolBarUpV = viewToolBar->x() > width()/2 ;
1740 1740
1741 if ( p->mToolBarHorN ) 1741 if ( p->mToolBarHorN )
1742 p->mToolBarUpN = navigatorToolBar->y() > height()/2; 1742 p->mToolBarUpN = navigatorToolBar->y() > height()/2;
1743 else 1743 else
1744 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; 1744 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ;
1745 if ( filterToolBar ) { 1745 if ( filterToolBar ) {
1746 if ( p->mToolBarHorF ) 1746 if ( p->mToolBarHorF )
1747 p->mToolBarUpF = filterToolBar->y() > height()/2; 1747 p->mToolBarUpF = filterToolBar->y() > height()/2;
1748 else 1748 else
1749 p->mToolBarUpF = filterToolBar->x() > width()/2 ; 1749 p->mToolBarUpF = filterToolBar->x() > width()/2 ;
1750 } 1750 }
1751#endif 1751#endif
1752 1752
1753 1753
1754 mView->writeSettings(); 1754 mView->writeSettings();
1755 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1755 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1756 save(); 1756 save();
1757} 1757}
1758void MainWindow::slotModifiedChanged( bool changed ) 1758void MainWindow::slotModifiedChanged( bool changed )
1759{ 1759{
1760 if ( mBlockAtStartup ) 1760 if ( mBlockAtStartup )
1761 return; 1761 return;
1762 1762
1763 int msec; 1763 int msec;
1764 // we store the changes after 1 minute, 1764 // we store the changes after 1 minute,
1765 // and for safety reasons after 10 minutes again 1765 // and for safety reasons after 10 minutes again
1766 if ( !mSyncManager->blockSave() ) 1766 if ( !mSyncManager->blockSave() )
1767 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1767 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1768 else 1768 else
1769 msec = 1000 * 600; 1769 msec = 1000 * 600;
1770 mSaveTimer.start( msec, true ); // 1 minute 1770 mSaveTimer.start( msec, true ); // 1 minute
1771 qDebug("KO: Saving File in %d secs!", msec/1000); 1771 qDebug("KO: Saving File in %d secs!", msec/1000);
1772 mCalendarModifiedFlag = true; 1772 mCalendarModifiedFlag = true;
1773} 1773}
1774void MainWindow::saveStopTimer() 1774void MainWindow::saveStopTimer()
1775{ 1775{
1776 mSaveTimer.stop(); 1776 mSaveTimer.stop();
1777 if (mSaveTimer.isActive() )
1778 qDebug("ti active ");
1779 else
1780 qDebug("KO: Save timer stopped");
1781} 1777}
1782void MainWindow::save() 1778void MainWindow::save()
1783{ 1779{
1784 if ( !mCalendarModifiedFlag ) { 1780 if ( !mCalendarModifiedFlag ) {
1785 qDebug("KO: Calendar not modified. Nothing saved."); 1781 qDebug("KO: Calendar not modified. Nothing saved.");
1786 return; 1782 return;
1787 } 1783 }
1788 if ( mSyncManager->blockSave() ) 1784 if ( mSyncManager->blockSave() )
1789 return; 1785 return;
1790 mSyncManager->setBlockSave(true); 1786 mSyncManager->setBlockSave(true);
1791 if ( mView->checkFileVersion( defaultFileName()) ) { 1787 if ( mView->checkFileVersion( defaultFileName()) ) {
1792 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1788 QTime neededSaveTime = QDateTime::currentDateTime().time();
1793 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1789 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1794 qDebug("KO: Start saving data to file!"); 1790 qDebug("KO: Start saving data to file!");
1795 mView->saveCalendar( defaultFileName() ); 1791 mView->saveCalendar( defaultFileName() );
1796 mCalendarModifiedFlag = false; 1792 mCalendarModifiedFlag = false;
1797 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1793 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1798 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1794 qDebug("KO: Needed %d ms for saving.",msNeeded );
1799 QString savemes; 1795 QString savemes;
1800 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1796 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1801 setCaption(savemes); 1797 setCaption(savemes);
1802 } else 1798 } else
1803 setCaption(i18n("Saving cancelled!")); 1799 setCaption(i18n("Saving cancelled!"));
1804 mSyncManager->setBlockSave( false ); 1800 mSyncManager->setBlockSave( false );
1805} 1801}
1806 1802
1807void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1803void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1808{ 1804{
1809 if ( !e->isAutoRepeat() ) { 1805 if ( !e->isAutoRepeat() ) {
1810 mFlagKeyPressed = false; 1806 mFlagKeyPressed = false;
1811 } 1807 }
1812} 1808}
1813void MainWindow::keyPressEvent ( QKeyEvent * e ) 1809void MainWindow::keyPressEvent ( QKeyEvent * e )
1814{ 1810{
1815 qApp->processEvents(); 1811 qApp->processEvents();
1816 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1812 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1817 e->ignore(); 1813 e->ignore();
1818 // qDebug(" ignore %d",e->isAutoRepeat() ); 1814 // qDebug(" ignore %d",e->isAutoRepeat() );
1819 return; 1815 return;
1820 } 1816 }
1821 if (! e->isAutoRepeat() ) 1817 if (! e->isAutoRepeat() )
1822 mFlagKeyPressed = true; 1818 mFlagKeyPressed = true;
1823 KOPrefs *p = KOPrefs::instance(); 1819 KOPrefs *p = KOPrefs::instance();
1824 bool showSelectedDates = false; 1820 bool showSelectedDates = false;
1825 int size; 1821 int size;
1826 int pro = 0; 1822 int pro = 0;
1827 //qDebug("MainWindow::keyPressEvent "); 1823 //qDebug("MainWindow::keyPressEvent ");
1828 switch ( e->key() ) { 1824 switch ( e->key() ) {
1829 case Qt::Key_Right: 1825 case Qt::Key_Right:
1830 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1826 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1831 mView->goNextMonth(); 1827 mView->goNextMonth();
1832 else 1828 else
1833 mView->goNext(); 1829 mView->goNext();
1834 showSelectedDates = true; 1830 showSelectedDates = true;
1835 break; 1831 break;
1836 case Qt::Key_Left: 1832 case Qt::Key_Left:
1837 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1833 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1838 mView->goPreviousMonth(); 1834 mView->goPreviousMonth();
1839 else 1835 else
1840 mView->goPrevious(); 1836 mView->goPrevious();
1841 showSelectedDates = true; 1837 showSelectedDates = true;
1842 break; 1838 break;
1843 case Qt::Key_Down: 1839 case Qt::Key_Down:
1844 mView->viewManager()->agendaView()->scrollOneHourDown(); 1840 mView->viewManager()->agendaView()->scrollOneHourDown();
1845 break; 1841 break;
1846 case Qt::Key_Up: 1842 case Qt::Key_Up:
1847 mView->viewManager()->agendaView()->scrollOneHourUp(); 1843 mView->viewManager()->agendaView()->scrollOneHourUp();
1848 break; 1844 break;
1849 case Qt::Key_K: 1845 case Qt::Key_K:
1850 mView->viewManager()->showMonthViewWeek(); 1846 mView->viewManager()->showMonthViewWeek();
1851 break; 1847 break;
1852 case Qt::Key_I: 1848 case Qt::Key_I:
1853 mView->showIncidence(); 1849 mView->showIncidence();
1854 break; 1850 break;
1855 case Qt::Key_Delete: 1851 case Qt::Key_Delete:
1856 case Qt::Key_Backspace: 1852 case Qt::Key_Backspace:
1857 mView->deleteIncidence(); 1853 mView->deleteIncidence();
1858 break; 1854 break;
1859 case Qt::Key_D: 1855 case Qt::Key_D:
1860 mView->viewManager()->showDayView(); 1856 mView->viewManager()->showDayView();
1861 showSelectedDates = true; 1857 showSelectedDates = true;
1862 break; 1858 break;
1863 case Qt::Key_O: 1859 case Qt::Key_O:
1864 mView->toggleFilerEnabled( ); 1860 mView->toggleFilerEnabled( );
1865 break; 1861 break;
1866 case Qt::Key_0: 1862 case Qt::Key_0:
1867 case Qt::Key_1: 1863 case Qt::Key_1:
1868 case Qt::Key_2: 1864 case Qt::Key_2:
1869 case Qt::Key_3: 1865 case Qt::Key_3:
1870 case Qt::Key_4: 1866 case Qt::Key_4:
1871 case Qt::Key_5: 1867 case Qt::Key_5:
1872 case Qt::Key_6: 1868 case Qt::Key_6:
1873 case Qt::Key_7: 1869 case Qt::Key_7:
1874 case Qt::Key_8: 1870 case Qt::Key_8:
1875 case Qt::Key_9: 1871 case Qt::Key_9:
1876 pro = e->key()-48; 1872 pro = e->key()-48;
1877 if ( pro == 0 ) 1873 if ( pro == 0 )
1878 pro = 10; 1874 pro = 10;
1879 if ( e->state() == Qt::ControlButton) 1875 if ( e->state() == Qt::ControlButton)
1880 pro += 10; 1876 pro += 10;
1881 break; 1877 break;
1882 case Qt::Key_M: 1878 case Qt::Key_M:
1883 mView->viewManager()->showMonthView(); 1879 mView->viewManager()->showMonthView();
1884 showSelectedDates = true; 1880 showSelectedDates = true;
1885 break; 1881 break;
1886 case Qt::Key_Insert: 1882 case Qt::Key_Insert:
1887 mView->newEvent(); 1883 mView->newEvent();
1888 break; 1884 break;
1889 case Qt::Key_S : 1885 case Qt::Key_S :
1890 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1886 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1891 mView->newSubTodo(); 1887 mView->newSubTodo();
1892 else 1888 else
1893 mView->dialogManager()->showSearchDialog(); 1889 mView->dialogManager()->showSearchDialog();
1894 break; 1890 break;
1895 case Qt::Key_Y : 1891 case Qt::Key_Y :
1896 case Qt::Key_Z : 1892 case Qt::Key_Z :
1897 mView->viewManager()->showWorkWeekView(); 1893 mView->viewManager()->showWorkWeekView();
1898 showSelectedDates = true; 1894 showSelectedDates = true;
1899 break; 1895 break;
1900 case Qt::Key_U : 1896 case Qt::Key_U :
1901 mView->viewManager()->showWeekView(); 1897 mView->viewManager()->showWeekView();
1902 showSelectedDates = true; 1898 showSelectedDates = true;
1903 break; 1899 break;
1904 case Qt::Key_H : 1900 case Qt::Key_H :
1905 keyBindings(); 1901 keyBindings();
1906 break; 1902 break;
1907 case Qt::Key_W: 1903 case Qt::Key_W:
1908 mView->viewManager()->showWhatsNextView(); 1904 mView->viewManager()->showWhatsNextView();
1909 break; 1905 break;
1910 case Qt::Key_L: 1906 case Qt::Key_L:
1911 mView->viewManager()->showListView(); 1907 mView->viewManager()->showListView();
1912 break; 1908 break;
1913 case Qt::Key_N: 1909 case Qt::Key_N:
1914 mView->viewManager()->showNextView(); 1910 mView->viewManager()->showNextView();
1915 break; 1911 break;
1916 case Qt::Key_V: 1912 case Qt::Key_V:
1917 mView->viewManager()->showTodoView(); 1913 mView->viewManager()->showTodoView();
1918 break; 1914 break;
1919 case Qt::Key_C: 1915 case Qt::Key_C:
1920 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1916 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1921 break; 1917 break;
1922 case Qt::Key_P: 1918 case Qt::Key_P:
1923 mView->showDatePicker( ); 1919 mView->showDatePicker( );
1924 break; 1920 break;
1925 case Qt::Key_F: 1921 case Qt::Key_F:
1926 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1922 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1927 mView->editFilters(); 1923 mView->editFilters();
1928 else 1924 else
1929 mView->toggleFilter(); 1925 mView->toggleFilter();
1930 break; 1926 break;
1931 case Qt::Key_X: 1927 case Qt::Key_X:
1932 if ( e->state() == Qt::ControlButton ) 1928 if ( e->state() == Qt::ControlButton )
1933 mView->toggleDateNavigatorWidget(); 1929 mView->toggleDateNavigatorWidget();
1934 else { 1930 else {
1935 mView->viewManager()->showNextXView(); 1931 mView->viewManager()->showNextXView();
1936 showSelectedDates = true; 1932 showSelectedDates = true;
1937 } 1933 }
1938 break; 1934 break;
1939 case Qt::Key_Space: 1935 case Qt::Key_Space:
1940 mView->toggleExpand(); 1936 mView->toggleExpand();
1941 break; 1937 break;
1942 case Qt::Key_A: 1938 case Qt::Key_A:
1943 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) 1939 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton )
1944 mView->showNextAlarms(); 1940 mView->showNextAlarms();
1945 else 1941 else
1946 mView->toggleAllDaySize(); 1942 mView->toggleAllDaySize();
1947 break; 1943 break;
1948 case Qt::Key_T: 1944 case Qt::Key_T:
1949 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1945 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1950 mView->newTodo(); 1946 mView->newTodo();
1951 else { 1947 else {
1952 mView->goToday(); 1948 mView->goToday();
1953 showSelectedDates = true; 1949 showSelectedDates = true;
1954 } 1950 }
1955 break; 1951 break;
1956 case Qt::Key_J: 1952 case Qt::Key_J:
1957 mView->viewManager()->showJournalView(); 1953 mView->viewManager()->showJournalView();
1958 break; 1954 break;
1959 case Qt::Key_B: 1955 case Qt::Key_B:
1960 mView->editIncidenceDescription();; 1956 mView->editIncidenceDescription();;
1961 break; 1957 break;
1962 // case Qt::Key_Return: 1958 // case Qt::Key_Return:
1963 case Qt::Key_E: 1959 case Qt::Key_E:
1964 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1960 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1965 mView->newEvent(); 1961 mView->newEvent();
1966 else 1962 else
1967 mView->editIncidence(); 1963 mView->editIncidence();
1968 break; 1964 break;
1969 case Qt::Key_Plus: 1965 case Qt::Key_Plus:
1970 size = p->mHourSize +2; 1966 size = p->mHourSize +2;
1971 if ( size <= 22 ) 1967 if ( size <= 22 )
1972 configureAgenda( size ); 1968 configureAgenda( size );
1973 break; 1969 break;
1974 case Qt::Key_Minus: 1970 case Qt::Key_Minus:
1975 size = p->mHourSize - 2; 1971 size = p->mHourSize - 2;
1976 if ( size >= 4 ) 1972 if ( size >= 4 )
1977 configureAgenda( size ); 1973 configureAgenda( size );
1978 break; 1974 break;
1979 1975
1980 1976
1981 default: 1977 default:
1982 e->ignore(); 1978 e->ignore();
1983 } 1979 }
1984 if ( pro > 0 ) { 1980 if ( pro > 0 ) {
1985 mView->selectFilter( pro-1 ); 1981 mView->selectFilter( pro-1 );
1986 } 1982 }
1987 if ( showSelectedDates ) { 1983 if ( showSelectedDates ) {
1988 ;// setCaptionToDates(); 1984 ;// setCaptionToDates();
1989 } 1985 }
1990 1986
1991} 1987}
1992void MainWindow::fillFilterMenuTB() 1988void MainWindow::fillFilterMenuTB()
1993{ 1989{
1994 selectFilterMenuTB->clear(); 1990 selectFilterMenuTB->clear();
1995 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 ); 1991 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 );
1996 selectFilterMenuTB->insertSeparator(); 1992 selectFilterMenuTB->insertSeparator();
1997 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 ); 1993 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 );
1998 1994
1999 selectFilterMenuTB->insertSeparator(); 1995 selectFilterMenuTB->insertSeparator();
2000 QPtrList<CalFilter> fili = mView->filters(); 1996 QPtrList<CalFilter> fili = mView->filters();
2001 CalFilter *curfilter = mView->filterView()->selectedFilter(); 1997 CalFilter *curfilter = mView->filterView()->selectedFilter();
2002 CalFilter *filter = fili.first(); 1998 CalFilter *filter = fili.first();
2003 int iii = 2; 1999 int iii = 2;
2004 bool checkitem = mView->filterView()->filtersEnabled(); 2000 bool checkitem = mView->filterView()->filtersEnabled();
2005 while(filter) { 2001 while(filter) {
2006 selectFilterMenuTB->insertItem( filter->name(), iii ); 2002 selectFilterMenuTB->insertItem( filter->name(), iii );
2007 if ( filter == curfilter) 2003 if ( filter == curfilter)
2008 selectFilterMenuTB->setItemChecked( iii, checkitem ); 2004 selectFilterMenuTB->setItemChecked( iii, checkitem );
2009 filter = fili.next(); 2005 filter = fili.next();
2010 ++iii; 2006 ++iii;
2011 } 2007 }
2012 if ( !checkitem ) 2008 if ( !checkitem )
2013 selectFilterMenuTB->setItemChecked( 1, true ); 2009 selectFilterMenuTB->setItemChecked( 1, true );
2014 2010
2015 int x = 0; 2011 int x = 0;
2016 int y = iconToolBar->height(); 2012 int y = iconToolBar->height();
2017 int dX = 0; 2013 int dX = 0;
2018 int dY = 0; 2014 int dY = 0;
2019 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 2015 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
2020 if ( iconToolBar->y() > height()/2 ) { 2016 if ( iconToolBar->y() > height()/2 ) {
2021 dY = selectFilterMenuTB->sizeHint().height()+8; 2017 dY = selectFilterMenuTB->sizeHint().height()+8;
2022 y = 0; 2018 y = 0;
2023 } 2019 }
2024 } else { 2020 } else {
2025 if ( iconToolBar->x() > width()/2 ) { // right side 2021 if ( iconToolBar->x() > width()/2 ) { // right side
2026 x=0; 2022 x=0;
2027 dX= selectFilterMenuTB->sizeHint().width()+8; 2023 dX= selectFilterMenuTB->sizeHint().width()+8;
2028 y = 0; 2024 y = 0;
2029 } else { 2025 } else {
2030 x= iconToolBar->width(); 2026 x= iconToolBar->width();
2031 y = 0; 2027 y = 0;
2032 } 2028 }
2033 } 2029 }
2034 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() ); 2030 //qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() );
2035 selectFilterMenuTB->popup(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY))); 2031 selectFilterMenuTB->popup(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY)));
2036} 2032}
2037void MainWindow::fillFilterMenu() 2033void MainWindow::fillFilterMenu()
2038{ 2034{
2039 selectFilterMenu->clear(); 2035 selectFilterMenu->clear();
2040 selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 ); 2036 selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 );
2041 selectFilterMenu->insertSeparator(); 2037 selectFilterMenu->insertSeparator();
2042 selectFilterMenu->insertItem(i18n ( "No Filter" ), 1 ); 2038 selectFilterMenu->insertItem(i18n ( "No Filter" ), 1 );
2043 2039
2044 selectFilterMenu->insertSeparator(); 2040 selectFilterMenu->insertSeparator();
2045 QPtrList<CalFilter> fili = mView->filters(); 2041 QPtrList<CalFilter> fili = mView->filters();
2046 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2042 CalFilter *curfilter = mView->filterView()->selectedFilter();
2047 CalFilter *filter = fili.first(); 2043 CalFilter *filter = fili.first();
2048 int iii = 2; 2044 int iii = 2;
2049 bool checkitem = mView->filterView()->filtersEnabled(); 2045 bool checkitem = mView->filterView()->filtersEnabled();
2050 while(filter) { 2046 while(filter) {
2051 selectFilterMenu->insertItem( filter->name(), iii ); 2047 selectFilterMenu->insertItem( filter->name(), iii );
2052 if ( filter == curfilter) 2048 if ( filter == curfilter)
2053 selectFilterMenu->setItemChecked( iii, checkitem ); 2049 selectFilterMenu->setItemChecked( iii, checkitem );
2054 filter = fili.next(); 2050 filter = fili.next();
2055 ++iii; 2051 ++iii;
2056 } 2052 }
2057 if ( !checkitem ) 2053 if ( !checkitem )
2058 selectFilterMenu->setItemChecked( 1, true ); 2054 selectFilterMenu->setItemChecked( 1, true );
2059} 2055}
2060void MainWindow::fillFilterMenuPopup() 2056void MainWindow::fillFilterMenuPopup()
2061{ 2057{
2062 filterPopupMenu->clear(); 2058 filterPopupMenu->clear();
2063 filterPopupMenu->insertItem(i18n ( "No Filter" ), 0 ); 2059 filterPopupMenu->insertItem(i18n ( "No Filter" ), 0 );
2064 2060
2065 filterPopupMenu->insertSeparator(); 2061 filterPopupMenu->insertSeparator();
2066 QPtrList<CalFilter> fili = mView->filters(); 2062 QPtrList<CalFilter> fili = mView->filters();
2067 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2063 CalFilter *curfilter = mView->filterView()->selectedFilter();
2068 CalFilter *filter = fili.first(); 2064 CalFilter *filter = fili.first();
2069 int iii = 1; 2065 int iii = 1;
2070 bool checkitem = mView->filterView()->filtersEnabled(); 2066 bool checkitem = mView->filterView()->filtersEnabled();
2071 while(filter) { 2067 while(filter) {
2072 filterPopupMenu->insertItem( filter->name(), iii ); 2068 filterPopupMenu->insertItem( filter->name(), iii );
2073 if ( filter == curfilter) 2069 if ( filter == curfilter)
2074 filterPopupMenu->setItemChecked( iii, checkitem ); 2070 filterPopupMenu->setItemChecked( iii, checkitem );
2075 filter = fili.next(); 2071 filter = fili.next();
2076 ++iii; 2072 ++iii;
2077 } 2073 }
2078 if ( !checkitem ) 2074 if ( !checkitem )
2079 filterPopupMenu->setItemChecked( 0, true ); 2075 filterPopupMenu->setItemChecked( 0, true );
2080} 2076}
2081void MainWindow::selectFilter( int fil ) 2077void MainWindow::selectFilter( int fil )
2082{ 2078{
2083 2079
2084 if ( fil == 0 ) { 2080 if ( fil == 0 ) {
2085 mView->editFilters( ); 2081 mView->editFilters( );
2086 } else if ( fil == 1 ){ 2082 } else if ( fil == 1 ){
2087 if ( mView->filterView()->filtersEnabled() ) 2083 if ( mView->filterView()->filtersEnabled() )
2088 mView->toggleFilerEnabled( ); 2084 mView->toggleFilerEnabled( );
2089 } else { 2085 } else {
2090 if ( !mView->filterView()->filtersEnabled() ) { 2086 if ( !mView->filterView()->filtersEnabled() ) {
2091 mView->filterView()->blockSignals( true ); 2087 mView->filterView()->blockSignals( true );
2092 mView->toggleFilerEnabled( ); 2088 mView->toggleFilerEnabled( );
2093 mView->filterView()->blockSignals( false ); 2089 mView->filterView()->blockSignals( false );
2094 } 2090 }
2095 mView->selectFilter( fil-2 ); 2091 mView->selectFilter( fil-2 );
2096 } 2092 }
2097} 2093}
2098void MainWindow::updateFilterToolbar() 2094void MainWindow::updateFilterToolbar()
2099{ 2095{
2100 if ( filterMenubar ) { 2096 if ( filterMenubar ) {
2101 if ( !mView->filterView()->filtersEnabled() ) { 2097 if ( !mView->filterView()->filtersEnabled() ) {
2102 filterMenubar->changeItem( 0, i18n("No Filter") ); 2098 filterMenubar->changeItem( 0, i18n("No Filter") );
2103 } else { 2099 } else {
2104 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2100 CalFilter *curfilter = mView->filterView()->selectedFilter();
2105 if ( curfilter ) { 2101 if ( curfilter ) {
2106 filterMenubar->changeItem( 0, curfilter->name() ); 2102 filterMenubar->changeItem( 0, curfilter->name() );
2107 } 2103 }
2108 } 2104 }
2109 } 2105 }
2110} 2106}
2111void MainWindow::selectFilterPopup( int fil ) 2107void MainWindow::selectFilterPopup( int fil )
2112{ 2108{
2113 selectFilter( fil + 1 ); 2109 selectFilter( fil + 1 );
2114 2110
2115} 2111}
2116void MainWindow::configureToolBar( int item ) 2112void MainWindow::configureToolBar( int item )
2117{ 2113{
2118 2114
2119 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 2115 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
2120 KOPrefs *p = KOPrefs::instance(); 2116 KOPrefs *p = KOPrefs::instance();
2121 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 2117 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
2122 p-> mShowIconOnetoolbar = configureToolBarMenu->isItemChecked( 6 ); 2118 p-> mShowIconOnetoolbar = configureToolBarMenu->isItemChecked( 6 );
2123 p-> mShowIconFilter = configureToolBarMenu->isItemChecked( 7 ); 2119 p-> mShowIconFilter = configureToolBarMenu->isItemChecked( 7 );
2124 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 2120 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
2125 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 2121 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
2126 p->mShowIconNavigator = configureToolBarMenu->isItemChecked( 22 ); 2122 p->mShowIconNavigator = configureToolBarMenu->isItemChecked( 22 );
2127 p->mShowIconAllday = configureToolBarMenu->isItemChecked( 24 ); 2123 p->mShowIconAllday = configureToolBarMenu->isItemChecked( 24 );
2128 p->mShowIconFilterview = configureToolBarMenu->isItemChecked( 26 ); 2124 p->mShowIconFilterview = configureToolBarMenu->isItemChecked( 26 );
2129 p->mShowIconToggleFull = configureToolBarMenu->isItemChecked( 28 ); 2125 p->mShowIconToggleFull = configureToolBarMenu->isItemChecked( 28 );
2130 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 2126 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
2131 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 2127 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
2132 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 2128 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
2133 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 2129 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
2134 p-> mShowIconDay6= configureToolBarMenu->isItemChecked( 75 ); 2130 p-> mShowIconDay6= configureToolBarMenu->isItemChecked( 75 );
2135 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 2131 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
2136 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 2132 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
2137 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 2133 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
2138 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 2134 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );
2139 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 2135 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
2140 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 2136 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
2141 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 2137 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
2142 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 2138 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
2143 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 2139 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
2144 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 2140 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
2145 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 2141 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
2146 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 2142 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
2147 p-> mShowIconWeekNum= configureToolBarMenu->isItemChecked( 400 ); 2143 p-> mShowIconWeekNum= configureToolBarMenu->isItemChecked( 400 );
2148 // initActions(); 2144 // initActions();
2149} 2145}
2150void MainWindow::setCaption ( const QString & c ) 2146void MainWindow::setCaption ( const QString & c )
2151{ 2147{
2152 QString cap = c; 2148 QString cap = c;
2153 cap.replace( QRegExp("\n"), " " ); 2149 cap.replace( QRegExp("\n"), " " );
2154 cap = cap.stripWhiteSpace(); 2150 cap = cap.stripWhiteSpace();
2155 if ( cap.isEmpty() ) 2151 if ( cap.isEmpty() )
2156 cap = "KO/Pi"; 2152 cap = "KO/Pi";
2157 QWidget::setCaption( cap ); 2153 QWidget::setCaption( cap );
2158} 2154}
2159void MainWindow::setCaptionToDates() 2155void MainWindow::setCaptionToDates()
2160{ 2156{
2161 QString selDates; 2157 QString selDates;
2162 QDate date = mView->startDate(); 2158 QDate date = mView->startDate();
2163 if ( ! date.isValid() ) { 2159 if ( ! date.isValid() ) {
2164 setCaption(""); 2160 setCaption("");
2165 return; 2161 return;
2166 } 2162 }
2167 selDates = KGlobal::locale()->formatDate( date, true); 2163 selDates = KGlobal::locale()->formatDate( date, true);
2168 if (mView->startDate() < mView->endDate() ) 2164 if (mView->startDate() < mView->endDate() )
2169 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 2165 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
2170 else { 2166 else {
2171 QString addString; 2167 QString addString;
2172 if ( date == QDateTime::currentDateTime().date() ) 2168 if ( date == QDateTime::currentDateTime().date() )
2173 addString = i18n("Today"); 2169 addString = i18n("Today");
2174 else if ( date == QDateTime::currentDateTime().date().addDays(1) ) 2170 else if ( date == QDateTime::currentDateTime().date().addDays(1) )
2175 addString = i18n("Tomorrow"); 2171 addString = i18n("Tomorrow");
2176 if ( !addString.isEmpty() ) 2172 if ( !addString.isEmpty() )
2177 selDates = addString+", "+selDates ; 2173 selDates = addString+", "+selDates ;
2178 } 2174 }
2179 setCaption( i18n("Dates: ") + selDates ); 2175 setCaption( i18n("Dates: ") + selDates );
2180 2176
2181} 2177}
2182void MainWindow::showConfigureAgenda( ) 2178void MainWindow::showConfigureAgenda( )
2183{ 2179{
2184 int iii; 2180 int iii;
2185 for ( iii = 1;iii<= 10 ;++iii ){ 2181 for ( iii = 1;iii<= 10 ;++iii ){
2186 configureAgendaMenu->setItemChecked( (iii+1)*2, false ); 2182 configureAgendaMenu->setItemChecked( (iii+1)*2, false );
2187 } 2183 }
2188 configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true ); 2184 configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true );
2189} 2185}
2190void MainWindow::configureAgenda( int item ) 2186void MainWindow::configureAgenda( int item )
2191{ 2187{
2192 if ( KOPrefs::instance()->mHourSize == item ) 2188 if ( KOPrefs::instance()->mHourSize == item )
2193 return; 2189 return;
2194 KOPrefs::instance()->mHourSize=item; 2190 KOPrefs::instance()->mHourSize=item;
2195 mView->viewManager()->agendaView()->updateConfig(); 2191 mView->viewManager()->agendaView()->updateConfig();
2196} 2192}
2197 2193
2198void MainWindow::saveCalendar() 2194void MainWindow::saveCalendar()
2199{ 2195{
2200 QString fn = KOPrefs::instance()->mLastSaveFile; 2196 QString fn = KOPrefs::instance()->mLastSaveFile;
2201 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); 2197 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this );
2202 2198
2203 if ( fn == "" ) 2199 if ( fn == "" )
2204 return; 2200 return;
2205 QFileInfo info; 2201 QFileInfo info;
2206 info.setFile( fn ); 2202 info.setFile( fn );
2207 QString mes; 2203 QString mes;
2208 bool createbup = true; 2204 bool createbup = true;
2209 if ( info. exists() ) { 2205 if ( info. exists() ) {
2210 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; 2206 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ;
2211 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 2207 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
2212 i18n("Overwrite!"), i18n("Cancel"), 0, 2208 i18n("Overwrite!"), i18n("Cancel"), 0,
2213 0, 1 ); 2209 0, 1 );
2214 if ( result != 0 ) { 2210 if ( result != 0 ) {
2215 createbup = false; 2211 createbup = false;
2216 } 2212 }
2217 } 2213 }
2218 if ( createbup ) { 2214 if ( createbup ) {
2219 mView->saveCalendar( fn ); 2215 mView->saveCalendar( fn );
2220 mes = i18n("KO/Pi:Saved %1").arg(fn); 2216 mes = i18n("KO/Pi:Saved %1").arg(fn);
2221 KOPrefs::instance()->mLastSaveFile = fn; 2217 KOPrefs::instance()->mLastSaveFile = fn;
2222 setCaption(mes); 2218 setCaption(mes);
2223 } 2219 }
2224} 2220}
2225void MainWindow::loadCalendar() 2221void MainWindow::loadCalendar()
2226{ 2222{
2227 2223
2228 QString fn = KOPrefs::instance()->mLastLoadFile; 2224 QString fn = KOPrefs::instance()->mLastLoadFile;
2229 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 2225 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
2230 2226
2231 if ( fn == "" ) 2227 if ( fn == "" )
2232 return; 2228 return;
2233 QFileInfo info; 2229 QFileInfo info;
2234 info.setFile( fn ); 2230 info.setFile( fn );
2235 QString mess; 2231 QString mess;
2236 bool loadbup = true; 2232 bool loadbup = true;
2237 if ( info. exists() ) { 2233 if ( info. exists() ) {
2238 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2234 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2239 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 2235 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
2240 mess, 2236 mess,
2241 i18n("Load!"), i18n("Cancel"), 0, 2237 i18n("Load!"), i18n("Cancel"), 0,
2242 0, 1 ); 2238 0, 1 );
2243 if ( result != 0 ) { 2239 if ( result != 0 ) {
2244 loadbup = false; 2240 loadbup = false;
2245 } 2241 }
2246 } else { 2242 } else {
2247 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2243 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2248 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 2244 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
2249 0, 1 ); 2245 0, 1 );
2250 2246
2251 return; 2247 return;
2252 } 2248 }
2253 if ( loadbup ) { 2249 if ( loadbup ) {
2254 mView->openCalendar( fn ); 2250 mView->openCalendar( fn );
2255 KOPrefs::instance()->mLastLoadFile = fn; 2251 KOPrefs::instance()->mLastLoadFile = fn;
2256 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 2252 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
2257 setCaption(mess); 2253 setCaption(mess);
2258 } 2254 }
2259 2255
2260} 2256}
2261void MainWindow::quickImportIcal() 2257void MainWindow::quickImportIcal()
2262{ 2258{
2263 importFile( KOPrefs::instance()->mLastImportFile, false ); 2259 importFile( KOPrefs::instance()->mLastImportFile, false );
2264} 2260}
2265void MainWindow::importFile( QString fn, bool quick ) 2261void MainWindow::importFile( QString fn, bool quick )
2266{ 2262{
2267 QFileInfo info; 2263 QFileInfo info;
2268 info.setFile( fn ); 2264 info.setFile( fn );
2269 QString mess; 2265 QString mess;
2270 bool loadbup = true; 2266 bool loadbup = true;
2271 if ( !info. exists() ) { 2267 if ( !info. exists() ) {
2272 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 2268 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
2273 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 2269 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
2274 mess ); 2270 mess );
2275 return; 2271 return;
2276 } 2272 }
2277 int result = 0; 2273 int result = 0;
2278 if ( !quick ) { 2274 if ( !quick ) {
2279 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 2275 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
2280 result = QMessageBox::warning( this, "KO/Pi: Warning!", 2276 result = QMessageBox::warning( this, "KO/Pi: Warning!",
2281 mess, 2277 mess,
2282 "Import", "Cancel", 0, 2278 "Import", "Cancel", 0,
2283 0, 1 ); 2279 0, 1 );
2284 } 2280 }
2285 if ( result == 0 ) { 2281 if ( result == 0 ) {
2286 if ( mView->openCalendar( fn, true )) { 2282 if ( mView->openCalendar( fn, true )) {
2287 KOPrefs::instance()->mLastImportFile = fn; 2283 KOPrefs::instance()->mLastImportFile = fn;
2288 setCaption(i18n("Imported file successfully")); 2284 setCaption(i18n("Imported file successfully"));
2289 } else { 2285 } else {
2290 setCaption(i18n("Error importing file")); 2286 setCaption(i18n("Error importing file"));
2291 } 2287 }
2292 } 2288 }
diff --git a/microkde/kglobalsettings.cpp b/microkde/kglobalsettings.cpp
index b6d2feb..b837b23 100644
--- a/microkde/kglobalsettings.cpp
+++ b/microkde/kglobalsettings.cpp
@@ -1,50 +1,66 @@
1#include "kglobalsettings.h" 1#include "kglobalsettings.h"
2#include "kconfig.h" 2#include "kconfig.h"
3#include "kglobal.h" 3#include "kglobal.h"
4#include "kconfigbase.h" 4#include "kconfigbase.h"
5 5
6#include <qapplication.h> 6#include <qapplication.h>
7 7
8QFont KGlobalSettings::generalFont() 8QFont KGlobalSettings::generalFont()
9{ 9{
10 int size = 12; 10 int size = 12;
11 if (QApplication::desktop()->width() < 480 ) { 11 if (QApplication::desktop()->width() < 480 ) {
12 size = 10; 12 size = 10;
13 } 13 }
14#ifndef DESKTOP_VERSION 14#ifndef DESKTOP_VERSION
15 else 15 else
16 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 ) 16 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
17 size = 18; 17 size = 18;
18#endif 18#endif
19 QFont f = QApplication::font(); 19 QFont f = QApplication::font();
20 //qDebug("pointsize %d %s", f.pointSize(),f.family().latin1()); 20 //qDebug("pointsize %d %s", f.pointSize(),f.family().latin1());
21 f.setPointSize( size ); 21 f.setPointSize( size );
22 return f; 22 return f;
23} 23}
24QFont KGlobalSettings::generalMaxFont()
25{
26 int size = 12;
27 if (QApplication::desktop()->width() < 480 ) {
28 size = 10;
29 }
30#ifndef DESKTOP_VERSION
31 else
32 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
33 size = 18;
34#endif
35 QFont f = QApplication::font();
36 if ( f.pointSize() > size )
37 f.setPointSize( size );
38 return f;
39}
24QFont KGlobalSettings::toolBarFont() 40QFont KGlobalSettings::toolBarFont()
25{ 41{
26 return QApplication::font(); 42 return QApplication::font();
27} 43}
28 44
29QColor KGlobalSettings::toolBarHighlightColor() 45QColor KGlobalSettings::toolBarHighlightColor()
30{ 46{
31 return QColor( "black" ); 47 return QColor( "black" );
32} 48}
33 49
34QRect KGlobalSettings::desktopGeometry( QWidget * ) 50QRect KGlobalSettings::desktopGeometry( QWidget * )
35{ 51{
36 return QApplication::desktop()->rect(); 52 return QApplication::desktop()->rect();
37} 53}
38 54
39 /** 55 /**
40 * Returns whether KDE runs in single (default) or double click 56 * Returns whether KDE runs in single (default) or double click
41 * mode. 57 * mode.
42 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html 58 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
43 * @return true if single click mode, or false if double click mode. 59 * @return true if single click mode, or false if double click mode.
44 **/ 60 **/
45bool KGlobalSettings::singleClick() 61bool KGlobalSettings::singleClick()
46{ 62{
47 KConfig *c = KGlobal::config(); 63 KConfig *c = KGlobal::config();
48 KConfigGroupSaver cgs( c, "KDE" ); 64 KConfigGroupSaver cgs( c, "KDE" );
49 return c->readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK); 65 return c->readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK);
50} 66}
diff --git a/microkde/kglobalsettings.h b/microkde/kglobalsettings.h
index 7df8012..075bb1c 100644
--- a/microkde/kglobalsettings.h
+++ b/microkde/kglobalsettings.h
@@ -1,30 +1,31 @@
1#ifndef MICROKDE_KGLOBALSETTINGS_H 1#ifndef MICROKDE_KGLOBALSETTINGS_H
2#define MICROKDE_KGLOBALSETTINGS_H 2#define MICROKDE_KGLOBALSETTINGS_H
3 3
4#include <qfont.h> 4#include <qfont.h>
5#include <qrect.h> 5#include <qrect.h>
6 6
7 7
8#define KDE_DEFAULT_SINGLECLICK true 8#define KDE_DEFAULT_SINGLECLICK true
9 9
10 10
11class KGlobalSettings 11class KGlobalSettings
12{ 12{
13 public: 13 public:
14 static QFont generalFont(); 14 static QFont generalFont();
15 static QFont generalMaxFont();
15 static QFont toolBarFont(); 16 static QFont toolBarFont();
16 17
17 static QColor toolBarHighlightColor(); 18 static QColor toolBarHighlightColor();
18 static QRect desktopGeometry( QWidget * ); 19 static QRect desktopGeometry( QWidget * );
19 20
20 /** 21 /**
21 * Returns whether KDE runs in single (default) or double click 22 * Returns whether KDE runs in single (default) or double click
22 * mode. 23 * mode.
23 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html 24 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
24 * @return true if single click mode, or false if double click mode. 25 * @return true if single click mode, or false if double click mode.
25 **/ 26 **/
26 static bool singleClick(); 27 static bool singleClick();
27 28
28}; 29};
29 30
30#endif 31#endif
diff --git a/microkde/kutils/kcmultidialog.cpp b/microkde/kutils/kcmultidialog.cpp
index bb41b18..9c87682 100644
--- a/microkde/kutils/kcmultidialog.cpp
+++ b/microkde/kutils/kcmultidialog.cpp
@@ -1,229 +1,229 @@
1/* 1/*
2 Copyright (c) 2000 Matthias Elter <elter@kde.org> 2 Copyright (c) 2000 Matthias Elter <elter@kde.org>
3 Copyright (c) 2003 Daniel Molkentin <molkentin@kde.org> 3 Copyright (c) 2003 Daniel Molkentin <molkentin@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 21
22#include <qhbox.h> 22#include <qhbox.h>
23#include <qvbox.h> 23#include <qvbox.h>
24#include <qcursor.h> 24#include <qcursor.h>
25#include <qlayout.h> 25#include <qlayout.h>
26 26
27#include <klocale.h> 27#include <klocale.h>
28#include <kglobal.h> 28#include <kglobal.h>
29#include <kdebug.h> 29#include <kdebug.h>
30#include <kiconloader.h> 30#include <kiconloader.h>
31#include <kmessagebox.h> 31#include <kmessagebox.h>
32//US #include <klibloader.h> 32//US #include <klibloader.h>
33#include <krun.h> 33#include <krun.h>
34#include <kprocess.h> 34#include <kprocess.h>
35#include <kglobalsettings.h> 35#include <kglobalsettings.h>
36 36
37#include "kcmultidialog.h" 37#include "kcmultidialog.h"
38//US #include "kcmultidialog.moc" 38//US #include "kcmultidialog.moc"
39//US #include "kcmoduleloader.h" 39//US #include "kcmoduleloader.h"
40 40
41KCMultiDialog::KCMultiDialog(const QString& baseGroup, QWidget *parent, const char *name, bool modal) 41KCMultiDialog::KCMultiDialog(const QString& baseGroup, QWidget *parent, const char *name, bool modal)
42 : KDialogBase(IconList, i18n("Configure"), Default |Cancel | Apply | Ok, Ok, 42 : KDialogBase(IconList, i18n("Configure"), Default |Cancel | Apply | Ok, Ok,
43 parent, name, modal, true), d(0L) 43 parent, name, modal, true), d(0L)
44{ 44{
45 setFont( KGlobalSettings::generalFont() ); 45 setFont( KGlobalSettings::generalMaxFont() );
46 enableButton(Apply, false); 46 enableButton(Apply, false);
47 //connect(this, SIGNAL(aboutToShowPage(QWidget *)), this, SLOT(slotAboutToShow(QWidget *))); 47 //connect(this, SIGNAL(aboutToShowPage(QWidget *)), this, SLOT(slotAboutToShow(QWidget *)));
48 48
49 connect( this, SIGNAL( defaultClicked() ), SLOT( slotDefault() ) ); 49 connect( this, SIGNAL( defaultClicked() ), SLOT( slotDefault() ) );
50 50
51 _baseGroup = baseGroup; 51 _baseGroup = baseGroup;
52 mMainWidget = new KJanusWidget( this, "JanusWidget", KJanusWidget::Tabbed ); 52 mMainWidget = new KJanusWidget( this, "JanusWidget", KJanusWidget::Tabbed );
53 setMainWidget(mMainWidget ); 53 setMainWidget(mMainWidget );
54#ifdef DESKTOP_VERSION 54#ifdef DESKTOP_VERSION
55 resize(640,480); 55 resize(640,480);
56#else 56#else
57 //resize(640,480); 57 //resize(640,480);
58 //setMaximumSize( KMIN(KGlobal::getDesktopWidth()-5, 640), KMIN(KGlobal::getDesktopHeight()-20, 480)); 58 //setMaximumSize( KMIN(KGlobal::getDesktopWidth()-5, 640), KMIN(KGlobal::getDesktopHeight()-20, 480));
59 resize(800,800); 59 resize(800,800);
60 setMaximumSize( 800, 800 ); 60 setMaximumSize( 800, 800 );
61 //showMaximized(); 61 //showMaximized();
62#endif 62#endif
63 63
64} 64}
65 65
66KCMultiDialog::~KCMultiDialog() 66KCMultiDialog::~KCMultiDialog()
67{ 67{
68//US moduleDict.setAutoDelete(true); 68//US moduleDict.setAutoDelete(true);
69} 69}
70 70
71void KCMultiDialog::slotDefault() 71void KCMultiDialog::slotDefault()
72{ 72{
73 73
74 int curPageIndex = activePageIndex(); 74 int curPageIndex = activePageIndex();
75 75
76 QPtrListIterator<KCModule> it(modules); 76 QPtrListIterator<KCModule> it(modules);
77 for (; it.current(); ++it) 77 for (; it.current(); ++it)
78 { 78 {
79 if (pageIndex((QWidget *)(*it)->parent()) == curPageIndex) 79 if (pageIndex((QWidget *)(*it)->parent()) == curPageIndex)
80 { 80 {
81 (*it)->defaults(); 81 (*it)->defaults();
82 clientChanged(true); 82 clientChanged(true);
83 return; 83 return;
84 } 84 }
85 } 85 }
86 86
87} 87}
88void KCMultiDialog::accept() 88void KCMultiDialog::accept()
89{ 89{
90 slotOk(); 90 slotOk();
91} 91}
92void KCMultiDialog::slotApply() 92void KCMultiDialog::slotApply()
93{ 93{
94 QPtrListIterator<KCModule> it(modules); 94 QPtrListIterator<KCModule> it(modules);
95 for (; it.current(); ++it) 95 for (; it.current(); ++it)
96 (*it)->save(); 96 (*it)->save();
97 clientChanged(false); 97 clientChanged(false);
98 98
99 emit applyClicked(); 99 emit applyClicked();
100 100
101} 101}
102 102
103 103
104void KCMultiDialog::slotOk() 104void KCMultiDialog::slotOk()
105{ 105{
106qDebug("KCMultiDialog::slotOk clicked"); 106qDebug("KCMultiDialog::slotOk clicked");
107 107
108 QPtrListIterator<KCModule> it(modules); 108 QPtrListIterator<KCModule> it(modules);
109 for (; it.current(); ++it) 109 for (; it.current(); ++it)
110 (*it)->save(); 110 (*it)->save();
111 QDialog::accept(); 111 QDialog::accept();
112 112
113 emit okClicked(); 113 emit okClicked();
114} 114}
115 115
116void KCMultiDialog::slotHelp() 116void KCMultiDialog::slotHelp()
117{ 117{
118/*US 118/*US
119 KURL url( KURL("help:/"), _docPath ); 119 KURL url( KURL("help:/"), _docPath );
120 120
121 if (url.protocol() == "help" || url.protocol() == "man" || url.protocol() == "info") { 121 if (url.protocol() == "help" || url.protocol() == "man" || url.protocol() == "info") {
122 KProcess process; 122 KProcess process;
123 process << "khelpcenter" 123 process << "khelpcenter"
124 << url.url(); 124 << url.url();
125 process.start(KProcess::DontCare); 125 process.start(KProcess::DontCare);
126 process.detach(); 126 process.detach();
127 } else { 127 } else {
128 new KRun(url); 128 new KRun(url);
129 } 129 }
130*/ 130*/
131} 131}
132 132
133void KCMultiDialog::clientChanged(bool state) 133void KCMultiDialog::clientChanged(bool state)
134{ 134{
135 enableButton(Apply, state); 135 enableButton(Apply, state);
136} 136}
137 137
138/*US 138/*US
139void KCMultiDialog::addModule(const QString& path, bool withfallback) 139void KCMultiDialog::addModule(const QString& path, bool withfallback)
140{ 140{
141 kdDebug(1208) << "KCMultiDialog::addModule " << path << endl; 141 kdDebug(1208) << "KCMultiDialog::addModule " << path << endl;
142 142
143 KCModuleInfo info(path, _baseGroup); 143 KCModuleInfo info(path, _baseGroup);
144 144
145 QHBox* page = addHBoxPage(info.moduleName(), info.comment(), 145 QHBox* page = addHBoxPage(info.moduleName(), info.comment(),
146 KGlobal::iconLoader()->loadIcon(info.icon(), KIcon::Desktop, KIcon::SizeMedium)); 146 KGlobal::iconLoader()->loadIcon(info.icon(), KIcon::Desktop, KIcon::SizeMedium));
147 if(!page) { 147 if(!page) {
148 KCModuleLoader::unloadModule(info); 148 KCModuleLoader::unloadModule(info);
149 return; 149 return;
150 } 150 }
151 moduleDict.insert(page, new LoadInfo(path, withfallback)); 151 moduleDict.insert(page, new LoadInfo(path, withfallback));
152 if (modules.isEmpty()) 152 if (modules.isEmpty())
153 slotAboutToShow(page); 153 slotAboutToShow(page);
154} 154}
155*/ 155*/
156QVBox * KCMultiDialog::getNewVBoxPage( const QString & modulename ) 156QVBox * KCMultiDialog::getNewVBoxPage( const QString & modulename )
157{ 157{
158 QVBox *page = mMainWidget->addVBoxPage(modulename , QString::null,QPixmap() ); 158 QVBox *page = mMainWidget->addVBoxPage(modulename , QString::null,QPixmap() );
159 return page; 159 return page;
160 160
161} 161}
162//US special method for microkde. We dop noty want to load everything dynamically. 162//US special method for microkde. We dop noty want to load everything dynamically.
163void KCMultiDialog::addModule(KCModule* module ) //, const QString& modulename, const QString& iconname) 163void KCMultiDialog::addModule(KCModule* module ) //, const QString& modulename, const QString& iconname)
164{ 164{
165 165
166 modules.append(module); 166 modules.append(module);
167 connect(module, SIGNAL(changed(bool)), this, SLOT(clientChanged(bool))); 167 connect(module, SIGNAL(changed(bool)), this, SLOT(clientChanged(bool)));
168//US 168//US
169 module->load(); 169 module->load();
170 170
171 171
172} 172}
173 173
174void KCMultiDialog::slotAboutToShow(QWidget *page) 174void KCMultiDialog::slotAboutToShow(QWidget *page)
175{ 175{
176/*US 176/*US
177 LoadInfo *loadInfo = moduleDict[page]; 177 LoadInfo *loadInfo = moduleDict[page];
178 if (!loadInfo) 178 if (!loadInfo)
179 return; 179 return;
180 180
181 QApplication::setOverrideCursor(Qt::WaitCursor); 181 QApplication::setOverrideCursor(Qt::WaitCursor);
182 182
183 moduleDict.remove(page); 183 moduleDict.remove(page);
184 184
185 KCModuleInfo info(loadInfo->path, _baseGroup); 185 KCModuleInfo info(loadInfo->path, _baseGroup);
186 186
187 KCModule *module = KCModuleLoader::loadModule(info, loadInfo->withfallback); 187 KCModule *module = KCModuleLoader::loadModule(info, loadInfo->withfallback);
188 188
189 if (!module) 189 if (!module)
190 { 190 {
191 QApplication::restoreOverrideCursor(); 191 QApplication::restoreOverrideCursor();
192 KCModuleLoader::showLastLoaderError(this); 192 KCModuleLoader::showLastLoaderError(this);
193 delete loadInfo; 193 delete loadInfo;
194 return; 194 return;
195 } 195 }
196 196
197 module->reparent(page,0,QPoint(0,0),true); 197 module->reparent(page,0,QPoint(0,0),true);
198 connect(module, SIGNAL(changed(bool)), this, SLOT(clientChanged(bool))); 198 connect(module, SIGNAL(changed(bool)), this, SLOT(clientChanged(bool)));
199 //setHelp( docpath, QString::null ); 199 //setHelp( docpath, QString::null );
200 _docPath = info.docPath(); 200 _docPath = info.docPath();
201 modules.append(module); 201 modules.append(module);
202 202
203 //KCGlobal::repairAccels( topLevelWidget() ); 203 //KCGlobal::repairAccels( topLevelWidget() );
204 204
205 delete loadInfo; 205 delete loadInfo;
206 206
207 QApplication::restoreOverrideCursor(); 207 QApplication::restoreOverrideCursor();
208*/ 208*/
209 209
210qDebug("KCMultiDialog::slotAboutToShow not implemented"); 210qDebug("KCMultiDialog::slotAboutToShow not implemented");
211} 211}
212 212
213 213
214bool KCMultiDialog::showPage( int index ) 214bool KCMultiDialog::showPage( int index )
215{ 215{
216 return(mMainWidget->showPage(index) ); 216 return(mMainWidget->showPage(index) );
217} 217}
218 218
219 219
220int KCMultiDialog::activePageIndex() const 220int KCMultiDialog::activePageIndex() const
221{ 221{
222 return( mMainWidget->activePageIndex() ); 222 return( mMainWidget->activePageIndex() );
223} 223}
224 224
225 225
226int KCMultiDialog::pageIndex( QWidget *widget ) const 226int KCMultiDialog::pageIndex( QWidget *widget ) const
227{ 227{
228 return( mMainWidget->pageIndex( widget) ); 228 return( mMainWidget->pageIndex( widget) );
229} 229}