summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/changelog7
-rw-r--r--core/pim/today/opie-today.control2
-rw-r--r--core/pim/today/today.cpp8
-rw-r--r--core/pim/today/todaybase.cpp28
4 files changed, 22 insertions, 23 deletions
diff --git a/core/pim/today/changelog b/core/pim/today/changelog
index 500090d..a77e581 100644
--- a/core/pim/today/changelog
+++ b/core/pim/today/changelog
@@ -1,52 +1,57 @@
10.6.2
2
3* header can now be made smaller
4* changed header to different layout mode to play nicer with life rotation
5
10.6.1 60.6.1
2 7
3* datebook plugin now can now also show following days 8* datebook plugin now can now also show following days
4+ changed refresh 9* changed refresh
5* fixed one mem leak 10* fixed one mem leak
6 11
70.6 120.6
8 13
9* longer refresh intervals possible 14* longer refresh intervals possible
10* plugins can decide now if they want to take part in refresh cycles 15* plugins can decide now if they want to take part in refresh cycles
11 16
120.5.2 170.5.2
13 18
14* refresh settings 19* refresh settings
15* only launch datebook config when clicked on a date ( opie only ) 20* only launch datebook config when clicked on a date ( opie only )
16* less qcop trouble on sharps retail rom 21* less qcop trouble on sharps retail rom
17 22
180.5.1 230.5.1
19 24
20* icons scalable and clickable again 25* icons scalable and clickable again
21 26
220.5 270.5
23 28
24* now fully plugin based 29* now fully plugin based
25 30
260.3.4 310.3.4
27 32
28* "fill our business card now a clickable label" 33* "fill our business card now a clickable label"
29* Several bugfixes regarding todo section. 34* Several bugfixes regarding todo section.
30 35
310.3.3 360.3.3
32 37
33* Changed the logo so it better scales to bigger display and also 38* Changed the logo so it better scales to bigger display and also
34 made the "Today" string translatable. 39 made the "Today" string translatable.
35* some am/pm fixes 40* some am/pm fixes
36* clickable labels now in libopie 41* clickable labels now in libopie
37 42
380.3.2 430.3.2
39 44
40* Autostart is now more configurable. You can decide how long 45* Autostart is now more configurable. You can decide how long
41 the ipaq has to has been suspended, before autostart is triggered.(Opie 46 the ipaq has to has been suspended, before autostart is triggered.(Opie
42 only) 47 only)
43* am/pm time optinal (autodetect) 48* am/pm time optinal (autodetect)
44 49
450.3.1 500.3.1
46 51
47* fixed the wrong color of the buttons 52* fixed the wrong color of the buttons
48* better translation (thanks carsten and others) 53* better translation (thanks carsten and others)
49* fixes memory leaks 54* fixes memory leaks
50* bugfixes in calendar part, now location and note are working again. 55* bugfixes in calendar part, now location and note are working again.
51 56
520.3.0 570.3.0
diff --git a/core/pim/today/opie-today.control b/core/pim/today/opie-today.control
index 40c2cdf..0e79d69 100644
--- a/core/pim/today/opie-today.control
+++ b/core/pim/today/opie-today.control
@@ -1,16 +1,16 @@
1Files: bin/today apps/1Pim/today.desktop pics/today/* 1Files: bin/today apps/1Pim/today.desktop pics/today/*
2Priority: optional 2Priority: optional
3Section: opie/applications 3Section: opie/applications
4Maintainer: Maximilian Reiß <harlekin@handhelds.org> 4Maintainer: Maximilian Reiß <harlekin@handhelds.org>
5Architecture: arm 5Architecture: arm
6Version: 0.6-$SUB_VERSION 6Version: 0.6,2-$SUB_VERSION
7Depends: opie-base, libopie1 7Depends: opie-base, libopie1
8License: GPL 8License: GPL
9Description: today screen 9Description: today screen
10 This today screen app gives an overview of appointments 10 This today screen app gives an overview of appointments
11 and todos. 11 and todos.
12 It also shows incoming and outgoing mails from opiemail. 12 It also shows incoming and outgoing mails from opiemail.
13 When using Opie (opie.handhelds.org) today can be autostarted 13 When using Opie (opie.handhelds.org) today can be autostarted
14 on resume. 14 on resume.
15 It is highly configurable. 15 It is highly configurable.
16 16
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index 0b61bf8..d0cdd18 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -100,107 +100,99 @@ void Today::setRefreshTimer( int interval ) {
100 */ 100 */
101void Today::setOwnerField() { 101void Today::setOwnerField() {
102 QString file = Global::applicationFileName( "addressbook", "businesscard.vcf" ); 102 QString file = Global::applicationFileName( "addressbook", "businesscard.vcf" );
103 if ( QFile::exists( file ) ) { 103 if ( QFile::exists( file ) ) {
104 Contact cont = Contact::readVCard( file )[0]; 104 Contact cont = Contact::readVCard( file )[0];
105 QString returnString = cont.fullName(); 105 QString returnString = cont.fullName();
106 OwnerField->setText( "<b>" + tr ( "Owned by " ) + returnString + "</b>" ); 106 OwnerField->setText( "<b>" + tr ( "Owned by " ) + returnString + "</b>" );
107 } else { 107 } else {
108 OwnerField->setText( "<b>" + tr ( "Please fill out the business card" ) + " </b>" ); 108 OwnerField->setText( "<b>" + tr ( "Please fill out the business card" ) + " </b>" );
109 } 109 }
110} 110}
111 111
112/** 112/**
113 * Set the owner field with a given QString, for example per qcop. 113 * Set the owner field with a given QString, for example per qcop.
114 */ 114 */
115void Today::setOwnerField( QString &message ) { 115void Today::setOwnerField( QString &message ) {
116 if ( !message.isEmpty() ) { 116 if ( !message.isEmpty() ) {
117 OwnerField->setText( "<b>" + message + "</b>" ); 117 OwnerField->setText( "<b>" + message + "</b>" );
118 } 118 }
119} 119}
120 120
121/** 121/**
122 * Init stuff needed for today. Reads the config file. 122 * Init stuff needed for today. Reads the config file.
123 */ 123 */
124void Today::init() { 124void Today::init() {
125 // read config 125 // read config
126 Config cfg( "today" ); 126 Config cfg( "today" );
127 127
128 cfg.setGroup( "Plugins" ); 128 cfg.setGroup( "Plugins" );
129 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' ); 129 m_excludeApplets = cfg.readListEntry( "ExcludeApplets", ',' );
130 m_allApplets = cfg.readListEntry( "AllApplets", ',' ); 130 m_allApplets = cfg.readListEntry( "AllApplets", ',' );
131 131
132 cfg.setGroup( "General" ); 132 cfg.setGroup( "General" );
133 m_iconSize = cfg.readNumEntry( "IconSize", 18 ); 133 m_iconSize = cfg.readNumEntry( "IconSize", 18 );
134 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 ); 134 m_hideBanner = cfg.readNumEntry( "HideBanner", 0 );
135 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) ); 135 setRefreshTimer( cfg.readNumEntry( "checkinterval", 15000 ) );
136 136
137 // set the date in top label 137 // set the date in top label
138 QDate date = QDate::currentDate(); 138 QDate date = QDate::currentDate();
139 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) ); 139 DateLabel->setText( QString( "<font color=#FFFFFF>" + TimeString::longDateString( date ) + "</font>" ) );
140 140
141 if ( layout ) { 141 if ( layout ) {
142 delete layout; 142 delete layout;
143 } 143 }
144 144
145 if ( m_hideBanner ) { 145 if ( m_hideBanner ) {
146 Opiezilla->hide(); 146 Opiezilla->hide();
147 TodayLabel->hide(); 147 TodayLabel->hide();
148 Frame->setMaximumHeight( 18 );
149 Frame->setMinimumHeight( 18 );
150 DateLabel->setGeometry( QRect( 10, 2, 168, 12 ) );
151 ConfigButton->setGeometry( QRect( QApplication::desktop()->width()-20, 0, 25, 20 ) );
152 } else { 148 } else {
153 Opiezilla->show(); 149 Opiezilla->show();
154 TodayLabel->show(); 150 TodayLabel->show();
155 Frame->setMaximumHeight( 50 );
156 Frame->setMinimumHeight( 50 );
157 DateLabel->setGeometry( QRect( 10, 35, 168, 12 ) );
158 ConfigButton->setGeometry( QRect( QApplication::desktop()->width()-80, 29, 25, 20 ) );
159 } 151 }
160 152
161 layout = new QVBoxLayout( this ); 153 layout = new QVBoxLayout( this );
162 layout->addWidget( Frame ); 154 layout->addWidget( Frame );
163 layout->addWidget( OwnerField ); 155 layout->addWidget( OwnerField );
164} 156}
165 157
166/** 158/**
167 * Load the plugins 159 * Load the plugins
168 */ 160 */
169void Today::loadPlugins() { 161void Today::loadPlugins() {
170 162
171 init(); 163 init();
172 QValueList<TodayPlugin>::Iterator tit; 164 QValueList<TodayPlugin>::Iterator tit;
173 if ( !pluginList.isEmpty() ) { 165 if ( !pluginList.isEmpty() ) {
174 for ( tit = pluginList.begin(); tit != pluginList.end(); ++tit ) { 166 for ( tit = pluginList.begin(); tit != pluginList.end(); ++tit ) {
175 (*tit).guiBox->hide(); 167 (*tit).guiBox->hide();
176 (*tit).guiBox->reparent( 0, QPoint( 0, 0 ) ); 168 (*tit).guiBox->reparent( 0, QPoint( 0, 0 ) );
177 delete (*tit).guiBox; 169 delete (*tit).guiBox;
178 (*tit).library->unload(); 170 (*tit).library->unload();
179 delete (*tit).library; 171 delete (*tit).library;
180 } 172 }
181 pluginList.clear(); 173 pluginList.clear();
182 } 174 }
183 175
184 QString path = QPEApplication::qpeDir() + "/plugins/today"; 176 QString path = QPEApplication::qpeDir() + "/plugins/today";
185 QDir dir( path, "lib*.so" ); 177 QDir dir( path, "lib*.so" );
186 178
187 QStringList list = dir.entryList(); 179 QStringList list = dir.entryList();
188 QStringList::Iterator it; 180 QStringList::Iterator it;
189 181
190 QMap<QString, TodayPlugin> tempList; 182 QMap<QString, TodayPlugin> tempList;
191 183
192 for ( it = list.begin(); it != list.end(); ++it ) { 184 for ( it = list.begin(); it != list.end(); ++it ) {
193 QInterfacePtr<TodayPluginInterface> iface; 185 QInterfacePtr<TodayPluginInterface> iface;
194 QLibrary *lib = new QLibrary( path + "/" + *it ); 186 QLibrary *lib = new QLibrary( path + "/" + *it );
195 187
196 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() ); 188 qDebug( "querying: %s", QString( path + "/" + *it ).latin1() );
197 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) { 189 if ( lib->queryInterface( IID_TodayPluginInterface, (QUnknownInterface**)&iface ) == QS_OK ) {
198 qDebug( "accepted: %s", QString( path + "/" + *it ).latin1() ); 190 qDebug( "accepted: %s", QString( path + "/" + *it ).latin1() );
199 qDebug( QString(*it) ); 191 qDebug( QString(*it) );
200 192
201 TodayPlugin plugin; 193 TodayPlugin plugin;
202 plugin.library = lib; 194 plugin.library = lib;
203 plugin.iface = iface; 195 plugin.iface = iface;
204 plugin.name = QString(*it); 196 plugin.name = QString(*it);
205 197
206 QString type = (*it).left( (*it).find(".") ); 198 QString type = (*it).left( (*it).find(".") );
diff --git a/core/pim/today/todaybase.cpp b/core/pim/today/todaybase.cpp
index a36ecaa..c896463 100644
--- a/core/pim/today/todaybase.cpp
+++ b/core/pim/today/todaybase.cpp
@@ -1,105 +1,107 @@
1/* 1/*
2 * todaybase.cpp 2 * todaybase.cpp
3 * 3 *
4 * copyright : (c) 2002 by Maximilian Reiß 4 * copyright : (c) 2002, 2003 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#include "todaybase.h" 17#include "todaybase.h"
18 18
19#include <qvbox.h>
19#include <qlabel.h> 20#include <qlabel.h>
20#include <qimage.h>
21#include <qpixmap.h>
22#include <qapplication.h>
23#include <qwhatsthis.h> 21#include <qwhatsthis.h>
24 22
25#include <qpe/resource.h> 23#include <qpe/resource.h>
26 24
27 25
28TodayBase::TodayBase( QWidget* parent, const char* name, WFlags ) 26TodayBase::TodayBase( QWidget* parent, const char* name, WFlags )
29 : QWidget( parent, name, WStyle_ContextHelp ) { 27 : QWidget( parent, name, WStyle_ContextHelp ) {
30 28
31 QPixmap logo = Resource::loadPixmap( "today/today_logo"); // logo 29 QPixmap logo = Resource::loadPixmap( "today/today_logo"); // logo
32 QPixmap opiezilla = Resource::loadPixmap("today/opiezilla" ); //the opiezilla 30 QPixmap opiezilla = Resource::loadPixmap("today/opiezilla" ); //the opiezilla
33 QPixmap config = Resource::loadPixmap( "SettingsIcon" ); // config icon 31 QPixmap config = Resource::loadPixmap( "SettingsIcon" ); // config icon
34 32
35 layout = new QVBoxLayout( this ); 33 layout = new QVBoxLayout( this );
36 34
37 QPalette pal = this->palette(); 35 QPalette pal = this->palette();
38 QColor col = pal.color( QPalette::Active, QColorGroup::Background ); 36 QColor col = pal.color( QPalette::Active, QColorGroup::Background );
39 pal.setColor( QPalette::Active, QColorGroup::Button, col ); 37 pal.setColor( QPalette::Active, QColorGroup::Button, col );
40 pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); 38 pal.setColor( QPalette::Inactive, QColorGroup::Button, col );
41 pal.setColor( QPalette::Normal, QColorGroup::Button, col ); 39 pal.setColor( QPalette::Normal, QColorGroup::Button, col );
42 pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); 40 pal.setColor( QPalette::Disabled, QColorGroup::Button, col );
43 this->setPalette( pal ); 41 this->setPalette( pal );
44 42
45 // --- logo Section --- 43 // --- logo Section ---
46 QPalette pal2; 44 QPalette pal2;
47 QColorGroup cg; 45 QColorGroup cg;
48 cg.setColor( QColorGroup::Text, white ); 46 cg.setColor( QColorGroup::Text, white );
49 cg.setBrush( QColorGroup::Background, QBrush( QColor( 238, 238, 230 ), logo ) ); 47 cg.setBrush( QColorGroup::Background, QBrush( QColor( 238, 238, 230 ), logo ) );
50 pal2.setActive( cg ); 48 pal2.setActive( cg );
51 // today logo 49
50// today logo
52 Frame = new QLabel( this, "Frame" ); 51 Frame = new QLabel( this, "Frame" );
53 Frame->setPalette( pal2 ); 52 Frame->setPalette( pal2 );
54 Frame->setFrameShape( QFrame::StyledPanel ); 53 Frame->setFrameShape( QFrame::StyledPanel );
55 Frame->setFrameShadow( QFrame::Raised ); 54 Frame->setFrameShadow( QFrame::Raised );
56 Frame->setLineWidth( 0 ); 55 Frame->setLineWidth( 0 );
57 Frame->setMaximumHeight( 50 );
58 Frame->setMinimumHeight( 50 );
59 56
57 QHBoxLayout *frameLayout = new QHBoxLayout( Frame );
58 QVBox *box1 = new QVBox( Frame );
60 // Today text 59 // Today text
61 TodayLabel = new QLabel( Frame, "TodayText" ); 60 TodayLabel = new QLabel( box1, "TodayText" );
62 TodayLabel->setGeometry( QRect( 10, 1, 168, 40 ) );
63 QFont TodayLabel_font( TodayLabel->font() ); 61 QFont TodayLabel_font( TodayLabel->font() );
64 TodayLabel_font.setBold( TRUE ); 62 TodayLabel_font.setBold( TRUE );
65 TodayLabel_font.setPointSize( 40 ); 63 TodayLabel_font.setPointSize( 40 );
66 TodayLabel->setFont( TodayLabel_font ); 64 TodayLabel->setFont( TodayLabel_font );
67 TodayLabel->setBackgroundOrigin( QLabel::ParentOrigin ); 65 TodayLabel->setBackgroundOrigin( QLabel::ParentOrigin );
68 TodayLabel->setText( "<font color=#FFFFFF>" + tr("Today") +"</font>" ); 66 TodayLabel->setText( "<font color=#FFFFFF>" + tr("Today") +"</font>" );
69 67
70 // date 68 // date
71 DateLabel = new QLabel( Frame, "TextLabel1" ); 69 DateLabel = new QLabel( box1, "TextLabel1" );
72 DateLabel->setGeometry( QRect( 10, 35, 168, 12 ) );
73 QFont DateLabel_font( DateLabel->font() ); 70 QFont DateLabel_font( DateLabel->font() );
74 DateLabel_font.setBold( TRUE ); 71 DateLabel_font.setBold( TRUE );
75 DateLabel->setFont( DateLabel_font ); 72 DateLabel->setFont( DateLabel_font );
76 DateLabel->setBackgroundOrigin( QLabel::ParentOrigin ); 73 DateLabel->setBackgroundOrigin( QLabel::ParentOrigin );
77 DateLabel->setTextFormat( RichText ); 74 DateLabel->setTextFormat( RichText );
78 75
79 // Opiezilla 76 // Opiezilla
80 Opiezilla = new QLabel( Frame, "OpieZilla" ); 77 Opiezilla = new QLabel( Frame, "OpieZilla" );
81 Opiezilla->setPixmap( opiezilla ); 78 Opiezilla->setPixmap( opiezilla );
82 Opiezilla->setGeometry( QApplication::desktop()->width()-50 ,1, 45, 47 );
83 QWhatsThis::add( Opiezilla , tr( "Today by Maximilian Reiß" ) ); 79 QWhatsThis::add( Opiezilla , tr( "Today by Maximilian Reiß" ) );
84 Opiezilla->setBackgroundOrigin( QLabel::ParentOrigin ); 80 Opiezilla->setBackgroundOrigin( QLabel::ParentOrigin );
85 81
82
86 // Ownerfield 83 // Ownerfield
87 OwnerField = new OClickableLabel( this , "Owner" ); 84 OwnerField = new OClickableLabel( this , "Owner" );
88 OwnerField->setGeometry( QRect( 0, 0, this->width(), 12 ) ); 85 OwnerField->setGeometry( QRect( 0, 0, this->width(), 12 ) );
89 OwnerField->setAlignment( int (QLabel::AlignTop | QLabel::AlignLeft ) ); 86 OwnerField->setAlignment( int (QLabel::AlignTop | QLabel::AlignLeft ) );
90 OwnerField->setMaximumHeight(12); 87 OwnerField->setMaximumHeight(12);
91 88
92 // config 89 // config
93 ConfigButton = new OClickableLabel ( Frame, "PushButton1" ); 90 ConfigButton = new OClickableLabel ( Frame, "PushButton1" );
94 ConfigButton->setGeometry( QRect( QApplication::desktop()->width()-80, 29, 25, 20 ) );
95 ConfigButton->setPixmap( config ); 91 ConfigButton->setPixmap( config );
96 QWhatsThis::add( ConfigButton, tr( "Click here to get to the config dialog" ) ); 92 QWhatsThis::add( ConfigButton, tr( "Click here to get to the config dialog" ) );
97 ConfigButton->setBackgroundOrigin( QLabel::ParentOrigin ); 93 ConfigButton->setBackgroundOrigin( QLabel::ParentOrigin );
94
95 frameLayout->addWidget( box1 );
96 frameLayout->addStretch( 2 );
97 frameLayout->addWidget( ConfigButton, 0, AlignBottom );
98 frameLayout->addWidget( Opiezilla );
98} 99}
99 100
101
100/** 102/**
101 * D' tor 103 * D' tor
102 */ 104 */
103TodayBase::~TodayBase() { 105TodayBase::~TodayBase() {
104} 106}
105 107