summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kotodoviewitem.cpp2
-rw-r--r--libkcal/todo.cpp16
-rw-r--r--microkde/kglobalsettings.cpp10
-rw-r--r--microkde/kglobalsettings.h1
4 files changed, 27 insertions, 2 deletions
diff --git a/korganizer/kotodoviewitem.cpp b/korganizer/kotodoviewitem.cpp
index 66f8d06..8cb6b83 100644
--- a/korganizer/kotodoviewitem.cpp
+++ b/korganizer/kotodoviewitem.cpp
@@ -84,97 +84,97 @@ void KOTodoViewItem::construct()
QString skeyt = "==";
setOn(mTodo->isCompleted());
setText(0,mTodo->summary());
setText(1,QString::number(mTodo->priority()));
setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete())));
if (mTodo->percentComplete()<100) {
if (mTodo->isCompleted()) setSortKey(2,QString::number(999));
else setSortKey(2,QString::number(mTodo->percentComplete()));
}
else {
if (mTodo->isCompleted()) setSortKey(2,QString::number(999));
else setSortKey(2,QString::number(99));
}
if (mTodo->hasDueDate()) {
setText(3, mTodo->dtDueDateStr());
QDate d = mTodo->dtDue().date();
keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
// setSortKey(3,keyd);
if (mTodo->doesFloat()) {
setText(4,"");
}
else {
setText(4,mTodo->dtDueTimeStr());
QTime t = mTodo->dtDue().time();
keyt.sprintf("%02d%02d",t.hour(),t.minute());
//setSortKey(4,keyt);
}
} else {
setText(3,"");
setText(4,"");
}
setSortKey(3,keyd);
setSortKey(4,keyt);
if (mTodo->isCompleted()) setSortKey(1,"6" + QString::number(mTodo->priority())+keyd+keyt);
else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt);
keyd = "";
keyt = "";
if (mTodo->isRunning() ) {
QDate d = mTodo->runStart().date();
QTime t = mTodo->runStart().time();
skeyt.sprintf("%02d%02d",t.hour(),t.minute());
skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
- keyd = KGlobal::locale()->formatDate( d );
+ keyd = KGlobal::locale()->formatDate( d , true);
keyt = KGlobal::locale()->formatTime( t );
} else {
if (mTodo->hasStartDate()) {
keyd = mTodo->dtStartDateStr();
QDate d = mTodo->dtStart().date();
skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
if ( !mTodo->doesFloat()) {
keyt = mTodo->dtStartTimeStr();
QTime t = mTodo->dtStart().time();
skeyt.sprintf("%02d%02d",t.hour(),t.minute());
}
}
}
setText(5,keyd);
setText(6,keyt);
setSortKey(5,skeyd);
setSortKey(6,skeyt);
setText(7,mTodo->cancelled() ? i18n("Yes") : i18n("No"));
setText(8,mTodo->categoriesStr());
#if 0
// Find sort id in description. It's the text behind the last '#' character
// found in the description. White spaces are removed from beginning and end
// of sort id.
int pos = mTodo->description().findRev('#');
if (pos < 0) {
setText(6,"");
} else {
QString str = mTodo->description().mid(pos+1);
str.stripWhiteSpace();
setText(6,str);
}
#endif
m_known = false;
m_init = false;
setMyPixmap();
}
void KOTodoViewItem::setMyPixmap()
{
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp
index 7dee4cd..c008fe1 100644
--- a/libkcal/todo.cpp
+++ b/libkcal/todo.cpp
@@ -1,126 +1,140 @@
/*
This file is part of libkcal.
Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <kglobal.h>
+#include <kglobalsettings.h>
#include <klocale.h>
#include <kdebug.h>
+#include <qregexp.h>
#include "todo.h"
using namespace KCal;
Todo::Todo(): Incidence()
{
// mStatus = TENTATIVE;
mHasDueDate = false;
setHasStartDate( false );
mCompleted = getEvenTime(QDateTime::currentDateTime());
mHasCompletedDate = false;
mPercentComplete = 0;
mRunning = false;
mRunSaveTimer = 0;
}
Todo::Todo(const Todo &t) : Incidence(t)
{
mDtDue = t.mDtDue;
mHasDueDate = t.mHasDueDate;
mCompleted = t.mCompleted;
mHasCompletedDate = t.mHasCompletedDate;
mPercentComplete = t.mPercentComplete;
mRunning = false;
mRunSaveTimer = 0;
}
Todo::~Todo()
{
setRunning( false );
}
void Todo::setRunning( bool run )
{
if ( run == mRunning )
return;
if ( !mRunSaveTimer ) {
mRunSaveTimer = new QTimer ( this );
connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) );
}
mRunning = run;
if ( mRunning ) {
mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min
mRunStart = QDateTime::currentDateTime();
} else {
mRunSaveTimer->stop();
saveRunningInfoToFile();
}
}
void Todo::saveRunningInfoToFile()
{
- qDebug("Todo::saveRunningInfoToFile() ");
+ qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1());
+
+ QString dir = KGlobalSettings::timeTrackerDir();
+ qDebug("%s ", dir.latin1());
+ QString file = "%1-%2-%3-%4-%5-%6-%7.tt";
+
+ file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 ).arg( mRunStart.time().msec(), 3 );
+ file.replace ( QRegExp (" "), "0" );
+ file = dir +"/" +file;
+ qDebug("%s ", file.latin1());
+
+
+
}
int Todo::runTime()
{
if ( !mRunning )
return 0;
return mRunStart.secsTo( QDateTime::currentDateTime() );
}
bool Todo::hasRunningSub()
{
if ( mRunning )
return true;
Incidence *aTodo;
for (aTodo = mRelations.first(); aTodo; aTodo = mRelations.next()) {
if ( ((Todo*)aTodo)->hasRunningSub() )
return true;
}
return false;
}
Incidence *Todo::clone()
{
return new Todo(*this);
}
bool Todo::contains ( Todo* from )
{
if ( !from->summary().isEmpty() )
if ( !summary().startsWith( from->summary() ))
return false;
if ( from->hasStartDate() ) {
if ( !hasStartDate() )
return false;
if ( from->dtStart() != dtStart())
return false;
}
if ( from->hasDueDate() ){
if ( !hasDueDate() )
return false;
if ( from->dtDue() != dtDue())
return false;
}
if ( !from->location().isEmpty() )
if ( !location().startsWith( from->location() ) )
return false;
if ( !from->description().isEmpty() )
if ( !description().startsWith( from->description() ))
return false;
diff --git a/microkde/kglobalsettings.cpp b/microkde/kglobalsettings.cpp
index b837b23..e54b0d9 100644
--- a/microkde/kglobalsettings.cpp
+++ b/microkde/kglobalsettings.cpp
@@ -1,66 +1,76 @@
#include "kglobalsettings.h"
#include "kconfig.h"
#include "kglobal.h"
#include "kconfigbase.h"
#include <qapplication.h>
QFont KGlobalSettings::generalFont()
{
int size = 12;
if (QApplication::desktop()->width() < 480 ) {
size = 10;
}
#ifndef DESKTOP_VERSION
else
if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
size = 18;
#endif
QFont f = QApplication::font();
//qDebug("pointsize %d %s", f.pointSize(),f.family().latin1());
f.setPointSize( size );
return f;
}
QFont KGlobalSettings::generalMaxFont()
{
int size = 12;
if (QApplication::desktop()->width() < 480 ) {
size = 10;
}
#ifndef DESKTOP_VERSION
else
if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
size = 18;
#endif
QFont f = QApplication::font();
if ( f.pointSize() > size )
f.setPointSize( size );
return f;
}
+
+QString KGlobalSettings::timeTrackerDir()
+{
+ static QString dir;
+ if ( dir.isEmpty() ) {
+ dir = locateLocal( "data", "timetracker" );
+ }
+ return dir;
+}
+
QFont KGlobalSettings::toolBarFont()
{
return QApplication::font();
}
QColor KGlobalSettings::toolBarHighlightColor()
{
return QColor( "black" );
}
QRect KGlobalSettings::desktopGeometry( QWidget * )
{
return QApplication::desktop()->rect();
}
/**
* Returns whether KDE runs in single (default) or double click
* mode.
* see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
* @return true if single click mode, or false if double click mode.
**/
bool KGlobalSettings::singleClick()
{
KConfig *c = KGlobal::config();
KConfigGroupSaver cgs( c, "KDE" );
return c->readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK);
}
diff --git a/microkde/kglobalsettings.h b/microkde/kglobalsettings.h
index 075bb1c..3eeda35 100644
--- a/microkde/kglobalsettings.h
+++ b/microkde/kglobalsettings.h
@@ -1,31 +1,32 @@
#ifndef MICROKDE_KGLOBALSETTINGS_H
#define MICROKDE_KGLOBALSETTINGS_H
#include <qfont.h>
#include <qrect.h>
#define KDE_DEFAULT_SINGLECLICK true
class KGlobalSettings
{
public:
static QFont generalFont();
static QFont generalMaxFont();
static QFont toolBarFont();
static QColor toolBarHighlightColor();
static QRect desktopGeometry( QWidget * );
+ static QString timeTrackerDir();
/**
* Returns whether KDE runs in single (default) or double click
* mode.
* see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
* @return true if single click mode, or false if double click mode.
**/
static bool singleClick();
};
#endif