summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/today/changelog4
-rw-r--r--core/pim/today/opie-today.control2
-rw-r--r--core/pim/today/today.cpp12
3 files changed, 11 insertions, 7 deletions
diff --git a/core/pim/today/changelog b/core/pim/today/changelog
index c687cea..93bbcac 100644
--- a/core/pim/today/changelog
+++ b/core/pim/today/changelog
@@ -1,24 +1,28 @@
+0.3.4
+
+* Several bugfixes regarding todo section.
+
0.3.3
* Changed the logo so it better scales to bigger display and also
made the "Today" string translatable.
* some am/pm fixes
* clickable labels now in libopie
0.3.2
* Autostart is now more configurable. You can decide how long
the ipaq has to has been suspended, before autostart is triggered.(Opie
only)
* am/pm time optinal (autodetect)
0.3.1
* fixed the wrong color of the buttons
* better translation (thanks carsten and others)
* fixes memory leaks
* bugfixes in calendar part, now location and note are working again.
0.3.0
* today uses now tododb from libopie. So major changes in the todo part:
diff --git a/core/pim/today/opie-today.control b/core/pim/today/opie-today.control
index da9d9fa..46c0d71 100644
--- a/core/pim/today/opie-today.control
+++ b/core/pim/today/opie-today.control
@@ -1,16 +1,16 @@
Files: bin/today apps/Applications/today.desktop pics/today/*
Priority: optional
Section: opie/applications
Maintainer: Maximilian Reiß <max.reiss@gmx.de>
Architecture: arm
-Version: 0.3.3-$SUB_VERSION
+Version: 0.3.4-$SUB_VERSION
Depends: opie-base ($QPE_VERSION), libopie ($QPE_VERSION)
License: GPL
Description: today screen
This today screen app gives an overview of appointments
and todos.
It also shows incoming and outgoing mails from opiemail.
When using Opie (opie.handhelds.org) today can be autostarted
on resume.
It is highly configurable.
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index 0f4cbdb..4368201 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -61,50 +61,50 @@ QString AUTOSTART_TIMER;
/*
* Constructs a Example which is a child of 'parent', with the
* name 'name' and widget flags set to 'f'
*/
Today::Today( QWidget* parent, const char* name, WFlags fl )
: TodayBase( parent, name, fl ), AllDateBookEvents(NULL) {
QObject::connect( (QObject*)PushButton1, SIGNAL( clicked() ), this, SLOT(startConfig() ) );
QObject::connect( (QObject*)TodoButton, SIGNAL( clicked() ), this, SLOT(startTodo() ) );
QObject::connect( (QObject*)DatesButton, SIGNAL( clicked() ), this, SLOT(startDatebook() ) );
QObject::connect( (QObject*)MailButton, SIGNAL( clicked() ), this, SLOT(startMail() ) );
#if defined(Q_WS_QWS)
#if !defined(QT_NO_COP)
QCopChannel *todayChannel = new QCopChannel("QPE/Today" , this );
connect (todayChannel, SIGNAL( received(const QCString &, const QByteArray &)),
this, SLOT ( channelReceived(const QCString &, const QByteArray &)) );
#endif
#endif
db = NULL;
setOwnerField();
todo = new ToDoDB;
- getTodo();
draw();
+ getTodo();
autoStart();
}
/*
* Qcop receive method.
*/
void Today::channelReceived(const QCString &msg, const QByteArray & data) {
QDataStream stream(data, IO_ReadOnly );
if ( msg == "message(QString)" ) {
QString message;
stream >> message;
setOwnerField(message);
}
}
/*
* Initialises the owner field with the default value, the username
*/
void Today::setOwnerField() {
QString file = Global::applicationFileName("addressbook", "businesscard.vcf");
if (QFile::exists(file)) {
Contact cont = Contact::readVCard(file)[0];
QString returnString = cont.fullName();
@@ -133,49 +133,49 @@ void Today::autoStart() {
int AUTOSTART = cfg.readNumEntry("autostart",1);
// qDebug(QString("%1").arg(AUTOSTART));
if (AUTOSTART) {
QCopEnvelope e("QPE/System", "autoStart(QString, QString, QString)");
e << QString("add");
e << QString("today");
e << AUTOSTART_TIMER;
} else {
qDebug("Nun in else bei autostart");
QCopEnvelope e("QPE/System", "autoStart(QString, QString)");
e << QString("remove");
e << QString("today");
}
}
/*
* Repaint method. Reread all fields.
*/
void Today::draw() {
init();
getDates();
getMail();
// if the todolist.xml file was not modified in between, do not parse it.
- if (checkIfModified()) {
+ if (checkIfModified() || NEW_START==1) {
if (todo) delete todo;
todo = new ToDoDB;
getTodo();
}
// how often refresh
QTimer::singleShot( 20*1000, this, SLOT(draw() ) );
}
/*
* Check if the todolist.xml was modified (if there are new entries.
* Returns true if it was modified.
*/
bool Today::checkIfModified() {
QDir dir;
QString homedir = dir.homeDirPath ();
QString time;
Config cfg("today");
cfg.setGroup("Files");
time = cfg.readEntry("todolisttimestamp", "");
QFileInfo file = (homedir +"/Applications/todolist/todolist.xml");
@@ -368,52 +368,52 @@ void Today::getMail() {
/*
* Get the todos
*/
void Today::getTodo() {
QString output;
QString tmpout;
int count = 0;
int ammount = 0;
// get overdue todos first
QValueList<ToDoEvent> overDueList = todo->overDue();
qBubbleSort(overDueList);
for ( QValueList<ToDoEvent>::Iterator it=overDueList.begin();
it!=overDueList.end(); ++it ) {
if (!(*it).isCompleted() && ( ammount < MAX_LINES_TASK) ) {
tmpout += "<font color=#e00000><b>-" +((*it).description()).mid(0, MAX_CHAR_CLIP) + "</b></font><br>";
ammount++;
}
}
// get total number of still open todos
- QValueList<ToDoEvent> open = todo->rawToDos();
- qBubbleSort(open);
- for ( QValueList<ToDoEvent>::Iterator it=open.begin();
- it!=open.end(); ++it ) {
+ QValueList<ToDoEvent> openTodo = todo->rawToDos();
+ qBubbleSort(openTodo);
+ for ( QValueList<ToDoEvent>::Iterator it=openTodo.begin();
+ it!=openTodo.end(); ++it ) {
if (!(*it).isCompleted()){
count +=1;
// not the overdues, we allready got them, and not if we are
// over the maxlines
if (!(*it).isOverdue() && ( ammount < MAX_LINES_TASK) ) {
tmpout += "<b>-</b>" + ((*it).description()).mid(0, MAX_CHAR_CLIP) + "<br>";
ammount++;
}
}
}
if (count > 0) {
if( count == 1 ) {
output = tr("There is <b> 1</b> active task: <br>" );
} else {
output = tr("There are <b> %1</b> active tasks: <br>").arg(count);
}
output += tmpout;
} else {
output = tr("No active tasks");
}
TodoField->setText(tr(output));