summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/ablabel.cpp3
-rw-r--r--core/pim/addressbook/abtable.cpp9
-rw-r--r--core/pim/addressbook/addressbook.cpp16
-rw-r--r--core/pim/addressbook/configdlg.cpp1
-rw-r--r--core/pim/addressbook/contacteditor.cpp11
-rw-r--r--core/pim/addressbook/main.cpp1
-rw-r--r--core/pim/addressbook/picker.cpp2
-rw-r--r--core/pim/datebook/datebook.cpp15
-rw-r--r--core/pim/datebook/datebookdayallday.cpp10
-rw-r--r--core/pim/datebook/datebookdayheaderimpl.cpp4
-rw-r--r--core/pim/datebook/datebooksettings.cpp1
-rw-r--r--core/pim/datebook/datebookweekheaderimpl.cpp4
-rw-r--r--core/pim/datebook/datebookweeklst.cpp1
-rw-r--r--core/pim/datebook/dateentryimpl.cpp11
-rw-r--r--core/pim/datebook/main.cpp1
-rw-r--r--core/pim/datebook/noteentryimpl.cpp2
-rw-r--r--core/pim/datebook/repeatentry.cpp4
-rw-r--r--core/pim/osearch/adresssearch.cpp2
-rw-r--r--core/pim/osearch/applnkitem.cpp1
-rw-r--r--core/pim/osearch/applnksearch.cpp1
-rw-r--r--core/pim/osearch/contactitem.cpp1
-rw-r--r--core/pim/osearch/datebooksearch.cpp2
-rw-r--r--core/pim/osearch/doclnkitem.cpp1
-rw-r--r--core/pim/osearch/doclnksearch.cpp1
-rw-r--r--core/pim/osearch/eventitem.cpp2
-rw-r--r--core/pim/osearch/main.cpp1
-rw-r--r--core/pim/osearch/mainwindow.cpp2
-rw-r--r--core/pim/osearch/olistview.cpp1
-rw-r--r--core/pim/osearch/resultitem.cpp1
-rw-r--r--core/pim/osearch/searchgroup.cpp3
-rw-r--r--core/pim/osearch/todoitem.cpp1
-rw-r--r--core/pim/osearch/todosearch.cpp1
-rw-r--r--core/pim/today/today.cpp1
-rw-r--r--core/pim/todo/mainwindow.cpp6
34 files changed, 1 insertions, 123 deletions
diff --git a/core/pim/addressbook/ablabel.cpp b/core/pim/addressbook/ablabel.cpp
index 1914f71..076e2e0 100644
--- a/core/pim/addressbook/ablabel.cpp
+++ b/core/pim/addressbook/ablabel.cpp
@@ -1,147 +1,144 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qt Palmtop Environment. 4** This file is part of Qt Palmtop Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "ablabel.h" 21#include "ablabel.h"
22 22
23#include <qpe/stringutil.h>
24 23
25#include <qregexp.h>
26#include <qstylesheet.h>
27 24
28AbLabel::AbLabel( QWidget *parent, const char *name ): 25AbLabel::AbLabel( QWidget *parent, const char *name ):
29 QTextView( parent, name ), 26 QTextView( parent, name ),
30 m_empty( false ) 27 m_empty( false )
31{ 28{
32} 29}
33 30
34AbLabel::~AbLabel() 31AbLabel::~AbLabel()
35{ 32{
36} 33}
37 34
38void AbLabel::setContacts( const OContactAccess::List& viewList ) 35void AbLabel::setContacts( const OContactAccess::List& viewList )
39{ 36{
40 m_viewList = viewList; 37 m_viewList = viewList;
41 if (m_viewList.count() != 0){ 38 if (m_viewList.count() != 0){
42 m_empty = false; 39 m_empty = false;
43 m_itCurContact = m_viewList.begin(); 40 m_itCurContact = m_viewList.begin();
44 sync(); 41 sync();
45 }else{ 42 }else{
46 // m_itCurContact.clear(); 43 // m_itCurContact.clear();
47 m_empty = true; 44 m_empty = true;
48 setText( "" ); 45 setText( "" );
49 } 46 }
50} 47}
51 48
52int AbLabel::currentEntry_UID() 49int AbLabel::currentEntry_UID()
53{ 50{
54 OContact contact = currentEntry(); 51 OContact contact = currentEntry();
55 52
56 if ( contact.isEmpty() ) 53 if ( contact.isEmpty() )
57 return 0; 54 return 0;
58 else 55 else
59 return ( contact.uid() ); 56 return ( contact.uid() );
60} 57}
61 58
62OContact AbLabel::currentEntry() 59OContact AbLabel::currentEntry()
63{ 60{
64 if ( ! m_empty ) 61 if ( ! m_empty )
65 return ( *m_itCurContact ); 62 return ( *m_itCurContact );
66 else 63 else
67 return OContact(); 64 return OContact();
68} 65}
69 66
70 67
71bool AbLabel::selectContact( int UID ) 68bool AbLabel::selectContact( int UID )
72{ 69{
73 70
74 for ( int r = 0; r < m_viewList.count(); ++r ) { 71 for ( int r = 0; r < m_viewList.count(); ++r ) {
75 if ( m_viewList.uidAt( r ) == UID ){ 72 if ( m_viewList.uidAt( r ) == UID ){
76 m_itCurContact.setCurrent( r ); 73 m_itCurContact.setCurrent( r );
77 break; 74 break;
78 } 75 }
79 } 76 }
80 77
81 sync(); 78 sync();
82 79
83 return true; 80 return true;
84} 81}
85 82
86 83
87 84
88void AbLabel::sync() 85void AbLabel::sync()
89{ 86{
90 QString text = (*m_itCurContact).toRichText(); 87 QString text = (*m_itCurContact).toRichText();
91 setText( text ); 88 setText( text );
92} 89}
93 90
94void AbLabel::keyPressEvent( QKeyEvent *e ) 91void AbLabel::keyPressEvent( QKeyEvent *e )
95{ 92{
96 93
97 // Commonly handled keys 94 // Commonly handled keys
98 if ( !m_empty ){ 95 if ( !m_empty ){
99 switch( e->key() ) { 96 switch( e->key() ) {
100 case Qt::Key_Left: 97 case Qt::Key_Left:
101 qWarning( "Left.."); 98 qWarning( "Left..");
102 case Qt::Key_Right: 99 case Qt::Key_Right:
103 qWarning( "Right.."); 100 qWarning( "Right..");
104 case Qt::Key_F33: 101 case Qt::Key_F33:
105 qWarning( "OK.."); 102 qWarning( "OK..");
106 emit signalOkPressed(); 103 emit signalOkPressed();
107 break; 104 break;
108 case Qt::Key_Up: 105 case Qt::Key_Up:
109 qWarning( "UP.."); 106 qWarning( "UP..");
110 if ( ( visibleHeight() < contentsHeight() ) && 107 if ( ( visibleHeight() < contentsHeight() ) &&
111 ( verticalScrollBar()->value() > verticalScrollBar()->minValue() ) ) 108 ( verticalScrollBar()->value() > verticalScrollBar()->minValue() ) )
112 scrollBy( 0, -(visibleHeight()-20) ); 109 scrollBy( 0, -(visibleHeight()-20) );
113 else { 110 else {
114 --m_itCurContact; 111 --m_itCurContact;
115 if ( *m_itCurContact != OContact() ) 112 if ( *m_itCurContact != OContact() )
116 sync(); 113 sync();
117 else 114 else
118 m_itCurContact = m_viewList.end(); 115 m_itCurContact = m_viewList.end();
119 } 116 }
120 117
121 break; 118 break;
122 case Qt::Key_Down: 119 case Qt::Key_Down:
123 qWarning( "DOWN.."); 120 qWarning( "DOWN..");
124 // qWarning( "visible: %d, content: %d",visibleHeight(),contentsHeight()); 121 // qWarning( "visible: %d, content: %d",visibleHeight(),contentsHeight());
125 // qWarning( "value: %d; barMaxValue: %d", verticalScrollBar()->value() 122 // qWarning( "value: %d; barMaxValue: %d", verticalScrollBar()->value()
126 // , verticalScrollBar()->maxValue() ); 123 // , verticalScrollBar()->maxValue() );
127 if ( ( visibleHeight() < contentsHeight() ) && 124 if ( ( visibleHeight() < contentsHeight() ) &&
128 ( verticalScrollBar()->value() < verticalScrollBar()->maxValue() ) ) 125 ( verticalScrollBar()->value() < verticalScrollBar()->maxValue() ) )
129 scrollBy( 0, visibleHeight()-20 ); 126 scrollBy( 0, visibleHeight()-20 );
130 else { 127 else {
131 ++m_itCurContact; 128 ++m_itCurContact;
132 if ( *m_itCurContact != OContact() ) 129 if ( *m_itCurContact != OContact() )
133 sync(); 130 sync();
134 else 131 else
135 m_itCurContact = m_viewList.begin(); 132 m_itCurContact = m_viewList.begin();
136 } 133 }
137 break; 134 break;
138 case Qt::Key_Return: // fall through 135 case Qt::Key_Return: // fall through
139 case Qt::Key_Space: // fall through 136 case Qt::Key_Space: // fall through
140 case Qt::Key_Enter: // we want to switch back 137 case Qt::Key_Enter: // we want to switch back
141 emit signalOkPressed(); 138 emit signalOkPressed();
142 break; 139 break;
143 default: break; 140 default: break;
144 } 141 }
145 } 142 }
146 143
147} 144}
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index 70330c7..f7bff58 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -1,228 +1,219 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** Copyright (c) 2002 Stefan Eilers (eilers.stefan@epost.de) 3** Copyright (c) 2002 Stefan Eilers (eilers.stefan@epost.de)
4** 4**
5** This file is part of Qt Palmtop Environment. 5** This file is part of Qt Palmtop Environment.
6** 6**
7** This file may be distributed and/or modified under the terms of the 7** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software 8** GNU General Public License version 2 as published by the Free Software
9** Foundation and appearing in the file LICENSE.GPL included in the 9** Foundation and appearing in the file LICENSE.GPL included in the
10** packaging of this file. 10** packaging of this file.
11** 11**
12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14** 14**
15** See http://www.trolltech.com/gpl/ for GPL licensing information. 15** See http://www.trolltech.com/gpl/ for GPL licensing information.
16** 16**
17** Contact info@trolltech.com if any conditions of this licensing are 17** Contact info@trolltech.com if any conditions of this licensing are
18** not clear to you. 18** not clear to you.
19** 19**
20**********************************************************************/ 20**********************************************************************/
21 21
22 22
23#include <qpe/categoryselect.h>
24#include <qpe/config.h>
25#include <qpe/stringutil.h>
26#include <qpe/qcopenvelope_qws.h>
27#include <qpe/timestring.h> 23#include <qpe/timestring.h>
28#include <qpe/resource.h> 24#include <qpe/resource.h>
29 25
30#include <opie/orecordlist.h> 26#include <opie/orecordlist.h>
31 27
32#include <qasciidict.h>
33#include <qdatetime.h>
34#include <qfile.h>
35#include <qregexp.h>
36#include <qmessagebox.h>
37 28
38#include "abtable.h" 29#include "abtable.h"
39 30
40#include <errno.h> 31#include <errno.h>
41#include <fcntl.h> 32#include <fcntl.h>
42#include <unistd.h> 33#include <unistd.h>
43#include <stdlib.h> 34#include <stdlib.h>
44 35
45#include <ctype.h> //toupper() for key hack 36#include <ctype.h> //toupper() for key hack
46 37
47#if 0 38#if 0
48 39
49/*! 40/*!
50 \class AbTableItem abtable.h 41 \class AbTableItem abtable.h
51 42
52 \brief QTableItem based class for showing a field of an entry 43 \brief QTableItem based class for showing a field of an entry
53*/ 44*/
54 45
55AbTableItem::AbTableItem( QTable *t, EditType et, const QString &s, 46AbTableItem::AbTableItem( QTable *t, EditType et, const QString &s,
56 const QString &secondSortKey) 47 const QString &secondSortKey)
57 : QTableItem( t, et, s ) 48 : QTableItem( t, et, s )
58{ 49{
59 // sortKey = s.lower() + QChar( '\0' ) + secondSortKey.lower(); 50 // sortKey = s.lower() + QChar( '\0' ) + secondSortKey.lower();
60 sortKey = Qtopia::buildSortKey( s, secondSortKey ); 51 sortKey = Qtopia::buildSortKey( s, secondSortKey );
61} 52}
62 53
63int AbTableItem::alignment() const 54int AbTableItem::alignment() const
64{ 55{
65 return AlignLeft|AlignVCenter; 56 return AlignLeft|AlignVCenter;
66} 57}
67 58
68QString AbTableItem::key() const 59QString AbTableItem::key() const
69{ 60{
70 return sortKey; 61 return sortKey;
71} 62}
72 63
73// A way to reset the item, without out doing a delete or a new... 64// A way to reset the item, without out doing a delete or a new...
74void AbTableItem::setItem( const QString &txt, const QString &secondKey ) 65void AbTableItem::setItem( const QString &txt, const QString &secondKey )
75{ 66{
76 setText( txt ); 67 setText( txt );
77 sortKey = Qtopia::buildSortKey( txt, secondKey ); 68 sortKey = Qtopia::buildSortKey( txt, secondKey );
78 69
79 // sortKey = txt.lower() + QChar( '\0' ) + secondKey.lower(); 70 // sortKey = txt.lower() + QChar( '\0' ) + secondKey.lower();
80} 71}
81 72
82/*! 73/*!
83 \class AbPickItem abtable.h 74 \class AbPickItem abtable.h
84 75
85 \brief QTableItem based class for showing slection of an entry 76 \brief QTableItem based class for showing slection of an entry
86*/ 77*/
87 78
88AbPickItem::AbPickItem( QTable *t ) : 79AbPickItem::AbPickItem( QTable *t ) :
89 QTableItem(t, WhenCurrent, "?") 80 QTableItem(t, WhenCurrent, "?")
90{ 81{
91} 82}
92 83
93QWidget *AbPickItem::createEditor() const 84QWidget *AbPickItem::createEditor() const
94{ 85{
95 QComboBox* combo = new QComboBox( table()->viewport() ); 86 QComboBox* combo = new QComboBox( table()->viewport() );
96 ( (AbPickItem*)this )->cb = combo; 87 ( (AbPickItem*)this )->cb = combo;
97 AbTable* t = static_cast<AbTable*>(table()); 88 AbTable* t = static_cast<AbTable*>(table());
98 QStringList c = t->choiceNames(); 89 QStringList c = t->choiceNames();
99 int cur = 0; 90 int cur = 0;
100 for (QStringList::ConstIterator it = c.begin(); it!=c.end(); ++it) { 91 for (QStringList::ConstIterator it = c.begin(); it!=c.end(); ++it) {
101 if ( *it == text() ) 92 if ( *it == text() )
102 cur = combo->count(); 93 cur = combo->count();
103 combo->insertItem(*it); 94 combo->insertItem(*it);
104 } 95 }
105 combo->setCurrentItem(cur); 96 combo->setCurrentItem(cur);
106 return combo; 97 return combo;
107} 98}
108 99
109void AbPickItem::setContentFromEditor( QWidget *w ) 100void AbPickItem::setContentFromEditor( QWidget *w )
110{ 101{
111 if ( w->inherits("QComboBox") ) 102 if ( w->inherits("QComboBox") )
112 setText( ( (QComboBox*)w )->currentText() ); 103 setText( ( (QComboBox*)w )->currentText() );
113 else 104 else
114 QTableItem::setContentFromEditor( w ); 105 QTableItem::setContentFromEditor( w );
115} 106}
116 107
117#endif 108#endif
118 109
119/*! 110/*!
120 \class AbTable abtable.h 111 \class AbTable abtable.h
121 112
122 \brief QTable based class for showing a list of entries 113 \brief QTable based class for showing a list of entries
123*/ 114*/
124 115
125AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name ) 116AbTable::AbTable( const QValueList<int> order, QWidget *parent, const char *name )
126 : QTable( parent, name ), 117 : QTable( parent, name ),
127 lastSortCol( -1 ), 118 lastSortCol( -1 ),
128 asc( TRUE ), 119 asc( TRUE ),
129 intFields( order ), 120 intFields( order ),
130 enablePainting( true ), 121 enablePainting( true ),
131 columnVisible( true ), 122 columnVisible( true ),
132 countNested( 0 ) 123 countNested( 0 )
133{ 124{
134 //qWarning("C'tor start"); 125 //qWarning("C'tor start");
135 126
136 setSelectionMode( NoSelection ); 127 setSelectionMode( NoSelection );
137 init(); 128 init();
138 setSorting( TRUE ); 129 setSorting( TRUE );
139 connect( this, SIGNAL(clicked(int,int,int,const QPoint &)), 130 connect( this, SIGNAL(clicked(int,int,int,const QPoint &)),
140 this, SLOT(itemClicked(int,int)) ); 131 this, SLOT(itemClicked(int,int)) );
141 132
142 // contactList.clear(); 133 // contactList.clear();
143 //qWarning("C'tor end"); 134 //qWarning("C'tor end");
144} 135}
145 136
146AbTable::~AbTable() 137AbTable::~AbTable()
147{ 138{
148} 139}
149 140
150void AbTable::init() 141void AbTable::init()
151{ 142{
152 // :SX showChar = '\0'; 143 // :SX showChar = '\0';
153 setNumRows( 0 ); 144 setNumRows( 0 );
154 setNumCols( 2 ); 145 setNumCols( 2 );
155 146
156 horizontalHeader()->setLabel( 0, tr( "Full Name" )); 147 horizontalHeader()->setLabel( 0, tr( "Full Name" ));
157 horizontalHeader()->setLabel( 1, tr( "Contact" )); 148 horizontalHeader()->setLabel( 1, tr( "Contact" ));
158 setLeftMargin( 0 ); 149 setLeftMargin( 0 );
159 verticalHeader()->hide(); 150 verticalHeader()->hide();
160 columnVisible = true; 151 columnVisible = true;
161} 152}
162 153
163void AbTable::setContacts( const OContactAccess::List& viewList ) 154void AbTable::setContacts( const OContactAccess::List& viewList )
164{ 155{
165 qWarning("AbTable::setContacts()"); 156 qWarning("AbTable::setContacts()");
166 157
167 clear(); 158 clear();
168 m_viewList = viewList; 159 m_viewList = viewList;
169 160
170 setSorting( false ); 161 setSorting( false );
171 setPaintingEnabled( FALSE ); 162 setPaintingEnabled( FALSE );
172 163
173 OContactAccess::List::Iterator it; 164 OContactAccess::List::Iterator it;
174 setNumRows( m_viewList.count() ); 165 setNumRows( m_viewList.count() );
175 //int row = 0; 166 //int row = 0;
176 // for ( it = m_viewList.begin(); it != m_viewList.end(); ++it ) 167 // for ( it = m_viewList.begin(); it != m_viewList.end(); ++it )
177 // insertIntoTable( *it, row++ ); 168 // insertIntoTable( *it, row++ );
178 169
179 // setSorting( true ); 170 // setSorting( true );
180 171
181 // resort(); 172 // resort();
182 173
183 updateVisible(); 174 updateVisible();
184 175
185 setPaintingEnabled( TRUE ); 176 setPaintingEnabled( TRUE );
186 177
187} 178}
188 179
189void AbTable::setOrderedList( const QValueList<int> ordered ) 180void AbTable::setOrderedList( const QValueList<int> ordered )
190{ 181{
191 intFields = ordered; 182 intFields = ordered;
192} 183}
193 184
194 185
195bool AbTable::selectContact( int UID ) 186bool AbTable::selectContact( int UID )
196{ 187{
197 qWarning( "AbTable::selectContact( %d )", UID ); 188 qWarning( "AbTable::selectContact( %d )", UID );
198 int rows = numRows(); 189 int rows = numRows();
199 OContact* foundContact = 0l; 190 OContact* foundContact = 0l;
200 bool found = false; 191 bool found = false;
201 192
202 setPaintingEnabled( FALSE ); 193 setPaintingEnabled( FALSE );
203 qWarning( "search start" ); 194 qWarning( "search start" );
204 for ( int r = 0; r < rows; ++r ) { 195 for ( int r = 0; r < rows; ++r ) {
205 if ( m_viewList.uidAt( r ) == UID ){ 196 if ( m_viewList.uidAt( r ) == UID ){
206 ensureCellVisible( r, 0 ); 197 ensureCellVisible( r, 0 );
207 setCurrentCell( r, 0 ); 198 setCurrentCell( r, 0 );
208 found = true; 199 found = true;
209 break; 200 break;
210 } 201 }
211 } 202 }
212 qWarning( "search end" ); 203 qWarning( "search end" );
213 204
214 if ( !found ){ 205 if ( !found ){
215 ensureCellVisible( 0,0 ); 206 ensureCellVisible( 0,0 );
216 setCurrentCell( 0, 0 ); 207 setCurrentCell( 0, 0 );
217 } 208 }
218 209
219 setPaintingEnabled( TRUE ); 210 setPaintingEnabled( TRUE );
220 211
221 return true; 212 return true;
222} 213}
223 214
224#if 0 215#if 0
225void AbTable::insertIntoTable( const OContact& cnt, int row ) 216void AbTable::insertIntoTable( const OContact& cnt, int row )
226{ 217{
227 qWarning( "void AbTable::insertIntoTable( const OContact& cnt, %d )", row ); 218 qWarning( "void AbTable::insertIntoTable( const OContact& cnt, %d )", row );
228 QString strName; 219 QString strName;
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 1c7ddd4..9cf55b3 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -1,250 +1,234 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** Copyright (C) 2003 Stefan Eilers (eilers.stefan@epost.de) 3** Copyright (C) 2003 Stefan Eilers (eilers.stefan@epost.de)
4** 4**
5** This file is part of the Open Palmtop Environment (see www.opie.info). 5** This file is part of the Open Palmtop Environment (see www.opie.info).
6** 6**
7** This file may be distributed and/or modified under the terms of the 7** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software 8** GNU General Public License version 2 as published by the Free Software
9** Foundation and appearing in the file LICENSE.GPL included in the 9** Foundation and appearing in the file LICENSE.GPL included in the
10** packaging of this file. 10** packaging of this file.
11** 11**
12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14** 14**
15** See http://www.trolltech.com/gpl/ for GPL licensing information. 15** See http://www.trolltech.com/gpl/ for GPL licensing information.
16** 16**
17** 17**
18**********************************************************************/ 18**********************************************************************/
19 19
20#define QTOPIA_INTERNAL_FD 20#define QTOPIA_INTERNAL_FD
21 21
22#include "contacteditor.h"
23#include "ablabel.h"
24#include "abview.h"
25#include "abtable.h"
26// #include "addresssettings.h" 22// #include "addresssettings.h"
27#include "addressbook.h" 23#include "addressbook.h"
28 24
29 25
30#include <opie/ofileselector.h> 26#include <opie/ofileselector.h>
31#include <opie/ofiledialog.h> 27#include <opie/ofiledialog.h>
32#include <opie/ocontact.h> 28#include <opie/ocontact.h>
33#include <opie/ocontactaccessbackend_vcard.h> 29#include <opie/ocontactaccessbackend_vcard.h>
34 30
35#include <qpe/resource.h> 31#include <qpe/resource.h>
36#include <qpe/ir.h> 32#include <qpe/ir.h>
37#include <qpe/qpemessagebox.h> 33#include <qpe/qpemessagebox.h>
38#include <qpe/qcopenvelope_qws.h>
39#include <qtoolbar.h>
40#include <qmenubar.h> 34#include <qmenubar.h>
41// #include <qtoolbar.h> 35// #include <qtoolbar.h>
42// #include <qmenubar.h> 36// #include <qmenubar.h>
43#include <qpe/qpeapplication.h> 37#include <qpe/qpeapplication.h>
44#include <qpe/config.h>
45 38
46#include <qaction.h> 39#include <qaction.h>
47#include <qdialog.h>
48#include <qdir.h>
49#include <qfile.h>
50#include <qimage.h>
51#include <qlayout.h> 40#include <qlayout.h>
52#include <qmessagebox.h> 41#include <qmessagebox.h>
53#include <qpixmap.h>
54#include <qpopupmenu.h>
55#include <qstringlist.h>
56#include <qtoolbutton.h> 42#include <qtoolbutton.h>
57#include <qwhatsthis.h>
58#include <qdatetime.h>
59 43
60#include <stdlib.h> 44#include <stdlib.h>
61#include <sys/stat.h> 45#include <sys/stat.h>
62#include <sys/types.h> 46#include <sys/types.h>
63#include <fcntl.h> 47#include <fcntl.h>
64#include <unistd.h> 48#include <unistd.h>
65 49
66 50
67#include "picker.h" 51#include "picker.h"
68#include "configdlg.h" 52#include "configdlg.h"
69 53
70extern QString addressbookPersonalVCardName(); 54extern QString addressbookPersonalVCardName();
71 55
72AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, 56AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
73 WFlags f ) 57 WFlags f )
74 : QMainWindow( parent, name, f ), 58 : QMainWindow( parent, name, f ),
75 catMenu (0l), 59 catMenu (0l),
76 abEditor(0l), 60 abEditor(0l),
77 syncing(FALSE), 61 syncing(FALSE),
78 m_tableViewButton(0l), 62 m_tableViewButton(0l),
79 m_cardViewButton(0l) 63 m_cardViewButton(0l)
80{ 64{
81 isLoading = true; 65 isLoading = true;
82 66
83 m_config.load(); 67 m_config.load();
84 68
85 setCaption( tr("Contacts") ); 69 setCaption( tr("Contacts") );
86 setIcon( Resource::loadPixmap( "AddressBook" ) ); 70 setIcon( Resource::loadPixmap( "AddressBook" ) );
87 71
88 // Settings for Main Menu 72 // Settings for Main Menu
89 // setToolBarsMovable( false ); 73 // setToolBarsMovable( false );
90 setToolBarsMovable( !m_config.fixedBars() ); 74 setToolBarsMovable( !m_config.fixedBars() );
91 setRightJustification( true ); 75 setRightJustification( true );
92 76
93 QToolBar *bar = new QToolBar( this ); 77 QToolBar *bar = new QToolBar( this );
94 bar->setHorizontalStretchable( TRUE ); 78 bar->setHorizontalStretchable( TRUE );
95 79
96 QMenuBar *mbList = new QMenuBar( bar ); 80 QMenuBar *mbList = new QMenuBar( bar );
97 mbList->setMargin( 0 ); 81 mbList->setMargin( 0 );
98 82
99 QPopupMenu *edit = new QPopupMenu( mbList ); 83 QPopupMenu *edit = new QPopupMenu( mbList );
100 mbList->insertItem( tr( "Contact" ), edit ); 84 mbList->insertItem( tr( "Contact" ), edit );
101 85
102 // Category Menu 86 // Category Menu
103 catMenu = new QPopupMenu( this ); 87 catMenu = new QPopupMenu( this );
104 catMenu->setCheckable( TRUE ); 88 catMenu->setCheckable( TRUE );
105 connect( catMenu, SIGNAL(activated(int)), this, SLOT(slotSetCategory(int)) ); 89 connect( catMenu, SIGNAL(activated(int)), this, SLOT(slotSetCategory(int)) );
106 mbList->insertItem( tr("View"), catMenu ); 90 mbList->insertItem( tr("View"), catMenu );
107 91
108 // Create Toolbar 92 // Create Toolbar
109 listTools = new QToolBar( this, "list operations" ); 93 listTools = new QToolBar( this, "list operations" );
110 listTools->setHorizontalStretchable( true ); 94 listTools->setHorizontalStretchable( true );
111 addToolBar( listTools ); 95 addToolBar( listTools );
112 moveToolBar( listTools, m_config.getToolBarPos() ); 96 moveToolBar( listTools, m_config.getToolBarPos() );
113 97
114 // View Icons 98 // View Icons
115 m_tableViewButton = new QAction( tr( "List" ), Resource::loadPixmap( "addressbook/listview" ), 99 m_tableViewButton = new QAction( tr( "List" ), Resource::loadPixmap( "addressbook/listview" ),
116 QString::null, 0, this, 0 ); 100 QString::null, 0, this, 0 );
117 connect( m_tableViewButton, SIGNAL( activated() ), this, SLOT( slotListView() ) ); 101 connect( m_tableViewButton, SIGNAL( activated() ), this, SLOT( slotListView() ) );
118 m_tableViewButton->setToggleAction( true ); 102 m_tableViewButton->setToggleAction( true );
119 m_tableViewButton->addTo( listTools ); 103 m_tableViewButton->addTo( listTools );
120 m_cardViewButton = new QAction( tr( "Card" ), Resource::loadPixmap( "addressbook/cardview" ), QString::null, 0, this, 0 ); 104 m_cardViewButton = new QAction( tr( "Card" ), Resource::loadPixmap( "addressbook/cardview" ), QString::null, 0, this, 0 );
121 connect( m_cardViewButton, SIGNAL( activated() ), this, SLOT( slotCardView() ) ); 105 connect( m_cardViewButton, SIGNAL( activated() ), this, SLOT( slotCardView() ) );
122 m_cardViewButton->setToggleAction( true ); 106 m_cardViewButton->setToggleAction( true );
123 m_cardViewButton->addTo( listTools ); 107 m_cardViewButton->addTo( listTools );
124 108
125 listTools->addSeparator(); 109 listTools->addSeparator();
126 110
127 // Other Buttons 111 // Other Buttons
128 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 112 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null,
129 0, this, 0 ); 113 0, this, 0 );
130 actionNew = a; 114 actionNew = a;
131 connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) ); 115 connect( a, SIGNAL( activated() ), this, SLOT( slotListNew() ) );
132 a->addTo( edit ); 116 a->addTo( edit );
133 a->addTo( listTools ); 117 a->addTo( listTools );
134 118
135 a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null, 119 a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ), QString::null,
136 0, this, 0 ); 120 0, this, 0 );
137 actionEdit = a; 121 actionEdit = a;
138 connect( a, SIGNAL( activated() ), this, SLOT( slotViewEdit() ) ); 122 connect( a, SIGNAL( activated() ), this, SLOT( slotViewEdit() ) );
139 a->addTo( edit ); 123 a->addTo( edit );
140 a->addTo( listTools ); 124 a->addTo( listTools );
141 125
142 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 126 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null,
143 0, this, 0 ); 127 0, this, 0 );
144 actionTrash = a; 128 actionTrash = a;
145 connect( a, SIGNAL( activated() ), this, SLOT( slotListDelete() ) ); 129 connect( a, SIGNAL( activated() ), this, SLOT( slotListDelete() ) );
146 a->addTo( edit ); 130 a->addTo( edit );
147 a->addTo( listTools ); 131 a->addTo( listTools );
148 132
149 133
150 // make it possible to go directly to businesscard via qcop call 134 // make it possible to go directly to businesscard via qcop call
151 //#if defined(Q_WS_QWS) // Why this ? (se) 135 //#if defined(Q_WS_QWS) // Why this ? (se)
152#if !defined(QT_NO_COP) 136#if !defined(QT_NO_COP)
153 QCopChannel *addressChannel = new QCopChannel("QPE/Addressbook" , this ); 137 QCopChannel *addressChannel = new QCopChannel("QPE/Addressbook" , this );
154 connect (addressChannel, SIGNAL( received(const QCString &, const QByteArray &)), 138 connect (addressChannel, SIGNAL( received(const QCString &, const QByteArray &)),
155 this, SLOT ( appMessage(const QCString &, const QByteArray &) ) ); 139 this, SLOT ( appMessage(const QCString &, const QByteArray &) ) );
156#endif 140#endif
157 // #endif 141 // #endif
158 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), 142 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ),
159 QString::null, 0, this, 0 ); 143 QString::null, 0, this, 0 );
160 actionFind = a; 144 actionFind = a;
161 connect( a, SIGNAL(activated()), this, SLOT( slotFindOpen()) ); 145 connect( a, SIGNAL(activated()), this, SLOT( slotFindOpen()) );
162 a->addTo( edit ); 146 a->addTo( edit );
163 a->addTo( listTools ); 147 a->addTo( listTools );
164 148
165 // Much better search widget, taken from QTReader.. (se) 149 // Much better search widget, taken from QTReader.. (se)
166 searchBar = new OFloatBar( "Search", this, QMainWindow::Top, TRUE ); 150 searchBar = new OFloatBar( "Search", this, QMainWindow::Top, TRUE );
167 searchBar->setHorizontalStretchable( TRUE ); 151 searchBar->setHorizontalStretchable( TRUE );
168 searchBar->hide(); 152 searchBar->hide();
169 searchEdit = new QLineEdit( searchBar, "searchEdit" ); 153 searchEdit = new QLineEdit( searchBar, "searchEdit" );
170 154
171 // QFont f("unifont", 16 /*, QFont::Bold*/); 155 // QFont f("unifont", 16 /*, QFont::Bold*/);
172 // searchEdit->setFont( f ); 156 // searchEdit->setFont( f );
173 157
174 searchBar->setStretchableWidget( searchEdit ); 158 searchBar->setStretchableWidget( searchEdit );
175 connect( searchEdit, SIGNAL( returnPressed( ) ), 159 connect( searchEdit, SIGNAL( returnPressed( ) ),
176 this, SLOT( slotFind( ) ) ); 160 this, SLOT( slotFind( ) ) );
177 161
178 a = new QAction( tr( "Start Search" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 ); 162 a = new QAction( tr( "Start Search" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 );
179 connect( a, SIGNAL( activated() ), this, SLOT( slotFind() ) ); 163 connect( a, SIGNAL( activated() ), this, SLOT( slotFind() ) );
180 a->addTo( searchBar ); 164 a->addTo( searchBar );
181 165
182 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 166 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
183 connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) ); 167 connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) );
184 a->addTo( searchBar ); 168 a->addTo( searchBar );
185 169
186 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "addressbook/sendmail" ), 170 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "addressbook/sendmail" ),
187 QString::null, 0, this, 0 ); 171 QString::null, 0, this, 0 );
188 //a->setEnabled( FALSE ); we got support for it now :) zecke 172 //a->setEnabled( FALSE ); we got support for it now :) zecke
189 actionMail = a; 173 actionMail = a;
190 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) ); 174 connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) );
191 a->addTo( edit ); 175 a->addTo( edit );
192 a->addTo( listTools ); 176 a->addTo( listTools );
193 177
194 if ( Ir::supported() ) { 178 if ( Ir::supported() ) {
195 a = new QAction( tr ("Beam Entry" ), Resource::loadPixmap( "beam" ), QString::null, 179 a = new QAction( tr ("Beam Entry" ), Resource::loadPixmap( "beam" ), QString::null,
196 0, this, 0 ); 180 0, this, 0 );
197 actionBeam = a; 181 actionBeam = a;
198 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) ); 182 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) );
199 a->addTo( edit ); 183 a->addTo( edit );
200 a->addTo( listTools ); 184 a->addTo( listTools );
201 } 185 }
202 186
203 edit->insertSeparator(); 187 edit->insertSeparator();
204 188
205 a = new QAction( tr("Import vCard"), Resource::loadPixmap( "addressbook/fileimport"), QString::null, 189 a = new QAction( tr("Import vCard"), Resource::loadPixmap( "addressbook/fileimport"), QString::null,
206 0, this, 0); 190 0, this, 0);
207 actionPersonal = a; 191 actionPersonal = a;
208 connect( a, SIGNAL( activated() ), this, SLOT( importvCard() ) ); 192 connect( a, SIGNAL( activated() ), this, SLOT( importvCard() ) );
209 a->addTo( edit ); 193 a->addTo( edit );
210 194
211 a = new QAction( tr("Export vCard"), Resource::loadPixmap( "addressbook/fileexport"), QString::null, 195 a = new QAction( tr("Export vCard"), Resource::loadPixmap( "addressbook/fileexport"), QString::null,
212 0, this, 0); 196 0, this, 0);
213 actionPersonal = a; 197 actionPersonal = a;
214 connect( a, SIGNAL( activated() ), this, SLOT( exportvCard() ) ); 198 connect( a, SIGNAL( activated() ), this, SLOT( exportvCard() ) );
215 a->addTo( edit ); 199 a->addTo( edit );
216 200
217 edit->insertSeparator(); 201 edit->insertSeparator();
218 202
219 a = new QAction( tr("My Personal Details"), Resource::loadPixmap( "addressbook/identity" ), 203 a = new QAction( tr("My Personal Details"), Resource::loadPixmap( "addressbook/identity" ),
220 QString::null, 0, this, 0 , TRUE ); 204 QString::null, 0, this, 0 , TRUE );
221 actionPersonal = a; 205 actionPersonal = a;
222 connect( a, SIGNAL( activated() ), this, SLOT( slotPersonalView() ) ); 206 connect( a, SIGNAL( activated() ), this, SLOT( slotPersonalView() ) );
223 a->addTo( edit ); 207 a->addTo( edit );
224 208
225 209
226#ifdef __DEBUG_RELEASE 210#ifdef __DEBUG_RELEASE
227 // Remove this function for public Release ! This is only 211 // Remove this function for public Release ! This is only
228 // for debug purposes .. 212 // for debug purposes ..
229 a = new QAction( tr( "Save all Data"), QString::null, 0, 0 ); 213 a = new QAction( tr( "Save all Data"), QString::null, 0, 0 );
230 connect( a, SIGNAL( activated() ), this , SLOT( slotSave() ) ); 214 connect( a, SIGNAL( activated() ), this , SLOT( slotSave() ) );
231 a->addTo( edit ); 215 a->addTo( edit );
232#endif 216#endif
233 a = new QAction( tr( "Config" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 217 a = new QAction( tr( "Config" ), Resource::loadPixmap( "SettingsIcon" ), QString::null,
234 0, this, 0 ); 218 0, this, 0 );
235 connect( a, SIGNAL( activated() ), this, SLOT( slotConfig() ) ); 219 connect( a, SIGNAL( activated() ), this, SLOT( slotConfig() ) );
236 a->addTo( edit ); 220 a->addTo( edit );
237 221
238 // Create Views 222 // Create Views
239 listContainer = new QWidget( this ); 223 listContainer = new QWidget( this );
240 QVBoxLayout *vb = new QVBoxLayout( listContainer ); 224 QVBoxLayout *vb = new QVBoxLayout( listContainer );
241 225
242 m_abView = new AbView( listContainer, m_config.orderList() ); 226 m_abView = new AbView( listContainer, m_config.orderList() );
243 vb->addWidget( m_abView ); 227 vb->addWidget( m_abView );
244 // abList->setHScrollBarMode( QScrollView::AlwaysOff ); 228 // abList->setHScrollBarMode( QScrollView::AlwaysOff );
245 connect( m_abView, SIGNAL( signalViewSwitched ( int ) ), 229 connect( m_abView, SIGNAL( signalViewSwitched ( int ) ),
246 this, SLOT( slotViewSwitched( int ) ) ); 230 this, SLOT( slotViewSwitched( int ) ) );
247 231
248 232
249 QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) ); 233 QObject::connect( m_abView, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) );
250 234
diff --git a/core/pim/addressbook/configdlg.cpp b/core/pim/addressbook/configdlg.cpp
index 981f5e0..dee0f11 100644
--- a/core/pim/addressbook/configdlg.cpp
+++ b/core/pim/addressbook/configdlg.cpp
@@ -1,154 +1,153 @@
1#include "configdlg.h" 1#include "configdlg.h"
2 2
3#include <qcheckbox.h> 3#include <qcheckbox.h>
4#include <qradiobutton.h> 4#include <qradiobutton.h>
5#include <qlistbox.h> 5#include <qlistbox.h>
6#include <qpushbutton.h> 6#include <qpushbutton.h>
7#include <qiconset.h>
8 7
9#include <qpe/resource.h> 8#include <qpe/resource.h>
10 9
11#include <opie/ocontact.h> 10#include <opie/ocontact.h>
12#include "opie/ocontactfields.h" 11#include "opie/ocontactfields.h"
13 12
14ConfigDlg::ConfigDlg( QWidget *parent, const char *name): 13ConfigDlg::ConfigDlg( QWidget *parent, const char *name):
15 ConfigDlg_Base(parent, name, true ) 14 ConfigDlg_Base(parent, name, true )
16{ 15{
17 contFields = OContactFields::trfields(); 16 contFields = OContactFields::trfields();
18 17
19 // We add all Fields into the Listbox 18 // We add all Fields into the Listbox
20 for (uint i=0; i < contFields.count(); i++) { 19 for (uint i=0; i < contFields.count(); i++) {
21 allFieldListBox->insertItem( contFields[i] ); 20 allFieldListBox->insertItem( contFields[i] );
22 } 21 }
23 22
24 // Reset Widget Flags: This was not changeable by designer :( 23 // Reset Widget Flags: This was not changeable by designer :(
25 setWFlags ( WStyle_ContextHelp ); 24 setWFlags ( WStyle_ContextHelp );
26 25
27 // Set Pics to Buttons and Tabs 26 // Set Pics to Buttons and Tabs
28 m_upButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/up" ) ) ); 27 m_upButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/up" ) ) );
29 m_downButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/down" ) ) ); 28 m_downButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/down" ) ) );
30 m_addButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/add" ) ) ); 29 m_addButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/add" ) ) );
31 m_removeButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/sub" ) ) ); 30 m_removeButton->setIconSet( QIconSet( Resource::loadPixmap( "addressbook/sub" ) ) );
32 31
33 32
34 // Get the translation maps between Field ID and translated strings 33 // Get the translation maps between Field ID and translated strings
35 m_mapStrToID = OContactFields::trFieldsToId(); 34 m_mapStrToID = OContactFields::trFieldsToId();
36 m_mapIDToStr = OContactFields::idToTrFields(); 35 m_mapIDToStr = OContactFields::idToTrFields();
37 36
38 connect ( m_addButton, SIGNAL( clicked() ), this, SLOT( slotItemAdd() ) ); 37 connect ( m_addButton, SIGNAL( clicked() ), this, SLOT( slotItemAdd() ) );
39 connect ( m_removeButton, SIGNAL( clicked() ), this, SLOT( slotItemRemove() ) ); 38 connect ( m_removeButton, SIGNAL( clicked() ), this, SLOT( slotItemRemove() ) );
40 connect ( m_upButton, SIGNAL( clicked() ), this, SLOT( slotItemUp() ) ); 39 connect ( m_upButton, SIGNAL( clicked() ), this, SLOT( slotItemUp() ) );
41 connect ( m_downButton, SIGNAL( clicked() ), this, SLOT( slotItemDown() ) ); 40 connect ( m_downButton, SIGNAL( clicked() ), this, SLOT( slotItemDown() ) );
42} 41}
43 42
44void ConfigDlg::slotItemUp() 43void ConfigDlg::slotItemUp()
45{ 44{
46 qWarning( "void ConfigDlg::slotItemUp()" ); 45 qWarning( "void ConfigDlg::slotItemUp()" );
47 46
48 int i = fieldListBox->currentItem(); 47 int i = fieldListBox->currentItem();
49 if ( i > 0 ) { 48 if ( i > 0 ) {
50 QString item = fieldListBox->currentText(); 49 QString item = fieldListBox->currentText();
51 fieldListBox->removeItem( i ); 50 fieldListBox->removeItem( i );
52 fieldListBox->insertItem( item, i-1 ); 51 fieldListBox->insertItem( item, i-1 );
53 fieldListBox->setCurrentItem( i-1 ); 52 fieldListBox->setCurrentItem( i-1 );
54 } 53 }
55 54
56} 55}
57 56
58void ConfigDlg::slotItemDown() 57void ConfigDlg::slotItemDown()
59{ 58{
60 qWarning( "void ConfigDlg::slotItemDown()" ); 59 qWarning( "void ConfigDlg::slotItemDown()" );
61 60
62 int i = fieldListBox->currentItem(); 61 int i = fieldListBox->currentItem();
63 if ( i < (int)fieldListBox->count() - 1 ) { 62 if ( i < (int)fieldListBox->count() - 1 ) {
64 QString item = fieldListBox->currentText(); 63 QString item = fieldListBox->currentText();
65 fieldListBox->removeItem( i ); 64 fieldListBox->removeItem( i );
66 fieldListBox->insertItem( item, i+1 ); 65 fieldListBox->insertItem( item, i+1 );
67 fieldListBox->setCurrentItem( i+1 ); 66 fieldListBox->setCurrentItem( i+1 );
68 } 67 }
69} 68}
70 69
71void ConfigDlg::slotItemAdd() 70void ConfigDlg::slotItemAdd()
72{ 71{
73 qWarning( "void ConfigDlg::slotItemAdd()" ); 72 qWarning( "void ConfigDlg::slotItemAdd()" );
74 73
75 int i = allFieldListBox->currentItem(); 74 int i = allFieldListBox->currentItem();
76 if ( i > 0 ) { 75 if ( i > 0 ) {
77 QString item = allFieldListBox->currentText(); 76 QString item = allFieldListBox->currentText();
78 qWarning("ADding %s", item.latin1()); 77 qWarning("ADding %s", item.latin1());
79 fieldListBox->insertItem( item ); 78 fieldListBox->insertItem( item );
80 } 79 }
81} 80}
82 81
83void ConfigDlg::slotItemRemove() 82void ConfigDlg::slotItemRemove()
84{ 83{
85 qWarning( "void ConfigDlg::slotItemRemove()" ); 84 qWarning( "void ConfigDlg::slotItemRemove()" );
86 85
87 int i = fieldListBox->currentItem(); 86 int i = fieldListBox->currentItem();
88 if ( i > 0 ) { 87 if ( i > 0 ) {
89 fieldListBox->removeItem( i ); 88 fieldListBox->removeItem( i );
90 } 89 }
91} 90}
92 91
93void ConfigDlg::setConfig( const AbConfig& cnf ) 92void ConfigDlg::setConfig( const AbConfig& cnf )
94{ 93{
95 m_config = cnf; 94 m_config = cnf;
96 95
97 m_useRegExp->setChecked( m_config.useRegExp() ); 96 m_useRegExp->setChecked( m_config.useRegExp() );
98 m_useWildCard->setChecked( m_config.useWildCards() ); 97 m_useWildCard->setChecked( m_config.useWildCards() );
99 m_useQtMail->setChecked( m_config.useQtMail() ); 98 m_useQtMail->setChecked( m_config.useQtMail() );
100 m_useOpieMail->setChecked( m_config.useOpieMail() ); 99 m_useOpieMail->setChecked( m_config.useOpieMail() );
101 m_useCaseSensitive->setChecked( m_config.beCaseSensitive() ); 100 m_useCaseSensitive->setChecked( m_config.beCaseSensitive() );
102 101
103 switch( m_config.fontSize() ){ 102 switch( m_config.fontSize() ){
104 case 0: 103 case 0:
105 m_smallFont->setChecked( true ); 104 m_smallFont->setChecked( true );
106 m_normalFont->setChecked( false ); 105 m_normalFont->setChecked( false );
107 m_largeFont->setChecked( false ); 106 m_largeFont->setChecked( false );
108 break; 107 break;
109 case 1: 108 case 1:
110 m_smallFont->setChecked( false ); 109 m_smallFont->setChecked( false );
111 m_normalFont->setChecked( true ); 110 m_normalFont->setChecked( true );
112 m_largeFont->setChecked( false ); 111 m_largeFont->setChecked( false );
113 break; 112 break;
114 case 2: 113 case 2:
115 m_smallFont->setChecked( false ); 114 m_smallFont->setChecked( false );
116 m_normalFont->setChecked( false ); 115 m_normalFont->setChecked( false );
117 m_largeFont->setChecked( true ); 116 m_largeFont->setChecked( true );
118 break; 117 break;
119 } 118 }
120 119
121 for( uint i = 0; i < m_config.orderList().count(); i++ ) { 120 for( uint i = 0; i < m_config.orderList().count(); i++ ) {
122 fieldListBox -> insertItem ( m_mapIDToStr[ m_config.orderList()[i] ] ); 121 fieldListBox -> insertItem ( m_mapIDToStr[ m_config.orderList()[i] ] );
123 } 122 }
124 123
125 m_fixedBars->setChecked( m_config.fixedBars() ); 124 m_fixedBars->setChecked( m_config.fixedBars() );
126 m_moveBars->setChecked( !m_config.fixedBars() ); 125 m_moveBars->setChecked( !m_config.fixedBars() );
127} 126}
128 127
129AbConfig ConfigDlg::getConfig() 128AbConfig ConfigDlg::getConfig()
130{ 129{
131 m_config.setUseRegExp( m_useRegExp->isOn() ); 130 m_config.setUseRegExp( m_useRegExp->isOn() );
132 m_config.setUseWildCards( m_useWildCard->isOn() ); 131 m_config.setUseWildCards( m_useWildCard->isOn() );
133 m_config.setUseQtMail( m_useQtMail->isOn() ); 132 m_config.setUseQtMail( m_useQtMail->isOn() );
134 m_config.setUseOpieMail( m_useOpieMail->isOn() ); 133 m_config.setUseOpieMail( m_useOpieMail->isOn() );
135 m_config.setBeCaseSensitive( m_useCaseSensitive->isChecked() ); 134 m_config.setBeCaseSensitive( m_useCaseSensitive->isChecked() );
136 135
137 if ( m_smallFont->isChecked() ) 136 if ( m_smallFont->isChecked() )
138 m_config.setFontSize( 0 ); 137 m_config.setFontSize( 0 );
139 if ( m_normalFont->isChecked() ) 138 if ( m_normalFont->isChecked() )
140 m_config.setFontSize( 1 ); 139 m_config.setFontSize( 1 );
141 if ( m_largeFont->isChecked() ) 140 if ( m_largeFont->isChecked() )
142 m_config.setFontSize( 2 ); 141 m_config.setFontSize( 2 );
143 142
144 QValueList<int> orderlist; 143 QValueList<int> orderlist;
145 for( int i = 0; i < (int)fieldListBox->count(); i++ ) { 144 for( int i = 0; i < (int)fieldListBox->count(); i++ ) {
146 orderlist.append( m_mapStrToID[ fieldListBox->text(i) ] ); 145 orderlist.append( m_mapStrToID[ fieldListBox->text(i) ] );
147 } 146 }
148 m_config.setOrderList( orderlist ); 147 m_config.setOrderList( orderlist );
149 148
150 m_config.setFixedBars( m_fixedBars->isChecked() ); 149 m_config.setFixedBars( m_fixedBars->isChecked() );
151 150
152 return m_config; 151 return m_config;
153} 152}
154 153
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp
index 7932781..b1eb042 100644
--- a/core/pim/addressbook/contacteditor.cpp
+++ b/core/pim/addressbook/contacteditor.cpp
@@ -1,239 +1,228 @@
1/* 1/*
2 * Copyright (c) 2002 Michael R. Crawford <mike@tuxnami.org> 2 * Copyright (c) 2002 Michael R. Crawford <mike@tuxnami.org>
3 * Copyright (C) 2002 by Stefan Eilers (eilers.stefan@epost.de) 3 * Copyright (C) 2002 by Stefan Eilers (eilers.stefan@epost.de)
4 * 4 *
5 * This file is an add-on for the OPIE Palmtop Environment 5 * This file is an add-on for the OPIE Palmtop Environment
6 * 6 *
7 * This file may be distributed and/or modified under the terms of the 7 * This file may be distributed and/or modified under the terms of the
8 * GNU General Public License version 2 as published by the Free Software 8 * GNU General Public License version 2 as published by the Free Software
9 * Foundation and appearing in the file LICENSE.GPL included in the pacakaging 9 * Foundation and appearing in the file LICENSE.GPL included in the pacakaging
10 * of this file. 10 * of this file.
11 * 11 *
12 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14 * 14 *
15 * 15 *
16 * This is a rewrite of the abeditor.h file, modified to provide a more 16 * This is a rewrite of the abeditor.h file, modified to provide a more
17 * intuitive interface to TrollTech's original Address Book editor. This 17 * intuitive interface to TrollTech's original Address Book editor. This
18 * is made to operate exactly in interface with the exception of name. 18 * is made to operate exactly in interface with the exception of name.
19 * 19 *
20 */ 20 */
21 21
22#include "contacteditor.h" 22#include "contacteditor.h"
23#include "addresspicker.h"
24 23
25#include <qpe/categoryselect.h> 24#include <qpe/categoryselect.h>
26#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
27#include <qpe/qpedialog.h> 26#include <qpe/qpedialog.h>
28#include <qpe/timeconversion.h>
29#include <opie/ocontact.h> 27#include <opie/ocontact.h>
30#include <qpe/resource.h> 28#include <qpe/resource.h>
31 29
32#include <qcombobox.h>
33#include <qlabel.h> 30#include <qlabel.h>
34#include <qtabwidget.h> 31#include <qtabwidget.h>
35#include <qlayout.h> 32#include <qlayout.h>
36#include <qlineedit.h> 33#include <qlineedit.h>
37#include <qmultilineedit.h> 34#include <qmultilineedit.h>
38#include <qscrollview.h>
39#include <qtoolbutton.h> 35#include <qtoolbutton.h>
40#include <qpushbutton.h>
41#include <qmainwindow.h>
42#include <qvaluelist.h>
43#include <qpopupmenu.h>
44#include <qlistbox.h> 36#include <qlistbox.h>
45#include <qhbox.h>
46#include <qaction.h>
47#include <qiconset.h>
48#include <qmessagebox.h> 37#include <qmessagebox.h>
49#include <qwhatsthis.h> 38#include <qwhatsthis.h>
50 39
51#include <assert.h> 40#include <assert.h>
52 41
53static inline bool containsAlphaNum( const QString &str ); 42static inline bool containsAlphaNum( const QString &str );
54static inline bool constainsWhiteSpace( const QString &str ); 43static inline bool constainsWhiteSpace( const QString &str );
55 44
56// helper functions, convert our comma delimited list to proper 45// helper functions, convert our comma delimited list to proper
57// file format... 46// file format...
58void parseEmailFrom( const QString &txt, QString &strDefaultEmail, 47void parseEmailFrom( const QString &txt, QString &strDefaultEmail,
59 QString &strAll ); 48 QString &strAll );
60 49
61// helper convert from file format to comma delimited... 50// helper convert from file format to comma delimited...
62void parseEmailTo( const QString &strDefaultEmail, 51void parseEmailTo( const QString &strDefaultEmail,
63 const QString &strOtherEmail, QString &strBack ); 52 const QString &strOtherEmail, QString &strBack );
64 53
65 ContactEditor::ContactEditor(const OContact &entry, 54 ContactEditor::ContactEditor(const OContact &entry,
66 QWidget *parent, 55 QWidget *parent,
67 const char *name, 56 const char *name,
68 WFlags ) 57 WFlags )
69 : QDialog( parent, name, TRUE, WStyle_ContextHelp ), 58 : QDialog( parent, name, TRUE, WStyle_ContextHelp ),
70 defaultEmailChooserPosition( -1 ), 59 defaultEmailChooserPosition( -1 ),
71 m_personalView ( false ), 60 m_personalView ( false ),
72 cmbDefaultEmail( 0 ), 61 cmbDefaultEmail( 0 ),
73 initializing ( false ) 62 initializing ( false )
74{ 63{
75 64
76 initializing = true; 65 initializing = true;
77 66
78 init(); 67 init();
79 setEntry( entry ); 68 setEntry( entry );
80 // cmbDefaultEmail = 0; 69 // cmbDefaultEmail = 0;
81 // defaultEmailChooserPosition = -1; 70 // defaultEmailChooserPosition = -1;
82 71
83 initializing = false; 72 initializing = false;
84} 73}
85 74
86ContactEditor::~ContactEditor() { 75ContactEditor::~ContactEditor() {
87} 76}
88 77
89void ContactEditor::init() { 78void ContactEditor::init() {
90 qWarning("init() START"); 79 qWarning("init() START");
91 80
92 uint i = 0; 81 uint i = 0;
93 82
94 QStringList trlChooserNames; 83 QStringList trlChooserNames;
95 84
96 for (i = 0; i <= 6; i++) { 85 for (i = 0; i <= 6; i++) {
97 slHomeAddress.append( "" ); 86 slHomeAddress.append( "" );
98 slBusinessAddress.append( "" ); 87 slBusinessAddress.append( "" );
99 } 88 }
100 89
101 trlChooserNames = OContactFields::trphonefields( false ); 90 trlChooserNames = OContactFields::trphonefields( false );
102 slChooserNames = OContactFields::untrphonefields( false ); 91 slChooserNames = OContactFields::untrphonefields( false );
103 slDynamicEntries = OContactFields::untrdetailsfields( false ); 92 slDynamicEntries = OContactFields::untrdetailsfields( false );
104 trlDynamicEntries = OContactFields::trdetailsfields( false ); 93 trlDynamicEntries = OContactFields::trdetailsfields( false );
105 94
106 // Ok, we have to remove elements from the list of dynamic entries 95 // Ok, we have to remove elements from the list of dynamic entries
107 // which are now stored in special (not dynamic) widgets.. 96 // which are now stored in special (not dynamic) widgets..
108 // Otherwise we will get problems with field assignments! (se) 97 // Otherwise we will get problems with field assignments! (se)
109 slDynamicEntries.remove("Anniversary"); 98 slDynamicEntries.remove("Anniversary");
110 slDynamicEntries.remove("Birthday"); 99 slDynamicEntries.remove("Birthday");
111 slDynamicEntries.remove("Gender"); 100 slDynamicEntries.remove("Gender");
112 101
113 // The same with translated fields.. But I will 102 // The same with translated fields.. But I will
114 // use the translation map to avoid mismatches.. 103 // use the translation map to avoid mismatches..
115 QMap<int, QString> translMap = OContactFields::idToTrFields(); 104 QMap<int, QString> translMap = OContactFields::idToTrFields();
116 trlDynamicEntries.remove( translMap[Qtopia::Anniversary] ); 105 trlDynamicEntries.remove( translMap[Qtopia::Anniversary] );
117 trlDynamicEntries.remove( translMap[Qtopia::Birthday] ); 106 trlDynamicEntries.remove( translMap[Qtopia::Birthday] );
118 trlDynamicEntries.remove( translMap[Qtopia::Gender] ); 107 trlDynamicEntries.remove( translMap[Qtopia::Gender] );
119 108
120 // Last Check to be sure.. 109 // Last Check to be sure..
121 assert( slDynamicEntries.count() == trlDynamicEntries.count() ); 110 assert( slDynamicEntries.count() == trlDynamicEntries.count() );
122 assert( slChooserNames.count() == trlChooserNames.count() ); 111 assert( slChooserNames.count() == trlChooserNames.count() );
123 112
124 for (i = 0; i < slChooserNames.count(); i++) 113 for (i = 0; i < slChooserNames.count(); i++)
125 slChooserValues.append(""); 114 slChooserValues.append("");
126 115
127 116
128 QVBoxLayout *vb = new QVBoxLayout( this ); 117 QVBoxLayout *vb = new QVBoxLayout( this );
129 118
130 tabMain = new QTabWidget( this ); 119 tabMain = new QTabWidget( this );
131 vb->addWidget( tabMain ); 120 vb->addWidget( tabMain );
132 121
133 QWidget *tabViewport = new QWidget ( tabMain ); 122 QWidget *tabViewport = new QWidget ( tabMain );
134 123
135 vb = new QVBoxLayout( tabViewport ); 124 vb = new QVBoxLayout( tabViewport );
136 125
137 svGeneral = new QScrollView( tabViewport ); 126 svGeneral = new QScrollView( tabViewport );
138 vb->addWidget( svGeneral, 0, 0 ); 127 vb->addWidget( svGeneral, 0, 0 );
139 svGeneral->setResizePolicy( QScrollView::AutoOneFit ); 128 svGeneral->setResizePolicy( QScrollView::AutoOneFit );
140 // svGeneral->setHScrollBarMode( QScrollView::AlwaysOff ); 129 // svGeneral->setHScrollBarMode( QScrollView::AlwaysOff );
141 // svGeneral->setVScrollBarMode( QScrollView::AlwaysOff ); 130 // svGeneral->setVScrollBarMode( QScrollView::AlwaysOff );
142 svGeneral->setFrameStyle( QFrame::NoFrame ); 131 svGeneral->setFrameStyle( QFrame::NoFrame );
143 132
144 QWidget *container = new QWidget( svGeneral->viewport() ); 133 QWidget *container = new QWidget( svGeneral->viewport() );
145 svGeneral->addChild( container ); 134 svGeneral->addChild( container );
146 135
147 QGridLayout *gl = new QGridLayout( container, 1, 1, 2, 4 ); 136 QGridLayout *gl = new QGridLayout( container, 1, 1, 2, 4 );
148 gl->setResizeMode( QLayout::FreeResize ); 137 gl->setResizeMode( QLayout::FreeResize );
149 138
150 btnFullName = new QPushButton( tr( "Full Name..." ), container ); 139 btnFullName = new QPushButton( tr( "Full Name..." ), container );
151 QWhatsThis::add( btnFullName, tr( "Press to enter last- middle and firstname" ) ); 140 QWhatsThis::add( btnFullName, tr( "Press to enter last- middle and firstname" ) );
152 gl->addWidget( btnFullName, 0, 0 ); 141 gl->addWidget( btnFullName, 0, 0 );
153 txtFullName = new QLineEdit( container ); 142 txtFullName = new QLineEdit( container );
154 QWhatsThis::add( txtFullName, tr( "Enter fullname directly ! If you have a lastname with multiple words ( for instance \"de la Guerra\"), please write <lastname>,<firstnames> like this: \"de la Guerra, Carlos Pedro\"" ) ); 143 QWhatsThis::add( txtFullName, tr( "Enter fullname directly ! If you have a lastname with multiple words ( for instance \"de la Guerra\"), please write <lastname>,<firstnames> like this: \"de la Guerra, Carlos Pedro\"" ) );
155 gl->addWidget( txtFullName, 0, 1 ); 144 gl->addWidget( txtFullName, 0, 1 );
156 145
157 QLabel *l = new QLabel( tr( "Job Title" ), container ); 146 QLabel *l = new QLabel( tr( "Job Title" ), container );
158 QWhatsThis::add( l, tr( "The jobtitle.." ) ); 147 QWhatsThis::add( l, tr( "The jobtitle.." ) );
159 gl->addWidget( l, 1, 0 ); 148 gl->addWidget( l, 1, 0 );
160 txtJobTitle = new QLineEdit( container ); 149 txtJobTitle = new QLineEdit( container );
161 QWhatsThis::add( txtJobTitle, tr( "The jobtitle.." ) ); 150 QWhatsThis::add( txtJobTitle, tr( "The jobtitle.." ) );
162 gl->addWidget( txtJobTitle, 1, 1 ); 151 gl->addWidget( txtJobTitle, 1, 1 );
163 152
164 l = new QLabel( tr("Suffix"), container ); 153 l = new QLabel( tr("Suffix"), container );
165 QWhatsThis::add( l, tr( "Something like \"jr.\".." ) ); 154 QWhatsThis::add( l, tr( "Something like \"jr.\".." ) );
166 gl->addWidget( l, 2, 0 ); 155 gl->addWidget( l, 2, 0 );
167 txtSuffix = new QLineEdit( container ); 156 txtSuffix = new QLineEdit( container );
168 QWhatsThis::add( txtSuffix, tr( "Something like \"jr.\".." ) ); 157 QWhatsThis::add( txtSuffix, tr( "Something like \"jr.\".." ) );
169 gl->addWidget( txtSuffix, 2, 1 ); 158 gl->addWidget( txtSuffix, 2, 1 );
170 159
171 l = new QLabel( tr( "Organization" ), container ); 160 l = new QLabel( tr( "Organization" ), container );
172 QWhatsThis::add( l, tr( "The working place of the contact" ) ); 161 QWhatsThis::add( l, tr( "The working place of the contact" ) );
173 gl->addWidget( l, 3, 0 ); 162 gl->addWidget( l, 3, 0 );
174 txtOrganization = new QLineEdit( container ); 163 txtOrganization = new QLineEdit( container );
175 QWhatsThis::add( txtOrganization, tr( "The working place of the contact" ) ); 164 QWhatsThis::add( txtOrganization, tr( "The working place of the contact" ) );
176 gl->addWidget( txtOrganization, 3, 1 ); 165 gl->addWidget( txtOrganization, 3, 1 );
177 166
178 // Chooser 1 167 // Chooser 1
179 cmbChooserField1 = new QComboBox( FALSE, container ); 168 cmbChooserField1 = new QComboBox( FALSE, container );
180 QWhatsThis::add( cmbChooserField1, tr( "Press to select attribute to change" ) ); 169 QWhatsThis::add( cmbChooserField1, tr( "Press to select attribute to change" ) );
181 cmbChooserField1->setMaximumWidth( 90 ); 170 cmbChooserField1->setMaximumWidth( 90 );
182 gl->addWidget( cmbChooserField1, 4, 0 ); 171 gl->addWidget( cmbChooserField1, 4, 0 );
183 // Textfield for chooser 1. 172 // Textfield for chooser 1.
184 // Now use Widgetstack to contain the textfield and the default-email combo ! 173 // Now use Widgetstack to contain the textfield and the default-email combo !
185 m_widgetStack1 = new QWidgetStack( container ); 174 m_widgetStack1 = new QWidgetStack( container );
186 txtChooserField1 = new QLineEdit( m_widgetStack1 ); 175 txtChooserField1 = new QLineEdit( m_widgetStack1 );
187 m_widgetStack1 -> addWidget( txtChooserField1, TextField ); 176 m_widgetStack1 -> addWidget( txtChooserField1, TextField );
188 gl->addWidget( m_widgetStack1, 4, 1 ); 177 gl->addWidget( m_widgetStack1, 4, 1 );
189 m_widgetStack1 -> raiseWidget( TextField ); 178 m_widgetStack1 -> raiseWidget( TextField );
190 179
191 // Chooser 2 180 // Chooser 2
192 cmbChooserField2 = new QComboBox( FALSE, container ); 181 cmbChooserField2 = new QComboBox( FALSE, container );
193 QWhatsThis::add( cmbChooserField2, tr( "Press to select attribute to change" ) ); 182 QWhatsThis::add( cmbChooserField2, tr( "Press to select attribute to change" ) );
194 cmbChooserField2->setMaximumWidth( 90 ); 183 cmbChooserField2->setMaximumWidth( 90 );
195 gl->addWidget( cmbChooserField2, 5, 0 ); 184 gl->addWidget( cmbChooserField2, 5, 0 );
196 // Textfield for chooser 2 185 // Textfield for chooser 2
197 // Now use WidgetStack to contain the textfield and the default-email combo! 186 // Now use WidgetStack to contain the textfield and the default-email combo!
198 m_widgetStack2 = new QWidgetStack( container ); 187 m_widgetStack2 = new QWidgetStack( container );
199 txtChooserField2 = new QLineEdit( m_widgetStack2 ); 188 txtChooserField2 = new QLineEdit( m_widgetStack2 );
200 m_widgetStack2 -> addWidget( txtChooserField2, TextField ); 189 m_widgetStack2 -> addWidget( txtChooserField2, TextField );
201 gl->addWidget( m_widgetStack2, 5, 1 ); 190 gl->addWidget( m_widgetStack2, 5, 1 );
202 m_widgetStack2 -> raiseWidget( TextField ); 191 m_widgetStack2 -> raiseWidget( TextField );
203 192
204 // Chooser 3 193 // Chooser 3
205 cmbChooserField3 = new QComboBox( FALSE, container ); 194 cmbChooserField3 = new QComboBox( FALSE, container );
206 QWhatsThis::add( cmbChooserField3, tr( "Press to select attribute to change" ) ); 195 QWhatsThis::add( cmbChooserField3, tr( "Press to select attribute to change" ) );
207 cmbChooserField3->setMaximumWidth( 90 ); 196 cmbChooserField3->setMaximumWidth( 90 );
208 gl->addWidget( cmbChooserField3, 6, 0 ); 197 gl->addWidget( cmbChooserField3, 6, 0 );
209 // Textfield for chooser 2 198 // Textfield for chooser 2
210 // Now use WidgetStack to contain the textfield and the default-email combo! 199 // Now use WidgetStack to contain the textfield and the default-email combo!
211 m_widgetStack3 = new QWidgetStack( container ); 200 m_widgetStack3 = new QWidgetStack( container );
212 txtChooserField3 = new QLineEdit( m_widgetStack3 ); 201 txtChooserField3 = new QLineEdit( m_widgetStack3 );
213 m_widgetStack3 -> addWidget( txtChooserField3, TextField ); 202 m_widgetStack3 -> addWidget( txtChooserField3, TextField );
214 gl->addWidget( m_widgetStack3, 6, 1 ); 203 gl->addWidget( m_widgetStack3, 6, 1 );
215 m_widgetStack3 -> raiseWidget( TextField ); 204 m_widgetStack3 -> raiseWidget( TextField );
216 205
217 l = new QLabel( tr( "File As" ), container ); 206 l = new QLabel( tr( "File As" ), container );
218 QWhatsThis::add( l, tr( "Press to select how to store the name (and howto show it in the listview)" ) ); 207 QWhatsThis::add( l, tr( "Press to select how to store the name (and howto show it in the listview)" ) );
219 gl->addWidget( l, 7, 0 ); 208 gl->addWidget( l, 7, 0 );
220 cmbFileAs = new QComboBox( TRUE, container ); 209 cmbFileAs = new QComboBox( TRUE, container );
221 gl->addWidget( cmbFileAs, 7, 1 ); 210 gl->addWidget( cmbFileAs, 7, 1 );
222 211
223 labCat = new QLabel( tr( "Category" ), container ); 212 labCat = new QLabel( tr( "Category" ), container );
224 gl->addWidget( labCat, 8, 0 ); 213 gl->addWidget( labCat, 8, 0 );
225 cmbCat = new CategorySelect( container ); 214 cmbCat = new CategorySelect( container );
226 gl->addWidget( cmbCat, 8, 1 ); 215 gl->addWidget( cmbCat, 8, 1 );
227 labCat->show(); 216 labCat->show();
228 cmbCat->show(); 217 cmbCat->show();
229 218
230 btnNote = new QPushButton( tr( "Notes..." ), container ); 219 btnNote = new QPushButton( tr( "Notes..." ), container );
231 gl->addWidget( btnNote, 9, 1 ); 220 gl->addWidget( btnNote, 9, 1 );
232 221
233 tabMain->insertTab( tabViewport, tr( "General" ) ); 222 tabMain->insertTab( tabViewport, tr( "General" ) );
234 223
235 tabViewport = new QWidget ( tabMain ); 224 tabViewport = new QWidget ( tabMain );
236 225
237 vb = new QVBoxLayout( tabViewport ); 226 vb = new QVBoxLayout( tabViewport );
238 227
239 svAddress = new QScrollView( tabViewport ); 228 svAddress = new QScrollView( tabViewport );
diff --git a/core/pim/addressbook/main.cpp b/core/pim/addressbook/main.cpp
index 97bfa6d..47d370a 100644
--- a/core/pim/addressbook/main.cpp
+++ b/core/pim/addressbook/main.cpp
@@ -1,28 +1,27 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qt Palmtop Environment. 4** This file is part of Qt Palmtop Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "addressbook.h" 21#include "addressbook.h"
22 22
23#include <qpe/qpeapplication.h>
24 23
25#include <opie/oapplicationfactory.h> 24#include <opie/oapplicationfactory.h>
26 25
27OPIE_EXPORT_APP( OApplicationFactory<AddressbookWindow> ) 26OPIE_EXPORT_APP( OApplicationFactory<AddressbookWindow> )
28 27
diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp
index 9e0c78a..7a20591 100644
--- a/core/pim/addressbook/picker.cpp
+++ b/core/pim/addressbook/picker.cpp
@@ -1,196 +1,194 @@
1#include "picker.h" 1#include "picker.h"
2 2
3#include <qfont.h>
4#include <qstring.h>
5#include <qtimer.h> 3#include <qtimer.h>
6#include <qlayout.h> 4#include <qlayout.h>
7 5
8char PickerLabel::lastLetter = '\0'; 6char PickerLabel::lastLetter = '\0';
9 7
10PickerLabel::PickerLabel( QWidget *parent, const char *name ) 8PickerLabel::PickerLabel( QWidget *parent, const char *name )
11 : QLabel ( parent, name ) 9 : QLabel ( parent, name )
12{ 10{
13 currentLetter = 0; 11 currentLetter = 0;
14 //lastLetter = 0; 12 //lastLetter = 0;
15 13
16 letter1 = '\0'; 14 letter1 = '\0';
17 letter2 = '\0'; 15 letter2 = '\0';
18 letter3 = '\0'; 16 letter3 = '\0';
19 17
20 // setFont( QFont( "smallsmooth", 9 ) ); 18 // setFont( QFont( "smallsmooth", 9 ) );
21 setFont( QFont::defaultFont() ); 19 setFont( QFont::defaultFont() );
22 setTextFormat( Qt::RichText ); 20 setTextFormat( Qt::RichText );
23 21
24} 22}
25 23
26PickerLabel::~PickerLabel() 24PickerLabel::~PickerLabel()
27{ 25{
28 26
29} 27}
30 28
31void PickerLabel::setLetters( char ch1, char ch2, char ch3 ) 29void PickerLabel::setLetters( char ch1, char ch2, char ch3 )
32{ 30{
33 QString tmpStr; 31 QString tmpStr;
34 32
35 if (ch1 != '\0') 33 if (ch1 != '\0')
36 letter1 = ch1; 34 letter1 = ch1;
37 else 35 else
38 letter1 = ' '; 36 letter1 = ' ';
39 37
40 if (ch2 != '\0') 38 if (ch2 != '\0')
41 letter2 = ch2; 39 letter2 = ch2;
42 else 40 else
43 letter2 = ' '; 41 letter2 = ' ';
44 42
45 if (ch3 != '\0') 43 if (ch3 != '\0')
46 letter3 = ch3; 44 letter3 = ch3;
47 else 45 else
48 letter3 = ' '; 46 letter3 = ' ';
49 47
50 tmpStr = "<qt>"; 48 tmpStr = "<qt>";
51 tmpStr += letter1; 49 tmpStr += letter1;
52 tmpStr += letter2; 50 tmpStr += letter2;
53 tmpStr += letter3; 51 tmpStr += letter3;
54 tmpStr += "</qt>"; 52 tmpStr += "</qt>";
55 53
56 setText(tmpStr); 54 setText(tmpStr);
57 55
58 currentLetter = 0; 56 currentLetter = 0;
59 57
60} 58}
61 59
62void PickerLabel::clearLetter() 60void PickerLabel::clearLetter()
63{ 61{
64 62
65 QString tmpStr; 63 QString tmpStr;
66 64
67 tmpStr = "<qt>"; 65 tmpStr = "<qt>";
68 tmpStr += letter1; 66 tmpStr += letter1;
69 tmpStr += letter2; 67 tmpStr += letter2;
70 tmpStr += letter3; 68 tmpStr += letter3;
71 tmpStr += "</qt>"; 69 tmpStr += "</qt>";
72 70
73 setText(tmpStr); 71 setText(tmpStr);
74 72
75 currentLetter = 0; 73 currentLetter = 0;
76 74
77} 75}
78 76
79void PickerLabel::mousePressEvent( QMouseEvent* e ) 77void PickerLabel::mousePressEvent( QMouseEvent* e )
80{ 78{
81 // If one pickerlabel is was, and an other is now selected, we 79 // If one pickerlabel is was, and an other is now selected, we
82 // have to simulate the releaseevent.. Otherwise the new label 80 // have to simulate the releaseevent.. Otherwise the new label
83 // will not get a highlighted letter.. 81 // will not get a highlighted letter..
84 // Maybe there is a more intelligent solution, but this works and I am tired.. (se) 82 // Maybe there is a more intelligent solution, but this works and I am tired.. (se)
85 if ( ( currentLetter == 0 ) && ( lastLetter != '\0' ) ) mouseReleaseEvent( e ); 83 if ( ( currentLetter == 0 ) && ( lastLetter != '\0' ) ) mouseReleaseEvent( e );
86} 84}
87 85
88void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ ) 86void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
89{ 87{
90 QString tmpStr; 88 QString tmpStr;
91 89
92 if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3 && lastLetter != '\0') 90 if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3 && lastLetter != '\0')
93 QTimer::singleShot( 0, this, SLOT(emitClearSignal()) ); 91 QTimer::singleShot( 0, this, SLOT(emitClearSignal()) );
94 92
95 switch (currentLetter) { 93 switch (currentLetter) {
96 case 0: 94 case 0:
97 tmpStr = "<qt><u><b><font color=\"#FF00FF\">"; 95 tmpStr = "<qt><u><b><font color=\"#FF00FF\">";
98 tmpStr += letter1; 96 tmpStr += letter1;
99 tmpStr += "</font></b></u>"; 97 tmpStr += "</font></b></u>";
100 tmpStr += letter2; 98 tmpStr += letter2;
101 tmpStr += letter3; 99 tmpStr += letter3;
102 tmpStr += "</qt>"; 100 tmpStr += "</qt>";
103 101
104 setText(tmpStr); 102 setText(tmpStr);
105 103
106 currentLetter++; 104 currentLetter++;
107 lastLetter = letter1; 105 lastLetter = letter1;
108 emit selectedLetter( letter1 ); 106 emit selectedLetter( letter1 );
109 break; 107 break;
110 108
111 case 1: 109 case 1:
112 tmpStr = "<qt>"; 110 tmpStr = "<qt>";
113 tmpStr += letter1; 111 tmpStr += letter1;
114 tmpStr += "<u><b><font color=\"#FF00FF\">"; 112 tmpStr += "<u><b><font color=\"#FF00FF\">";
115 tmpStr += letter2; 113 tmpStr += letter2;
116 tmpStr += "</font></b></u>"; 114 tmpStr += "</font></b></u>";
117 tmpStr += letter3; 115 tmpStr += letter3;
118 tmpStr += "</qt>"; 116 tmpStr += "</qt>";
119 117
120 setText(tmpStr); 118 setText(tmpStr);
121 119
122 currentLetter++; 120 currentLetter++;
123 lastLetter = letter2; 121 lastLetter = letter2;
124 emit selectedLetter( letter2 ); 122 emit selectedLetter( letter2 );
125 break; 123 break;
126 124
127 case 2: 125 case 2:
128 tmpStr = "<qt>"; 126 tmpStr = "<qt>";
129 tmpStr += letter1; 127 tmpStr += letter1;
130 tmpStr += letter2; 128 tmpStr += letter2;
131 tmpStr += "<u><b><font color=\"#FF00FF\">"; 129 tmpStr += "<u><b><font color=\"#FF00FF\">";
132 tmpStr += letter3; 130 tmpStr += letter3;
133 tmpStr += "</font></b></u></qt>"; 131 tmpStr += "</font></b></u></qt>";
134 132
135 setText(tmpStr); 133 setText(tmpStr);
136 134
137 currentLetter++; 135 currentLetter++;
138 lastLetter = letter3; 136 lastLetter = letter3;
139 emit selectedLetter( letter3 ); 137 emit selectedLetter( letter3 );
140 break; 138 break;
141 139
142 default: 140 default:
143 clearLetter(); 141 clearLetter();
144 lastLetter = '\0'; 142 lastLetter = '\0';
145 emit selectedLetter( '\0' ); 143 emit selectedLetter( '\0' );
146 144
147 145
148 } 146 }
149} 147}
150 148
151void PickerLabel::emitClearSignal() { 149void PickerLabel::emitClearSignal() {
152 emit clearAll(); 150 emit clearAll();
153} 151}
154 152
155LetterPicker::LetterPicker( QWidget *parent, const char *name ) 153LetterPicker::LetterPicker( QWidget *parent, const char *name )
156 : QFrame( parent, name ) 154 : QFrame( parent, name )
157{ 155{
158 QHBoxLayout *l = new QHBoxLayout(this); 156 QHBoxLayout *l = new QHBoxLayout(this);
159 157
160 lblABC = new PickerLabel( this ); 158 lblABC = new PickerLabel( this );
161 l->addWidget( lblABC ); 159 l->addWidget( lblABC );
162 160
163 lblDEF = new PickerLabel( this ); 161 lblDEF = new PickerLabel( this );
164 l->addWidget( lblDEF ); 162 l->addWidget( lblDEF );
165 163
166 lblGHI = new PickerLabel( this ); 164 lblGHI = new PickerLabel( this );
167 l->addWidget( lblGHI ); 165 l->addWidget( lblGHI );
168 166
169 lblJKL = new PickerLabel( this ); 167 lblJKL = new PickerLabel( this );
170 l->addWidget( lblJKL ); 168 l->addWidget( lblJKL );
171 169
172 lblMNO = new PickerLabel( this ); 170 lblMNO = new PickerLabel( this );
173 l->addWidget( lblMNO ); 171 l->addWidget( lblMNO );
174 172
175 lblPQR = new PickerLabel( this ); 173 lblPQR = new PickerLabel( this );
176 l->addWidget( lblPQR ); 174 l->addWidget( lblPQR );
177 175
178 lblSTU = new PickerLabel( this ); 176 lblSTU = new PickerLabel( this );
179 l->addWidget( lblSTU ); 177 l->addWidget( lblSTU );
180 178
181 lblVWX = new PickerLabel( this ); 179 lblVWX = new PickerLabel( this );
182 l->addWidget( lblVWX ); 180 l->addWidget( lblVWX );
183 181
184 lblYZ = new PickerLabel( this ); 182 lblYZ = new PickerLabel( this );
185 l->addWidget( lblYZ ); 183 l->addWidget( lblYZ );
186 184
187 lblABC->setLetters( 'A', 'B', 'C' ); 185 lblABC->setLetters( 'A', 'B', 'C' );
188 lblDEF->setLetters( 'D', 'E', 'F' ); 186 lblDEF->setLetters( 'D', 'E', 'F' );
189 lblGHI->setLetters( 'G', 'H', 'I' ); 187 lblGHI->setLetters( 'G', 'H', 'I' );
190 lblJKL->setLetters( 'J', 'K', 'L' ); 188 lblJKL->setLetters( 'J', 'K', 'L' );
191 lblMNO->setLetters( 'M', 'N', 'O' ); 189 lblMNO->setLetters( 'M', 'N', 'O' );
192 lblPQR->setLetters( 'P', 'Q', 'R' ); 190 lblPQR->setLetters( 'P', 'Q', 'R' );
193 lblSTU->setLetters( 'S', 'T', 'U' ); 191 lblSTU->setLetters( 'S', 'T', 'U' );
194 lblVWX->setLetters( 'V', 'W', 'X' ); 192 lblVWX->setLetters( 'V', 'W', 'X' );
195 lblYZ->setLetters( 'Y', 'Z', '#' ); 193 lblYZ->setLetters( 'Y', 'Z', '#' );
196 194
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index 24affd0..af26302 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -1,256 +1,241 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19** $Id$ 19** $Id$
20** 20**
21**********************************************************************/ 21**********************************************************************/
22 22
23#define QTOPIA_INTERNAL_FD 23#define QTOPIA_INTERNAL_FD
24 24
25#include "datebook.h" 25#include "datebook.h"
26#include "datebookday.h" 26#include "datebookday.h"
27#include "datebooksettings.h" 27#include "datebooksettings.h"
28#include "datebookweek.h" 28#include "datebookweek.h"
29#include "datebookweeklst.h" 29#include "datebookweeklst.h"
30#include "dateentryimpl.h" 30#include "dateentryimpl.h"
31 31
32#include <qpe/datebookmonth.h> 32#include <qpe/datebookmonth.h>
33#include <qpe/qpeapplication.h> 33#include <qpe/qpeapplication.h>
34#include <qpe/config.h> 34#include <qpe/config.h>
35#include <qpe/qpedebug.h>
36#include <qpe/event.h>
37#include <qpe/finddialog.h> 35#include <qpe/finddialog.h>
38#include <qpe/ir.h> 36#include <qpe/ir.h>
39#include <qmenubar.h>
40#include <qpe/qpemessagebox.h> 37#include <qpe/qpemessagebox.h>
41#include <qpe/resource.h> 38#include <qpe/resource.h>
42#include <qpe/sound.h> 39#include <qpe/sound.h>
43#include <qpe/timestring.h>
44#include <qtoolbar.h> 40#include <qtoolbar.h>
45#include <qpe/tzselect.h> 41#include <qpe/tzselect.h>
46#include <qpe/xmlreader.h>
47 42
48#include <qaction.h> 43#include <qaction.h>
49#include <qcopchannel_qws.h> 44#include <qcopchannel_qws.h>
50#include <qdatetime.h>
51#include <qdialog.h>
52#include <qfile.h>
53#include <qlabel.h>
54#include <qlayout.h> 45#include <qlayout.h>
55#include <qmessagebox.h> 46#include <qmessagebox.h>
56#include <qpopupmenu.h>
57#include <qpushbutton.h>
58#include <qregexp.h>
59#include <qtextcodec.h>
60#include <qtextstream.h>
61#include <qtimer.h> 47#include <qtimer.h>
62#include <qtl.h> 48#include <qtl.h>
63#include <qwidgetstack.h> 49#include <qwidgetstack.h>
64#include <qwindowsystem_qws.h>
65 50
66#include <sys/stat.h> 51#include <sys/stat.h>
67#include <sys/types.h> 52#include <sys/types.h>
68#include <fcntl.h> 53#include <fcntl.h>
69#include <unistd.h> 54#include <unistd.h>
70 55
71#include <stdlib.h> 56#include <stdlib.h>
72 57
73DateBook::DateBook( QWidget *parent, const char *, WFlags f ) 58DateBook::DateBook( QWidget *parent, const char *, WFlags f )
74 : QMainWindow( parent, "datebook", f ), 59 : QMainWindow( parent, "datebook", f ),
75 aPreset( FALSE ), 60 aPreset( FALSE ),
76 presetTime( -1 ), 61 presetTime( -1 ),
77 startTime( 8 ), // an acceptable default 62 startTime( 8 ), // an acceptable default
78 rowStyle( 0 ), 63 rowStyle( 0 ),
79 bJumpToCurTime(FALSE), 64 bJumpToCurTime(FALSE),
80 syncing(FALSE), 65 syncing(FALSE),
81 inSearch(FALSE), 66 inSearch(FALSE),
82 alarmCounter(0) 67 alarmCounter(0)
83{ 68{
84 bool needEvilHack= false; // if we need an Evil Hack 69 bool needEvilHack= false; // if we need an Evil Hack
85 QTime t; 70 QTime t;
86 t.start(); 71 t.start();
87 db = new DateBookDBHack; 72 db = new DateBookDBHack;
88 qDebug("loading db t=%d", t.elapsed() ); 73 qDebug("loading db t=%d", t.elapsed() );
89 loadSettings(); 74 loadSettings();
90 setCaption( tr("Calendar") ); 75 setCaption( tr("Calendar") );
91 setIcon( Resource::loadPixmap( "datebook_icon" ) ); 76 setIcon( Resource::loadPixmap( "datebook_icon" ) );
92 77
93 setToolBarsMovable( FALSE ); 78 setToolBarsMovable( FALSE );
94 79
95 views = new QWidgetStack( this ); 80 views = new QWidgetStack( this );
96 setCentralWidget( views ); 81 setCentralWidget( views );
97 82
98 dayView = 0; 83 dayView = 0;
99 weekView = 0; 84 weekView = 0;
100 weekLstView = 0; 85 weekLstView = 0;
101 monthView = 0; 86 monthView = 0;
102 87
103// QToolBar *bar = new QToolBar( this ); 88// QToolBar *bar = new QToolBar( this );
104// bar->setHorizontalStretchable( TRUE ); 89// bar->setHorizontalStretchable( TRUE );
105 90
106// QMenuBar *mb = new QMenuBar( bar ); 91// QMenuBar *mb = new QMenuBar( bar );
107// mb->setMargin( 0 ); 92// mb->setMargin( 0 );
108 93
109// QPopupMenu *view = new QPopupMenu( this ); 94// QPopupMenu *view = new QPopupMenu( this );
110// mb->insertItem( tr( "View" ), view ); 95// mb->insertItem( tr( "View" ), view );
111 96
112 QToolBar *sub_bar = new QToolBar(this); 97 QToolBar *sub_bar = new QToolBar(this);
113 sub_bar->setHorizontalStretchable(TRUE); 98 sub_bar->setHorizontalStretchable(TRUE);
114 99
115 QActionGroup *g = new QActionGroup( this ); 100 QActionGroup *g = new QActionGroup( this );
116 g->setExclusive( TRUE ); 101 g->setExclusive( TRUE );
117 102
118 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); 103 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 );
119 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); 104 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) );
120 a->addTo( sub_bar ); 105 a->addTo( sub_bar );
121 106
122 sub_bar->addSeparator(); 107 sub_bar->addSeparator();
123 108
124 a = new QAction( tr( "Today" ), Resource::loadPixmap( "datebook/to_day" ), QString::null, 0, g, 0 ); 109 a = new QAction( tr( "Today" ), Resource::loadPixmap( "datebook/to_day" ), QString::null, 0, g, 0 );
125 connect( a, SIGNAL( activated() ), this, SLOT( slotToday() ) ); 110 connect( a, SIGNAL( activated() ), this, SLOT( slotToday() ) );
126 a->addTo( sub_bar ); 111 a->addTo( sub_bar );
127 //a->addTo( view ); 112 //a->addTo( view );
128 113
129 sub_bar->addSeparator(); 114 sub_bar->addSeparator();
130 115
131 a = new QAction( tr( "Day" ), Resource::loadPixmap( "day" ), QString::null, 0, g, 0 ); 116 a = new QAction( tr( "Day" ), Resource::loadPixmap( "day" ), QString::null, 0, g, 0 );
132 connect( a, SIGNAL( activated() ), this, SLOT( viewDay() ) ); 117 connect( a, SIGNAL( activated() ), this, SLOT( viewDay() ) );
133 a->addTo( sub_bar ); 118 a->addTo( sub_bar );
134// a->addTo( view ); 119// a->addTo( view );
135 a->setToggleAction( TRUE ); 120 a->setToggleAction( TRUE );
136 a->setOn( TRUE ); 121 a->setOn( TRUE );
137 dayAction = a; 122 dayAction = a;
138 123
139 a = new QAction( tr( "Week" ), Resource::loadPixmap( "week" ), QString::null, 0, g, 0 ); 124 a = new QAction( tr( "Week" ), Resource::loadPixmap( "week" ), QString::null, 0, g, 0 );
140 connect( a, SIGNAL( activated() ), this, SLOT( viewWeek() ) ); 125 connect( a, SIGNAL( activated() ), this, SLOT( viewWeek() ) );
141 a->addTo( sub_bar ); 126 a->addTo( sub_bar );
142// a->addTo( view ); 127// a->addTo( view );
143 a->setToggleAction( TRUE ); 128 a->setToggleAction( TRUE );
144 weekAction = a; 129 weekAction = a;
145 130
146 a = new QAction( tr( "WeekLst" ), Resource::loadPixmap( "datebook/weeklst" ), QString::null, 0, g, 0 ); 131 a = new QAction( tr( "WeekLst" ), Resource::loadPixmap( "datebook/weeklst" ), QString::null, 0, g, 0 );
147 connect( a, SIGNAL( activated() ), this, SLOT( viewWeekLst() ) ); 132 connect( a, SIGNAL( activated() ), this, SLOT( viewWeekLst() ) );
148 a->addTo( sub_bar ); 133 a->addTo( sub_bar );
149// a->addTo( view ); 134// a->addTo( view );
150 a->setToggleAction( TRUE ); 135 a->setToggleAction( TRUE );
151 weekLstAction = a; 136 weekLstAction = a;
152 137
153 a = new QAction( tr( "Month" ), Resource::loadPixmap( "month" ), QString::null, 0, g, 0 ); 138 a = new QAction( tr( "Month" ), Resource::loadPixmap( "month" ), QString::null, 0, g, 0 );
154 connect( a, SIGNAL( activated() ), this, SLOT( viewMonth() ) ); 139 connect( a, SIGNAL( activated() ), this, SLOT( viewMonth() ) );
155 a->addTo( sub_bar ); 140 a->addTo( sub_bar );
156// a->addTo( view ); 141// a->addTo( view );
157 a->setToggleAction( TRUE ); 142 a->setToggleAction( TRUE );
158 monthAction = a; 143 monthAction = a;
159 144
160 sub_bar->addSeparator(); 145 sub_bar->addSeparator();
161 146
162 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), QString::null, 0, this, 0 ); 147 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), QString::null, 0, this, 0 );
163 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) ); 148 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) );
164 a->addTo( sub_bar ); 149 a->addTo( sub_bar );
165 150
166 a = new QAction( tr( "Edit..." ), Resource::loadPixmap("SettingsIcon"), QString::null, 0, this, 0 ); 151 a = new QAction( tr( "Edit..." ), Resource::loadPixmap("SettingsIcon"), QString::null, 0, this, 0 );
167 connect( a, SIGNAL( activated() ), this, SLOT( slotSettings() ) ); 152 connect( a, SIGNAL( activated() ), this, SLOT( slotSettings() ) );
168 a->addTo( sub_bar ); 153 a->addTo( sub_bar );
169 154
170 if(defaultView==DAY) viewDay(); 155 if(defaultView==DAY) viewDay();
171 if(defaultView==WEEK) needEvilHack=true;// viewWeek(); 156 if(defaultView==WEEK) needEvilHack=true;// viewWeek();
172 if(defaultView==WEEKLST) viewWeekLst(); 157 if(defaultView==WEEKLST) viewWeekLst();
173 if(defaultView==MONTH) viewMonth(); 158 if(defaultView==MONTH) viewMonth();
174 159
175 connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(changeClock(bool)) ); 160 connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(changeClock(bool)) );
176 connect( qApp, SIGNAL(weekChanged(bool)), this, SLOT(changeWeek(bool)) ); 161 connect( qApp, SIGNAL(weekChanged(bool)), this, SLOT(changeWeek(bool)) );
177 162
178#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 163#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
179 connect( qApp, SIGNAL(appMessage(const QCString&, const QByteArray&)), this, SLOT(appMessage(const QCString&, const QByteArray&)) ); 164 connect( qApp, SIGNAL(appMessage(const QCString&, const QByteArray&)), this, SLOT(appMessage(const QCString&, const QByteArray&)) );
180#endif 165#endif
181 166
182 // listen on QPE/System 167 // listen on QPE/System
183#if defined(Q_WS_QWS) 168#if defined(Q_WS_QWS)
184#if !defined(QT_NO_COP) 169#if !defined(QT_NO_COP)
185 QCopChannel *channel = new QCopChannel( "QPE/System", this ); 170 QCopChannel *channel = new QCopChannel( "QPE/System", this );
186 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), this, SLOT(receive(const QCString&, const QByteArray&)) ); 171 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), this, SLOT(receive(const QCString&, const QByteArray&)) );
187 channel = new QCopChannel( "QPE/Datebook", this ); 172 channel = new QCopChannel( "QPE/Datebook", this );
188 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), this, SLOT(receive(const QCString&, const QByteArray&)) ); 173 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), this, SLOT(receive(const QCString&, const QByteArray&)) );
189#endif 174#endif
190#endif 175#endif
191 176
192 qDebug("done t=%d", t.elapsed() ); 177 qDebug("done t=%d", t.elapsed() );
193 178
194 connect( qApp, SIGNAL( flush() ), this, SLOT( flush() ) ); 179 connect( qApp, SIGNAL( flush() ), this, SLOT( flush() ) );
195 connect( qApp, SIGNAL( reload()), this, SLOT( reload() ) ); 180 connect( qApp, SIGNAL( reload()), this, SLOT( reload() ) );
196 /* 181 /*
197 * Here is a problem description: 182 * Here is a problem description:
198 * When Weekview is the default view 183 * When Weekview is the default view
199 * a DateBookWeekView get's created 184 * a DateBookWeekView get's created
200 * redraw() get's called. So what? 185 * redraw() get's called. So what?
201 * Remember that we're still in the c'tor 186 * Remember that we're still in the c'tor
202 * and no final layout has happened? Ok 187 * and no final layout has happened? Ok
203 * now all Events get arranged. Their x 188 * now all Events get arranged. Their x
204 * position get's determined by a QHeader 189 * position get's determined by a QHeader
205 * position. But the QHeader isn't layouted or 190 * position. But the QHeader isn't layouted or
206 * at the right position. redraw() is a slot 191 * at the right position. redraw() is a slot
207 * so we'll call it then via a singleShot 192 * so we'll call it then via a singleShot
208 * from view() 193 * from view()
209 */ 194 */
210 if( needEvilHack ){ 195 if( needEvilHack ){
211 QTimer::singleShot( 500, this, SLOT(viewWeek()) ); 196 QTimer::singleShot( 500, this, SLOT(viewWeek()) );
212 } 197 }
213} 198}
214 199
215void DateBook::receive( const QCString &msg, const QByteArray &data ) 200void DateBook::receive( const QCString &msg, const QByteArray &data )
216{ 201{
217 QDataStream stream( data, IO_ReadOnly ); 202 QDataStream stream( data, IO_ReadOnly );
218 if ( msg == "timeChange(QString)" ) { 203 if ( msg == "timeChange(QString)" ) {
219 // update active view! 204 // update active view!
220 if ( dayAction->isOn() ) 205 if ( dayAction->isOn() )
221 viewDay(); 206 viewDay();
222 else if ( weekAction->isOn() ) 207 else if ( weekAction->isOn() )
223 viewWeek(); 208 viewWeek();
224 else if ( monthAction->isOn() ) 209 else if ( monthAction->isOn() )
225 viewMonth(); 210 viewMonth();
226 } 211 }
227 else if (msg == "editEvent(int)") { 212 else if (msg == "editEvent(int)") {
228 int uid; 213 int uid;
229 stream >> uid; 214 stream >> uid;
230 Event e=db->eventByUID(uid); 215 Event e=db->eventByUID(uid);
231 editEvent(e); 216 editEvent(e);
232 }else if (msg == "viewDefault(QDate)"){ 217 }else if (msg == "viewDefault(QDate)"){
233 QDate day; 218 QDate day;
234 stream >> day; 219 stream >> day;
235 viewDefault(day); 220 viewDefault(day);
236 } 221 }
237} 222}
238 223
239DateBook::~DateBook() 224DateBook::~DateBook()
240{ 225{
241} 226}
242 227
243void DateBook::slotSettings() 228void DateBook::slotSettings()
244{ 229{
245 DateBookSettings frmSettings( ampm, this ); 230 DateBookSettings frmSettings( ampm, this );
246 frmSettings.setStartTime( startTime ); 231 frmSettings.setStartTime( startTime );
247 frmSettings.setAlarmPreset( aPreset, presetTime ); 232 frmSettings.setAlarmPreset( aPreset, presetTime );
248 frmSettings.setJumpToCurTime( bJumpToCurTime ); 233 frmSettings.setJumpToCurTime( bJumpToCurTime );
249 frmSettings.setRowStyle( rowStyle ); 234 frmSettings.setRowStyle( rowStyle );
250 frmSettings.comboDefaultView->setCurrentItem(defaultView-1); 235 frmSettings.comboDefaultView->setCurrentItem(defaultView-1);
251 frmSettings.comboWeekListView->setCurrentItem(weeklistviewconfig); 236 frmSettings.comboWeekListView->setCurrentItem(weeklistviewconfig);
252 237
253 bool found=false; 238 bool found=false;
254 for (int i=0; i<(frmSettings.comboLocation->count()); i++) { 239 for (int i=0; i<(frmSettings.comboLocation->count()); i++) {
255 if ( frmSettings.comboLocation->text(i) == defaultLocation ) { 240 if ( frmSettings.comboLocation->text(i) == defaultLocation ) {
256 frmSettings.comboLocation->setCurrentItem(i); 241 frmSettings.comboLocation->setCurrentItem(i);
diff --git a/core/pim/datebook/datebookdayallday.cpp b/core/pim/datebook/datebookdayallday.cpp
index 1244fd3..d43d31a 100644
--- a/core/pim/datebook/datebookdayallday.cpp
+++ b/core/pim/datebook/datebookdayallday.cpp
@@ -1,216 +1,206 @@
1/**************************************************************************** 1/****************************************************************************
2** GPL by Rajko Albrecht 2** GPL by Rajko Albrecht
3** 3**
4** 4**
5** 5**
6** 6**
7** 7**
8****************************************************************************/ 8****************************************************************************/
9#include "datebookdayallday.h" 9#include "datebookdayallday.h"
10 10
11#include <qpushbutton.h>
12#include <qlayout.h> 11#include <qlayout.h>
13#include <qvariant.h>
14#include <qtooltip.h>
15#include <qwhatsthis.h>
16#include <qobjectlist.h>
17#include <qpe/event.h>
18#include <qpe/ir.h> 12#include <qpe/ir.h>
19#include <qpe/datebookdb.h>
20#include <qpe/resource.h>
21#include <qpopupmenu.h> 13#include <qpopupmenu.h>
22#include <qtimer.h> 14#include <qtimer.h>
23#include <qregexp.h>
24#include <qdatetime.h>
25 15
26#include "datebookday.h" 16#include "datebookday.h"
27 17
28/* 18/*
29 * Constructs a DatebookdayAllday which is a child of 'parent', with the 19 * Constructs a DatebookdayAllday which is a child of 'parent', with the
30 * name 'name' and widget flags set to 'f' 20 * name 'name' and widget flags set to 'f'
31 */ 21 */
32DatebookdayAllday::DatebookdayAllday(DateBookDB* db, QWidget* parent, const char* name, WFlags ) 22DatebookdayAllday::DatebookdayAllday(DateBookDB* db, QWidget* parent, const char* name, WFlags )
33 : QScrollView( parent, name ),item_count(0),dateBook(db) 23 : QScrollView( parent, name ),item_count(0),dateBook(db)
34{ 24{
35 if ( !name ) 25 if ( !name )
36 setName( "DatebookdayAllday" ); 26 setName( "DatebookdayAllday" );
37 setMinimumSize( QSize( 0, 0 ) ); 27 setMinimumSize( QSize( 0, 0 ) );
38 setMaximumHeight(3* (QFontMetrics(font()).height()+4) ); 28 setMaximumHeight(3* (QFontMetrics(font()).height()+4) );
39 29
40 m_MainFrame = new QFrame(viewport()); 30 m_MainFrame = new QFrame(viewport());
41 m_MainFrame->setFrameStyle(QFrame::NoFrame|QFrame::Plain); 31 m_MainFrame->setFrameStyle(QFrame::NoFrame|QFrame::Plain);
42 setFrameStyle(QFrame::NoFrame|QFrame::Plain); 32 setFrameStyle(QFrame::NoFrame|QFrame::Plain);
43 setResizePolicy( QScrollView::Default ); 33 setResizePolicy( QScrollView::Default );
44 setHScrollBarMode( AlwaysOff ); 34 setHScrollBarMode( AlwaysOff );
45 addChild(m_MainFrame); 35 addChild(m_MainFrame);
46 36
47 datebookdayalldayLayout = new QVBoxLayout( m_MainFrame ); 37 datebookdayalldayLayout = new QVBoxLayout( m_MainFrame );
48 datebookdayalldayLayout->setSpacing( 0 ); 38 datebookdayalldayLayout->setSpacing( 0 );
49 datebookdayalldayLayout->setMargin( 0 ); 39 datebookdayalldayLayout->setMargin( 0 );
50 40
51 lblDesc = new DatebookEventDesc(parent->parentWidget(),""); 41 lblDesc = new DatebookEventDesc(parent->parentWidget(),"");
52 lblDesc->setBackgroundColor(Qt::yellow); 42 lblDesc->setBackgroundColor(Qt::yellow);
53 lblDesc->hide(); 43 lblDesc->hide();
54 subWidgets.setAutoDelete(true); 44 subWidgets.setAutoDelete(true);
55} 45}
56 46
57/* 47/*
58 * Destroys the object and frees any allocated resources 48 * Destroys the object and frees any allocated resources
59 */ 49 */
60DatebookdayAllday::~DatebookdayAllday() 50DatebookdayAllday::~DatebookdayAllday()
61{ 51{
62 // no need to delete child widgets, Qt does it all for us 52 // no need to delete child widgets, Qt does it all for us
63} 53}
64 54
65DatebookAlldayDisp* DatebookdayAllday::addEvent(const EffectiveEvent&ev) 55DatebookAlldayDisp* DatebookdayAllday::addEvent(const EffectiveEvent&ev)
66{ 56{
67 DatebookAlldayDisp * lb; 57 DatebookAlldayDisp * lb;
68 lb = new DatebookAlldayDisp(dateBook,ev,m_MainFrame,NULL); 58 lb = new DatebookAlldayDisp(dateBook,ev,m_MainFrame,NULL);
69 lb->show(); 59 lb->show();
70 datebookdayalldayLayout->addWidget(lb); 60 datebookdayalldayLayout->addWidget(lb);
71 subWidgets.append(lb); 61 subWidgets.append(lb);
72 62
73 connect(lb,SIGNAL(displayMe(const Event &)),lblDesc,SLOT(disp_event(const Event&))); 63 connect(lb,SIGNAL(displayMe(const Event &)),lblDesc,SLOT(disp_event(const Event&)));
74 ++item_count; 64 ++item_count;
75 65
76 return lb; 66 return lb;
77} 67}
78 68
79void DatebookdayAllday::removeAllEvents() 69void DatebookdayAllday::removeAllEvents()
80{ 70{
81 subWidgets.clear(); 71 subWidgets.clear();
82 item_count = 0; 72 item_count = 0;
83} 73}
84 74
85DatebookAlldayDisp::DatebookAlldayDisp(DateBookDB *db,const EffectiveEvent& ev, 75DatebookAlldayDisp::DatebookAlldayDisp(DateBookDB *db,const EffectiveEvent& ev,
86 QWidget* parent,const char* name,WFlags f) 76 QWidget* parent,const char* name,WFlags f)
87 : QLabel(parent,name,f),m_Ev(ev),dateBook(db) 77 : QLabel(parent,name,f),m_Ev(ev),dateBook(db)
88{ 78{
89 QString strDesc = m_Ev.description(); 79 QString strDesc = m_Ev.description();
90 strDesc = strDesc.replace(QRegExp("<"),"&#60;"); 80 strDesc = strDesc.replace(QRegExp("<"),"&#60;");
91 setBackgroundColor(yellow); 81 setBackgroundColor(yellow);
92 setText(strDesc); 82 setText(strDesc);
93 setFrameStyle(QFrame::Raised|QFrame::Panel); 83 setFrameStyle(QFrame::Raised|QFrame::Panel);
94 84
95 int s = QFontMetrics(font()).height()+4; 85 int s = QFontMetrics(font()).height()+4;
96 setMaximumHeight( s ); 86 setMaximumHeight( s );
97 setMinimumSize( QSize( 0, s ) ); 87 setMinimumSize( QSize( 0, s ) );
98} 88}
99 89
100DatebookAlldayDisp::~DatebookAlldayDisp() 90DatebookAlldayDisp::~DatebookAlldayDisp()
101{ 91{
102} 92}
103 93
104void DatebookAlldayDisp::beam_single_event() 94void DatebookAlldayDisp::beam_single_event()
105{ 95{
106 // create an Event and beam it... 96 // create an Event and beam it...
107 /* 97 /*
108 * Start with the easy stuff. If start and end date is the same we can just use 98 * Start with the easy stuff. If start and end date is the same we can just use
109 * the values of effective m_Events 99 * the values of effective m_Events
110 * If it is a multi day m_Event we need to find the real start and end date... 100 * If it is a multi day m_Event we need to find the real start and end date...
111 */ 101 */
112 if ( m_Ev.event().start().date() == m_Ev.event().end().date() ) { 102 if ( m_Ev.event().start().date() == m_Ev.event().end().date() ) {
113 Event m_Event( m_Ev.event() ); 103 Event m_Event( m_Ev.event() );
114 104
115 QDateTime dt( m_Ev.date(), m_Ev.start() ); 105 QDateTime dt( m_Ev.date(), m_Ev.start() );
116 m_Event.setStart( dt ); 106 m_Event.setStart( dt );
117 107
118 dt.setTime( m_Ev.end() ); 108 dt.setTime( m_Ev.end() );
119 m_Event.setEnd( dt ); 109 m_Event.setEnd( dt );
120 emit beamMe( m_Event ); 110 emit beamMe( m_Event );
121 }else { 111 }else {
122 /* 112 /*
123 * at least the the Times are right now 113 * at least the the Times are right now
124 */ 114 */
125 QDateTime start( m_Ev.event().start() ); 115 QDateTime start( m_Ev.event().start() );
126 QDateTime end ( m_Ev.event().end () ); 116 QDateTime end ( m_Ev.event().end () );
127 117
128 /* 118 /*
129 * ok we know the start date or we need to find it 119 * ok we know the start date or we need to find it
130 */ 120 */
131 if ( m_Ev.start() != QTime( 0, 0, 0 ) ) { 121 if ( m_Ev.start() != QTime( 0, 0, 0 ) ) {
132 start.setDate( m_Ev.date() ); 122 start.setDate( m_Ev.date() );
133 }else { 123 }else {
134 QDate dt = DateBookDay::findRealStart( m_Ev.event().uid(), m_Ev.date(), dateBook ); 124 QDate dt = DateBookDay::findRealStart( m_Ev.event().uid(), m_Ev.date(), dateBook );
135 start.setDate( dt ); 125 start.setDate( dt );
136 } 126 }
137 127
138 /* 128 /*
139 * ok we know now the end date... 129 * ok we know now the end date...
140 * else 130 * else
141 * get to know the offset btw the real start and real end 131 * get to know the offset btw the real start and real end
142 * and then add it to the new start date... 132 * and then add it to the new start date...
143 */ 133 */
144 if ( m_Ev.end() != QTime(23, 59, 59 ) ) { 134 if ( m_Ev.end() != QTime(23, 59, 59 ) ) {
145 end.setDate( m_Ev.date() ); 135 end.setDate( m_Ev.date() );
146 }else{ 136 }else{
147 int days = m_Ev.event().start().date().daysTo( m_Ev.event().end().date() ); 137 int days = m_Ev.event().start().date().daysTo( m_Ev.event().end().date() );
148 end.setDate( start.date().addDays( days ) ); 138 end.setDate( start.date().addDays( days ) );
149 } 139 }
150 Event m_Event( m_Ev.event() ); 140 Event m_Event( m_Ev.event() );
151 m_Event.setStart( start ); 141 m_Event.setStart( start );
152 m_Event.setEnd ( end ); 142 m_Event.setEnd ( end );
153 emit beamMe( m_Event ); 143 emit beamMe( m_Event );
154 } 144 }
155} 145}
156 146
157void DatebookAlldayDisp::mousePressEvent(QMouseEvent*e) 147void DatebookAlldayDisp::mousePressEvent(QMouseEvent*e)
158{ 148{
159 Event ev = m_Ev.event(); 149 Event ev = m_Ev.event();
160 QColor b = backgroundColor(); 150 QColor b = backgroundColor();
161 setBackgroundColor(green); 151 setBackgroundColor(green);
162 update(); 152 update();
163 QPopupMenu m; 153 QPopupMenu m;
164 m.insertItem( DateBookDayWidget::tr( "Edit" ), 1 ); 154 m.insertItem( DateBookDayWidget::tr( "Edit" ), 1 );
165 m.insertItem( DateBookDayWidget::tr( "Duplicate" ), 4 ); 155 m.insertItem( DateBookDayWidget::tr( "Duplicate" ), 4 );
166 m.insertItem( DateBookDayWidget::tr( "Delete" ), 2 ); 156 m.insertItem( DateBookDayWidget::tr( "Delete" ), 2 );
167 if(Ir::supported()) m.insertItem( DateBookDayWidget::tr( "Beam" ), 3 ); 157 if(Ir::supported()) m.insertItem( DateBookDayWidget::tr( "Beam" ), 3 );
168 if(Ir::supported() && m_Ev.event().doRepeat() ) m.insertItem( DateBookDayWidget::tr( "Beam this occurence"), 5 ); 158 if(Ir::supported() && m_Ev.event().doRepeat() ) m.insertItem( DateBookDayWidget::tr( "Beam this occurence"), 5 );
169 m.insertItem( tr( "Info"),6); 159 m.insertItem( tr( "Info"),6);
170 int r = m.exec( e->globalPos() ); 160 int r = m.exec( e->globalPos() );
171 setBackgroundColor(b); 161 setBackgroundColor(b);
172 update(); 162 update();
173 switch (r) { 163 switch (r) {
174 case 1: 164 case 1:
175 emit editMe( ev ); 165 emit editMe( ev );
176 break; 166 break;
177 case 2: 167 case 2:
178 emit deleteMe( ev ); 168 emit deleteMe( ev );
179 break; 169 break;
180 case 3: 170 case 3:
181 emit beamMe( ev ); 171 emit beamMe( ev );
182 break; 172 break;
183 case 4: 173 case 4:
184 emit duplicateMe( ev ); 174 emit duplicateMe( ev );
185 break; 175 break;
186 case 5: 176 case 5:
187 beam_single_event(); 177 beam_single_event();
188 break; 178 break;
189 case 6: 179 case 6:
190 emit displayMe( ev ); 180 emit displayMe( ev );
191 break; 181 break;
192 default: 182 default:
193 break; 183 break;
194 } 184 }
195} 185}
196 186
197DatebookEventDesc::DatebookEventDesc(QWidget*parent,const char*name) 187DatebookEventDesc::DatebookEventDesc(QWidget*parent,const char*name)
198 :QLabel(parent,name) 188 :QLabel(parent,name)
199{ 189{
200 m_Timer=new QTimer(this); 190 m_Timer=new QTimer(this);
201 connect(m_Timer,SIGNAL(timeout()),this,SLOT(hide())); 191 connect(m_Timer,SIGNAL(timeout()),this,SLOT(hide()));
202 setFrameStyle(QFrame::Sunken|QFrame::Panel); 192 setFrameStyle(QFrame::Sunken|QFrame::Panel);
203 setTextFormat(RichText); 193 setTextFormat(RichText);
204} 194}
205 195
206DatebookEventDesc::~DatebookEventDesc() 196DatebookEventDesc::~DatebookEventDesc()
207{ 197{
208} 198}
209 199
210void DatebookEventDesc::mousePressEvent(QMouseEvent*) 200void DatebookEventDesc::mousePressEvent(QMouseEvent*)
211{ 201{
212 hide(); 202 hide();
213 if (m_Timer->isActive()) m_Timer->stop(); 203 if (m_Timer->isActive()) m_Timer->stop();
214} 204}
215 205
216void DatebookEventDesc::disp_event(const Event&e) 206void DatebookEventDesc::disp_event(const Event&e)
diff --git a/core/pim/datebook/datebookdayheaderimpl.cpp b/core/pim/datebook/datebookdayheaderimpl.cpp
index 3e965f5..213c843 100644
--- a/core/pim/datebook/datebookdayheaderimpl.cpp
+++ b/core/pim/datebook/datebookdayheaderimpl.cpp
@@ -1,204 +1,200 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "datebookdayheaderimpl.h" 20#include "datebookdayheaderimpl.h"
21 21
22#include <qpe/datebookmonth.h> 22#include <qpe/datebookmonth.h>
23#include <qpe/resource.h> 23#include <qpe/resource.h>
24#include <qpe/timestring.h>
25 24
26#include <qbuttongroup.h> 25#include <qbuttongroup.h>
27#include <qpopupmenu.h>
28#include <qstringlist.h>
29#include <qtimer.h>
30#include <qtoolbutton.h> 26#include <qtoolbutton.h>
31 27
32 28
33/* 29/*
34 * Constructs a DateBookDayHeader which is a child of 'parent', with the 30 * Constructs a DateBookDayHeader which is a child of 'parent', with the
35 * name 'name' and widget flags set to 'f' 31 * name 'name' and widget flags set to 'f'
36 * 32 *
37 * The dialog will by default be modeless, unless you set 'modal' to 33 * The dialog will by default be modeless, unless you set 'modal' to
38 * TRUE to construct a modal dialog. 34 * TRUE to construct a modal dialog.
39 */ 35 */
40DateBookDayHeader::DateBookDayHeader( bool useMonday, 36DateBookDayHeader::DateBookDayHeader( bool useMonday,
41 QWidget* parent, const char* name ) 37 QWidget* parent, const char* name )
42 : DateBookDayHeaderBase( parent, name ), 38 : DateBookDayHeaderBase( parent, name ),
43 bUseMonday( useMonday ) 39 bUseMonday( useMonday )
44{ 40{
45 connect(date,SIGNAL(pressed()),this,SLOT(pickDate())); 41 connect(date,SIGNAL(pressed()),this,SLOT(pickDate()));
46 42
47 setupNames(); 43 setupNames();
48 44
49 forward->setPixmap( Resource::loadPixmap( "forward" ) ); 45 forward->setPixmap( Resource::loadPixmap( "forward" ) );
50 back->setPixmap( Resource::loadPixmap( "back" ) ); 46 back->setPixmap( Resource::loadPixmap( "back" ) );
51 forwardweek->setPixmap( Resource::loadPixmap( "fastforward" ) ); 47 forwardweek->setPixmap( Resource::loadPixmap( "fastforward" ) );
52 backweek->setPixmap( Resource::loadPixmap( "fastback" ) ); 48 backweek->setPixmap( Resource::loadPixmap( "fastback" ) );
53 49
54 setBackgroundMode( PaletteButton ); 50 setBackgroundMode( PaletteButton );
55 grpDays->setBackgroundMode( PaletteButton ); 51 grpDays->setBackgroundMode( PaletteButton );
56} 52}
57 53
58/* 54/*
59 * Destroys the object and frees any allocated resources 55 * Destroys the object and frees any allocated resources
60 */ 56 */
61DateBookDayHeader::~DateBookDayHeader() 57DateBookDayHeader::~DateBookDayHeader()
62{ 58{
63 // no need to delete child widgets, Qt does it all for us 59 // no need to delete child widgets, Qt does it all for us
64} 60}
65 61
66void DateBookDayHeader::setStartOfWeek( bool onMonday ) 62void DateBookDayHeader::setStartOfWeek( bool onMonday )
67{ 63{
68 bUseMonday = onMonday; 64 bUseMonday = onMonday;
69 setupNames(); 65 setupNames();
70 setDate( currDate.year(), currDate.month(), currDate.day() ); 66 setDate( currDate.year(), currDate.month(), currDate.day() );
71} 67}
72 68
73void DateBookDayHeader::setupNames() 69void DateBookDayHeader::setupNames()
74{ 70{
75 if ( bUseMonday ) { 71 if ( bUseMonday ) {
76 cmdDay1->setText( DateBookDayHeaderBase::tr("Monday").left(1) ); 72 cmdDay1->setText( DateBookDayHeaderBase::tr("Monday").left(1) );
77 cmdDay2->setText( DateBookDayHeaderBase::tr("Tuesday").left(1) ); 73 cmdDay2->setText( DateBookDayHeaderBase::tr("Tuesday").left(1) );
78 cmdDay3->setText( DateBookDayHeaderBase::tr("Wednesday").left(1) ); 74 cmdDay3->setText( DateBookDayHeaderBase::tr("Wednesday").left(1) );
79 cmdDay4->setText( DateBookDayHeaderBase::tr("Thursday").left(1) ); 75 cmdDay4->setText( DateBookDayHeaderBase::tr("Thursday").left(1) );
80 cmdDay5->setText( DateBookDayHeaderBase::tr("Friday").left(1) ); 76 cmdDay5->setText( DateBookDayHeaderBase::tr("Friday").left(1) );
81 cmdDay6->setText( DateBookDayHeaderBase::tr("Saturday").left(1) ); 77 cmdDay6->setText( DateBookDayHeaderBase::tr("Saturday").left(1) );
82 cmdDay7->setText( DateBookDayHeaderBase::tr("Sunday").left(1) ); 78 cmdDay7->setText( DateBookDayHeaderBase::tr("Sunday").left(1) );
83 } else { 79 } else {
84 cmdDay1->setText( DateBookDayHeaderBase::tr("Sunday").left(1) ); 80 cmdDay1->setText( DateBookDayHeaderBase::tr("Sunday").left(1) );
85 cmdDay2->setText( DateBookDayHeaderBase::tr("Monday").left(1) ); 81 cmdDay2->setText( DateBookDayHeaderBase::tr("Monday").left(1) );
86 cmdDay3->setText( DateBookDayHeaderBase::tr("Tuesday").left(1) ); 82 cmdDay3->setText( DateBookDayHeaderBase::tr("Tuesday").left(1) );
87 cmdDay4->setText( DateBookDayHeaderBase::tr("Wednesday").left(1) ); 83 cmdDay4->setText( DateBookDayHeaderBase::tr("Wednesday").left(1) );
88 cmdDay5->setText( DateBookDayHeaderBase::tr("Thursday").left(1) ); 84 cmdDay5->setText( DateBookDayHeaderBase::tr("Thursday").left(1) );
89 cmdDay6->setText( DateBookDayHeaderBase::tr("Friday").left(1) ); 85 cmdDay6->setText( DateBookDayHeaderBase::tr("Friday").left(1) );
90 cmdDay7->setText( DateBookDayHeaderBase::tr("Saturday").left(1) ); 86 cmdDay7->setText( DateBookDayHeaderBase::tr("Saturday").left(1) );
91 } 87 }
92} 88}
93 89
94 90
95void DateBookDayHeader::pickDate() 91void DateBookDayHeader::pickDate()
96{ 92{
97 static QPopupMenu *m1 = 0; 93 static QPopupMenu *m1 = 0;
98 static DateBookMonth *picker = 0; 94 static DateBookMonth *picker = 0;
99 if ( !m1 ) { 95 if ( !m1 ) {
100 m1 = new QPopupMenu( this ); 96 m1 = new QPopupMenu( this );
101 picker = new DateBookMonth( m1, 0, TRUE ); 97 picker = new DateBookMonth( m1, 0, TRUE );
102 m1->insertItem( picker ); 98 m1->insertItem( picker );
103 connect( picker, SIGNAL( dateClicked( int, int, int ) ), 99 connect( picker, SIGNAL( dateClicked( int, int, int ) ),
104 this, SLOT( setDate( int, int, int ) ) ); 100 this, SLOT( setDate( int, int, int ) ) );
105 connect( m1, SIGNAL( aboutToHide() ), 101 connect( m1, SIGNAL( aboutToHide() ),
106 this, SLOT( gotHide() ) ); 102 this, SLOT( gotHide() ) );
107 } 103 }
108 picker->setDate( currDate.year(), currDate.month(), currDate.day() ); 104 picker->setDate( currDate.year(), currDate.month(), currDate.day() );
109 m1->popup(mapToGlobal(date->pos()+QPoint(0,date->height()))); 105 m1->popup(mapToGlobal(date->pos()+QPoint(0,date->height())));
110 picker->setFocus(); 106 picker->setFocus();
111} 107}
112 108
113void DateBookDayHeader::gotHide() 109void DateBookDayHeader::gotHide()
114{ 110{
115 // we have to redo the button... 111 // we have to redo the button...
116 date->setDown( false ); 112 date->setDown( false );
117} 113}
118 114
119/* 115/*
120 * public slot 116 * public slot
121 */ 117 */
122void DateBookDayHeader::goBack() 118void DateBookDayHeader::goBack()
123{ 119{
124 currDate = currDate.addDays( -1 ); 120 currDate = currDate.addDays( -1 );
125 setDate( currDate.year(), currDate.month(), currDate.day() ); 121 setDate( currDate.year(), currDate.month(), currDate.day() );
126} 122}
127/* 123/*
128 * public slot 124 * public slot
129 */ 125 */
130void DateBookDayHeader::goForward() 126void DateBookDayHeader::goForward()
131{ 127{
132 currDate = currDate.addDays( 1 ); 128 currDate = currDate.addDays( 1 );
133 setDate( currDate.year(), currDate.month(), currDate.day() ); 129 setDate( currDate.year(), currDate.month(), currDate.day() );
134} 130}
135/* 131/*
136 * public slot 132 * public slot
137 */ 133 */
138void DateBookDayHeader::goBackWeek() 134void DateBookDayHeader::goBackWeek()
139{ 135{
140 currDate = currDate.addDays( -7 ); 136 currDate = currDate.addDays( -7 );
141 setDate( currDate.year(), currDate.month(), currDate.day() ); 137 setDate( currDate.year(), currDate.month(), currDate.day() );
142} 138}
143/* 139/*
144 * public slot 140 * public slot
145 */ 141 */
146void DateBookDayHeader::goForwardWeek() 142void DateBookDayHeader::goForwardWeek()
147{ 143{
148 currDate = currDate.addDays( 7 ); 144 currDate = currDate.addDays( 7 );
149 setDate( currDate.year(), currDate.month(), currDate.day() ); 145 setDate( currDate.year(), currDate.month(), currDate.day() );
150} 146}
151 147
152 148
153/* 149/*
154 * public slot 150 * public slot
155 */ 151 */
156void DateBookDayHeader::setDate( int y, int m, int d ) 152void DateBookDayHeader::setDate( int y, int m, int d )
157{ 153{
158 currDate.setYMD( y, m, d ); 154 currDate.setYMD( y, m, d );
159 date->setText( TimeString::shortDate( currDate ) ); 155 date->setText( TimeString::shortDate( currDate ) );
160 156
161 int iDayOfWeek = currDate.dayOfWeek(); 157 int iDayOfWeek = currDate.dayOfWeek();
162 // cleverly adjust the day depending on how we start the week 158 // cleverly adjust the day depending on how we start the week
163 if ( bUseMonday ) 159 if ( bUseMonday )
164 iDayOfWeek--; 160 iDayOfWeek--;
165 else { 161 else {
166 if ( iDayOfWeek == 7 ) // Sunday 162 if ( iDayOfWeek == 7 ) // Sunday
167 iDayOfWeek = 0; 163 iDayOfWeek = 0;
168 } 164 }
169 grpDays->setButton( iDayOfWeek ); 165 grpDays->setButton( iDayOfWeek );
170 emit dateChanged( y, m, d ); 166 emit dateChanged( y, m, d );
171} 167}
172 168
173/* 169/*
174 * public slot 170 * public slot
175 */ 171 */
176void DateBookDayHeader::setDay( int day ) 172void DateBookDayHeader::setDay( int day )
177{ 173{
178 int realDay; 174 int realDay;
179 int dayOfWeek = currDate.dayOfWeek(); 175 int dayOfWeek = currDate.dayOfWeek();
180 176
181 // a little adjustment is needed... 177 // a little adjustment is needed...
182 if ( bUseMonday ) 178 if ( bUseMonday )
183 realDay = day + 1 ; 179 realDay = day + 1 ;
184 else if ( !bUseMonday && day == 0 ) // sunday 180 else if ( !bUseMonday && day == 0 ) // sunday
185 realDay = 7; 181 realDay = 7;
186 else 182 else
187 realDay = day; 183 realDay = day;
188 // special cases first... 184 // special cases first...
189 if ( realDay == 7 && !bUseMonday ) { 185 if ( realDay == 7 && !bUseMonday ) {
190 while ( currDate.dayOfWeek() != realDay ) 186 while ( currDate.dayOfWeek() != realDay )
191 currDate = currDate.addDays( -1 ); 187 currDate = currDate.addDays( -1 );
192 } else if ( !bUseMonday && dayOfWeek == 7 && dayOfWeek > realDay ) { 188 } else if ( !bUseMonday && dayOfWeek == 7 && dayOfWeek > realDay ) {
193 while ( currDate.dayOfWeek() != realDay ) 189 while ( currDate.dayOfWeek() != realDay )
194 currDate = currDate.addDays( 1 ); 190 currDate = currDate.addDays( 1 );
195 } else if ( dayOfWeek < realDay ) { 191 } else if ( dayOfWeek < realDay ) {
196 while ( currDate.dayOfWeek() < realDay ) 192 while ( currDate.dayOfWeek() < realDay )
197 currDate = currDate.addDays( 1 ); 193 currDate = currDate.addDays( 1 );
198 } else if ( dayOfWeek > realDay ) { 194 } else if ( dayOfWeek > realDay ) {
199 while ( currDate.dayOfWeek() > realDay ) 195 while ( currDate.dayOfWeek() > realDay )
200 currDate = currDate.addDays( -1 ); 196 currDate = currDate.addDays( -1 );
201 } 197 }
202 // update the date... 198 // update the date...
203 setDate( currDate.year(), currDate.month(), currDate.day() ); 199 setDate( currDate.year(), currDate.month(), currDate.day() );
204} 200}
diff --git a/core/pim/datebook/datebooksettings.cpp b/core/pim/datebook/datebooksettings.cpp
index 675b17f..a6d04ba 100644
--- a/core/pim/datebook/datebooksettings.cpp
+++ b/core/pim/datebook/datebooksettings.cpp
@@ -1,156 +1,155 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "datebooksettings.h" 21#include "datebooksettings.h"
22 22
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24 24
25#include <qspinbox.h> 25#include <qspinbox.h>
26#include <qcheckbox.h> 26#include <qcheckbox.h>
27#include <qcombobox.h>
28 27
29DateBookSettings::DateBookSettings( bool whichClock, QWidget *parent, 28DateBookSettings::DateBookSettings( bool whichClock, QWidget *parent,
30 const char *name, bool modal, WFlags fl ) 29 const char *name, bool modal, WFlags fl )
31 : DateBookSettingsBase( parent, name, modal, fl ), 30 : DateBookSettingsBase( parent, name, modal, fl ),
32 ampm( whichClock ) 31 ampm( whichClock )
33{ 32{
34 init(); 33 init();
35 QObject::connect( qApp, SIGNAL( clockChanged( bool ) ), this, SLOT( slotChangeClock( bool ) ) ); 34 QObject::connect( qApp, SIGNAL( clockChanged( bool ) ), this, SLOT( slotChangeClock( bool ) ) );
36 QArray<int> categories; 35 QArray<int> categories;
37 comboCategory->setCategories( categories, "Calendar", tr("Calendar") ); 36 comboCategory->setCategories( categories, "Calendar", tr("Calendar") );
38} 37}
39 38
40DateBookSettings::~DateBookSettings() 39DateBookSettings::~DateBookSettings()
41{ 40{
42} 41}
43 42
44void DateBookSettings::setStartTime( int newStartViewTime ) 43void DateBookSettings::setStartTime( int newStartViewTime )
45{ 44{
46 if ( ampm ) { 45 if ( ampm ) {
47 if ( newStartViewTime >= 12 ) { 46 if ( newStartViewTime >= 12 ) {
48 newStartViewTime %= 12; 47 newStartViewTime %= 12;
49 if ( newStartViewTime == 0 ) 48 if ( newStartViewTime == 0 )
50 newStartViewTime = 12; 49 newStartViewTime = 12;
51 spinStart->setSuffix( tr(":00 PM") ); 50 spinStart->setSuffix( tr(":00 PM") );
52 } 51 }
53 else if ( newStartViewTime == 0 ) { 52 else if ( newStartViewTime == 0 ) {
54 newStartViewTime = 12; 53 newStartViewTime = 12;
55 spinStart->setSuffix( tr(":00 AM") ); 54 spinStart->setSuffix( tr(":00 AM") );
56 } 55 }
57 oldtime = newStartViewTime; 56 oldtime = newStartViewTime;
58 } 57 }
59 spinStart->setValue( newStartViewTime ); 58 spinStart->setValue( newStartViewTime );
60} 59}
61 60
62int DateBookSettings::startTime() const 61int DateBookSettings::startTime() const
63{ 62{
64 int returnMe = spinStart->value(); 63 int returnMe = spinStart->value();
65 if ( ampm ) { 64 if ( ampm ) {
66 if ( returnMe != 12 && spinStart->suffix().contains(tr("PM"), FALSE) ) 65 if ( returnMe != 12 && spinStart->suffix().contains(tr("PM"), FALSE) )
67 returnMe += 12; 66 returnMe += 12;
68 else if (returnMe == 12 && spinStart->suffix().contains(tr("AM"), TRUE)) 67 else if (returnMe == 12 && spinStart->suffix().contains(tr("AM"), TRUE))
69 returnMe = 0; 68 returnMe = 0;
70 } 69 }
71 return returnMe; 70 return returnMe;
72} 71}
73 72
74 73
75void DateBookSettings::setAlarmPreset( bool bAlarm, int presetTime ) 74void DateBookSettings::setAlarmPreset( bool bAlarm, int presetTime )
76{ 75{
77 chkAlarmPreset->setChecked( bAlarm ); 76 chkAlarmPreset->setChecked( bAlarm );
78 if ( presetTime >=5 ) 77 if ( presetTime >=5 )
79 spinPreset->setValue( presetTime ); 78 spinPreset->setValue( presetTime );
80} 79}
81 80
82bool DateBookSettings::alarmPreset() const 81bool DateBookSettings::alarmPreset() const
83{ 82{
84 return chkAlarmPreset->isChecked(); 83 return chkAlarmPreset->isChecked();
85} 84}
86 85
87int DateBookSettings::presetTime() const 86int DateBookSettings::presetTime() const
88{ 87{
89 return spinPreset->value(); 88 return spinPreset->value();
90} 89}
91 90
92 91
93void DateBookSettings::slot12Hour( int i ) 92void DateBookSettings::slot12Hour( int i )
94{ 93{
95 if ( ampm ) { 94 if ( ampm ) {
96 if ( spinStart->suffix().contains( tr("AM"), FALSE ) ) { 95 if ( spinStart->suffix().contains( tr("AM"), FALSE ) ) {
97 if ( oldtime == 12 && i == 11 || oldtime == 11 && i == 12 ) 96 if ( oldtime == 12 && i == 11 || oldtime == 11 && i == 12 )
98 spinStart->setSuffix( tr(":00 PM") ); 97 spinStart->setSuffix( tr(":00 PM") );
99 } else { 98 } else {
100 if ( oldtime == 12 && i == 11 || oldtime == 11 && i == 12 ) 99 if ( oldtime == 12 && i == 11 || oldtime == 11 && i == 12 )
101 spinStart->setSuffix( tr(":00 AM") ); 100 spinStart->setSuffix( tr(":00 AM") );
102 } 101 }
103 oldtime = i; 102 oldtime = i;
104 } 103 }
105} 104}
106 105
107void DateBookSettings::init() 106void DateBookSettings::init()
108{ 107{
109 if ( ampm ) { 108 if ( ampm ) {
110 spinStart->setMinValue( 1 ); 109 spinStart->setMinValue( 1 );
111 spinStart->setMaxValue( 12 ); 110 spinStart->setMaxValue( 12 );
112 spinStart->setValue( 12 ); 111 spinStart->setValue( 12 );
113 spinStart->setSuffix( tr(":00 AM") ); 112 spinStart->setSuffix( tr(":00 AM") );
114 oldtime = 12; 113 oldtime = 12;
115 } else { 114 } else {
116 spinStart->setMinValue( 0 ); 115 spinStart->setMinValue( 0 );
117 spinStart->setMaxValue( 23 ); 116 spinStart->setMaxValue( 23 );
118 spinStart->setSuffix( tr(":00") ); 117 spinStart->setSuffix( tr(":00") );
119 } 118 }
120} 119}
121 120
122void DateBookSettings::slotChangeClock( bool whichClock ) 121void DateBookSettings::slotChangeClock( bool whichClock )
123{ 122{
124 int saveMe; 123 int saveMe;
125 saveMe = spinStart->value(); 124 saveMe = spinStart->value();
126 if ( ampm && spinStart->suffix().contains( tr("AM"), FALSE ) ) { 125 if ( ampm && spinStart->suffix().contains( tr("AM"), FALSE ) ) {
127 if ( saveMe == 12 ) 126 if ( saveMe == 12 )
128 saveMe = 0; 127 saveMe = 0;
129 } else if ( ampm && spinStart->suffix().contains( tr("PM"), FALSE ) ) { 128 } else if ( ampm && spinStart->suffix().contains( tr("PM"), FALSE ) ) {
130 if ( saveMe != 12 ) 129 if ( saveMe != 12 )
131 saveMe += 12; 130 saveMe += 12;
132 } 131 }
133 ampm = whichClock; 132 ampm = whichClock;
134 init(); 133 init();
135 setStartTime( saveMe ); 134 setStartTime( saveMe );
136} 135}
137 136
138void DateBookSettings::setJumpToCurTime( bool bJump ) 137void DateBookSettings::setJumpToCurTime( bool bJump )
139{ 138{
140 chkJumpToCurTime->setChecked( bJump ); 139 chkJumpToCurTime->setChecked( bJump );
141} 140}
142 141
143bool DateBookSettings::jumpToCurTime() const 142bool DateBookSettings::jumpToCurTime() const
144{ 143{
145 return chkJumpToCurTime->isChecked(); 144 return chkJumpToCurTime->isChecked();
146} 145}
147 146
148void DateBookSettings::setRowStyle( int style ) 147void DateBookSettings::setRowStyle( int style )
149{ 148{
150 comboRowStyle->setCurrentItem( style ); 149 comboRowStyle->setCurrentItem( style );
151} 150}
152 151
153int DateBookSettings::rowStyle() const 152int DateBookSettings::rowStyle() const
154{ 153{
155 return comboRowStyle->currentItem(); 154 return comboRowStyle->currentItem();
156} 155}
diff --git a/core/pim/datebook/datebookweekheaderimpl.cpp b/core/pim/datebook/datebookweekheaderimpl.cpp
index 84b4f1b..eaa9730 100644
--- a/core/pim/datebook/datebookweekheaderimpl.cpp
+++ b/core/pim/datebook/datebookweekheaderimpl.cpp
@@ -1,124 +1,120 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "datebookweekheaderimpl.h" 20#include "datebookweekheaderimpl.h"
21#include "datebookweekheader.h"
22#include "datebookweek.h" 21#include "datebookweek.h"
23#include <qlabel.h>
24#include <qspinbox.h>
25#include <qdatetime.h>
26#include <qpe/resource.h> 22#include <qpe/resource.h>
27#include <qpe/datebookmonth.h> 23#include <qpe/datebookmonth.h>
28 24
29#include <qtoolbutton.h> 25#include <qtoolbutton.h>
30 26
31/* 27/*
32 * Constructs a DateBookWeekHeader which is a child of 'parent', with the 28 * Constructs a DateBookWeekHeader which is a child of 'parent', with the
33 * name 'name' and widget flags set to 'f' 29 * name 'name' and widget flags set to 'f'
34 */ 30 */
35DateBookWeekHeader::DateBookWeekHeader( bool startOnMonday, QWidget* parent, const char* name, WFlags fl ) 31DateBookWeekHeader::DateBookWeekHeader( bool startOnMonday, QWidget* parent, const char* name, WFlags fl )
36 : DateBookWeekHeaderBase( parent, name, fl ), 32 : DateBookWeekHeaderBase( parent, name, fl ),
37 bStartOnMonday( startOnMonday ) 33 bStartOnMonday( startOnMonday )
38{ 34{
39 setBackgroundMode( PaletteButton ); 35 setBackgroundMode( PaletteButton );
40 labelDate->setBackgroundMode( PaletteButton ); 36 labelDate->setBackgroundMode( PaletteButton );
41 backmonth->setPixmap( Resource::loadPixmap("fastback") ); 37 backmonth->setPixmap( Resource::loadPixmap("fastback") );
42 backweek->setPixmap( Resource::loadPixmap("back") ); 38 backweek->setPixmap( Resource::loadPixmap("back") );
43 forwardweek->setPixmap( Resource::loadPixmap("forward") ); 39 forwardweek->setPixmap( Resource::loadPixmap("forward") );
44 forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); 40 forwardmonth->setPixmap( Resource::loadPixmap("fastforward") );
45} 41}
46 42
47/* 43/*
48 * Destroys the object and frees any allocated resources 44 * Destroys the object and frees any allocated resources
49 */ 45 */
50DateBookWeekHeader::~DateBookWeekHeader() 46DateBookWeekHeader::~DateBookWeekHeader()
51{ 47{
52 // no need to delete child widgets, Qt does it all for us 48 // no need to delete child widgets, Qt does it all for us
53} 49}
54 50
55void DateBookWeekHeader::pickDate() 51void DateBookWeekHeader::pickDate()
56{ 52{
57 static QPopupMenu *m1 = 0; 53 static QPopupMenu *m1 = 0;
58 static DateBookMonth *picker = 0; 54 static DateBookMonth *picker = 0;
59 if ( !m1 ) { 55 if ( !m1 ) {
60 m1 = new QPopupMenu( this ); 56 m1 = new QPopupMenu( this );
61 picker = new DateBookMonth( m1, 0, TRUE ); 57 picker = new DateBookMonth( m1, 0, TRUE );
62 m1->insertItem( picker ); 58 m1->insertItem( picker );
63 connect( picker, SIGNAL( dateClicked( int, int, int ) ), this, SLOT( setDate( int, int, int ) ) ); 59 connect( picker, SIGNAL( dateClicked( int, int, int ) ), this, SLOT( setDate( int, int, int ) ) );
64 // connect( m1, SIGNAL( aboutToHide() ), this, SLOT( gotHide() ) ); 60 // connect( m1, SIGNAL( aboutToHide() ), this, SLOT( gotHide() ) );
65 } 61 }
66 picker->setDate( date.year(), date.month(), date.day() ); 62 picker->setDate( date.year(), date.month(), date.day() );
67 m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); 63 m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height())));
68 picker->setFocus(); 64 picker->setFocus();
69} 65}
70 66
71void DateBookWeekHeader::nextMonth() 67void DateBookWeekHeader::nextMonth()
72{ 68{
73 qWarning("nextMonth() " ); 69 qWarning("nextMonth() " );
74 setDate(date.addDays(28)); 70 setDate(date.addDays(28));
75} 71}
76void DateBookWeekHeader::prevMonth() 72void DateBookWeekHeader::prevMonth()
77{ 73{
78 qWarning("prevMonth() " ); 74 qWarning("prevMonth() " );
79 setDate(date.addDays(-28)); 75 setDate(date.addDays(-28));
80} 76}
81void DateBookWeekHeader::nextWeek() 77void DateBookWeekHeader::nextWeek()
82{ 78{
83 qWarning("nextWeek() " ); 79 qWarning("nextWeek() " );
84 setDate(date.addDays(7)); 80 setDate(date.addDays(7));
85} 81}
86void DateBookWeekHeader::prevWeek() 82void DateBookWeekHeader::prevWeek()
87{ 83{
88 qWarning("prevWeek() "); 84 qWarning("prevWeek() ");
89 setDate(date.addDays(-7)); 85 setDate(date.addDays(-7));
90} 86}
91 87
92void DateBookWeekHeader::setDate( int y, int m, int d ) 88void DateBookWeekHeader::setDate( int y, int m, int d )
93{ 89{
94 setDate(QDate(y,m,d)); 90 setDate(QDate(y,m,d));
95} 91}
96 92
97void DateBookWeekHeader::setDate(const QDate &d) { 93void DateBookWeekHeader::setDate(const QDate &d) {
98 int year,week,dayofweek; 94 int year,week,dayofweek;
99 date=d; 95 date=d;
100 dayofweek=d.dayOfWeek(); 96 dayofweek=d.dayOfWeek();
101 if(bStartOnMonday) 97 if(bStartOnMonday)
102 dayofweek--; 98 dayofweek--;
103 else if( dayofweek == 7 ) 99 else if( dayofweek == 7 )
104 // we already have the right day -7 would lead to the current week.. 100 // we already have the right day -7 would lead to the current week..
105 dayofweek = 0; 101 dayofweek = 0;
106 102
107 date=date.addDays(-dayofweek); 103 date=date.addDays(-dayofweek);
108 calcWeek(date,week,year,bStartOnMonday); 104 calcWeek(date,week,year,bStartOnMonday);
109 QDate start=date; 105 QDate start=date;
110 QDate stop=start.addDays(6); 106 QDate stop=start.addDays(6);
111 labelDate->setText( QString::number(start.day()) + "." + 107 labelDate->setText( QString::number(start.day()) + "." +
112 Calendar::nameOfMonth( start.month()) + "-" + 108 Calendar::nameOfMonth( start.month()) + "-" +
113 QString::number(stop.day()) + "." + 109 QString::number(stop.day()) + "." +
114 Calendar::nameOfMonth( stop.month()) +" ("+ 110 Calendar::nameOfMonth( stop.month()) +" ("+
115 tr("w")+":"+QString::number( week ) +")"); 111 tr("w")+":"+QString::number( week ) +")");
116 date = d; // bugfix: 0001126 - date has to be the selected date, not monday! 112 date = d; // bugfix: 0001126 - date has to be the selected date, not monday!
117 emit dateChanged(date); 113 emit dateChanged(date);
118} 114}
119 115
120void DateBookWeekHeader::setStartOfWeek( bool onMonday ) 116void DateBookWeekHeader::setStartOfWeek( bool onMonday )
121{ 117{
122 bStartOnMonday = onMonday; 118 bStartOnMonday = onMonday;
123 setDate( date ); 119 setDate( date );
124} 120}
diff --git a/core/pim/datebook/datebookweeklst.cpp b/core/pim/datebook/datebookweeklst.cpp
index 24fb0ba..42a1753 100644
--- a/core/pim/datebook/datebookweeklst.cpp
+++ b/core/pim/datebook/datebookweeklst.cpp
@@ -1,201 +1,200 @@
1#include "datebookweeklst.h" 1#include "datebookweeklst.h"
2 2
3 3
4#include "datebook.h" 4#include "datebook.h"
5 5
6#include <qpe/datebookmonth.h> 6#include <qpe/datebookmonth.h>
7#include <qpe/config.h> 7#include <qpe/config.h>
8#include <qpe/resource.h> 8#include <qpe/resource.h>
9#include <qpe/calendar.h>
10 9
11#include <qlayout.h> 10#include <qlayout.h>
12#include <qtoolbutton.h> 11#include <qtoolbutton.h>
13#include <qtl.h> 12#include <qtl.h>
14 13
15bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false); 14bool calcWeek(const QDate &d, int &week, int &year,bool startOnMonday = false);
16 15
17DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl) 16DateBookWeekLstHeader::DateBookWeekLstHeader(bool onM, QWidget* parent, const char* name, WFlags fl)
18 : DateBookWeekLstHeaderBase(parent, name, fl) 17 : DateBookWeekLstHeaderBase(parent, name, fl)
19{ 18{
20 setBackgroundMode( PaletteButton ); 19 setBackgroundMode( PaletteButton );
21 labelDate->setBackgroundMode( PaletteButton ); 20 labelDate->setBackgroundMode( PaletteButton );
22 forwardweek->setBackgroundMode( PaletteButton ); 21 forwardweek->setBackgroundMode( PaletteButton );
23 forwardweek->setPixmap( Resource::loadPixmap("forward") ); 22 forwardweek->setPixmap( Resource::loadPixmap("forward") );
24 forwardmonth->setBackgroundMode( PaletteButton ); 23 forwardmonth->setBackgroundMode( PaletteButton );
25 forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); 24 forwardmonth->setPixmap( Resource::loadPixmap("fastforward") );
26 backweek->setBackgroundMode( PaletteButton ); 25 backweek->setBackgroundMode( PaletteButton );
27 backweek->setPixmap( Resource::loadPixmap("back") ); 26 backweek->setPixmap( Resource::loadPixmap("back") );
28 backmonth->setBackgroundMode( PaletteButton ); 27 backmonth->setBackgroundMode( PaletteButton );
29 backmonth->setPixmap( Resource::loadPixmap("fastback") ); 28 backmonth->setPixmap( Resource::loadPixmap("fastback") );
30 DateBookWeekLstHeaderBaseLayout->setSpacing(0); 29 DateBookWeekLstHeaderBaseLayout->setSpacing(0);
31 DateBookWeekLstHeaderBaseLayout->setMargin(0); 30 DateBookWeekLstHeaderBaseLayout->setMargin(0);
32 //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding)); 31 //setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding));
33 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); 32 setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed));
34 33
35 connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth())); 34 connect(backmonth, SIGNAL(clicked()), this, SLOT(prevMonth()));
36 connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek())); 35 connect(backweek, SIGNAL(clicked()), this, SLOT(prevWeek()));
37 connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek())); 36 connect(forwardweek, SIGNAL(clicked()), this, SLOT(nextWeek()));
38 connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth())); 37 connect(forwardmonth, SIGNAL(clicked()), this, SLOT(nextMonth()));
39 connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate())); 38 connect(labelDate, SIGNAL(clicked()), this, SLOT(pickDate()));
40 connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool))); 39 connect(dbl, SIGNAL(toggled(bool)), this, SIGNAL(setDbl(bool)));
41 bStartOnMonday=onM; 40 bStartOnMonday=onM;
42} 41}
43DateBookWeekLstHeader::~DateBookWeekLstHeader(){} 42DateBookWeekLstHeader::~DateBookWeekLstHeader(){}
44 43
45void DateBookWeekLstHeader::setDate(const QDate &d) { 44void DateBookWeekLstHeader::setDate(const QDate &d) {
46 int year,week,dayofweek; 45 int year,week,dayofweek;
47 date=d; 46 date=d;
48 dayofweek=d.dayOfWeek(); 47 dayofweek=d.dayOfWeek();
49 if(bStartOnMonday) 48 if(bStartOnMonday)
50 dayofweek--; 49 dayofweek--;
51 else if( dayofweek == 7 ) 50 else if( dayofweek == 7 )
52 /* we already have the right day -7 would lead to the same week */ 51 /* we already have the right day -7 would lead to the same week */
53 dayofweek = 0; 52 dayofweek = 0;
54 53
55 date=date.addDays(-dayofweek); 54 date=date.addDays(-dayofweek);
56 55
57 calcWeek(date,week,year,bStartOnMonday); 56 calcWeek(date,week,year,bStartOnMonday);
58 QDate start=date; 57 QDate start=date;
59 QDate stop=start.addDays(6); 58 QDate stop=start.addDays(6);
60 labelDate->setText( QString::number(start.day()) + "." + 59 labelDate->setText( QString::number(start.day()) + "." +
61 Calendar::nameOfMonth( start.month() ) + "-" + 60 Calendar::nameOfMonth( start.month() ) + "-" +
62 QString::number(stop.day()) + "." + 61 QString::number(stop.day()) + "." +
63 Calendar::nameOfMonth( stop.month()) +" ("+ 62 Calendar::nameOfMonth( stop.month()) +" ("+
64 tr("w")+":"+QString::number( week ) +")"); 63 tr("w")+":"+QString::number( week ) +")");
65 date = d; // bugfix: 0001126 - date has to be the selected date, not monday! 64 date = d; // bugfix: 0001126 - date has to be the selected date, not monday!
66 emit dateChanged(date); 65 emit dateChanged(date);
67} 66}
68 67
69void DateBookWeekLstHeader::pickDate() { 68void DateBookWeekLstHeader::pickDate() {
70 static QPopupMenu *m1 = 0; 69 static QPopupMenu *m1 = 0;
71 static DateBookMonth *picker = 0; 70 static DateBookMonth *picker = 0;
72 if ( !m1 ) { 71 if ( !m1 ) {
73 m1 = new QPopupMenu( this ); 72 m1 = new QPopupMenu( this );
74 picker = new DateBookMonth( m1, 0, TRUE ); 73 picker = new DateBookMonth( m1, 0, TRUE );
75 m1->insertItem( picker ); 74 m1->insertItem( picker );
76 connect( picker, SIGNAL( dateClicked( int, int, int ) ),this, SLOT( setDate( int, int, int ) ) ); 75 connect( picker, SIGNAL( dateClicked( int, int, int ) ),this, SLOT( setDate( int, int, int ) ) );
77 //connect( m1, SIGNAL( aboutToHide() ), 76 //connect( m1, SIGNAL( aboutToHide() ),
78 //this, SLOT( gotHide() ) ); 77 //this, SLOT( gotHide() ) );
79 } 78 }
80 picker->setDate( date.year(), date.month(), date.day() ); 79 picker->setDate( date.year(), date.month(), date.day() );
81 m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); 80 m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height())));
82 picker->setFocus(); 81 picker->setFocus();
83} 82}
84void DateBookWeekLstHeader::setDate(int y, int m, int d) { 83void DateBookWeekLstHeader::setDate(int y, int m, int d) {
85 setDate(QDate(y,m,d)); 84 setDate(QDate(y,m,d));
86} 85}
87 86
88void DateBookWeekLstHeader::nextWeek() { 87void DateBookWeekLstHeader::nextWeek() {
89 setDate(date.addDays(7)); 88 setDate(date.addDays(7));
90} 89}
91void DateBookWeekLstHeader::prevWeek() { 90void DateBookWeekLstHeader::prevWeek() {
92 setDate(date.addDays(-7)); 91 setDate(date.addDays(-7));
93} 92}
94void DateBookWeekLstHeader::nextMonth() 93void DateBookWeekLstHeader::nextMonth()
95{ 94{
96 setDate(date.addDays(28)); 95 setDate(date.addDays(28));
97} 96}
98void DateBookWeekLstHeader::prevMonth() 97void DateBookWeekLstHeader::prevMonth()
99{ 98{
100 setDate(date.addDays(-28)); 99 setDate(date.addDays(-28));
101} 100}
102 101
103DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */, 102DateBookWeekLstDayHdr::DateBookWeekLstDayHdr(const QDate &d, bool /* onM */,
104 QWidget* parent, 103 QWidget* parent,
105 const char* name, 104 const char* name,
106 WFlags fl ) 105 WFlags fl )
107 : DateBookWeekLstDayHdrBase(parent, name, fl) { 106 : DateBookWeekLstDayHdrBase(parent, name, fl) {
108 107
109 date=d; 108 date=d;
110 109
111 static const QString wdays=tr("MTWTFSSM", "Week days"); 110 static const QString wdays=tr("MTWTFSSM", "Week days");
112 char day=wdays[d.dayOfWeek()-1]; 111 char day=wdays[d.dayOfWeek()-1];
113 112
114 //dont use dayOfWeek() to save space ! 113 //dont use dayOfWeek() to save space !
115 label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) ); 114 label->setText( QString(QObject::tr(QString(QChar(day)))) + " " +QString::number(d.day()) );
116 115
117 add->setText("+"); 116 add->setText("+");
118 117
119 if (d == QDate::currentDate()) { 118 if (d == QDate::currentDate()) {
120 QPalette pal=label->palette(); 119 QPalette pal=label->palette();
121 pal.setColor(QColorGroup::Foreground, QColor(0,0,255)); 120 pal.setColor(QColorGroup::Foreground, QColor(0,0,255));
122 label->setPalette(pal); 121 label->setPalette(pal);
123 122
124 /* 123 /*
125 QFont f=label->font(); 124 QFont f=label->font();
126 f.setItalic(true); 125 f.setItalic(true);
127 label->setFont(f); 126 label->setFont(f);
128 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor())); 127 label->setPalette(QPalette(QColor(0,0,255),label->backgroundColor()));
129 */ 128 */
130 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday 129 } else if (d.dayOfWeek() == 7) { // FIXME: Match any holiday
131 QPalette pal=label->palette(); 130 QPalette pal=label->palette();
132 pal.setColor(QColorGroup::Foreground, QColor(255,0,0)); 131 pal.setColor(QColorGroup::Foreground, QColor(255,0,0));
133 label->setPalette(pal); 132 label->setPalette(pal);
134 } 133 }
135 134
136 connect (label, SIGNAL(clicked()), this, SLOT(showDay())); 135 connect (label, SIGNAL(clicked()), this, SLOT(showDay()));
137 connect (add, SIGNAL(clicked()), this, SLOT(newEvent())); 136 connect (add, SIGNAL(clicked()), this, SLOT(newEvent()));
138} 137}
139 138
140void DateBookWeekLstDayHdr::showDay() { 139void DateBookWeekLstDayHdr::showDay() {
141 emit showDate(date.year(), date.month(), date.day()); 140 emit showDate(date.year(), date.month(), date.day());
142} 141}
143 142
144void DateBookWeekLstDayHdr::newEvent() { 143void DateBookWeekLstDayHdr::newEvent() {
145 QDateTime start, stop; 144 QDateTime start, stop;
146 start=stop=date; 145 start=stop=date;
147 start.setTime(QTime(10,0)); 146 start.setTime(QTime(10,0));
148 stop.setTime(QTime(12,0)); 147 stop.setTime(QTime(12,0));
149 148
150 emit addEvent(start,stop,"",0); 149 emit addEvent(start,stop,"",0);
151} 150}
152DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev, 151DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev,
153 int weeklistviewconfig, 152 int weeklistviewconfig,
154 QWidget* parent, 153 QWidget* parent,
155 const char* name, 154 const char* name,
156 WFlags fl ) : OClickableLabel(parent,name,fl), event(ev) 155 WFlags fl ) : OClickableLabel(parent,name,fl), event(ev)
157{ 156{
158 // old values... lastday = "__|__", middle=" |---", Firstday="00:00", 157 // old values... lastday = "__|__", middle=" |---", Firstday="00:00",
159 QString s,start,middle,end,day; 158 QString s,start,middle,end,day;
160 159
161 qDebug("weeklistviewconfig=%d",weeklistviewconfig); 160 qDebug("weeklistviewconfig=%d",weeklistviewconfig);
162 if(weeklistviewconfig==NONE) {// No times displayed. 161 if(weeklistviewconfig==NONE) {// No times displayed.
163 // start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); 162 // start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute());
164 // middle.sprintf("<--->"); 163 // middle.sprintf("<--->");
165 // end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); 164 // end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute());
166 // day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); 165 // day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute());
167 } else if(weeklistviewconfig==NORMAL) {// "Normal", only display start time. 166 } else if(weeklistviewconfig==NORMAL) {// "Normal", only display start time.
168 start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); 167 start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
169 middle.sprintf(" |---"); 168 middle.sprintf(" |---");
170 end.sprintf("__|__"); 169 end.sprintf("__|__");
171 day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute()); 170 day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
172 } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times. 171 } else if(weeklistviewconfig==EXTENDED) { // Extended mode, display start and end times.
173 start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute()); 172 start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute());
174 middle.sprintf("<--->"); 173 middle.sprintf("<--->");
175 end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute()); 174 end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute());
176 day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute()); 175 day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute());
177 } 176 }
178 177
179 if(ev.event().type() == Event::Normal) { 178 if(ev.event().type() == Event::Normal) {
180 if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) {// day event. 179 if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) {// day event.
181 s=day; 180 s=day;
182 } else if(ev.startDate()==ev.date()) {// start event. 181 } else if(ev.startDate()==ev.date()) {// start event.
183 s=start; 182 s=start;
184 } else if(ev.endDate()==ev.date()) { // end event. 183 } else if(ev.endDate()==ev.date()) { // end event.
185 s=end; 184 s=end;
186 } else {// middle day. 185 } else {// middle day.
187 s=middle; 186 s=middle;
188 } 187 }
189 } else { 188 } else {
190 s=""; 189 s="";
191 } 190 }
192 setText(QString(s) + " " + ev.description()); 191 setText(QString(s) + " " + ev.description());
193 connect(this, SIGNAL(clicked()), this, SLOT(editMe())); 192 connect(this, SIGNAL(clicked()), this, SLOT(editMe()));
194 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) ); 193 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
195} 194}
196void DateBookWeekLstEvent::editMe() { 195void DateBookWeekLstEvent::editMe() {
197 emit editEvent(event.event()); 196 emit editEvent(event.event());
198} 197}
199 198
200 199
201DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev, 200DateBookWeekLstView::DateBookWeekLstView(QValueList<EffectiveEvent> &ev,
diff --git a/core/pim/datebook/dateentryimpl.cpp b/core/pim/datebook/dateentryimpl.cpp
index 856837c..018bb5a 100644
--- a/core/pim/datebook/dateentryimpl.cpp
+++ b/core/pim/datebook/dateentryimpl.cpp
@@ -1,233 +1,222 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "dateentryimpl.h" 21#include "dateentryimpl.h"
22#include "repeatentry.h" 22#include "repeatentry.h"
23 23
24#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
25#include <qpe/categoryselect.h> 25#include <qpe/categoryselect.h>
26#include <qpe/datebookmonth.h> 26#include <qpe/datebookmonth.h>
27#include <qpe/global.h>
28#include <qpe/timeconversion.h>
29#include <qpe/timestring.h>
30#include <qpe/tzselect.h> 27#include <qpe/tzselect.h>
31 28
32#include <qevent.h>
33#include <qcheckbox.h>
34#include <qcombobox.h>
35#include <qlayout.h>
36#include <qlineedit.h> 29#include <qlineedit.h>
37#include <qmultilineedit.h>
38#include <qpopupmenu.h>
39#include <qscrollview.h>
40#include <qspinbox.h> 30#include <qspinbox.h>
41#include <qtoolbutton.h>
42 31
43#include <opie/otimepicker.h> 32#include <opie/otimepicker.h>
44#include "onoteedit.h" 33#include "onoteedit.h"
45 34
46#include <stdlib.h> 35#include <stdlib.h>
47#include <stdio.h> 36#include <stdio.h>
48 37
49/* 38/*
50 * Constructs a DateEntry which is a child of 'parent', with the 39 * Constructs a DateEntry which is a child of 'parent', with the
51 * name 'name' and widget flags set to 'f' 40 * name 'name' and widget flags set to 'f'
52 * 41 *
53 * The dialog will by default be modeless, unless you set 'modal' to 42 * The dialog will by default be modeless, unless you set 'modal' to
54 * TRUE to construct a modal dialog. 43 * TRUE to construct a modal dialog.
55 */ 44 */
56 45
57DateEntry::DateEntry( bool startOnMonday, const QDateTime &start, 46DateEntry::DateEntry( bool startOnMonday, const QDateTime &start,
58 const QDateTime &end, bool whichClock, QWidget* parent, 47 const QDateTime &end, bool whichClock, QWidget* parent,
59 const char* name ) 48 const char* name )
60 : DateEntryBase( parent, name ), 49 : DateEntryBase( parent, name ),
61 ampm( whichClock ), 50 ampm( whichClock ),
62 startWeekOnMonday( startOnMonday ), 51 startWeekOnMonday( startOnMonday ),
63 m_showStart(true) 52 m_showStart(true)
64{ 53{
65 init(); 54 init();
66 setDates(start,end); 55 setDates(start,end);
67 setFocusProxy(comboDescription); 56 setFocusProxy(comboDescription);
68} 57}
69 58
70bool DateEntry::eventFilter(QObject *obj, QEvent *ev ) 59bool DateEntry::eventFilter(QObject *obj, QEvent *ev )
71{ 60{
72 if( ev->type() == QEvent::FocusIn ){ 61 if( ev->type() == QEvent::FocusIn ){
73 if( obj == comboStart ){ 62 if( obj == comboStart ){
74 timePickerStart->setHour(startTime.hour()); 63 timePickerStart->setHour(startTime.hour());
75 timePickerStart->setMinute(startTime.minute()); 64 timePickerStart->setMinute(startTime.minute());
76 TimePickerLabel->setText( tr("Start Time" ) ); 65 TimePickerLabel->setText( tr("Start Time" ) );
77 m_showStart= true; 66 m_showStart= true;
78 }else if( obj == comboEnd ){ 67 }else if( obj == comboEnd ){
79 timePickerStart->setHour(endTime.hour()); 68 timePickerStart->setHour(endTime.hour());
80 timePickerStart->setMinute(endTime.minute()); 69 timePickerStart->setMinute(endTime.minute());
81 TimePickerLabel->setText( tr("End Time") ); 70 TimePickerLabel->setText( tr("End Time") );
82 m_showStart = false; 71 m_showStart = false;
83 } 72 }
84 } else if( ev->type() == QEvent::FocusOut ){ 73 } else if( ev->type() == QEvent::FocusOut ){
85// if( obj == comboEnd ){ 74// if( obj == comboEnd ){
86// QString s; 75// QString s;
87// s.sprintf("%.2d:%.2d",endTime.hour(), endTime.minute()); 76// s.sprintf("%.2d:%.2d",endTime.hour(), endTime.minute());
88// comboEnd->setText(s); 77// comboEnd->setText(s);
89// } 78// }
90// else if( obj == comboStart ){ 79// else if( obj == comboStart ){
91// QString s; 80// QString s;
92// s.sprintf("%.2d:%.2d",startTime.hour(), startTime.minute()); 81// s.sprintf("%.2d:%.2d",startTime.hour(), startTime.minute());
93// comboStart->setText(s); 82// comboStart->setText(s);
94// } 83// }
95 } 84 }
96 85
97 return false; 86 return false;
98} 87}
99 88
100static void addOrPick( QComboBox* combo, const QString& t ) 89static void addOrPick( QComboBox* combo, const QString& t )
101{ 90{
102 // Pick an item if one excists 91 // Pick an item if one excists
103 for (int i=0; i<combo->count(); i++) { 92 for (int i=0; i<combo->count(); i++) {
104 if ( combo->text(i) == t ) { 93 if ( combo->text(i) == t ) {
105 combo->setCurrentItem(i); 94 combo->setCurrentItem(i);
106 return; 95 return;
107 } 96 }
108 } 97 }
109 98
110 // Else add one 99 // Else add one
111 combo->insertItem(t); 100 combo->insertItem(t);
112 combo->setCurrentItem(combo->count()-1); 101 combo->setCurrentItem(combo->count()-1);
113} 102}
114 103
115DateEntry::DateEntry( bool startOnMonday, const Event &event, bool whichClock, 104DateEntry::DateEntry( bool startOnMonday, const Event &event, bool whichClock,
116 QWidget* parent, const char* name ) 105 QWidget* parent, const char* name )
117 : DateEntryBase( parent, name ), 106 : DateEntryBase( parent, name ),
118 ampm( whichClock ), 107 ampm( whichClock ),
119 startWeekOnMonday( startOnMonday ), 108 startWeekOnMonday( startOnMonday ),
120 m_showStart(true) 109 m_showStart(true)
121 110
122{ 111{
123 init(); 112 init();
124 setDates(event.start(),event.end()); 113 setDates(event.start(),event.end());
125 comboCategory->setCategories( event.categories(), "Calendar", tr("Calendar") ); 114 comboCategory->setCategories( event.categories(), "Calendar", tr("Calendar") );
126 if(!event.description().isEmpty()) 115 if(!event.description().isEmpty())
127 addOrPick( comboDescription, event.description() ); 116 addOrPick( comboDescription, event.description() );
128 if(!event.location().isEmpty()) 117 if(!event.location().isEmpty())
129 addOrPick( comboLocation, event.location() ); 118 addOrPick( comboLocation, event.location() );
130 checkAlarm->setChecked( event.hasAlarm() ); 119 checkAlarm->setChecked( event.hasAlarm() );
131 checkAllDay->setChecked( event.type() == Event::AllDay ); 120 checkAllDay->setChecked( event.type() == Event::AllDay );
132 if(!event.notes().isEmpty()) noteStr=event.notes(); 121 if(!event.notes().isEmpty()) noteStr=event.notes();
133 else noteStr=""; 122 else noteStr="";
134 spinAlarm->setValue(event.alarmTime()); 123 spinAlarm->setValue(event.alarmTime());
135 if ( event.alarmSound() != Event::Silent ) 124 if ( event.alarmSound() != Event::Silent )
136 comboSound->setCurrentItem( 1 ); 125 comboSound->setCurrentItem( 1 );
137 if ( event.hasRepeat() ) { 126 if ( event.hasRepeat() ) {
138 rp = event.repeatPattern(); 127 rp = event.repeatPattern();
139 cmdRepeat->setText( tr("Repeat...") ); 128 cmdRepeat->setText( tr("Repeat...") );
140 } 129 }
141 setRepeatLabel(); 130 setRepeatLabel();
142} 131}
143 132
144void DateEntry::setDates( const QDateTime& s, const QDateTime& e ) 133void DateEntry::setDates( const QDateTime& s, const QDateTime& e )
145{ 134{
146 startDate = s.date(); 135 startDate = s.date();
147 endDate = e.date(); 136 endDate = e.date();
148 startTime = s.time(); 137 startTime = s.time();
149 endTime = e.time(); 138 endTime = e.time();
150 139
151 startDateChanged( s.date().year(), s.date().month(), s.date().day() ); 140 startDateChanged( s.date().year(), s.date().month(), s.date().day() );
152 endDateChanged( e.date().year(), e.date().month(), e.date().day() ); 141 endDateChanged( e.date().year(), e.date().month(), e.date().day() );
153 142
154 updateTimeEdit(true,true); 143 updateTimeEdit(true,true);
155} 144}
156 145
157void DateEntry::updateTimeEdit(bool s, bool e) { 146void DateEntry::updateTimeEdit(bool s, bool e) {
158 147
159 // Comboboxes 148 // Comboboxes
160 QString strStart, strEnd; 149 QString strStart, strEnd;
161 int shour, ehour; 150 int shour, ehour;
162 if ( ampm ) { 151 if ( ampm ) {
163 shour = startTime.hour(); 152 shour = startTime.hour();
164 ehour = endTime.hour(); 153 ehour = endTime.hour();
165 if ( shour >= 12 ) { 154 if ( shour >= 12 ) {
166 if ( shour > 12 ) 155 if ( shour > 12 )
167 shour -= 12; 156 shour -= 12;
168 strStart.sprintf( "%d:%02d PM", shour, startTime.minute() ); 157 strStart.sprintf( "%d:%02d PM", shour, startTime.minute() );
169 } else { 158 } else {
170 if ( shour == 0 ) 159 if ( shour == 0 )
171 shour = 12; 160 shour = 12;
172 strStart.sprintf( "%d:%02d AM", shour, startTime.minute() ); 161 strStart.sprintf( "%d:%02d AM", shour, startTime.minute() );
173 } 162 }
174 if ( ehour == 24 && endTime.minute() == 0 ) { 163 if ( ehour == 24 && endTime.minute() == 0 ) {
175 strEnd = "11:59 PM"; // or "midnight" 164 strEnd = "11:59 PM"; // or "midnight"
176 } else if ( ehour >= 12 ) { 165 } else if ( ehour >= 12 ) {
177 if ( ehour > 12 ) 166 if ( ehour > 12 )
178 ehour -= 12; 167 ehour -= 12;
179 strEnd.sprintf( "%d:%02d PM", ehour, endTime.minute() ); 168 strEnd.sprintf( "%d:%02d PM", ehour, endTime.minute() );
180 } else { 169 } else {
181 if ( ehour == 0 ) 170 if ( ehour == 0 )
182 ehour = 12; 171 ehour = 12;
183 strEnd.sprintf( "%d:%02d AM", ehour, endTime.minute() ); 172 strEnd.sprintf( "%d:%02d AM", ehour, endTime.minute() );
184 } 173 }
185 } else { 174 } else {
186 strStart.sprintf( "%02d:%02d", startTime.hour(), startTime.minute() ); 175 strStart.sprintf( "%02d:%02d", startTime.hour(), startTime.minute() );
187 strEnd.sprintf( "%02d:%02d", endTime.hour(), endTime.minute() ); 176 strEnd.sprintf( "%02d:%02d", endTime.hour(), endTime.minute() );
188 } 177 }
189 178
190 if (s) comboStart->setText(strStart); 179 if (s) comboStart->setText(strStart);
191 if (e) comboEnd->setText(strEnd); 180 if (e) comboEnd->setText(strEnd);
192} 181}
193 182
194void DateEntry::init() 183void DateEntry::init()
195{ 184{
196 comboDescription->setInsertionPolicy(QComboBox::AtCurrent); 185 comboDescription->setInsertionPolicy(QComboBox::AtCurrent);
197 comboLocation->setInsertionPolicy(QComboBox::AtCurrent); 186 comboLocation->setInsertionPolicy(QComboBox::AtCurrent);
198 187
199 initCombos(); 188 initCombos();
200 QPopupMenu *m1 = new QPopupMenu( this ); 189 QPopupMenu *m1 = new QPopupMenu( this );
201 startPicker = new DateBookMonth( m1, 0, TRUE ); 190 startPicker = new DateBookMonth( m1, 0, TRUE );
202 m1->insertItem( startPicker ); 191 m1->insertItem( startPicker );
203 buttonStart->setPopup( m1 ); 192 buttonStart->setPopup( m1 );
204 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ), 193 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ),
205 this, SLOT( startDateChanged( int, int, int ) ) ); 194 this, SLOT( startDateChanged( int, int, int ) ) );
206 195
207 //Let start button change both start and end dates 196 //Let start button change both start and end dates
208 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ), 197 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ),
209 this, SLOT( endDateChanged( int, int, int ) ) ); 198 this, SLOT( endDateChanged( int, int, int ) ) );
210 connect( qApp, SIGNAL( clockChanged( bool ) ), 199 connect( qApp, SIGNAL( clockChanged( bool ) ),
211 this, SLOT( slotChangeClock( bool ) ) ); 200 this, SLOT( slotChangeClock( bool ) ) );
212 connect( qApp, SIGNAL(weekChanged(bool)), 201 connect( qApp, SIGNAL(weekChanged(bool)),
213 this, SLOT(slotChangeStartOfWeek(bool)) ); 202 this, SLOT(slotChangeStartOfWeek(bool)) );
214 203
215 connect( editNote, SIGNAL(clicked()), 204 connect( editNote, SIGNAL(clicked()),
216 this, SLOT(slotEditNote()) ); 205 this, SLOT(slotEditNote()) );
217 206
218 QPopupMenu *m2 = new QPopupMenu( this ); 207 QPopupMenu *m2 = new QPopupMenu( this );
219 endPicker = new DateBookMonth( m2, 0, TRUE ); 208 endPicker = new DateBookMonth( m2, 0, TRUE );
220 m2->insertItem( endPicker ); 209 m2->insertItem( endPicker );
221 buttonEnd->setPopup( m2 ); 210 buttonEnd->setPopup( m2 );
222 connect( endPicker, SIGNAL( dateClicked( int, int, int ) ), 211 connect( endPicker, SIGNAL( dateClicked( int, int, int ) ),
223 this, SLOT( endDateChanged( int, int, int ) ) ); 212 this, SLOT( endDateChanged( int, int, int ) ) );
224 213
225 connect(timePickerStart, SIGNAL( timeChanged(const QTime &) ), 214 connect(timePickerStart, SIGNAL( timeChanged(const QTime &) ),
226 this, SLOT( startTimePicked(const QTime &) )); 215 this, SLOT( startTimePicked(const QTime &) ));
227 // install eventFilters 216 // install eventFilters
228 comboEnd->installEventFilter( this ); 217 comboEnd->installEventFilter( this );
229 comboStart->installEventFilter( this ); 218 comboStart->installEventFilter( this );
230} 219}
231 220
232/* 221/*
233 * Destroys the object and frees any allocated resources 222 * Destroys the object and frees any allocated resources
diff --git a/core/pim/datebook/main.cpp b/core/pim/datebook/main.cpp
index 8004690..421e457 100644
--- a/core/pim/datebook/main.cpp
+++ b/core/pim/datebook/main.cpp
@@ -1,25 +1,24 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "datebook.h" 21#include "datebook.h"
22#include <qpe/qpeapplication.h>
23#include <opie/oapplicationfactory.h> 22#include <opie/oapplicationfactory.h>
24 23
25OPIE_EXPORT_APP( OApplicationFactory<DateBook> ) 24OPIE_EXPORT_APP( OApplicationFactory<DateBook> )
diff --git a/core/pim/datebook/noteentryimpl.cpp b/core/pim/datebook/noteentryimpl.cpp
index 0e45985..14fe98e 100644
--- a/core/pim/datebook/noteentryimpl.cpp
+++ b/core/pim/datebook/noteentryimpl.cpp
@@ -1,17 +1,15 @@
1#include "noteentryimpl.h" 1#include "noteentryimpl.h"
2#include "qstring.h"
3#include "qmultilinedit.h"
4#include "qlabel.h" 2#include "qlabel.h"
5#include "onoteedit.h" 3#include "onoteedit.h"
6 4
7NoteEntry::NoteEntry(const QString &title, const QString &noteStr, 5NoteEntry::NoteEntry(const QString &title, const QString &noteStr,
8 QWidget* parent, const char* name, bool modal, 6 QWidget* parent, const char* name, bool modal,
9 WFlags fl) : 7 WFlags fl) :
10 NoteEntryBase(parent, name, modal, fl) { 8 NoteEntryBase(parent, name, modal, fl) {
11 9
12 10
13 eventLabel->setText(title); 11 eventLabel->setText(title);
14 note->setText(noteStr); 12 note->setText(noteStr);
15 int l=note->length(); 13 int l=note->length();
16 note->setCursorPosition(l,l,false); 14 note->setCursorPosition(l,l,false);
17} 15}
diff --git a/core/pim/datebook/repeatentry.cpp b/core/pim/datebook/repeatentry.cpp
index b1a162d..7cf36da 100644
--- a/core/pim/datebook/repeatentry.cpp
+++ b/core/pim/datebook/repeatentry.cpp
@@ -1,223 +1,219 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "repeatentry.h" 21#include "repeatentry.h"
22 22
23#include <qpe/datebookmonth.h> 23#include <qpe/datebookmonth.h>
24#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
25#include <qpe/timestring.h>
26 25
27#include <qbuttongroup.h>
28#include <qlabel.h> 26#include <qlabel.h>
29#include <qpopupmenu.h>
30#include <qspinbox.h> 27#include <qspinbox.h>
31#include <qtoolbutton.h>
32 28
33#include <time.h> 29#include <time.h>
34 30
35// Global Templates for use in setting up the repeat label... 31// Global Templates for use in setting up the repeat label...
36// the problem is these strings get initialized before QPEApplication can install the translator -zecke 32// the problem is these strings get initialized before QPEApplication can install the translator -zecke
37namespace { 33namespace {
38QString strDayTemplate; 34QString strDayTemplate;
39QString strYearTemplate; 35QString strYearTemplate;
40QString strMonthDateTemplate; 36QString strMonthDateTemplate;
41QString strMonthDayTemplate; 37QString strMonthDayTemplate;
42QString strWeekTemplate; 38QString strWeekTemplate;
43QString dayLabel[7]; 39QString dayLabel[7];
44} 40}
45 41
46/* 42/*
47 * static linkage to not polute the symbol table... 43 * static linkage to not polute the symbol table...
48 * The problem is that const and static linkage are resolved prior to installing a translator 44 * The problem is that const and static linkage are resolved prior to installing a translator
49 * leading to that the above strings are translted but to the original we delay the init of these strings... 45 * leading to that the above strings are translted but to the original we delay the init of these strings...
50 * -zecke 46 * -zecke
51 */ 47 */
52static void fillStrings() { 48static void fillStrings() {
53 strDayTemplate = QObject::tr("Every"); 49 strDayTemplate = QObject::tr("Every");
54 strYearTemplate = QObject::tr("%1 %2 every "); 50 strYearTemplate = QObject::tr("%1 %2 every ");
55 strMonthDateTemplate = QObject::tr("The %1 every "); 51 strMonthDateTemplate = QObject::tr("The %1 every ");
56 strMonthDayTemplate = QObject::tr("The %1 %1 of every"); 52 strMonthDayTemplate = QObject::tr("The %1 %1 of every");
57 strWeekTemplate = QObject::tr("Every "); 53 strWeekTemplate = QObject::tr("Every ");
58 dayLabel[0] = QObject::tr("Monday"); 54 dayLabel[0] = QObject::tr("Monday");
59 dayLabel[1] = QObject::tr("Tuesday"); 55 dayLabel[1] = QObject::tr("Tuesday");
60 dayLabel[2] = QObject::tr("Wednesday"); 56 dayLabel[2] = QObject::tr("Wednesday");
61 dayLabel[3] = QObject::tr("Thursday"); 57 dayLabel[3] = QObject::tr("Thursday");
62 dayLabel[4] = QObject::tr("Friday"); 58 dayLabel[4] = QObject::tr("Friday");
63 dayLabel[5] = QObject::tr("Saturday"); 59 dayLabel[5] = QObject::tr("Saturday");
64 dayLabel[6] = QObject::tr("Sunday"); 60 dayLabel[6] = QObject::tr("Sunday");
65} 61}
66 62
67 static QString numberPlacing( int x );// return the proper word format for 63 static QString numberPlacing( int x );// return the proper word format for
68 // x (1st, 2nd, etc) 64 // x (1st, 2nd, etc)
69static int week( const QDate &dt ); // what week in the month is dt? 65static int week( const QDate &dt ); // what week in the month is dt?
70 66
71RepeatEntry::RepeatEntry( bool startOnMonday, 67RepeatEntry::RepeatEntry( bool startOnMonday,
72 const QDate &newStart, QWidget *parent, 68 const QDate &newStart, QWidget *parent,
73 const char *name, bool modal, WFlags fl ) 69 const char *name, bool modal, WFlags fl )
74 : RepeatEntryBase( parent, name, modal, fl ), 70 : RepeatEntryBase( parent, name, modal, fl ),
75 start( newStart ), 71 start( newStart ),
76 currInterval( NONE ), 72 currInterval( NONE ),
77 startWeekOnMonday( startOnMonday ) 73 startWeekOnMonday( startOnMonday )
78{ 74{
79 if (strDayTemplate.isEmpty() ) 75 if (strDayTemplate.isEmpty() )
80 fillStrings(); 76 fillStrings();
81 77
82 init(); 78 init();
83 fraType->setButton( currInterval ); 79 fraType->setButton( currInterval );
84 chkNoEnd->setChecked( TRUE ); 80 chkNoEnd->setChecked( TRUE );
85 setupNone(); 81 setupNone();
86} 82}
87 83
88RepeatEntry::RepeatEntry( bool startOnMonday, const Event::RepeatPattern &rp, 84RepeatEntry::RepeatEntry( bool startOnMonday, const Event::RepeatPattern &rp,
89 const QDate &startDate, 85 const QDate &startDate,
90 QWidget *parent, const char *name, bool modal, 86 QWidget *parent, const char *name, bool modal,
91 WFlags fl ) 87 WFlags fl )
92 : RepeatEntryBase( parent, name, modal, fl ), 88 : RepeatEntryBase( parent, name, modal, fl ),
93 start( startDate ), 89 start( startDate ),
94 end( rp.endDate() ), 90 end( rp.endDate() ),
95 startWeekOnMonday( startOnMonday ) 91 startWeekOnMonday( startOnMonday )
96{ 92{
97 if (strDayTemplate.isEmpty() ) 93 if (strDayTemplate.isEmpty() )
98 fillStrings(); 94 fillStrings();
99 // do some stuff with the repeat pattern 95 // do some stuff with the repeat pattern
100 init(); 96 init();
101 switch ( rp.type ) { 97 switch ( rp.type ) {
102 default: 98 default:
103 case Event::NoRepeat: 99 case Event::NoRepeat:
104 currInterval = NONE; 100 currInterval = NONE;
105 setupNone(); 101 setupNone();
106 break; 102 break;
107 case Event::Daily: 103 case Event::Daily:
108 currInterval = DAY; 104 currInterval = DAY;
109 setupDaily(); 105 setupDaily();
110 break; 106 break;
111 case Event::Weekly: 107 case Event::Weekly:
112 currInterval = WEEK; 108 currInterval = WEEK;
113 setupWeekly(); 109 setupWeekly();
114 int day, buttons; 110 int day, buttons;
115 for ( day = 0x01, buttons = 0; buttons < 7; 111 for ( day = 0x01, buttons = 0; buttons < 7;
116 day = day << 1, buttons++ ) { 112 day = day << 1, buttons++ ) {
117 if ( rp.days & day ) { 113 if ( rp.days & day ) {
118 if ( startWeekOnMonday ) 114 if ( startWeekOnMonday )
119 fraExtra->setButton( buttons ); 115 fraExtra->setButton( buttons );
120 else { 116 else {
121 if ( buttons == 7 ) 117 if ( buttons == 7 )
122 fraExtra->setButton( 0 ); 118 fraExtra->setButton( 0 );
123 else 119 else
124 fraExtra->setButton( buttons + 1 ); 120 fraExtra->setButton( buttons + 1 );
125 } 121 }
126 } 122 }
127 } 123 }
128 slotWeekLabel(); 124 slotWeekLabel();
129 break; 125 break;
130 case Event::MonthlyDay: 126 case Event::MonthlyDay:
131 currInterval = MONTH; 127 currInterval = MONTH;
132 setupMonthly(); 128 setupMonthly();
133 fraExtra->setButton( 0 ); 129 fraExtra->setButton( 0 );
134 slotMonthLabel( 0 ); 130 slotMonthLabel( 0 );
135 break; 131 break;
136 case Event::MonthlyDate: 132 case Event::MonthlyDate:
137 currInterval = MONTH; 133 currInterval = MONTH;
138 setupMonthly(); 134 setupMonthly();
139 fraExtra->setButton( 1 ); 135 fraExtra->setButton( 1 );
140 slotMonthLabel( 1 ); 136 slotMonthLabel( 1 );
141 break; 137 break;
142 case Event::Yearly: 138 case Event::Yearly:
143 currInterval = YEAR; 139 currInterval = YEAR;
144 setupYearly(); 140 setupYearly();
145 break; 141 break;
146 } 142 }
147 fraType->setButton( currInterval ); 143 fraType->setButton( currInterval );
148 spinFreq->setValue( rp.frequency ); 144 spinFreq->setValue( rp.frequency );
149 if ( !rp.hasEndDate ) { 145 if ( !rp.hasEndDate ) {
150 cmdEnd->setText( RepeatEntryBase::tr("No End Date") ); 146 cmdEnd->setText( RepeatEntryBase::tr("No End Date") );
151 chkNoEnd->setChecked( TRUE ); 147 chkNoEnd->setChecked( TRUE );
152 } else 148 } else
153 cmdEnd->setText( TimeString::shortDate( end ) ); 149 cmdEnd->setText( TimeString::shortDate( end ) );
154} 150}
155 151
156RepeatEntry::~RepeatEntry() 152RepeatEntry::~RepeatEntry()
157{ 153{
158} 154}
159 155
160Event::RepeatPattern RepeatEntry::repeatPattern() 156Event::RepeatPattern RepeatEntry::repeatPattern()
161{ 157{
162 QListIterator<QToolButton> it( listRTypeButtons ); 158 QListIterator<QToolButton> it( listRTypeButtons );
163 QListIterator<QToolButton> itExtra( listExtra ); 159 QListIterator<QToolButton> itExtra( listExtra );
164 Event::RepeatPattern rpTmp; 160 Event::RepeatPattern rpTmp;
165 int i; 161 int i;
166 for ( i = 0; *it; ++it, i++ ) { 162 for ( i = 0; *it; ++it, i++ ) {
167 if ( (*it)->isOn() ) { 163 if ( (*it)->isOn() ) {
168 switch ( i ) { 164 switch ( i ) {
169 case NONE: 165 case NONE:
170 rpTmp.type = Event::NoRepeat; 166 rpTmp.type = Event::NoRepeat;
171 break; 167 break;
172 case DAY: 168 case DAY:
173 rpTmp.type = Event::Daily; 169 rpTmp.type = Event::Daily;
174 break; 170 break;
175 case WEEK: 171 case WEEK:
176 rpTmp.type = Event::Weekly; 172 rpTmp.type = Event::Weekly;
177 rpTmp.days = 0; 173 rpTmp.days = 0;
178 int day; 174 int day;
179 for ( day = 1; *itExtra; ++itExtra, day = day << 1 ) { 175 for ( day = 1; *itExtra; ++itExtra, day = day << 1 ) {
180 if ( (*itExtra)->isOn() ) { 176 if ( (*itExtra)->isOn() ) {
181 if ( startWeekOnMonday ) 177 if ( startWeekOnMonday )
182 rpTmp.days |= day; 178 rpTmp.days |= day;
183 else { 179 else {
184 if ( day == 1 ) 180 if ( day == 1 )
185 rpTmp.days |= Event::SUN; 181 rpTmp.days |= Event::SUN;
186 else 182 else
187 rpTmp.days |= day >> 1; 183 rpTmp.days |= day >> 1;
188 } 184 }
189 } 185 }
190 } 186 }
191 break; 187 break;
192 case MONTH: 188 case MONTH:
193 if ( cmdExtra1->isOn() ) 189 if ( cmdExtra1->isOn() )
194 rpTmp.type = Event::MonthlyDay; 190 rpTmp.type = Event::MonthlyDay;
195 else if ( cmdExtra2->isOn() ) 191 else if ( cmdExtra2->isOn() )
196 rpTmp.type = Event::MonthlyDate; 192 rpTmp.type = Event::MonthlyDate;
197 // figure out the montly day... 193 // figure out the montly day...
198 rpTmp.position = week( start ); 194 rpTmp.position = week( start );
199 break; 195 break;
200 case YEAR: 196 case YEAR:
201 rpTmp.type = Event::Yearly; 197 rpTmp.type = Event::Yearly;
202 break; 198 break;
203 } 199 }
204 break; // no need to keep looking! 200 break; // no need to keep looking!
205 } 201 }
206 } 202 }
207 rpTmp.frequency = spinFreq->value(); 203 rpTmp.frequency = spinFreq->value();
208 rpTmp.hasEndDate = !chkNoEnd->isChecked(); 204 rpTmp.hasEndDate = !chkNoEnd->isChecked();
209 if ( rpTmp.hasEndDate ) { 205 if ( rpTmp.hasEndDate ) {
210 rpTmp.setEndDate( end ); 206 rpTmp.setEndDate( end );
211 } 207 }
212 // timestamp it... 208 // timestamp it...
213 rpTmp.createTime = time( NULL ); 209 rpTmp.createTime = time( NULL );
214 return rpTmp; 210 return rpTmp;
215} 211}
216 212
217void RepeatEntry::slotSetRType( int rtype ) 213void RepeatEntry::slotSetRType( int rtype )
218{ 214{
219 // now call the right function based on the type... 215 // now call the right function based on the type...
220 currInterval = static_cast<repeatButtons>(rtype); 216 currInterval = static_cast<repeatButtons>(rtype);
221 switch ( currInterval ) { 217 switch ( currInterval ) {
222 case NONE: 218 case NONE:
223 setupNone(); 219 setupNone();
diff --git a/core/pim/osearch/adresssearch.cpp b/core/pim/osearch/adresssearch.cpp
index dbd6df6..6891f03 100644
--- a/core/pim/osearch/adresssearch.cpp
+++ b/core/pim/osearch/adresssearch.cpp
@@ -1,61 +1,59 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "adresssearch.h" 13#include "adresssearch.h"
14#include "contactitem.h" 14#include "contactitem.h"
15 15
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17 17
18#include <qstring.h>
19#include <qiconset.h>
20//#include <qwhatsthis.h> 18//#include <qwhatsthis.h>
21 19
22AdressSearch::AdressSearch(QListView* parent, QString name): 20AdressSearch::AdressSearch(QListView* parent, QString name):
23 SearchGroup(parent, name) 21 SearchGroup(parent, name)
24{ 22{
25 _contacts = 0; 23 _contacts = 0;
26 QIconSet is = Resource::loadIconSet( "addressbook/AddressBookSmall" ); 24 QIconSet is = Resource::loadIconSet( "addressbook/AddressBookSmall" );
27 setPixmap( 0, is.pixmap( QIconSet::Large, true ) ); 25 setPixmap( 0, is.pixmap( QIconSet::Large, true ) );
28 26
29 27
30 //QWhatsThis::add( this, QObject::tr("Search the addressbook") ); 28 //QWhatsThis::add( this, QObject::tr("Search the addressbook") );
31 /*QPixmap pix = Resource::loadPixmap( "addressbook/AddressBook" ); 29 /*QPixmap pix = Resource::loadPixmap( "addressbook/AddressBook" );
32 QImage img = pix.convertToImage(); 30 QImage img = pix.convertToImage();
33 img.smoothScale( 14, 14 ); 31 img.smoothScale( 14, 14 );
34 pix.convertFromImage( img ); 32 pix.convertFromImage( img );
35 setPixmap( 0, pix );*/ 33 setPixmap( 0, pix );*/
36} 34}
37 35
38 36
39AdressSearch::~AdressSearch() 37AdressSearch::~AdressSearch()
40{ 38{
41 delete _contacts; 39 delete _contacts;
42} 40}
43 41
44void AdressSearch::load() 42void AdressSearch::load()
45{ 43{
46 _contacts = new OPimContactAccess("osearch"); 44 _contacts = new OPimContactAccess("osearch");
47} 45}
48 46
49int AdressSearch::search() 47int AdressSearch::search()
50{ 48{
51 OPimRecordList<OPimContact> results = _contacts->matchRegexp(_search); 49 OPimRecordList<OPimContact> results = _contacts->matchRegexp(_search);
52 for (uint i = 0; i < results.count(); i++) { 50 for (uint i = 0; i < results.count(); i++) {
53 (void)new ContactItem( this, new OPimContact( results[i] )); 51 (void)new ContactItem( this, new OPimContact( results[i] ));
54 } 52 }
55 return results.count(); 53 return results.count();
56} 54}
57 55
58void AdressSearch::insertItem( void* ) 56void AdressSearch::insertItem( void* )
59{ 57{
60 58
61} 59}
diff --git a/core/pim/osearch/applnkitem.cpp b/core/pim/osearch/applnkitem.cpp
index 06c2b1e..19e765e 100644
--- a/core/pim/osearch/applnkitem.cpp
+++ b/core/pim/osearch/applnkitem.cpp
@@ -1,61 +1,60 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "applnkitem.h" 13#include "applnkitem.h"
14 14
15#include <qpe/applnk.h> 15#include <qpe/applnk.h>
16#include <qpe/qcopenvelope_qws.h> 16#include <qpe/qcopenvelope_qws.h>
17 17
18#include <qfileinfo.h>
19 18
20AppLnkItem::AppLnkItem(OListViewItem* parent, AppLnk *app) 19AppLnkItem::AppLnkItem(OListViewItem* parent, AppLnk *app)
21 : ResultItem(parent) 20 : ResultItem(parent)
22{ 21{
23 _app = app; 22 _app = app;
24 setText(0, _app->name() ); 23 setText(0, _app->name() );
25 setPixmap(0, _app->pixmap() ); 24 setPixmap(0, _app->pixmap() );
26} 25}
27 26
28 27
29AppLnkItem::~AppLnkItem() 28AppLnkItem::~AppLnkItem()
30{ 29{
31} 30}
32 31
33 32
34QString AppLnkItem::toRichText() 33QString AppLnkItem::toRichText()
35{ 34{
36 QString text; 35 QString text;
37 text += "<b><h3>" + _app->name() + "</b></h3><br>"; 36 text += "<b><h3>" + _app->name() + "</b></h3><br>";
38 text += _app->comment() + "<br>"; 37 text += _app->comment() + "<br>";
39 text += "<br>`" + _app->exec() + "`<br>"; 38 text += "<br>`" + _app->exec() + "`<br>";
40 text += "<br>`" + _app->file() + "`<br>"; 39 text += "<br>`" + _app->file() + "`<br>";
41 text += "<br>`" + _app->linkFile() + "`<br>"; 40 text += "<br>`" + _app->linkFile() + "`<br>";
42 return text; 41 return text;
43} 42}
44 43
45void AppLnkItem::action( int act ) 44void AppLnkItem::action( int act )
46{ 45{
47 if (!_app->isValid()) qDebug("INVALID"); 46 if (!_app->isValid()) qDebug("INVALID");
48 if (act == 0) _app->execute(); 47 if (act == 0) _app->execute();
49 else if (act == 1){ 48 else if (act == 1){
50 QCopEnvelope e("QPE/Application/advancedfm", "setDocument(QString)"); 49 QCopEnvelope e("QPE/Application/advancedfm", "setDocument(QString)");
51 e << _app->linkFile(); 50 e << _app->linkFile();
52 } 51 }
53} 52}
54 53
55QIntDict<QString> AppLnkItem::actions() 54QIntDict<QString> AppLnkItem::actions()
56{ 55{
57 QIntDict<QString> result; 56 QIntDict<QString> result;
58 result.insert( 0, new QString( QObject::tr("execute") ) ); 57 result.insert( 0, new QString( QObject::tr("execute") ) );
59 result.insert( 1, new QString( QObject::tr("open in filemanager") ) ); 58 result.insert( 1, new QString( QObject::tr("open in filemanager") ) );
60 return result; 59 return result;
61} 60}
diff --git a/core/pim/osearch/applnksearch.cpp b/core/pim/osearch/applnksearch.cpp
index 1c84d66..758baf2 100644
--- a/core/pim/osearch/applnksearch.cpp
+++ b/core/pim/osearch/applnksearch.cpp
@@ -1,70 +1,69 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "applnksearch.h" 13#include "applnksearch.h"
14#include "applnkitem.h" 14#include "applnkitem.h"
15 15
16#include <qpe/applnk.h> 16#include <qpe/applnk.h>
17#include <qpe/qpeapplication.h> 17#include <qpe/qpeapplication.h>
18#include <qpe/resource.h> 18#include <qpe/resource.h>
19 19
20#include <qiconset.h>
21 20
22AppLnkSearch::AppLnkSearch(QListView* parent, QString name): SearchGroup(parent, name) 21AppLnkSearch::AppLnkSearch(QListView* parent, QString name): SearchGroup(parent, name)
23{ 22{
24 _apps = 0; 23 _apps = 0;
25 QIconSet is = Resource::loadIconSet( "osearch/applicationsSmall" ); 24 QIconSet is = Resource::loadIconSet( "osearch/applicationsSmall" );
26 //QIconSet is = Resource::loadIconSet( "AppsIcon" ); 25 //QIconSet is = Resource::loadIconSet( "AppsIcon" );
27 setPixmap( 0, is.pixmap( QIconSet::Large, true ) ); 26 setPixmap( 0, is.pixmap( QIconSet::Large, true ) );
28} 27}
29 28
30 29
31AppLnkSearch::~AppLnkSearch() 30AppLnkSearch::~AppLnkSearch()
32{ 31{
33 delete _apps; 32 delete _apps;
34} 33}
35 34
36 35
37void AppLnkSearch::load() 36void AppLnkSearch::load()
38{ 37{
39 _apps = new AppLnkSet(QPEApplication::qpeDir()); 38 _apps = new AppLnkSet(QPEApplication::qpeDir());
40} 39}
41 40
42int AppLnkSearch::search() 41int AppLnkSearch::search()
43{ 42{
44 QList<AppLnk> appList = _apps->children(); 43 QList<AppLnk> appList = _apps->children();
45 44
46 for ( AppLnk *app = appList.first(); app != 0; app = appList.next() ){ 45 for ( AppLnk *app = appList.first(); app != 0; app = appList.next() ){
47 if ( (_search.match( app->name() ) != -1) 46 if ( (_search.match( app->name() ) != -1)
48 || (_search.match(app->comment()) != -1) 47 || (_search.match(app->comment()) != -1)
49 || (_search.match(app->exec()) != -1) ) { 48 || (_search.match(app->exec()) != -1) ) {
50 insertItem( app ); 49 insertItem( app );
51 }else 50 }else
52 if (searchFile( app )) 51 if (searchFile( app ))
53 insertItem( app ); 52 insertItem( app );
54 qApp->processEvents( 100 ); 53 qApp->processEvents( 100 );
55 } 54 }
56 return _resultCount; 55 return _resultCount;
57} 56}
58 57
59void AppLnkSearch::insertItem( void *rec ) 58void AppLnkSearch::insertItem( void *rec )
60{ 59{
61 (void)new AppLnkItem( this, (AppLnk*)rec ); 60 (void)new AppLnkItem( this, (AppLnk*)rec );
62 _resultCount++; 61 _resultCount++;
63} 62}
64 63
65void AppLnkSearch::setSearch(QRegExp re) 64void AppLnkSearch::setSearch(QRegExp re)
66{ 65{
67 setOpen( false ); 66 setOpen( false );
68 SearchGroup::setSearch( re ); 67 SearchGroup::setSearch( re );
69} 68}
70 69
diff --git a/core/pim/osearch/contactitem.cpp b/core/pim/osearch/contactitem.cpp
index eedc374..639af46 100644
--- a/core/pim/osearch/contactitem.cpp
+++ b/core/pim/osearch/contactitem.cpp
@@ -1,142 +1,141 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "contactitem.h" 13#include "contactitem.h"
14 14
15#include <qpe/resource.h> 15#include <qpe/resource.h>
16#include <qpe/qcopenvelope_qws.h> 16#include <qpe/qcopenvelope_qws.h>
17 17
18#include <qpixmap.h>
19 18
20 19
21ContactItem::ContactItem(OListViewItem* parent, OPimContact *contact) 20ContactItem::ContactItem(OListViewItem* parent, OPimContact *contact)
22: ResultItem(parent) 21: ResultItem(parent)
23{ 22{
24 _contact = contact; 23 _contact = contact;
25 setText(0, _contact->toShortText()); 24 setText(0, _contact->toShortText());
26 setIcon(); 25 setIcon();
27} 26}
28 27
29void ContactItem::setIcon() 28void ContactItem::setIcon()
30{ 29{
31 QPixmap icon; 30 QPixmap icon;
32 switch ( _contact->lastHitField() ) { 31 switch ( _contact->lastHitField() ) {
33 case -1: 32 case -1:
34 icon = Resource::loadPixmap( "reset" ); 33 icon = Resource::loadPixmap( "reset" );
35 break; 34 break;
36 case Qtopia::BusinessPhone: 35 case Qtopia::BusinessPhone:
37 icon = Resource::loadPixmap( "addressbook/phonework" ); 36 icon = Resource::loadPixmap( "addressbook/phonework" );
38 break; 37 break;
39 case Qtopia::BusinessFax: 38 case Qtopia::BusinessFax:
40 icon = Resource::loadPixmap( "addressbook/faxwork" ); 39 icon = Resource::loadPixmap( "addressbook/faxwork" );
41 break; 40 break;
42 case Qtopia::BusinessMobile: 41 case Qtopia::BusinessMobile:
43 icon = Resource::loadPixmap( "addressbook/mobilework" ); 42 icon = Resource::loadPixmap( "addressbook/mobilework" );
44 break; 43 break;
45 case Qtopia::DefaultEmail: 44 case Qtopia::DefaultEmail:
46 case Qtopia::Emails: 45 case Qtopia::Emails:
47 icon = Resource::loadPixmap( "addressbook/email" ); 46 icon = Resource::loadPixmap( "addressbook/email" );
48 break; 47 break;
49 case Qtopia::HomePhone: 48 case Qtopia::HomePhone:
50 icon = Resource::loadPixmap( "addressbook/phonehome" ); 49 icon = Resource::loadPixmap( "addressbook/phonehome" );
51 break; 50 break;
52 case Qtopia::HomeFax: 51 case Qtopia::HomeFax:
53 icon = Resource::loadPixmap( "addressbook/faxhome" ); 52 icon = Resource::loadPixmap( "addressbook/faxhome" );
54 break; 53 break;
55 case Qtopia::HomeMobile: 54 case Qtopia::HomeMobile:
56 icon = Resource::loadPixmap( "addressbook/mobilehome" ); 55 icon = Resource::loadPixmap( "addressbook/mobilehome" );
57 break; 56 break;
58 case Qtopia::HomeWebPage: 57 case Qtopia::HomeWebPage:
59 icon = Resource::loadPixmap( "addressbook/webpagehome" ); 58 icon = Resource::loadPixmap( "addressbook/webpagehome" );
60 break; 59 break;
61 case Qtopia::BusinessWebPage: 60 case Qtopia::BusinessWebPage:
62 icon = Resource::loadPixmap( "addressbook/webpagework" ); 61 icon = Resource::loadPixmap( "addressbook/webpagework" );
63 break; 62 break;
64 case Qtopia::Title: 63 case Qtopia::Title:
65 case Qtopia::JobTitle: 64 case Qtopia::JobTitle:
66 case Qtopia::FirstName: 65 case Qtopia::FirstName:
67 case Qtopia::MiddleName: 66 case Qtopia::MiddleName:
68 case Qtopia::LastName: 67 case Qtopia::LastName:
69 case Qtopia::Suffix: 68 case Qtopia::Suffix:
70 case Qtopia::Nickname: 69 case Qtopia::Nickname:
71 case Qtopia::FileAs: 70 case Qtopia::FileAs:
72 icon = Resource::loadPixmap( "addressbook/identity" ); 71 icon = Resource::loadPixmap( "addressbook/identity" );
73 break; 72 break;
74 case Qtopia::HomeStreet: 73 case Qtopia::HomeStreet:
75 case Qtopia::HomeCity: 74 case Qtopia::HomeCity:
76 case Qtopia::HomeState: 75 case Qtopia::HomeState:
77 case Qtopia::HomeZip: 76 case Qtopia::HomeZip:
78 case Qtopia::HomeCountry: 77 case Qtopia::HomeCountry:
79 icon = Resource::loadPixmap( "osearch/addresshome" ); 78 icon = Resource::loadPixmap( "osearch/addresshome" );
80 break; 79 break;
81 case Qtopia::Company: 80 case Qtopia::Company:
82 case Qtopia::BusinessCity: 81 case Qtopia::BusinessCity:
83 case Qtopia::BusinessStreet: 82 case Qtopia::BusinessStreet:
84 case Qtopia::BusinessZip: 83 case Qtopia::BusinessZip:
85 case Qtopia::BusinessCountry: 84 case Qtopia::BusinessCountry:
86 case Qtopia::Department: 85 case Qtopia::Department:
87 case Qtopia::Office: 86 case Qtopia::Office:
88 case Qtopia::Manager: 87 case Qtopia::Manager:
89 case Qtopia::BusinessPager: 88 case Qtopia::BusinessPager:
90 case Qtopia::Profession: 89 case Qtopia::Profession:
91 icon = Resource::loadPixmap( "osearch/addresshome" ); 90 icon = Resource::loadPixmap( "osearch/addresshome" );
92 break; 91 break;
93 case Qtopia::Assistant: 92 case Qtopia::Assistant:
94 case Qtopia::Spouse: 93 case Qtopia::Spouse:
95 case Qtopia::Children: 94 case Qtopia::Children:
96 icon = Resource::loadPixmap( "osearch/personal" ); 95 icon = Resource::loadPixmap( "osearch/personal" );
97 break; 96 break;
98 case Qtopia::Birthday: 97 case Qtopia::Birthday:
99 case Qtopia::Anniversary: 98 case Qtopia::Anniversary:
100 icon = Resource::loadPixmap( "osearch/clock" ); 99 icon = Resource::loadPixmap( "osearch/clock" );
101 break; 100 break;
102 case Qtopia::Notes: 101 case Qtopia::Notes:
103 icon = Resource::loadPixmap( "txt" ); 102 icon = Resource::loadPixmap( "txt" );
104 break; 103 break;
105 default: 104 default:
106 icon = Resource::loadPixmap( "DocsIcon" ); 105 icon = Resource::loadPixmap( "DocsIcon" );
107 break; 106 break;
108 } 107 }
109 setPixmap( 0, icon ); 108 setPixmap( 0, icon );
110} 109}
111 110
112ContactItem::~ContactItem() 111ContactItem::~ContactItem()
113{ 112{
114 delete _contact; 113 delete _contact;
115} 114}
116 115
117 116
118QString ContactItem::toRichText() 117QString ContactItem::toRichText()
119{ 118{
120 return _contact->toRichText(); 119 return _contact->toRichText();
121} 120}
122 121
123void ContactItem::action( int act ) 122void ContactItem::action( int act )
124{ 123{
125if (act == 0){ 124if (act == 0){
126 QCopEnvelope e("QPE/Application/addressbook", "show(int)"); 125 QCopEnvelope e("QPE/Application/addressbook", "show(int)");
127 e << _contact->uid(); 126 e << _contact->uid();
128}else if(act == 1){ 127}else if(act == 1){
129 QCopEnvelope e("QPE/Application/addressbook", "edit(int)"); 128 QCopEnvelope e("QPE/Application/addressbook", "edit(int)");
130 e << _contact->uid(); 129 e << _contact->uid();
131} 130}
132 131
133} 132}
134 133
135QIntDict<QString> ContactItem::actions() 134QIntDict<QString> ContactItem::actions()
136{ 135{
137 QIntDict<QString> result; 136 QIntDict<QString> result;
138 result.insert( 0, new QString( QObject::tr("show") ) ); 137 result.insert( 0, new QString( QObject::tr("show") ) );
139 result.insert( 1, new QString( QObject::tr("edit") ) ); 138 result.insert( 1, new QString( QObject::tr("edit") ) );
140 return result; 139 return result;
141 140
142} 141}
diff --git a/core/pim/osearch/datebooksearch.cpp b/core/pim/osearch/datebooksearch.cpp
index 2b4660a..eeea54b 100644
--- a/core/pim/osearch/datebooksearch.cpp
+++ b/core/pim/osearch/datebooksearch.cpp
@@ -1,95 +1,93 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "datebooksearch.h" 13#include "datebooksearch.h"
14#include "eventitem.h" 14#include "eventitem.h"
15 15
16#include <opie2/opimevent.h> 16#include <opie2/opimevent.h>
17#include <opie2/opimrecurrence.h> 17#include <opie2/opimrecurrence.h>
18 18
19 19
20#include <qpe/resource.h> 20#include <qpe/resource.h>
21#include <qpe/config.h> 21#include <qpe/config.h>
22 22
23#include <qiconset.h>
24#include <qaction.h> 23#include <qaction.h>
25#include <qdatetime.h>
26#include <qpopupmenu.h> 24#include <qpopupmenu.h>
27 25
28 26
29 27
30DatebookSearch::DatebookSearch(QListView* parent, QString name) 28DatebookSearch::DatebookSearch(QListView* parent, QString name)
31: SearchGroup(parent, name), _dates(0), _popupMenu(0) 29: SearchGroup(parent, name), _dates(0), _popupMenu(0)
32{ 30{
33 QIconSet is = Resource::loadIconSet( "datebook/DateBookSmall" ); 31 QIconSet is = Resource::loadIconSet( "datebook/DateBookSmall" );
34 setPixmap( 0, is.pixmap( QIconSet::Large, true ) ); 32 setPixmap( 0, is.pixmap( QIconSet::Large, true ) );
35 actionShowPastEvents = new QAction( QObject::tr("show past events"),QString::null, 0, 0, 0, true ); 33 actionShowPastEvents = new QAction( QObject::tr("show past events"),QString::null, 0, 0, 0, true );
36 actionSearchInDates = new QAction( QObject::tr("search in dates"),QString::null, 0, 0, 0, true ); 34 actionSearchInDates = new QAction( QObject::tr("search in dates"),QString::null, 0, 0, 0, true );
37 Config cfg( "osearch", Config::User ); 35 Config cfg( "osearch", Config::User );
38 cfg.setGroup( "datebook_settings" ); 36 cfg.setGroup( "datebook_settings" );
39 actionShowPastEvents->setOn( cfg.readBoolEntry( "show_past_events", false ) ); 37 actionShowPastEvents->setOn( cfg.readBoolEntry( "show_past_events", false ) );
40 actionSearchInDates->setOn( cfg.readBoolEntry( "search_in_dates", true ) ); 38 actionSearchInDates->setOn( cfg.readBoolEntry( "search_in_dates", true ) );
41} 39}
42 40
43DatebookSearch::~DatebookSearch() 41DatebookSearch::~DatebookSearch()
44{ 42{
45 qDebug("SAVE DATEBOOK SEARCH CONFIG"); 43 qDebug("SAVE DATEBOOK SEARCH CONFIG");
46 Config cfg( "osearch", Config::User ); 44 Config cfg( "osearch", Config::User );
47 cfg.setGroup( "datebook_settings" ); 45 cfg.setGroup( "datebook_settings" );
48 cfg.writeEntry( "show_past_events", actionShowPastEvents->isOn() ); 46 cfg.writeEntry( "show_past_events", actionShowPastEvents->isOn() );
49 cfg.writeEntry( "search_in_dates", actionSearchInDates->isOn() ); 47 cfg.writeEntry( "search_in_dates", actionSearchInDates->isOn() );
50 delete _dates; 48 delete _dates;
51 delete _popupMenu; 49 delete _popupMenu;
52 delete actionShowPastEvents; 50 delete actionShowPastEvents;
53 delete actionSearchInDates; 51 delete actionSearchInDates;
54} 52}
55 53
56 54
57void DatebookSearch::load() 55void DatebookSearch::load()
58{ 56{
59 _dates = new ODateBookAccess(); 57 _dates = new ODateBookAccess();
60 _dates->load(); 58 _dates->load();
61} 59}
62 60
63int DatebookSearch::search() 61int DatebookSearch::search()
64{ 62{
65 OPimRecordList<OPimEvent> results = _dates->matchRegexp(_search); 63 OPimRecordList<OPimEvent> results = _dates->matchRegexp(_search);
66 for (uint i = 0; i < results.count(); i++) 64 for (uint i = 0; i < results.count(); i++)
67 insertItem( new OPimEvent( results[i] ) ); 65 insertItem( new OPimEvent( results[i] ) );
68 return _resultCount; 66 return _resultCount;
69} 67}
70 68
71void DatebookSearch::insertItem( void *rec ) 69void DatebookSearch::insertItem( void *rec )
72{ 70{
73 OPimEvent *ev = (OPimEvent*)rec; 71 OPimEvent *ev = (OPimEvent*)rec;
74 if ( !actionShowPastEvents->isOn() && 72 if ( !actionShowPastEvents->isOn() &&
75 ev->endDateTime() < QDateTime::currentDateTime() && 73 ev->endDateTime() < QDateTime::currentDateTime() &&
76 !ev->recurrence().doesRecur() 74 !ev->recurrence().doesRecur()
77 ) return; 75 ) return;
78 if ( !actionSearchInDates->isOn() && ( 76 if ( !actionSearchInDates->isOn() && (
79 ev->lastHitField() == Qtopia::StartDateTime || 77 ev->lastHitField() == Qtopia::StartDateTime ||
80 ev->lastHitField() == Qtopia::EndDateTime ) 78 ev->lastHitField() == Qtopia::EndDateTime )
81 ) return; 79 ) return;
82 new EventItem( this, ev ); 80 new EventItem( this, ev );
83 _resultCount++; 81 _resultCount++;
84} 82}
85 83
86QPopupMenu* DatebookSearch::popupMenu() 84QPopupMenu* DatebookSearch::popupMenu()
87{ 85{
88 if (!_popupMenu){ 86 if (!_popupMenu){
89 _popupMenu = new QPopupMenu( 0 ); 87 _popupMenu = new QPopupMenu( 0 );
90 actionShowPastEvents->addTo( _popupMenu ); 88 actionShowPastEvents->addTo( _popupMenu );
91 actionSearchInDates->addTo( _popupMenu ); 89 actionSearchInDates->addTo( _popupMenu );
92 } 90 }
93 return _popupMenu; 91 return _popupMenu;
94} 92}
95 93
diff --git a/core/pim/osearch/doclnkitem.cpp b/core/pim/osearch/doclnkitem.cpp
index 1516b8e..df8e856 100644
--- a/core/pim/osearch/doclnkitem.cpp
+++ b/core/pim/osearch/doclnkitem.cpp
@@ -1,80 +1,79 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "doclnkitem.h" 13#include "doclnkitem.h"
14 14
15#include <qpe/applnk.h> 15#include <qpe/applnk.h>
16#include <qpe/qcopenvelope_qws.h> 16#include <qpe/qcopenvelope_qws.h>
17 17
18#include <qfile.h>
19#include <qtextstream.h> 18#include <qtextstream.h>
20#include <qfileinfo.h> 19#include <qfileinfo.h>
21 20
22DocLnkItem::DocLnkItem(OListViewItem* parent, DocLnk *app) 21DocLnkItem::DocLnkItem(OListViewItem* parent, DocLnk *app)
23 : ResultItem(parent) 22 : ResultItem(parent)
24{ 23{
25 _doc = app; 24 _doc = app;
26 setText(0, _doc->name() ); 25 setText(0, _doc->name() );
27 setPixmap(0, _doc->pixmap() ); 26 setPixmap(0, _doc->pixmap() );
28} 27}
29 28
30DocLnkItem::~DocLnkItem() 29DocLnkItem::~DocLnkItem()
31{ 30{
32} 31}
33 32
34QString DocLnkItem::toRichText() 33QString DocLnkItem::toRichText()
35{ 34{
36 QString text; 35 QString text;
37 text += "<b><h3>" + _doc->name() + "</b></h3><br>"; 36 text += "<b><h3>" + _doc->name() + "</b></h3><br>";
38 text += _doc->comment() + "<br>"; 37 text += _doc->comment() + "<br>";
39 text += QObject::tr("File: ") + _doc->file() + "<br>"; 38 text += QObject::tr("File: ") + _doc->file() + "<br>";
40 text += QObject::tr("Link: ") + _doc->linkFile() + "<br>"; 39 text += QObject::tr("Link: ") + _doc->linkFile() + "<br>";
41 text += QObject::tr("Mimetype: ") + _doc->type() + "<br>"; 40 text += QObject::tr("Mimetype: ") + _doc->type() + "<br>";
42 if ( _doc->type().contains( "text" ) ){ 41 if ( _doc->type().contains( "text" ) ){
43 text += "<br><br><hr><br>"; 42 text += "<br><br><hr><br>";
44 QFile f(_doc->file()); 43 QFile f(_doc->file());
45 if ( f.open(IO_ReadOnly) ) { 44 if ( f.open(IO_ReadOnly) ) {
46 QTextStream t( &f ); 45 QTextStream t( &f );
47 while ( !t.eof() ) 46 while ( !t.eof() )
48 text += t.readLine() + "<br>"; 47 text += t.readLine() + "<br>";
49 } 48 }
50 f.close(); 49 f.close();
51 } 50 }
52 /* text += "<br><br>`"; 51 /* text += "<br><br>`";
53 text += _doc->exec(); 52 text += _doc->exec();
54 text += "`";*/ 53 text += "`";*/
55 QStringList list = _doc->mimeTypes(); 54 QStringList list = _doc->mimeTypes();
56 int i = 0; 55 int i = 0;
57 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 56 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
58 text += QString::number( i++) + " - " + *it ; 57 text += QString::number( i++) + " - " + *it ;
59 } 58 }
60 return text; 59 return text;
61} 60}
62 61
63void DocLnkItem::action( int act ) 62void DocLnkItem::action( int act )
64{ 63{
65 qDebug("action %i",act); 64 qDebug("action %i",act);
66 if (!_doc->isValid()) qDebug("INVALID"); 65 if (!_doc->isValid()) qDebug("INVALID");
67 if (act == 0) _doc->execute(); 66 if (act == 0) _doc->execute();
68 else if (act == 1){ 67 else if (act == 1){
69 QCopEnvelope e("QPE/Application/advancedfm", "setDocument(QString)"); 68 QCopEnvelope e("QPE/Application/advancedfm", "setDocument(QString)");
70 e << _doc->file(); 69 e << _doc->file();
71 } 70 }
72} 71}
73 72
74QIntDict<QString> DocLnkItem::actions() 73QIntDict<QString> DocLnkItem::actions()
75{ 74{
76 QIntDict<QString> result; 75 QIntDict<QString> result;
77 result.insert( 0, new QString( QObject::tr("open with ") + _doc->exec() ) ); 76 result.insert( 0, new QString( QObject::tr("open with ") + _doc->exec() ) );
78 result.insert( 1, new QString( QObject::tr("open in filemanager") ) ); 77 result.insert( 1, new QString( QObject::tr("open in filemanager") ) );
79 return result; 78 return result;
80} 79}
diff --git a/core/pim/osearch/doclnksearch.cpp b/core/pim/osearch/doclnksearch.cpp
index c73dcbf..3f0d223 100644
--- a/core/pim/osearch/doclnksearch.cpp
+++ b/core/pim/osearch/doclnksearch.cpp
@@ -1,99 +1,98 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13 13
14 14
15#include "doclnkitem.h" 15#include "doclnkitem.h"
16#include "doclnksearch.h" 16#include "doclnksearch.h"
17 17
18#include <opie2/owait.h> 18#include <opie2/owait.h>
19 19
20#include <qpe/applnk.h> 20#include <qpe/applnk.h>
21#include <qpe/config.h> 21#include <qpe/config.h>
22#include <qpe/resource.h> 22#include <qpe/resource.h>
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24 24
25#include <qaction.h> 25#include <qaction.h>
26#include <qfile.h> 26#include <qfile.h>
27#include <qiconset.h>
28#include <qpopupmenu.h> 27#include <qpopupmenu.h>
29#include <qtextstream.h> 28#include <qtextstream.h>
30 29
31 30
32DocLnkSearch::DocLnkSearch(QListView* parent, QString name) 31DocLnkSearch::DocLnkSearch(QListView* parent, QString name)
33: AppLnkSearch(parent, name), _popupMenu(0) 32: AppLnkSearch(parent, name), _popupMenu(0)
34{ 33{
35 QIconSet is = Resource::loadIconSet( "osearch/documentsSmall" ); 34 QIconSet is = Resource::loadIconSet( "osearch/documentsSmall" );
36 setPixmap( 0, is.pixmap( QIconSet::Automatic, true ) ); 35 setPixmap( 0, is.pixmap( QIconSet::Automatic, true ) );
37 36
38 actionSearchInFiles = new QAction( QObject::tr("search content"),QString::null, 0, 0, 0, true ); 37 actionSearchInFiles = new QAction( QObject::tr("search content"),QString::null, 0, 0, 0, true );
39 Config cfg( "osearch", Config::User ); 38 Config cfg( "osearch", Config::User );
40 cfg.setGroup( "doclnk_settings" ); 39 cfg.setGroup( "doclnk_settings" );
41 actionSearchInFiles->setOn( cfg.readBoolEntry( "search_content", false ) ); 40 actionSearchInFiles->setOn( cfg.readBoolEntry( "search_content", false ) );
42} 41}
43 42
44 43
45DocLnkSearch::~DocLnkSearch() 44DocLnkSearch::~DocLnkSearch()
46{ 45{
47 Config cfg( "osearch", Config::User ); 46 Config cfg( "osearch", Config::User );
48 cfg.setGroup( "doclnk_settings" ); 47 cfg.setGroup( "doclnk_settings" );
49 cfg.writeEntry( "search_content", actionSearchInFiles->isOn() ); 48 cfg.writeEntry( "search_content", actionSearchInFiles->isOn() );
50} 49}
51 50
52void DocLnkSearch::load() 51void DocLnkSearch::load()
53{ 52{
54 _apps = new DocLnkSet(QPEApplication::documentDir()); 53 _apps = new DocLnkSet(QPEApplication::documentDir());
55} 54}
56 55
57bool DocLnkSearch::searchFile( AppLnk *app ) 56bool DocLnkSearch::searchFile( AppLnk *app )
58{ 57{
59 if (!actionSearchInFiles->isOn()) return false; 58 if (!actionSearchInFiles->isOn()) return false;
60 DocLnk *doc = (DocLnk*)app; 59 DocLnk *doc = (DocLnk*)app;
61 bool found = false; 60 bool found = false;
62 if ( doc->type().contains( "text" ) ){ 61 if ( doc->type().contains( "text" ) ){
63#ifdef NEW_OWAIT 62#ifdef NEW_OWAIT
64 QString ouput = QObject::tr("searching %1").arg(doc->file()); 63 QString ouput = QObject::tr("searching %1").arg(doc->file());
65 OWait( output ); 64 OWait( output );
66#endif 65#endif
67 QFile f(doc->file()); 66 QFile f(doc->file());
68 if ( f.open(IO_ReadOnly) ) { 67 if ( f.open(IO_ReadOnly) ) {
69 QTextStream t( &f ); 68 QTextStream t( &f );
70 while ( !t.eof() ) 69 while ( !t.eof() )
71 if (_search.match( t.readLine()) != -1) { 70 if (_search.match( t.readLine()) != -1) {
72 found = true; 71 found = true;
73 break; 72 break;
74 } 73 }
75 } 74 }
76 f.close(); 75 f.close();
77 } 76 }
78 return found; 77 return found;
79} 78}
80 79
81void DocLnkSearch::insertItem( void *rec ) 80void DocLnkSearch::insertItem( void *rec )
82{ 81{
83 (void)new DocLnkItem( this, (DocLnk*)rec ); 82 (void)new DocLnkItem( this, (DocLnk*)rec );
84 _resultCount++; 83 _resultCount++;
85} 84}
86 85
87 86
88QPopupMenu* DocLnkSearch::popupMenu() 87QPopupMenu* DocLnkSearch::popupMenu()
89{ 88{
90 if (!_popupMenu){ 89 if (!_popupMenu){
91 _popupMenu = new QPopupMenu( 0 ); 90 _popupMenu = new QPopupMenu( 0 );
92 actionSearchInFiles->addTo( _popupMenu ); 91 actionSearchInFiles->addTo( _popupMenu );
93 } 92 }
94 return _popupMenu; 93 return _popupMenu;
95 //(void) new DocLnkItem( this, (DocLnk*)rec ); 94 //(void) new DocLnkItem( this, (DocLnk*)rec );
96 // rec is undeclared here 95 // rec is undeclared here
97#warning FIXME 96#warning FIXME
98 _resultCount++; 97 _resultCount++;
99} 98}
diff --git a/core/pim/osearch/eventitem.cpp b/core/pim/osearch/eventitem.cpp
index f6e34fe..8dcfc70 100644
--- a/core/pim/osearch/eventitem.cpp
+++ b/core/pim/osearch/eventitem.cpp
@@ -1,86 +1,84 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "eventitem.h" 13#include "eventitem.h"
14 14
15 15
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17#include <qpe/qcopenvelope_qws.h> 17#include <qpe/qcopenvelope_qws.h>
18 18
19#include <qdatetime.h>
20#include <qpixmap.h>
21 19
22EventItem::EventItem(OListViewItem* parent, OPimEvent *event) 20EventItem::EventItem(OListViewItem* parent, OPimEvent *event)
23 : ResultItem(parent) 21 : ResultItem(parent)
24{ 22{
25 _event = event; 23 _event = event;
26 setText(0, _event->toShortText() ); 24 setText(0, _event->toShortText() );
27 setIcon(); 25 setIcon();
28} 26}
29 27
30 28
31EventItem::~EventItem() 29EventItem::~EventItem()
32{ 30{
33} 31}
34 32
35 33
36QString EventItem::toRichText() 34QString EventItem::toRichText()
37{ 35{
38 return _event->toRichText(); 36 return _event->toRichText();
39} 37}
40 38
41void EventItem::action( int act ) 39void EventItem::action( int act )
42{ 40{
43 if (act == 0){ 41 if (act == 0){
44 QCopEnvelope e("QPE/Application/datebook", "viewDefault(QDate)"); 42 QCopEnvelope e("QPE/Application/datebook", "viewDefault(QDate)");
45 e << _event->startDateTime().date(); 43 e << _event->startDateTime().date();
46 }else if(act == 1){ 44 }else if(act == 1){
47 QCopEnvelope e("QPE/Application/datebook", "editEvent(int)"); 45 QCopEnvelope e("QPE/Application/datebook", "editEvent(int)");
48 e << _event->uid(); 46 e << _event->uid();
49 } 47 }
50} 48}
51 49
52QIntDict<QString> EventItem::actions() 50QIntDict<QString> EventItem::actions()
53{ 51{
54 QIntDict<QString> result; 52 QIntDict<QString> result;
55 result.insert( 0, new QString( QObject::tr("show") ) ); 53 result.insert( 0, new QString( QObject::tr("show") ) );
56 result.insert( 1, new QString( QObject::tr("edit") ) ); 54 result.insert( 1, new QString( QObject::tr("edit") ) );
57 return result; 55 return result;
58} 56}
59 57
60void EventItem::setIcon() 58void EventItem::setIcon()
61{ 59{
62 QPixmap icon; 60 QPixmap icon;
63 switch ( _event->lastHitField() ) { 61 switch ( _event->lastHitField() ) {
64 case -1: 62 case -1:
65 icon = Resource::loadPixmap( "reset" ); 63 icon = Resource::loadPixmap( "reset" );
66 // QWhatsThis::add( icon, QObject::tr("Enter your search terms here") ); 64 // QWhatsThis::add( icon, QObject::tr("Enter your search terms here") );
67 break; 65 break;
68 case Qtopia::DatebookDescription: 66 case Qtopia::DatebookDescription:
69 icon = Resource::loadPixmap( "osearch/summary" ); 67 icon = Resource::loadPixmap( "osearch/summary" );
70 break; 68 break;
71 case Qtopia::Notes: 69 case Qtopia::Notes:
72 icon = Resource::loadPixmap( "txt" ); 70 icon = Resource::loadPixmap( "txt" );
73 break; 71 break;
74 case Qtopia::Location: 72 case Qtopia::Location:
75 icon = Resource::loadPixmap( "home" ); 73 icon = Resource::loadPixmap( "home" );
76 break; 74 break;
77 case Qtopia::StartDateTime: 75 case Qtopia::StartDateTime:
78 case Qtopia::EndDateTime: 76 case Qtopia::EndDateTime:
79 icon = Resource::loadPixmap( "osearch/clock" ); 77 icon = Resource::loadPixmap( "osearch/clock" );
80 break; 78 break;
81 default: 79 default:
82 icon = Resource::loadPixmap( "DocsIcon" ); 80 icon = Resource::loadPixmap( "DocsIcon" );
83 break; 81 break;
84 } 82 }
85 setPixmap( 0, icon ); 83 setPixmap( 0, icon );
86} 84}
diff --git a/core/pim/osearch/main.cpp b/core/pim/osearch/main.cpp
index 9a03818..e0a2de3 100644
--- a/core/pim/osearch/main.cpp
+++ b/core/pim/osearch/main.cpp
@@ -1,7 +1,6 @@
1 1
2#include "mainwindow.h" 2#include "mainwindow.h"
3 3
4#include <qpe/qpeapplication.h>
5#include <opie/oapplicationfactory.h> 4#include <opie/oapplicationfactory.h>
6 5
7OPIE_EXPORT_APP( OApplicationFactory<MainWindow> ) 6OPIE_EXPORT_APP( OApplicationFactory<MainWindow> )
diff --git a/core/pim/osearch/mainwindow.cpp b/core/pim/osearch/mainwindow.cpp
index 95f5967..bfe95b0 100644
--- a/core/pim/osearch/mainwindow.cpp
+++ b/core/pim/osearch/mainwindow.cpp
@@ -1,222 +1,222 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10// (c) 2002 Patrick S. Vogt <tille@handhelds.org> 10// (c) 2002 Patrick S. Vogt <tille@handhelds.org>
11 11
12 12
13#include "olistview.h" 13#include "olistview.h"
14#include "olistviewitem.h" 14#include "olistviewitem.h"
15#include "resultitem.h" 15#include "resultitem.h"
16#include "adresssearch.h" 16#include "adresssearch.h"
17#include "todosearch.h" 17#include "todosearch.h"
18#include "datebooksearch.h" 18#include "datebooksearch.h"
19#include "applnksearch.h" 19#include "applnksearch.h"
20#include "doclnksearch.h" 20#include "doclnksearch.h"
21#include "mainwindow.h" 21#include "mainwindow.h"
22 22
23#include <opie2/owait.h> 23#include <opie2/owait.h>
24 24
25#include <qpe/qpemessagebox.h> 25#include <qpe/qpemessagebox.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/config.h> 27#include <qpe/config.h>
28 28
29
29#include <qpe/qpeapplication.h> 30#include <qpe/qpeapplication.h>
30#include <qpe/config.h>
31#include <qpe/global.h> 31#include <qpe/global.h>
32 32
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qaction.h> 34#include <qaction.h>
35#include <qmessagebox.h> 35#include <qmessagebox.h>
36#include <qpopupmenu.h> 36#include <qpopupmenu.h>
37#include <qtoolbutton.h> 37#include <qtoolbutton.h>
38#include <qstring.h> 38#include <qstring.h>
39#include <qlabel.h> 39#include <qlabel.h>
40#include <qfile.h> 40#include <qfile.h>
41#include <qhbuttongroup.h> 41#include <qhbuttongroup.h>
42#include <qhbox.h> 42#include <qhbox.h>
43#include <qpushbutton.h> 43#include <qpushbutton.h>
44#include <qintdict.h> 44#include <qintdict.h>
45#include <qlayout.h> 45#include <qlayout.h>
46#include <qlineedit.h> 46#include <qlineedit.h>
47#include <qsignalmapper.h> 47#include <qsignalmapper.h>
48#include <qtextbrowser.h> 48#include <qtextbrowser.h>
49#include <qregexp.h> 49#include <qregexp.h>
50#include <qwhatsthis.h> 50#include <qwhatsthis.h>
51#include <qmenubar.h> 51#include <qmenubar.h>
52 52
53 53
54 54
55static const char* const image1_data[] = { 55static const char* const image1_data[] = {
56"14 14 3 1", 56"14 14 3 1",
57". c None", 57". c None",
58"# c #000000", 58"# c #000000",
59"a c #ff0000", 59"a c #ff0000",
60"..............", 60"..............",
61"..##.......###", 61"..##.......###",
62".#aa#....##aa#", 62".#aa#....##aa#",
63"#aaaa#.##aaaa#", 63"#aaaa#.##aaaa#",
64".##aaa#aaaaa##", 64".##aaa#aaaaa##",
65"...#aaaaaaa#..", 65"...#aaaaaaa#..",
66"....#aaaaa#...", 66"....#aaaaa#...",
67"...#aaaaa#....", 67"...#aaaaa#....",
68"..#aaaaaaa#...", 68"..#aaaaaaa#...",
69".#aaaaaaaaa#..", 69".#aaaaaaaaa#..",
70"#aaaa###aaaa#.", 70"#aaaa###aaaa#.",
71"#aaa#..##aaa#.", 71"#aaa#..##aaa#.",
72"#aaa#...#aa#..", 72"#aaa#...#aa#..",
73".###.....##..."}; 73".###.....##..."};
74 74
75 75
76MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) : 76MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) :
77 QMainWindow( parent, name, f ), _currentItem(0) 77 QMainWindow( parent, name, f ), _currentItem(0)
78{ 78{
79 setCaption( tr("OSearch") ); 79 setCaption( tr("OSearch") );
80 80
81 setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); 81 setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
82 82
83 QFrame *mainFrame = new QFrame( this, "mainFrame" ); 83 QFrame *mainFrame = new QFrame( this, "mainFrame" );
84 mainFrame->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); 84 mainFrame->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
85 85
86 mainLayout = new QVBoxLayout( mainFrame ); 86 mainLayout = new QVBoxLayout( mainFrame );
87 mainLayout->setSpacing( 0 ); 87 mainLayout->setSpacing( 0 );
88 mainLayout->setMargin( 3 ); 88 mainLayout->setMargin( 3 );
89 89
90 resultsList = new OListView( mainFrame ); 90 resultsList = new OListView( mainFrame );
91 resultsList->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); 91 resultsList->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
92 mainLayout->addWidget( resultsList ); 92 mainLayout->addWidget( resultsList );
93 93
94 detailsFrame = new QFrame( mainFrame, "detailsFrame" ); 94 detailsFrame = new QFrame( mainFrame, "detailsFrame" );
95 QVBoxLayout *detailsLayout = new QVBoxLayout( detailsFrame ); 95 QVBoxLayout *detailsLayout = new QVBoxLayout( detailsFrame );
96 richEdit = new QTextView( detailsFrame ); 96 richEdit = new QTextView( detailsFrame );
97 QWhatsThis::add( richEdit, tr("The details of the current result") ); 97 QWhatsThis::add( richEdit, tr("The details of the current result") );
98 richEdit->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); 98 richEdit->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
99 detailsLayout->addWidget( richEdit ); 99 detailsLayout->addWidget( richEdit );
100 100
101 buttonBox = new QHBox( mainFrame, "Button Box" ); 101 buttonBox = new QHBox( mainFrame, "Button Box" );
102 102
103 _buttonCount = 0; 103 _buttonCount = 0;
104 104
105 mainLayout->addWidget( detailsFrame ); 105 mainLayout->addWidget( detailsFrame );
106 mainLayout->addWidget( buttonBox ); 106 mainLayout->addWidget( buttonBox );
107 detailsFrame->hide(); 107 detailsFrame->hide();
108 buttonBox->hide(); 108 buttonBox->hide();
109 109
110 searches.append( new AppLnkSearch( resultsList, tr("Applications") ) ); 110 searches.append( new AppLnkSearch( resultsList, tr("Applications") ) );
111 searches.append( new DocLnkSearch( resultsList, tr("Documents") ) ); 111 searches.append( new DocLnkSearch( resultsList, tr("Documents") ) );
112 searches.append( new TodoSearch( resultsList, tr("Todo List") ) ); 112 searches.append( new TodoSearch( resultsList, tr("Todo List") ) );
113 searches.append( new DatebookSearch( resultsList, tr("Calendar") ) ); 113 searches.append( new DatebookSearch( resultsList, tr("Calendar") ) );
114 searches.append( new AdressSearch( resultsList, tr("Contacts") ) ); 114 searches.append( new AdressSearch( resultsList, tr("Contacts") ) );
115 115
116 setCentralWidget( mainFrame ); 116 setCentralWidget( mainFrame );
117 117
118 popupTimer = new QTimer(); 118 popupTimer = new QTimer();
119 searchTimer = new QTimer(); 119 searchTimer = new QTimer();
120 120
121 connect(popupTimer, SIGNAL(timeout()), SLOT(showPopup())); 121 connect(popupTimer, SIGNAL(timeout()), SLOT(showPopup()));
122 connect(searchTimer, SIGNAL(timeout()), SLOT(searchStringChanged())); 122 connect(searchTimer, SIGNAL(timeout()), SLOT(searchStringChanged()));
123 connect(resultsList, SIGNAL(pressed(QListViewItem*)), SLOT(setCurrent(QListViewItem*))); 123 connect(resultsList, SIGNAL(pressed(QListViewItem*)), SLOT(setCurrent(QListViewItem*)));
124 connect(resultsList, SIGNAL(clicked(QListViewItem*)), SLOT(stopTimer(QListViewItem*))); 124 connect(resultsList, SIGNAL(clicked(QListViewItem*)), SLOT(stopTimer(QListViewItem*)));
125 125
126 signalMapper = new QSignalMapper( this ); 126 signalMapper = new QSignalMapper( this );
127 127
128 connect(signalMapper, SIGNAL(mapped(int)), SLOT( slotAction(int) ) ); 128 connect(signalMapper, SIGNAL(mapped(int)), SLOT( slotAction(int) ) );
129 129
130 makeMenu(); 130 makeMenu();
131 131
132 Config cfg( "osearch", Config::User ); 132 Config cfg( "osearch", Config::User );
133 cfg.setGroup( "search_settings" ); 133 cfg.setGroup( "search_settings" );
134 actionCaseSensitiv->setOn( cfg.readBoolEntry( "caseSensitiv", false ) ); 134 actionCaseSensitiv->setOn( cfg.readBoolEntry( "caseSensitiv", false ) );
135 actionWildcards->setOn( cfg.readBoolEntry( "wildcards", false ) ); 135 actionWildcards->setOn( cfg.readBoolEntry( "wildcards", false ) );
136// actionWholeWordsOnly->setOn( cfg.readBoolEntry( "whole_words_only", false ) ); 136// actionWholeWordsOnly->setOn( cfg.readBoolEntry( "whole_words_only", false ) );
137} 137}
138 138
139void MainWindow::makeMenu() 139void MainWindow::makeMenu()
140{ 140{
141 QToolBar *toolBar = new QToolBar( this ); 141 QToolBar *toolBar = new QToolBar( this );
142 QToolBar *searchBar = new QToolBar(this); 142 QToolBar *searchBar = new QToolBar(this);
143 QMenuBar *menuBar = new QMenuBar( toolBar ); 143 QMenuBar *menuBar = new QMenuBar( toolBar );
144 QPopupMenu *searchMenu = new QPopupMenu( menuBar ); 144 QPopupMenu *searchMenu = new QPopupMenu( menuBar );
145// QPopupMenu *viewMenu = new QPopupMenu( menuBar ); 145// QPopupMenu *viewMenu = new QPopupMenu( menuBar );
146 QPopupMenu *cfgMenu = new QPopupMenu( menuBar ); 146 QPopupMenu *cfgMenu = new QPopupMenu( menuBar );
147 QPopupMenu *searchOptions = new QPopupMenu( cfgMenu ); 147 QPopupMenu *searchOptions = new QPopupMenu( cfgMenu );
148 148
149 setToolBarsMovable( false ); 149 setToolBarsMovable( false );
150 toolBar->setHorizontalStretchable( true ); 150 toolBar->setHorizontalStretchable( true );
151 menuBar->insertItem( tr( "Search" ), searchMenu ); 151 menuBar->insertItem( tr( "Search" ), searchMenu );
152 menuBar->insertItem( tr( "Settings" ), cfgMenu ); 152 menuBar->insertItem( tr( "Settings" ), cfgMenu );
153 153
154 //SETTINGS MENU 154 //SETTINGS MENU
155 cfgMenu->insertItem( tr( "Search" ), searchOptions ); 155 cfgMenu->insertItem( tr( "Search" ), searchOptions );
156 QPopupMenu *pop; 156 QPopupMenu *pop;
157 for (SearchGroup *s = searches.first(); s != 0; s = searches.next() ){ 157 for (SearchGroup *s = searches.first(); s != 0; s = searches.next() ){
158 pop = s->popupMenu(); 158 pop = s->popupMenu();
159 if (pop){ 159 if (pop){
160 cfgMenu->insertItem( s->text(0), pop ); 160 cfgMenu->insertItem( s->text(0), pop );
161 } 161 }
162 } 162 }
163 163
164 164
165 //SEARCH 165 //SEARCH
166 SearchAllAction = new QAction( tr("Search all"),QString::null, 0, this, 0 ); 166 SearchAllAction = new QAction( tr("Search all"),QString::null, 0, this, 0 );
167 SearchAllAction->setIconSet( Resource::loadIconSet( "find" ) ); 167 SearchAllAction->setIconSet( Resource::loadIconSet( "find" ) );
168 // QWhatsThis::add( SearchAllAction, tr("Search everything...") ); 168 // QWhatsThis::add( SearchAllAction, tr("Search everything...") );
169 connect( SearchAllAction, SIGNAL(activated()), this, SLOT(searchAll()) ); 169 connect( SearchAllAction, SIGNAL(activated()), this, SLOT(searchAll()) );
170 SearchAllAction->addTo( searchMenu ); 170 SearchAllAction->addTo( searchMenu );
171 searchMenu->insertItem( tr( "Options" ), searchOptions ); 171 searchMenu->insertItem( tr( "Options" ), searchOptions );
172 172
173 //SEARCH OPTIONS 173 //SEARCH OPTIONS
174 //actionWholeWordsOnly = new QAction( tr("Whole words only"),QString::null, 0, this, 0, true ); 174 //actionWholeWordsOnly = new QAction( tr("Whole words only"),QString::null, 0, this, 0, true );
175 //actionWholeWordsOnly->addTo( searchOptions ); 175 //actionWholeWordsOnly->addTo( searchOptions );
176 actionCaseSensitiv = new QAction( tr("Case sensitiv"),QString::null, 0, this, 0, true ); 176 actionCaseSensitiv = new QAction( tr("Case sensitiv"),QString::null, 0, this, 0, true );
177 actionCaseSensitiv->addTo( searchOptions ); 177 actionCaseSensitiv->addTo( searchOptions );
178 actionWildcards = new QAction( tr("Use wildcards"),QString::null, 0, this, 0, true ); 178 actionWildcards = new QAction( tr("Use wildcards"),QString::null, 0, this, 0, true );
179 actionWildcards->addTo( searchOptions ); 179 actionWildcards->addTo( searchOptions );
180 180
181 //SEARCH BAR 181 //SEARCH BAR
182 LabelEnterText = new QLabel( searchBar, "Label" ); 182 LabelEnterText = new QLabel( searchBar, "Label" );
183 LabelEnterText->setAutoMask( FALSE ); 183 LabelEnterText->setAutoMask( FALSE );
184 LabelEnterText->setText( tr( "Search for: " ) ); 184 LabelEnterText->setText( tr( "Search for: " ) );
185 185
186 addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); 186 addToolBar( searchBar, "Search", QMainWindow::Top, TRUE );
187 QLineEdit *searchEdit = new QLineEdit( searchBar, "seachEdit" ); 187 QLineEdit *searchEdit = new QLineEdit( searchBar, "seachEdit" );
188 QWhatsThis::add( searchEdit, tr("Enter your search terms here") ); 188 QWhatsThis::add( searchEdit, tr("Enter your search terms here") );
189 searchEdit->setFocus(); 189 searchEdit->setFocus();
190 searchBar->setHorizontalStretchable( TRUE ); 190 searchBar->setHorizontalStretchable( TRUE );
191 searchBar->setStretchableWidget( searchEdit ); 191 searchBar->setStretchableWidget( searchEdit );
192 192
193 //Search button 193 //Search button
194 SearchAllAction->addTo( searchBar ); 194 SearchAllAction->addTo( searchBar );
195 195
196 //image ripped of off opie-login/loginwindow.cpp 196 //image ripped of off opie-login/loginwindow.cpp
197 QPixmap image1( ( const char** ) image1_data ); 197 QPixmap image1( ( const char** ) image1_data );
198 198
199 //Clear text 199 //Clear text
200 ClearSearchText = new QToolButton( searchBar, "ClearSearchText"); 200 ClearSearchText = new QToolButton( searchBar, "ClearSearchText");
201 ClearSearchText->setText( tr( "" ) ); 201 ClearSearchText->setText( tr( "" ) );
202 ClearSearchText->setPixmap( image1 ); 202 ClearSearchText->setPixmap( image1 );
203 203
204 connect( searchEdit, SIGNAL( textChanged( const QString & ) ),this, SLOT( setSearch( const QString & ) ) ); 204 connect( searchEdit, SIGNAL( textChanged( const QString & ) ),this, SLOT( setSearch( const QString & ) ) );
205 connect( ClearSearchText, SIGNAL( clicked() ), searchEdit, SLOT( clear() ) ); 205 connect( ClearSearchText, SIGNAL( clicked() ), searchEdit, SLOT( clear() ) );
206 206
207} 207}
208 208
209MainWindow::~MainWindow() 209MainWindow::~MainWindow()
210{ 210{
211 Config cfg( "osearch", Config::User ); 211 Config cfg( "osearch", Config::User );
212 cfg.setGroup( "search_settings" ); 212 cfg.setGroup( "search_settings" );
213 cfg.writeEntry( "caseSensitiv", actionCaseSensitiv->isOn() ); 213 cfg.writeEntry( "caseSensitiv", actionCaseSensitiv->isOn() );
214 cfg.writeEntry( "wildcards", actionWildcards->isOn() ); 214 cfg.writeEntry( "wildcards", actionWildcards->isOn() );
215 //cfg.writeEntry( "whole_words_only", actionWholeWordsOnly->isOn() ); 215 //cfg.writeEntry( "whole_words_only", actionWholeWordsOnly->isOn() );
216} 216}
217 217
218void MainWindow::setCurrent(QListViewItem *item) 218void MainWindow::setCurrent(QListViewItem *item)
219{ 219{
220 if (!item) return; 220 if (!item) return;
221 _currentItem = (OListViewItem*)item; 221 _currentItem = (OListViewItem*)item;
222 //_currentItem = dynamic_cast<OListViewItem*>(item); 222 //_currentItem = dynamic_cast<OListViewItem*>(item);
diff --git a/core/pim/osearch/olistview.cpp b/core/pim/osearch/olistview.cpp
index 7a7cb26..8fbb31d 100644
--- a/core/pim/osearch/olistview.cpp
+++ b/core/pim/osearch/olistview.cpp
@@ -1,40 +1,39 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 // (c) 2002 Patrick S. Vogtp <tille@handhelds.org> 9 // (c) 2002 Patrick S. Vogtp <tille@handhelds.org>
10 10
11#include "olistview.h" 11#include "olistview.h"
12#include "olistviewitem.h" 12#include "olistviewitem.h"
13 13
14#include <qpe/qpeapplication.h> 14#include <qpe/qpeapplication.h>
15 15
16#include <qmessagebox.h>
17 16
18 17
19OListView::OListView(QWidget *parent, const char *name ) 18OListView::OListView(QWidget *parent, const char *name )
20 : QListView(parent,name) 19 : QListView(parent,name)
21{ 20{
22 21
23 setRootIsDecorated( true ); 22 setRootIsDecorated( true );
24 addColumn(tr("Results"),qApp->desktop()->width() - 9 ); 23 addColumn(tr("Results"),qApp->desktop()->width() - 9 );
25 //setColumnWidthMode(0, Manual); 24 //setColumnWidthMode(0, Manual);
26 25
27 setSorting( -1 ); 26 setSorting( -1 );
28 connect( this, SIGNAL(expanded(QListViewItem*)), SLOT(expand(QListViewItem*))); 27 connect( this, SIGNAL(expanded(QListViewItem*)), SLOT(expand(QListViewItem*)));
29} 28}
30 29
31 30
32OListView::~OListView() 31OListView::~OListView()
33{ 32{
34} 33}
35 34
36void OListView::expand(QListViewItem *item) 35void OListView::expand(QListViewItem *item)
37{ 36{
38 ((OListViewItem*)item)->expand(); 37 ((OListViewItem*)item)->expand();
39} 38}
40 39
diff --git a/core/pim/osearch/resultitem.cpp b/core/pim/osearch/resultitem.cpp
index f051b12..41c22c0 100644
--- a/core/pim/osearch/resultitem.cpp
+++ b/core/pim/osearch/resultitem.cpp
@@ -1,27 +1,26 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "resultitem.h" 13#include "resultitem.h"
14 14
15 15
16#include <qmessagebox.h>
17 16
18ResultItem::ResultItem(OListViewItem* parent) 17ResultItem::ResultItem(OListViewItem* parent)
19: OListViewItem(parent) 18: OListViewItem(parent)
20{ 19{
21 20
22} 21}
23 22
24 23
25ResultItem::~ResultItem() 24ResultItem::~ResultItem()
26{ 25{
27} 26}
diff --git a/core/pim/osearch/searchgroup.cpp b/core/pim/osearch/searchgroup.cpp
index 5377b9f..7a0b5a7 100644
--- a/core/pim/osearch/searchgroup.cpp
+++ b/core/pim/osearch/searchgroup.cpp
@@ -1,92 +1,89 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "olistviewitem.h"
14#include "searchgroup.h" 13#include "searchgroup.h"
15 14
16#include <opie2/owait.h> 15#include <opie2/owait.h>
17 16
18#include <qobject.h>
19#include <qregexp.h>
20#include <qapplication.h> 17#include <qapplication.h>
21 18
22#ifndef NEW_OWAIT 19#ifndef NEW_OWAIT
23static OWait *wait = 0; 20static OWait *wait = 0;
24#endif 21#endif
25 22
26SearchGroup::SearchGroup(QListView* parent, QString name) 23SearchGroup::SearchGroup(QListView* parent, QString name)
27: OListViewItem(parent, name) 24: OListViewItem(parent, name)
28{ 25{
29 _name = name; 26 _name = name;
30 loaded = false; 27 loaded = false;
31} 28}
32 29
33 30
34SearchGroup::~SearchGroup() 31SearchGroup::~SearchGroup()
35{ 32{
36} 33}
37 34
38 35
39void SearchGroup::expand() 36void SearchGroup::expand()
40{ 37{
41 //expanded = true; 38 //expanded = true;
42 if (_lastSearch != _search) clearList(); 39 if (_lastSearch != _search) clearList();
43 if (_search.isEmpty()) return; 40 if (_search.isEmpty()) return;
44 OListViewItem *dummy = new OListViewItem( this, "searching..."); 41 OListViewItem *dummy = new OListViewItem( this, "searching...");
45 setOpen( true ); 42 setOpen( true );
46 repaint(); 43 repaint();
47 int res_count = realSearch(); 44 int res_count = realSearch();
48 setText(0, _name + " - " + _search.pattern() + " (" + QString::number( res_count ) + ")"); 45 setText(0, _name + " - " + _search.pattern() + " (" + QString::number( res_count ) + ")");
49 delete dummy; 46 delete dummy;
50 repaint(); 47 repaint();
51} 48}
52 49
53void SearchGroup::doSearch() 50void SearchGroup::doSearch()
54{ 51{
55 clearList(); 52 clearList();
56 if (_search.isEmpty()) return; 53 if (_search.isEmpty()) return;
57 _resultCount = realSearch(); 54 _resultCount = realSearch();
58 //repaint(); 55 //repaint();
59} 56}
60 57
61void SearchGroup::setSearch(QRegExp re) 58void SearchGroup::setSearch(QRegExp re)
62{ 59{
63 if (re == _search) return; 60 if (re == _search) return;
64 setText(0, _name+" - "+re.pattern() ); 61 setText(0, _name+" - "+re.pattern() );
65 _search = re; 62 _search = re;
66 if (isOpen()) expand(); 63 if (isOpen()) expand();
67 else new OListViewItem( this, "searching..."); 64 else new OListViewItem( this, "searching...");
68} 65}
69 66
70int SearchGroup::realSearch() 67int SearchGroup::realSearch()
71{ 68{
72 if (_lastSearch == _search) return _resultCount; 69 if (_lastSearch == _search) return _resultCount;
73#ifndef NEW_OWAIT 70#ifndef NEW_OWAIT
74 if (!wait) wait = new OWait( qApp->mainWidget(), "osearch" ); 71 if (!wait) wait = new OWait( qApp->mainWidget(), "osearch" );
75 wait->show(); 72 wait->show();
76 qApp->processEvents(); 73 qApp->processEvents();
77#else 74#else
78 qDebug("********** NEW_OWAIT *************"); 75 qDebug("********** NEW_OWAIT *************");
79 OWait( "searching" ); 76 OWait( "searching" );
80#endif 77#endif
81 if (!loaded) load(); 78 if (!loaded) load();
82 _resultCount = 0; 79 _resultCount = 0;
83 _resultCount = search(); 80 _resultCount = search();
84 _lastSearch = _search; 81 _lastSearch = _search;
85 setText(0, _name + " - " + _search.pattern() + " (" + QString::number( _resultCount ) + ")"); 82 setText(0, _name + " - " + _search.pattern() + " (" + QString::number( _resultCount ) + ")");
86 83
87#ifndef NEW_OWAIT 84#ifndef NEW_OWAIT
88 wait->hide(); 85 wait->hide();
89#endif 86#endif
90 return _resultCount; 87 return _resultCount;
91} 88}
92 89
diff --git a/core/pim/osearch/todoitem.cpp b/core/pim/osearch/todoitem.cpp
index c20f1fd..be780a1 100644
--- a/core/pim/osearch/todoitem.cpp
+++ b/core/pim/osearch/todoitem.cpp
@@ -1,83 +1,82 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "todoitem.h" 13#include "todoitem.h"
14 14
15 15
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17#include <qpe/qcopenvelope_qws.h> 17#include <qpe/qcopenvelope_qws.h>
18 18
19#include <qpixmap.h>
20 19
21 20
22TodoItem::TodoItem(OListViewItem* parent, OPimTodo *todo) 21TodoItem::TodoItem(OListViewItem* parent, OPimTodo *todo)
23: ResultItem(parent) 22: ResultItem(parent)
24{ 23{
25 _todo = todo; 24 _todo = todo;
26 setText( 0, todo->toShortText() ); 25 setText( 0, todo->toShortText() );
27 setIcon(); 26 setIcon();
28} 27}
29 28
30TodoItem::~TodoItem() 29TodoItem::~TodoItem()
31{ 30{
32 delete _todo; 31 delete _todo;
33} 32}
34 33
35QString TodoItem::toRichText() 34QString TodoItem::toRichText()
36{ 35{
37 return _todo->toRichText(); 36 return _todo->toRichText();
38} 37}
39 38
40void TodoItem::action( int act ) 39void TodoItem::action( int act )
41{ 40{
42 if (act == 0){ 41 if (act == 0){
43 QCopEnvelope e("QPE/Application/todolist", "show(int)"); 42 QCopEnvelope e("QPE/Application/todolist", "show(int)");
44 e << _todo->uid(); 43 e << _todo->uid();
45 }else if (act == 1){ 44 }else if (act == 1){
46 QCopEnvelope e("QPE/Application/todolist", "edit(int)"); 45 QCopEnvelope e("QPE/Application/todolist", "edit(int)");
47 e << _todo->uid(); 46 e << _todo->uid();
48 } 47 }
49} 48}
50 49
51QIntDict<QString> TodoItem::actions() 50QIntDict<QString> TodoItem::actions()
52{ 51{
53 QIntDict<QString> result; 52 QIntDict<QString> result;
54 result.insert( 0, new QString( QObject::tr("show") ) ); 53 result.insert( 0, new QString( QObject::tr("show") ) );
55 result.insert( 1, new QString( QObject::tr("edit") ) ); 54 result.insert( 1, new QString( QObject::tr("edit") ) );
56 return result; 55 return result;
57} 56}
58 57
59void TodoItem::setIcon() 58void TodoItem::setIcon()
60{ 59{
61 QPixmap icon; 60 QPixmap icon;
62 switch ( _todo->lastHitField() ) { 61 switch ( _todo->lastHitField() ) {
63 case -1: 62 case -1:
64 icon = Resource::loadPixmap( "reset" ); 63 icon = Resource::loadPixmap( "reset" );
65 break; 64 break;
66 case OPimTodo::Description: 65 case OPimTodo::Description:
67 icon = Resource::loadPixmap( "txt" ); 66 icon = Resource::loadPixmap( "txt" );
68 break; 67 break;
69 case OPimTodo::Summary: 68 case OPimTodo::Summary:
70 icon = Resource::loadPixmap( "osearch/summary" ); 69 icon = Resource::loadPixmap( "osearch/summary" );
71 break; 70 break;
72 case OPimTodo::Priority: 71 case OPimTodo::Priority:
73 icon = Resource::loadPixmap( "todo/priority1" ); 72 icon = Resource::loadPixmap( "todo/priority1" );
74 break; 73 break;
75 case OPimTodo::HasDate: 74 case OPimTodo::HasDate:
76 icon = Resource::loadPixmap( "osearch/clock" ); 75 icon = Resource::loadPixmap( "osearch/clock" );
77 break; 76 break;
78 default: 77 default:
79 icon = Resource::loadPixmap( "DocsIcon" ); 78 icon = Resource::loadPixmap( "DocsIcon" );
80 break; 79 break;
81 } 80 }
82 setPixmap( 0, icon ); 81 setPixmap( 0, icon );
83} 82}
diff --git a/core/pim/osearch/todosearch.cpp b/core/pim/osearch/todosearch.cpp
index 5042803..cdf3a1c 100644
--- a/core/pim/osearch/todosearch.cpp
+++ b/core/pim/osearch/todosearch.cpp
@@ -1,80 +1,79 @@
1// 1//
2// 2//
3// C++ Implementation: $MODULE$ 3// C++ Implementation: $MODULE$
4// 4//
5// Description: 5// Description:
6// 6//
7// 7//
8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003 8// Author: Patrick S. Vogt <tille@handhelds.org>, (C) 2003
9// 9//
10// Copyright: See COPYING file that comes with this distribution 10// Copyright: See COPYING file that comes with this distribution
11// 11//
12// 12//
13#include "todosearch.h" 13#include "todosearch.h"
14#include "todoitem.h" 14#include "todoitem.h"
15 15
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17#include <qpe/config.h> 17#include <qpe/config.h>
18 18
19#include <qiconset.h>
20#include <qaction.h> 19#include <qaction.h>
21#include <qpopupmenu.h> 20#include <qpopupmenu.h>
22 21
23 22
24TodoSearch::TodoSearch(QListView* parent, QString name) 23TodoSearch::TodoSearch(QListView* parent, QString name)
25: SearchGroup(parent, name), _todos(0), _popupMenu(0) 24: SearchGroup(parent, name), _todos(0), _popupMenu(0)
26{ 25{
27 //AppLnkSet als(QPEApplication::qpeDir()); 26 //AppLnkSet als(QPEApplication::qpeDir());
28 //setPixmap( 0, als.findExec("todolist")->pixmap() ); 27 //setPixmap( 0, als.findExec("todolist")->pixmap() );
29 QIconSet is = Resource::loadIconSet( "todo/TodoListSmall" ); 28 QIconSet is = Resource::loadIconSet( "todo/TodoListSmall" );
30 setPixmap( 0, is.pixmap( QIconSet::Large, true ) ); 29 setPixmap( 0, is.pixmap( QIconSet::Large, true ) );
31 actionShowCompleted = new QAction( QObject::tr("show completed tasks"),QString::null, 0, 0, 0, true ); 30 actionShowCompleted = new QAction( QObject::tr("show completed tasks"),QString::null, 0, 0, 0, true );
32 Config cfg( "osearch", Config::User ); 31 Config cfg( "osearch", Config::User );
33 cfg.setGroup( "todo_settings" ); 32 cfg.setGroup( "todo_settings" );
34 actionShowCompleted->setOn( cfg.readBoolEntry( "show_completed_tasks", false ) ); 33 actionShowCompleted->setOn( cfg.readBoolEntry( "show_completed_tasks", false ) );
35 34
36} 35}
37 36
38 37
39TodoSearch::~TodoSearch() 38TodoSearch::~TodoSearch()
40{ 39{
41 Config cfg( "osearch", Config::User ); 40 Config cfg( "osearch", Config::User );
42 cfg.setGroup( "todo_settings" ); 41 cfg.setGroup( "todo_settings" );
43 cfg.writeEntry( "show_completed_tasks", actionShowCompleted->isOn() ); 42 cfg.writeEntry( "show_completed_tasks", actionShowCompleted->isOn() );
44 delete _popupMenu; 43 delete _popupMenu;
45 delete actionShowCompleted; 44 delete actionShowCompleted;
46 delete _todos; 45 delete _todos;
47} 46}
48 47
49 48
50void TodoSearch::load() 49void TodoSearch::load()
51{ 50{
52 _todos = new OPimTodoAccess(); 51 _todos = new OPimTodoAccess();
53 _todos->load(); 52 _todos->load();
54} 53}
55 54
56int TodoSearch::search() 55int TodoSearch::search()
57{ 56{
58 OPimRecordList<OPimTodo> results = _todos->matchRegexp(_search); 57 OPimRecordList<OPimTodo> results = _todos->matchRegexp(_search);
59 for (uint i = 0; i < results.count(); i++) 58 for (uint i = 0; i < results.count(); i++)
60 insertItem( new OPimTodo( results[i] )); 59 insertItem( new OPimTodo( results[i] ));
61 return _resultCount; 60 return _resultCount;
62} 61}
63 62
64void TodoSearch::insertItem( void *rec ) 63void TodoSearch::insertItem( void *rec )
65{ 64{
66 OPimTodo *todo = (OPimTodo*)rec; 65 OPimTodo *todo = (OPimTodo*)rec;
67 if (!actionShowCompleted->isOn() && 66 if (!actionShowCompleted->isOn() &&
68 todo->isCompleted() ) return; 67 todo->isCompleted() ) return;
69 (void)new TodoItem( this, todo ); 68 (void)new TodoItem( this, todo );
70 _resultCount++; 69 _resultCount++;
71} 70}
72 71
73QPopupMenu* TodoSearch::popupMenu() 72QPopupMenu* TodoSearch::popupMenu()
74{ 73{
75 if (!_popupMenu){ 74 if (!_popupMenu){
76 _popupMenu = new QPopupMenu( 0 ); 75 _popupMenu = new QPopupMenu( 0 );
77 actionShowCompleted->addTo( _popupMenu ); 76 actionShowCompleted->addTo( _popupMenu );
78 } 77 }
79 return _popupMenu; 78 return _popupMenu;
80} 79}
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index b55a4a7..72cdfd6 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -1,216 +1,215 @@
1/* 1/*
2 * today.cpp 2 * today.cpp
3 * 3 *
4 * copyright : (c) 2002,2003,2004 by Maximilian Reiß 4 * copyright : (c) 2002,2003,2004 by Maximilian Reiß
5 * email : harlekin@handhelds.org 5 * email : harlekin@handhelds.org
6 * 6 *
7 */ 7 */
8/*************************************************************************** 8/***************************************************************************
9 * * 9 * *
10 * This program is free software; you can redistribute it and/or modify * 10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by * 11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or * 12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. * 13 * (at your option) any later version. *
14 * * 14 * *
15 ***************************************************************************/ 15 ***************************************************************************/
16 16
17#define QTOPIA_INTERNAL_LANGLIST 17#define QTOPIA_INTERNAL_LANGLIST
18 18
19#include "today.h" 19#include "today.h"
20 20
21#include <qpe/config.h> 21#include <qpe/config.h>
22#include <qpe/qcopenvelope_qws.h> 22#include <qpe/qcopenvelope_qws.h>
23#include <qpe/resource.h> 23#include <qpe/resource.h>
24#include <qpe/global.h>
25#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
26#include <qpe/contact.h> 25#include <qpe/contact.h>
27 26
28#include <qdir.h> 27#include <qdir.h>
29#include <qtimer.h> 28#include <qtimer.h>
30#include <qwhatsthis.h> 29#include <qwhatsthis.h>
31 30
32struct TodayPlugin { 31struct TodayPlugin {
33 TodayPlugin() : library( 0 ), iface( 0 ), guiPart( 0 ), guiBox( 0 ) {} 32 TodayPlugin() : library( 0 ), iface( 0 ), guiPart( 0 ), guiBox( 0 ) {}
34 QLibrary *library; 33 QLibrary *library;
35 QInterfacePtr<TodayPluginInterface> iface; 34 QInterfacePtr<TodayPluginInterface> iface;
36 TodayPluginObject *guiPart; 35 TodayPluginObject *guiPart;
37 QWidget *guiBox; 36 QWidget *guiBox;
38 QString name; 37 QString name;
39 bool active; 38 bool active;
40 bool excludeRefresh; 39 bool excludeRefresh;
41 int pos; 40 int pos;
42}; 41};
43 42
44static QValueList<TodayPlugin> pluginList; 43static QValueList<TodayPlugin> pluginList;
45 44
46static QMap<QString, TodayPlugin> tempList; 45static QMap<QString, TodayPlugin> tempList;
47 46
48Today::Today( QWidget* parent, const char* name, WFlags fl ) 47Today::Today( QWidget* parent, const char* name, WFlags fl )
49 : TodayBase( parent, name, fl ) { 48 : TodayBase( parent, name, fl ) {
50 49
51 QObject::connect( (QObject*)ConfigButton, SIGNAL( clicked() ), this, SLOT( startConfig() ) ); 50 QObject::connect( (QObject*)ConfigButton, SIGNAL( clicked() ), this, SLOT( startConfig() ) );
52 QObject::connect( (QObject*)OwnerField, SIGNAL( clicked() ), this, SLOT( editCard() ) ); 51 QObject::connect( (QObject*)OwnerField, SIGNAL( clicked() ), this, SLOT( editCard() ) );
53 52
54#if defined(Q_WS_QWS) 53#if defined(Q_WS_QWS)
55#if !defined(QT_NO_COP) 54#if !defined(QT_NO_COP)
56 QCopChannel *todayChannel = new QCopChannel( "QPE/Today" , this ); 55 QCopChannel *todayChannel = new QCopChannel( "QPE/Today" , this );
57 connect ( todayChannel, SIGNAL( received( const QCString &, const QByteArray &) ), 56 connect ( todayChannel, SIGNAL( received( const QCString &, const QByteArray &) ),
58 this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) ); 57 this, SLOT ( channelReceived( const QCString &, const QByteArray &) ) );
59#endif 58#endif
60#endif 59#endif
61 60
62 setOwnerField(); 61 setOwnerField();
63 m_refreshTimer = new QTimer( this ); 62 m_refreshTimer = new QTimer( this );
64 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 63 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
65 m_refreshTimer->start( 15000 ); 64 m_refreshTimer->start( 15000 );
66 m_big_box = 0L; 65 m_big_box = 0L;
67 66
68 67
69 layout = new QVBoxLayout( this ); 68 layout = new QVBoxLayout( this );
70 layout->addWidget( Frame ); 69 layout->addWidget( Frame );
71 layout->addWidget( OwnerField ); 70 layout->addWidget( OwnerField );
72 71
73 m_sv = new QScrollView( this ); 72 m_sv = new QScrollView( this );
74 m_sv->setResizePolicy( QScrollView::AutoOneFit ); 73 m_sv->setResizePolicy( QScrollView::AutoOneFit );
75 m_sv->setHScrollBarMode( QScrollView::AlwaysOff ); 74 m_sv->setHScrollBarMode( QScrollView::AlwaysOff );
76 m_sv->setFrameShape( QFrame::NoFrame ); 75 m_sv->setFrameShape( QFrame::NoFrame );
77 76
78 layout->addWidget( m_sv ); 77 layout->addWidget( m_sv );
79 layout->setStretchFactor( m_sv,4 ); 78 layout->setStretchFactor( m_sv,4 );
80 79
81 qApp->processEvents(); 80 qApp->processEvents();
82 loadPlugins(); 81 loadPlugins();
83 QPEApplication::showWidget( this ); 82 QPEApplication::showWidget( this );
84} 83}
85 84
86/** 85/**
87 * Qcop receive method. 86 * Qcop receive method.
88 */ 87 */
89void Today::channelReceived( const QCString &msg, const QByteArray & data ) { 88void Today::channelReceived( const QCString &msg, const QByteArray & data ) {
90 QDataStream stream( data, IO_ReadOnly ); 89 QDataStream stream( data, IO_ReadOnly );
91 if ( msg == "message(QString)" ) { 90 if ( msg == "message(QString)" ) {
92 QString message; 91 QString message;
93 stream >> message; 92 stream >> message;
94 setOwnerField( message ); 93 setOwnerField( message );
95 } 94 }
96} 95}
97 96
98void Today::setRefreshTimer( int interval ) { 97void Today::setRefreshTimer( int interval ) {
99 98
100 disconnect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 99 disconnect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
101 100
102 // 0 is "never" case 101 // 0 is "never" case
103 if ( !interval == 0 ) { 102 if ( !interval == 0 ) {
104 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); 103 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
105 m_refreshTimer->changeInterval( interval ); 104 m_refreshTimer->changeInterval( interval );
106 } 105 }
107} 106}
108 107
109 108
110/** 109/**
111 * Initialises the owner field with the default value, the username 110 * Initialises the owner field with the default value, the username
112 */ 111 */
113void Today::setOwnerField() { 112void Today::setOwnerField() {
114 QString file = Global::applicationFileName( "addressbook", "businesscard.vcf" ); 113 QString file = Global::applicationFileName( "addressbook", "businesscard.vcf" );
115 if ( QFile::exists( file ) ) { 114 if ( QFile::exists( file ) ) {
116 Contact cont = Contact::readVCard( file )[0]; 115 Contact cont = Contact::readVCard( file )[0];
117 QString returnString = cont.fullName(); 116 QString returnString = cont.fullName();
118 OwnerField->setText( "<b>" + tr ( "Owned by " ) + returnString + "</b>" ); 117 OwnerField->setText( "<b>" + tr ( "Owned by " ) + returnString + "</b>" );
119 } else { 118 } else {
120 OwnerField->setText( "<b>" + tr ( "Please fill out the business card" ) + " </b>" ); 119 OwnerField->setText( "<b>" + tr ( "Please fill out the business card" ) + " </b>" );
121 } 120 }
122} 121}
123 122
124/** 123/**
125 * Set the owner field with a given QString, for example per qcop. 124 * Set the owner field with a given QString, for example per qcop.
126 */ 125 */
127void Today::setOwnerField( QString &message ) { 126void Today::setOwnerField( QString &message ) {
128 if ( !message.isEmpty() ) { 127 if ( !message.isEmpty() ) {
129 OwnerField->setText( "<b>" + message + "</b>" ); 128 OwnerField->setText( "<b>" + message + "</b>" );
130 } 129 }
131} 130}
132 131
133/** 132/**
134 * Init stuff needed for today. Reads the config file. 133 * Init stuff needed for today. Reads the config file.
135 */ 134 */
136void Today::init() { 135void Today::init() {
137 // read config 136 // read config
138 Config cfg( "today" ); 137 Config cfg( "today" );
139 138
140 cfg.setGroup( "Plugins" ); 139 cfg.setGroup( "Plugins" );
141 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' ); 140 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' );
142 m_allApplets = cfg.readListEntry( "AllApplets", ',' ); 141 m_allApplets = cfg.readListEntry( "AllApplets", ',' );
143 142
144 cfg.setGroup( "General" ); 143 cfg.setGroup( "General" );
145 m_iconSize = cfg.readNumEntry( "IconSize", 18 ); 144 m_iconSize = cfg.readNumEntry( "IconSize", 18 );
146 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 ); 145 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 );
147 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) ); 146 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) );
148 147
149 // set the date in top label 148 // set the date in top label
150 QDate date = QDate::currentDate(); 149 QDate date = QDate::currentDate();
151 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) ); 150 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) );
152 151
153 if ( m_hideBanner ) { 152 if ( m_hideBanner ) {
154 Opiezilla->hide(); 153 Opiezilla->hide();
155 TodayLabel->hide(); 154 TodayLabel->hide();
156 } else { 155 } else {
157 Opiezilla->show(); 156 Opiezilla->show();
158 TodayLabel->show(); 157 TodayLabel->show();
159 } 158 }
160 159
161 if ( m_big_box ) { 160 if ( m_big_box ) {
162 delete m_big_box; 161 delete m_big_box;
163 } 162 }
164 163
165 m_big_box = new QWidget( m_sv->viewport() ); 164 m_big_box = new QWidget( m_sv->viewport() );
166 m_sv->addChild( m_big_box ); 165 m_sv->addChild( m_big_box );
167 m_bblayout = new QVBoxLayout ( m_big_box ); 166 m_bblayout = new QVBoxLayout ( m_big_box );
168} 167}
169 168
170/** 169/**
171 * Load the plugins 170 * Load the plugins
172 */ 171 */
173void Today::loadPlugins() { 172void Today::loadPlugins() {
174 173
175 init(); 174 init();
176 175
177 QValueList<TodayPlugin>::Iterator tit; 176 QValueList<TodayPlugin>::Iterator tit;
178 if ( !pluginList.isEmpty() ) { 177 if ( !pluginList.isEmpty() ) {
179 for ( tit = pluginList.begin(); tit != pluginList.end(); ++tit ) { 178 for ( tit = pluginList.begin(); tit != pluginList.end(); ++tit ) {
180 (*tit).guiBox->hide(); 179 (*tit).guiBox->hide();
181 (*tit).guiBox->reparent( 0, QPoint( 0, 0 ) ); 180 (*tit).guiBox->reparent( 0, QPoint( 0, 0 ) );
182 delete (*tit).guiBox; 181 delete (*tit).guiBox;
183 (*tit).library->unload(); 182 (*tit).library->unload();
184 delete (*tit).library; 183 delete (*tit).library;
185 } 184 }
186 pluginList.clear(); 185 pluginList.clear();
187 } 186 }
188 187
189 QString path = QPEApplication::qpeDir() + "/plugins/today"; 188 QString path = QPEApplication::qpeDir() + "/plugins/today";
190#ifdef Q_OS_MACX 189#ifdef Q_OS_MACX
191 qWarning("Searching for Plugins in: %s", path.latin1()); 190 qWarning("Searching for Plugins in: %s", path.latin1());
192 QDir dir( path, "lib*.dylib" ); 191 QDir dir( path, "lib*.dylib" );
193#else 192#else
194 QDir dir( path, "lib*.so" ); 193 QDir dir( path, "lib*.so" );
195#endif 194#endif
196 195
197 QStringList list = dir.entryList(); 196 QStringList list = dir.entryList();
198 QStringList::Iterator it; 197 QStringList::Iterator it;
199 198
200 // QMap<QString, TodayPlugin> tempList; 199 // QMap<QString, TodayPlugin> tempList;
201 200
202 for ( it = list.begin(); it != list.end(); ++it ) { 201 for ( it = list.begin(); it != list.end(); ++it ) {
203 QInterfacePtr<TodayPluginInterface> iface; 202 QInterfacePtr<TodayPluginInterface> iface;
204 QLibrary *lib = new QLibrary( path + "/" + *it ); 203 QLibrary *lib = new QLibrary( path + "/" + *it );
205 204
206 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() ); 205 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() );
207 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) { 206 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) {
208 qDebug( "accepted: %s", QString( path + "/" + *it ).latin1() ); 207 qDebug( "accepted: %s", QString( path + "/" + *it ).latin1() );
209 qDebug( QString(*it) ); 208 qDebug( QString(*it) );
210 209
211 TodayPlugin plugin; 210 TodayPlugin plugin;
212 plugin.library = lib; 211 plugin.library = lib;
213 plugin.iface = iface; 212 plugin.iface = iface;
214 plugin.name = QString(*it); 213 plugin.name = QString(*it);
215 214
216 QString type = (*it).left( (*it).find(".") ); 215 QString type = (*it).left( (*it).find(".") );
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index 0613f2c..b68aad2 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -1,247 +1,241 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 <> 3             .=l. Copyright (c) 2002 <>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This program is free software; you can 5 _;:,     .>    :=|. This program is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = General Public License along with
22    --        :-=` this library; see the file COPYING.LIB. 22    --        :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation, 23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, 24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#include <unistd.h> 29#include <unistd.h>
30 30
31#include <opie2/opimrecurrence.h> 31#include <opie2/opimrecurrence.h>
32#include <opie2/opimnotifymanager.h> 32#include <opie2/opimnotifymanager.h>
33#include <opie2/otodoaccessvcal.h> 33#include <opie2/otodoaccessvcal.h>
34#include <opie2/oapplicationfactory.h> 34#include <opie2/oapplicationfactory.h>
35 35
36#include <qpe/applnk.h> 36#include <qpe/applnk.h>
37#include <qpe/config.h> 37#include <qpe/config.h>
38#include <qpe/ir.h> 38#include <qpe/ir.h>
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40#include <qpe/qpemessagebox.h> 40#include <qpe/qpemessagebox.h>
41#include <qpe/alarmserver.h> 41#include <qpe/alarmserver.h>
42#include <qpe/timestring.h>
43#include <qpe/qpeapplication.h> 42#include <qpe/qpeapplication.h>
44 43
45#include <qmenubar.h> 44#include <qmenubar.h>
46#include <qmessagebox.h> 45#include <qmessagebox.h>
47#include <qtoolbar.h>
48#include <qpopupmenu.h>
49#include <qpushbutton.h> 46#include <qpushbutton.h>
50#include <qwidgetstack.h>
51#include <qaction.h> 47#include <qaction.h>
52#include <qtimer.h> 48#include <qtimer.h>
53#include <qvbox.h>
54#include <qlayout.h> 49#include <qlayout.h>
55#include <qlineedit.h>
56#include <qwhatsthis.h> 50#include <qwhatsthis.h>
57 51
58#include "quickeditimpl.h" 52#include "quickeditimpl.h"
59#include "todotemplatemanager.h" 53#include "todotemplatemanager.h"
60#include "templateeditor.h" 54#include "templateeditor.h"
61#include "tableview.h" 55#include "tableview.h"
62 56
63#include "textviewshow.h" 57#include "textviewshow.h"
64#include "todoeditor.h" 58#include "todoeditor.h"
65#include "mainwindow.h" 59#include "mainwindow.h"
66 60
67OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> ) 61OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> )
68 62
69using namespace Todo; 63using namespace Todo;
70 64
71MainWindow::MainWindow( QWidget* parent, 65MainWindow::MainWindow( QWidget* parent,
72 const char* name, WFlags ) 66 const char* name, WFlags )
73 : OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp ) 67 : OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp )
74{ 68{
75 if (!name) 69 if (!name)
76 setName("todo window"); 70 setName("todo window");
77 71
78 m_syncing = false; 72 m_syncing = false;
79 m_showing = false; 73 m_showing = false;
80 m_counter = 0; 74 m_counter = 0;
81 m_tempManager = new TemplateManager(); 75 m_tempManager = new TemplateManager();
82 m_tempManager->load(); 76 m_tempManager->load();
83 77
84 initUI(); 78 initUI();
85 initConfig(); 79 initConfig();
86 initViews(); 80 initViews();
87 initActions(); 81 initActions();
88 initEditor(); 82 initEditor();
89 initShow(); 83 initShow();
90 initTemplate(); 84 initTemplate();
91 85
92 populateTemplates(); 86 populateTemplates();
93 raiseCurrentView(); 87 raiseCurrentView();
94 QTimer::singleShot(0, this, SLOT(populateCategories() ) ); 88 QTimer::singleShot(0, this, SLOT(populateCategories() ) );
95} 89}
96void MainWindow::initTemplate() { 90void MainWindow::initTemplate() {
97 m_curTempEd = new TemplateEditor( this, templateManager() ); 91 m_curTempEd = new TemplateEditor( this, templateManager() );
98} 92}
99void MainWindow::initActions() { 93void MainWindow::initActions() {
100 94
101 // Data menu 95 // Data menu
102 m_edit->insertItem(QWidget::tr("New from template"), m_template, 96 m_edit->insertItem(QWidget::tr("New from template"), m_template,
103 -1, 0 ); 97 -1, 0 );
104 98
105 QAction* a = new QAction( QWidget::tr("New Task" ), Resource::loadPixmap( "new" ), 99 QAction* a = new QAction( QWidget::tr("New Task" ), Resource::loadPixmap( "new" ),
106 QString::null, 0, this, 0 ); 100 QString::null, 0, this, 0 );
107 connect(a, SIGNAL( activated() ), 101 connect(a, SIGNAL( activated() ),
108 this, SLOT( slotNew() ) ); 102 this, SLOT( slotNew() ) );
109 a->setWhatsThis( QWidget::tr( "Click here to create a new task." ) ); 103 a->setWhatsThis( QWidget::tr( "Click here to create a new task." ) );
110 a->addTo(m_tool ); 104 a->addTo(m_tool );
111 a->addTo(m_edit ); 105 a->addTo(m_edit );
112 106
113 a = new QAction( QWidget::tr("Edit Task"), Resource::loadIconSet( "edit" ), 107 a = new QAction( QWidget::tr("Edit Task"), Resource::loadIconSet( "edit" ),
114 QString::null, 0, this, 0 ); 108 QString::null, 0, this, 0 );
115 connect(a, SIGNAL(activated() ), 109 connect(a, SIGNAL(activated() ),
116 this, SLOT( slotEdit() ) ); 110 this, SLOT( slotEdit() ) );
117 a->setWhatsThis( QWidget::tr( "Click here to modify the current task." ) ); 111 a->setWhatsThis( QWidget::tr( "Click here to modify the current task." ) );
118 a->addTo( m_tool ); 112 a->addTo( m_tool );
119 a->addTo( m_edit ); 113 a->addTo( m_edit );
120 m_editAction = a; 114 m_editAction = a;
121 115
122 a = new QAction( QString::null, QWidget::tr("View Task"), 0, this, 0 ); 116 a = new QAction( QString::null, QWidget::tr("View Task"), 0, this, 0 );
123 connect(a, SIGNAL( activated() ), 117 connect(a, SIGNAL( activated() ),
124 this, SLOT( slotShowDetails() ) ); 118 this, SLOT( slotShowDetails() ) );
125 a->addTo( m_edit ); 119 a->addTo( m_edit );
126 120
127 m_edit->insertSeparator(); 121 m_edit->insertSeparator();
128 122
129 a = new QAction( QWidget::tr("Delete..."), Resource::loadIconSet( "trash" ), 123 a = new QAction( QWidget::tr("Delete..."), Resource::loadIconSet( "trash" ),
130 QString::null, 0, this, 0 ); 124 QString::null, 0, this, 0 );
131 connect(a, SIGNAL(activated() ), 125 connect(a, SIGNAL(activated() ),
132 this, SLOT(slotDelete() ) ); 126 this, SLOT(slotDelete() ) );
133 a->setWhatsThis( QWidget::tr( "Click here to remove the current task." ) ); 127 a->setWhatsThis( QWidget::tr( "Click here to remove the current task." ) );
134 a->addTo( m_tool ); 128 a->addTo( m_tool );
135 a->addTo( m_edit ); 129 a->addTo( m_edit );
136 m_deleteAction = a; 130 m_deleteAction = a;
137 131
138 a = new QAction( QString::null, QWidget::tr("Delete all..."), 0, this, 0 ); 132 a = new QAction( QString::null, QWidget::tr("Delete all..."), 0, this, 0 );
139 connect(a, SIGNAL( activated() ), 133 connect(a, SIGNAL( activated() ),
140 this, SLOT( slotDeleteAll() ) ); 134 this, SLOT( slotDeleteAll() ) );
141 a->addTo(m_edit ); 135 a->addTo(m_edit );
142 m_deleteAllAction = a; 136 m_deleteAllAction = a;
143 137
144 a = new QAction( QString::null, QWidget::tr("Delete completed"), 138 a = new QAction( QString::null, QWidget::tr("Delete completed"),
145 0, this, 0 ); 139 0, this, 0 );
146 connect(a, SIGNAL( activated() ), 140 connect(a, SIGNAL( activated() ),
147 this, SLOT( slotDeleteCompleted() ) ); 141 this, SLOT( slotDeleteCompleted() ) );
148 a->addTo(m_edit ); 142 a->addTo(m_edit );
149 a->setEnabled( TRUE ); 143 a->setEnabled( TRUE );
150 m_deleteCompleteAction = a; 144 m_deleteCompleteAction = a;
151 145
152 m_edit->insertSeparator(); 146 m_edit->insertSeparator();
153 147
154 a = new QAction( QString::null, QWidget::tr("Duplicate"), 0, this, 0 ); 148 a = new QAction( QString::null, QWidget::tr("Duplicate"), 0, this, 0 );
155 connect(a, SIGNAL( activated() ), 149 connect(a, SIGNAL( activated() ),
156 this, SLOT( slotDuplicate() ) ); 150 this, SLOT( slotDuplicate() ) );
157 a->addTo(m_edit ); 151 a->addTo(m_edit );
158 m_duplicateAction = a; 152 m_duplicateAction = a;
159 153
160 m_edit->insertSeparator(); 154 m_edit->insertSeparator();
161 155
162 if ( Ir::supported() ) { 156 if ( Ir::supported() ) {
163 a = new QAction( QWidget::tr( "Beam" ), Resource::loadPixmap( "beam" ), QString::null, 0, this, 0 ); 157 a = new QAction( QWidget::tr( "Beam" ), Resource::loadPixmap( "beam" ), QString::null, 0, this, 0 );
164 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) ); 158 connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) );
165 a->setWhatsThis( QWidget::tr( "Click here to send the current task to another device." ) ); 159 a->setWhatsThis( QWidget::tr( "Click here to send the current task to another device." ) );
166 a->addTo( m_edit ); 160 a->addTo( m_edit );
167 a->addTo( m_tool ); 161 a->addTo( m_tool );
168 } 162 }
169 163
170#if 0 164#if 0
171 // Options menu 165 // Options menu
172 a = new QAction( QWidget::tr("Find"), Resource::loadIconSet( "mag" ), 166 a = new QAction( QWidget::tr("Find"), Resource::loadIconSet( "mag" ),
173 QString::null, 0, this, 0 ); 167 QString::null, 0, this, 0 );
174 connect(a, SIGNAL( activated() ), this, SLOT( slotFind() ) ); 168 connect(a, SIGNAL( activated() ), this, SLOT( slotFind() ) );
175 a->addTo( m_options ); 169 a->addTo( m_options );
176 m_findAction = a; 170 m_findAction = a;
177 171
178 172
179 m_options->insertSeparator(); 173 m_options->insertSeparator();
180#endif 174#endif
181 175
182 m_completedAction = new QAction( QString::null, QWidget::tr("Show completed tasks"), 176 m_completedAction = new QAction( QString::null, QWidget::tr("Show completed tasks"),
183 0, this, 0, TRUE ); 177 0, this, 0, TRUE );
184 m_completedAction->addTo( m_options ); 178 m_completedAction->addTo( m_options );
185 m_completedAction->setOn( showCompleted() ); 179 m_completedAction->setOn( showCompleted() );
186 connect(m_completedAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowCompleted(bool) ) ); 180 connect(m_completedAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowCompleted(bool) ) );
187 181
188 a = new QAction( QString::null, QWidget::tr("Show only over-due tasks"), 182 a = new QAction( QString::null, QWidget::tr("Show only over-due tasks"),
189 0, this, 0, TRUE ); 183 0, this, 0, TRUE );
190 a->addTo( m_options ); 184 a->addTo( m_options );
191 a->setOn( showOverDue() ); 185 a->setOn( showOverDue() );
192 connect(a, SIGNAL(toggled(bool)), this, SLOT(slotShowDue(bool) ) ); 186 connect(a, SIGNAL(toggled(bool)), this, SLOT(slotShowDue(bool) ) );
193 187
194 m_showDeadLineAction = new QAction( QString::null, QWidget::tr("Show task deadlines"), 188 m_showDeadLineAction = new QAction( QString::null, QWidget::tr("Show task deadlines"),
195 0, this, 0, TRUE ); 189 0, this, 0, TRUE );
196 m_showDeadLineAction->addTo( m_options ); 190 m_showDeadLineAction->addTo( m_options );
197 m_showDeadLineAction->setOn( showDeadline() ); 191 m_showDeadLineAction->setOn( showDeadline() );
198 connect(m_showDeadLineAction, SIGNAL(toggled(bool) ), this, SLOT( slotShowDeadLine( bool ) ) ); 192 connect(m_showDeadLineAction, SIGNAL(toggled(bool) ), this, SLOT( slotShowDeadLine( bool ) ) );
199 193
200 m_showQuickTaskAction = new QAction( QString::null, QWidget::tr("Show quick task bar"), 194 m_showQuickTaskAction = new QAction( QString::null, QWidget::tr("Show quick task bar"),
201 0, this, 0, TRUE ); 195 0, this, 0, TRUE );
202 m_showQuickTaskAction->addTo( m_options ); 196 m_showQuickTaskAction->addTo( m_options );
203 m_showQuickTaskAction->setOn( showQuickTask() ); 197 m_showQuickTaskAction->setOn( showQuickTask() );
204 connect(m_showQuickTaskAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowQuickTask(bool) ) ); 198 connect(m_showQuickTaskAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowQuickTask(bool) ) );
205 199
206 m_options->insertSeparator(); 200 m_options->insertSeparator();
207 201
208 m_bar->insertItem( QWidget::tr("Data") ,m_edit ); 202 m_bar->insertItem( QWidget::tr("Data") ,m_edit );
209 m_bar->insertItem( QWidget::tr("Category"), m_catMenu ); 203 m_bar->insertItem( QWidget::tr("Category"), m_catMenu );
210 m_bar->insertItem( QWidget::tr("Options"), m_options ); 204 m_bar->insertItem( QWidget::tr("Options"), m_options );
211 205
212 m_curQuick = new QuickEditImpl( this, m_quicktask ); 206 m_curQuick = new QuickEditImpl( this, m_quicktask );
213 addToolBar( (QToolBar *)m_curQuick->widget(), QWidget::tr( "QuickEdit" ), QMainWindow::Top, TRUE ); 207 addToolBar( (QToolBar *)m_curQuick->widget(), QWidget::tr( "QuickEdit" ), QMainWindow::Top, TRUE );
214 m_curQuick->signal()->connect( this, SLOT(slotQuickEntered() ) ); 208 m_curQuick->signal()->connect( this, SLOT(slotQuickEntered() ) );
215 209
216} 210}
217/* m_curCat from Config */ 211/* m_curCat from Config */
218void MainWindow::initConfig() { 212void MainWindow::initConfig() {
219 Config config( "todo" ); 213 Config config( "todo" );
220 config.setGroup( "View" ); 214 config.setGroup( "View" );
221 m_completed = config.readBoolEntry( "ShowComplete", TRUE ); 215 m_completed = config.readBoolEntry( "ShowComplete", TRUE );
222 m_curCat = config.readEntry( "Category", QString::null ); 216 m_curCat = config.readEntry( "Category", QString::null );
223 m_deadline = config.readBoolEntry( "ShowDeadLine", TRUE); 217 m_deadline = config.readBoolEntry( "ShowDeadLine", TRUE);
224 m_overdue = config.readBoolEntry("ShowOverDue", FALSE ); 218 m_overdue = config.readBoolEntry("ShowOverDue", FALSE );
225 m_quicktask = config.readBoolEntry("ShowQuickTask", TRUE); 219 m_quicktask = config.readBoolEntry("ShowQuickTask", TRUE);
226} 220}
227void MainWindow::initUI() { 221void MainWindow::initUI() {
228 222
229 m_stack = new OWidgetStack(this, "main stack"); 223 m_stack = new OWidgetStack(this, "main stack");
230 224
231 setCentralWidget( m_stack ); 225 setCentralWidget( m_stack );
232 226
233 setToolBarsMovable( FALSE ); 227 setToolBarsMovable( FALSE );
234 228
235 QToolBar *menubarholder = new QToolBar( this ); 229 QToolBar *menubarholder = new QToolBar( this );
236 menubarholder->setHorizontalStretchable( TRUE ); 230 menubarholder->setHorizontalStretchable( TRUE );
237 m_bar = new QMenuBar( menubarholder ); 231 m_bar = new QMenuBar( menubarholder );
238 232
239 m_tool = new QToolBar( this ); 233 m_tool = new QToolBar( this );
240 234
241 /** QPopupMenu */ 235 /** QPopupMenu */
242 m_edit = new QPopupMenu( this ); 236 m_edit = new QPopupMenu( this );
243 m_options = new QPopupMenu( this ); 237 m_options = new QPopupMenu( this );
244 m_catMenu = new QPopupMenu( this ); 238 m_catMenu = new QPopupMenu( this );
245 m_template = new QPopupMenu( this ); 239 m_template = new QPopupMenu( this );
246 240
247 m_catMenu->setCheckable( TRUE ); 241 m_catMenu->setCheckable( TRUE );