summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcher.cpp289
-rw-r--r--core/pim/today/changelog1
-rw-r--r--core/pim/today/today.cpp6
3 files changed, 148 insertions, 148 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index a0f04f1..59b38e3 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -489,164 +489,164 @@ Launcher::Launcher( QWidget* parent, const char* name, WFlags fl )
got_lnk_change = FALSE;
}
Launcher::~Launcher()
{
}
static bool isVisibleWindow(int wid)
{
const QList<QWSWindow> &list = qwsServer->clientWindows();
QWSWindow* w;
for (QListIterator<QWSWindow> it(list); (w=it.current()); ++it) {
if ( w->winId() == wid )
return !w->isFullyObscured();
}
return FALSE;
}
void Launcher::showMaximized()
{
if ( isVisibleWindow( winId() ) )
doMaximize();
else
QTimer::singleShot( 20, this, SLOT(doMaximize()) );
}
void Launcher::doMaximize()
{
QMainWindow::showMaximized();
}
void Launcher::updateMimeTypes()
{
MimeType::clear();
updateMimeTypes(rootFolder);
}
void Launcher::updateMimeTypes(AppLnkSet* folder)
{
for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) {
AppLnk *app = it.current();
if ( app->type() == "Folder" )
updateMimeTypes((AppLnkSet *)app);
else {
MimeType::registerApp(*app);
}
}
}
-/** This is a HACK....
+/** This is a HACK....
* Reason: scanning huge mediums, microdirvers for examples
* consomes time. To avoid that we invented the MediumMountCheck
- *
- * a) the user globally disabled medium checking. We can ignore
+ *
+ * a) the user globally disabled medium checking. We can ignore
* all removable medium
* b) the user enabled medium checking globally and we need to use this mimefilter
* c) the user enabled medium checking on a per medium bases
* c1) we already checked and its not ask again turns
* c2) we need to ask and then apply the mimefilter
*/
void Launcher::loadDocs() // ok here comes a hack belonging to Global::
{
delete docsFolder;
docsFolder = new DocLnkSet;
DocLnkSet *tmp = 0;
QString home = QString(getenv("HOME")) + "/Documents";
tmp = new DocLnkSet( home , QString::null);
docsFolder->appendFrom( *tmp );
delete tmp;
Config mediumCfg( "medium");
mediumCfg.setGroup("main");
// a) -zecke we don't want to check
if(!mediumCfg.readBoolEntry("use", true ) )
return;
// find out wich filesystems are new in this round
// We will do this by having a timestamp inside each mountpoint
// if the current timestamp doesn't match this is a new file system and
// come up with our MediumMountGui :) let the hacking begin
int stamp = uidgen.generate();
QString newStamp = QString::number( stamp ); // generates newtime Stamp
StorageInfo storage;
const QList<FileSystem> &fileSystems = storage.fileSystems();
QListIterator<FileSystem> it ( fileSystems );
-
+
// b)
if( mediumCfg.readBoolEntry("global", true ) ){
QString mime = configToMime(&mediumCfg).join(";");
for( ; it.current(); ++it ){
if( (*it)->isRemovable() ){
tmp = new DocLnkSet( (*it)->path(), mime );
docsFolder->appendFrom( *tmp );
delete tmp;
}
} // done
return; // save the else
}
// c) zecke
for ( ; it.current(); ++it ) {
if ( (*it)->isRemovable() ) { // let's find out if we should search on it
Config cfg( (*it)->path() + "/.opiestorage.cf", Config::File);
cfg.setGroup("main");
QString stamp = cfg.readEntry("timestamp", QDateTime::currentDateTime().toString() );
/** This medium is uptodate
*/
if( stamp == m_timeStamp ){ // ok we know this card
cfg.writeEntry("timestamp", newStamp ); //just write a new timestamp
// we need to scan the list now. Hopefully the cache will be there
// read the mimetypes from the config and search for documents
QStringList mimetypes = configToMime( &cfg);
tmp = new DocLnkSet( (*it)->path(), mimetypes.join(";") );
docsFolder->appendFrom( *tmp );
delete tmp;
-
+
}else{ // come up with the gui cause this a new card
MediumMountGui medium(&cfg, (*it)->path() );
if( medium.check() ){ // we did not ask before or ask again is off
/** c2) */
if( medium.exec() ){ // he clicked yes so search it
// speicher
//cfg.read(); // cause of a race we need to reread - fixed
cfg.setGroup("main");
cfg.writeEntry("timestamp", newStamp );
cfg.write();
tmp = new DocLnkSet( (*it)->path(), medium.mimeTypes().join(";" ) );
docsFolder->appendFrom( *tmp );
delete tmp;
}// no else
/** c1) */
}else{ // we checked
// do something different see what we need to do
// let's see if we should check the device
cfg.setGroup("main" );
bool check = cfg.readBoolEntry("autocheck", true );
if( check ){ // find the documents
tmp = new DocLnkSet( (*it)->path(), configToMime(&cfg ).join(";") );
docsFolder->appendFrom( *tmp );
delete tmp;
}
}
}
}
}
m_timeStamp = newStamp;
}
void Launcher::updateTabs()
{
MimeType::updateApplications(); // ### reads all applnks twice
delete rootFolder;
rootFolder = new AppLnkSet( MimeType::appsFolderName() );
loadDocs();
tabs->initializeCategories(rootFolder, docsFolder, storage->fileSystems());
}
void Launcher::updateDocs()
{
loadDocs();
tabs->updateDocs(docsFolder,storage->fileSystems());
@@ -673,297 +673,296 @@ void Launcher::select( const AppLnk *appLnk )
tr("<p>No application is defined for this document."
"<p>Type is %1.").arg(appLnk->type()));
return;
}
tabs->setBusy(TRUE);
emit executing( appLnk );
appLnk->execute();
}
}
void Launcher::externalSelected(const AppLnk *appLnk)
{
tabs->setBusy(TRUE);
emit executing( appLnk );
}
void Launcher::properties( AppLnk *appLnk )
{
if ( appLnk->type() == "Folder" ) {
// Not supported: flat is simpler for the user
} else {
in_lnk_props = TRUE;
got_lnk_change = FALSE;
LnkProperties prop(appLnk);
connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *)));
prop.showMaximized();
prop.exec();
in_lnk_props = FALSE;
if ( got_lnk_change ) {
updateLink(lnk_change);
}
}
}
void Launcher::updateLink(const QString& link)
{
if (link.isNull())
updateTabs();
else if (link.isEmpty())
updateDocs();
else
tabs->updateLink(link);
}
void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
{
QDataStream stream( data, IO_ReadOnly );
if ( msg == "closing(QString)" ){
- QString app;
- stream >> app;
- qWarning("app closed %s", app.latin1() );
- MRUList::removeTask( app );
+ QString app;
+ stream >> app;
+ qWarning("app closed %s", app.latin1() );
+ MRUList::removeTask( app );
}else if ( msg == "linkChanged(QString)" ) {
- QString link;
- stream >> link;
- if ( in_lnk_props ) {
- got_lnk_change = TRUE;
- lnk_change = link;
- } else {
- updateLink(link);
- }
+ QString link;
+ stream >> link;
+ if ( in_lnk_props ) {
+ got_lnk_change = TRUE;
+ lnk_change = link;
+ } else {
+ updateLink(link);
+ }
} else if ( msg == "busy()" ) {
- emit busy();
+ emit busy();
} else if ( msg == "notBusy(QString)" ) {
- QString app;
- stream >> app;
- tabs->setBusy(FALSE);
- emit notBusy(app);
+ QString app;
+ stream >> app;
+ tabs->setBusy(FALSE);
+ emit notBusy(app);
} else if ( msg == "mkdir(QString)" ) {
- QString dir;
- stream >> dir;
- if ( !dir.isEmpty() )
- mkdir( dir );
+ QString dir;
+ stream >> dir;
+ if ( !dir.isEmpty() )
+ mkdir( dir );
} else if ( msg == "rdiffGenSig(QString,QString)" ) {
- QString baseFile, sigFile;
- stream >> baseFile >> sigFile;
- QRsync::generateSignature( baseFile, sigFile );
+ QString baseFile, sigFile;
+ stream >> baseFile >> sigFile;
+ QRsync::generateSignature( baseFile, sigFile );
} else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) {
- QString baseFile, sigFile, deltaFile;
- stream >> baseFile >> sigFile >> deltaFile;
- QRsync::generateDiff( baseFile, sigFile, deltaFile );
+ QString baseFile, sigFile, deltaFile;
+ stream >> baseFile >> sigFile >> deltaFile;
+ QRsync::generateDiff( baseFile, sigFile, deltaFile );
} else if ( msg == "rdiffApplyPatch(QString,QString)" ) {
- QString baseFile, deltaFile;
- stream >> baseFile >> deltaFile;
- if ( !QFile::exists( baseFile ) ) {
- QFile f( baseFile );
- f.open( IO_WriteOnly );
- f.close();
- }
- QRsync::applyDiff( baseFile, deltaFile );
- QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" );
- e << baseFile;
+ QString baseFile, deltaFile;
+ stream >> baseFile >> deltaFile;
+ if ( !QFile::exists( baseFile ) ) {
+ QFile f( baseFile );
+ f.open( IO_WriteOnly );
+ f.close();
+ }
+ QRsync::applyDiff( baseFile, deltaFile );
+ QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" );
+ e << baseFile;
} else if ( msg == "rdiffCleanup()" ) {
- mkdir( "/tmp/rdiff" );
- QDir dir;
- dir.setPath( "/tmp/rdiff" );
- QStringList entries = dir.entryList();
- for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it )
- dir.remove( *it );
+ mkdir( "/tmp/rdiff" );
+ QDir dir;
+ dir.setPath( "/tmp/rdiff" );
+ QStringList entries = dir.entryList();
+ for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it )
+ dir.remove( *it );
} else if ( msg == "sendHandshakeInfo()" ) {
- QString home = getenv( "HOME" );
- QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" );
- e << home;
- int locked = (int) Desktop::screenLocked();
- e << locked;
- // register an app for autostart
- // if clear is send the list is cleared.
+ QString home = getenv( "HOME" );
+ QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" );
+ e << home;
+ int locked = (int) Desktop::screenLocked();
+ e << locked;
+ // register an app for autostart
+ // if clear is send the list is cleared.
} else if ( msg == "autoStart(QString)" ) {
QString appName;
stream >> appName;
Config cfg( "autostart" );
cfg.setGroup( "AutoStart" );
if ( appName.compare("clear") == 0){
cfg.writeEntry("Apps", "");
}
} else if ( msg == "autoStart(QString,QString)" ) {
QString modifier, appName;
stream >> modifier >> appName;
Config cfg( "autostart" );
cfg.setGroup( "AutoStart" );
if ( modifier.compare("add") == 0 ){
// only add if appname is entered
if (!appName.isEmpty()) {
cfg.writeEntry("Apps", appName);
}
} else if (modifier.compare("remove") == 0 ) {
// need to change for multiple entries
// actually remove is right now simular to clear, but in future there
// should be multiple apps in autostart possible.
QString checkName;
checkName = cfg.readEntry("Apps", "");
if (checkName == appName) {
cfg.writeEntry("Apps", "");
}
}
// case the autostart feature should be delayed
} else if ( msg == "autoStart(QString, QString, QString)") {
QString modifier, appName, delay;
stream >> modifier >> appName >> delay;
Config cfg( "autostart" );
cfg.setGroup( "AutoStart" );
if ( modifier.compare("add") == 0 ){
// only add it appname is entered
if (!appName.isEmpty()) {
cfg.writeEntry("Apps", appName);
cfg.writeEntry("Delay", delay);
}
} else {
}
- } else if ( msg == "sendCardInfo()" ) {
+ } else if ( msg == "sendCardInfo()" ) {
QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" );
const QList<FileSystem> &fs = storage->fileSystems();
- QListIterator<FileSystem> it ( fs );
- QString s;
- QString homeDir = getenv("HOME");
- QString hardDiskHome;
- for ( ; it.current(); ++it ) {
- if ( (*it)->isRemovable() )
- s += (*it)->name() + "=" + (*it)->path() + "/Documents "
- + QString::number( (*it)->availBlocks() * (*it)->blockSize() )
- + " " + (*it)->options() + ";";
- else if ( (*it)->disk() == "/dev/mtdblock1" ||
- (*it)->disk() == "/dev/mtdblock/1" )
- s += (*it)->name() + "=" + homeDir + "/Documents "
- + QString::number( (*it)->availBlocks() * (*it)->blockSize() )
- + " " + (*it)->options() + ";";
- else if ( (*it)->name().contains( "Hard Disk") &&
- homeDir.contains( (*it)->path() ) &&
- (*it)->path().length() > hardDiskHome.length() )
- hardDiskHome =
- (*it)->name() + "=" + homeDir + "/Documents "
- + QString::number( (*it)->availBlocks() * (*it)->blockSize() )
- + " " + (*it)->options() + ";";
- }
- if ( !hardDiskHome.isEmpty() )
- s += hardDiskHome;
+ QListIterator<FileSystem> it ( fs );
+ QString s;
+ QString homeDir = getenv("HOME");
+ QString hardDiskHome;
+ for ( ; it.current(); ++it ) {
+ if ( (*it)->isRemovable() )
+ s += (*it)->name() + "=" + (*it)->path() + "/Documents "
+ + QString::number( (*it)->availBlocks() * (*it)->blockSize() )
+ + " " + (*it)->options() + ";";
+ else if ( (*it)->disk() == "/dev/mtdblock1" ||
+ (*it)->disk() == "/dev/mtdblock/1" )
+ s += (*it)->name() + "=" + homeDir + "/Documents "
+ + QString::number( (*it)->availBlocks() * (*it)->blockSize() )
+ + " " + (*it)->options() + ";";
+ else if ( (*it)->name().contains( "Hard Disk") &&
+ homeDir.contains( (*it)->path() ) &&
+ (*it)->path().length() > hardDiskHome.length() )
+ hardDiskHome =
+ (*it)->name() + "=" + homeDir + "/Documents "
+ + QString::number( (*it)->availBlocks() * (*it)->blockSize() )
+ + " " + (*it)->options() + ";";
+ }
+ if ( !hardDiskHome.isEmpty() )
+ s += hardDiskHome;
- e << s;
+ e << s;
} else if ( msg == "sendSyncDate(QString)" ) {
- QString app;
- stream >> app;
- Config cfg( "qpe" );
- cfg.setGroup("SyncDate");
- QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" );
- e << app << cfg.readEntry( app );
- //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(),
- //cfg.readEntry( app ).latin1() );
+ QString app;
+ stream >> app;
+ Config cfg( "qpe" );
+ cfg.setGroup("SyncDate");
+ QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" );
+ e << app << cfg.readEntry( app );
+ //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(),
+ //cfg.readEntry( app ).latin1() );
} else if ( msg == "setSyncDate(QString,QString)" ) {
- QString app, date;
- stream >> app >> date;
- Config cfg( "qpe" );
- cfg.setGroup("SyncDate");
- cfg.writeEntry( app, date );
- //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1());
+ QString app, date;
+ stream >> app >> date;
+ Config cfg( "qpe" );
+ cfg.setGroup("SyncDate");
+ cfg.writeEntry( app, date );
+ //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1());
} else if ( msg == "startSync(QString)" ) {
- QString what;
- stream >> what;
- delete syncDialog; syncDialog = 0;
- syncDialog = new SyncDialog( this, "syncProgress", FALSE,
- WStyle_Tool | WStyle_Customize |
- Qt::WStyle_StaysOnTop );
- syncDialog->showMaximized();
- syncDialog->whatLabel->setText( "<b>" + what + "</b>" );
- connect( syncDialog->buttonCancel, SIGNAL( clicked() ),
- SLOT( cancelSync() ) );
- }
- else if ( msg == "stopSync()") {
- delete syncDialog; syncDialog = 0;
+ QString what;
+ stream >> what;
+ delete syncDialog; syncDialog = 0;
+ syncDialog = new SyncDialog( this, "syncProgress", FALSE,
+ WStyle_Tool | WStyle_Customize |
+ Qt::WStyle_StaysOnTop );
+ syncDialog->showMaximized();
+ syncDialog->whatLabel->setText( "<b>" + what + "</b>" );
+ connect( syncDialog->buttonCancel, SIGNAL( clicked() ),
+ SLOT( cancelSync() ) );
+ } else if ( msg == "stopSync()") {
+ delete syncDialog; syncDialog = 0;
} else if ( msg == "getAllDocLinks()" ) {
- loadDocs();
-
- QString contents;
-
- for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) {
- DocLnk *doc = it.current();
- QFileInfo fi( doc->file() );
- if ( !fi.exists() )
- continue;
-
- bool fake = !doc->linkFileKnown();
- if ( !fake ) {
- QFile f( doc->linkFile() );
- if ( f.open( IO_ReadOnly ) ) {
- QTextStream ts( &f );
- ts.setEncoding( QTextStream::UnicodeUTF8 );
- contents += ts.read();
- f.close();
- } else
- fake = TRUE;
- }
- if (fake) {
- contents += "[Desktop Entry]\n";
- contents += "Categories = " + Qtopia::Record::idsToString( doc->categories() ) + "\n";
- contents += "File = "+doc->file()+"\n";
- contents += "Name = "+doc->name()+"\n";
- contents += "Type = "+doc->type()+"\n";
- }
- contents += QString("Size = %1\n").arg( fi.size() );
- }
+ loadDocs();
+
+ QString contents;
+
+ for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) {
+ DocLnk *doc = it.current();
+ QFileInfo fi( doc->file() );
+ if ( !fi.exists() )
+ continue;
+
+ bool fake = !doc->linkFileKnown();
+ if ( !fake ) {
+ QFile f( doc->linkFile() );
+ if ( f.open( IO_ReadOnly ) ) {
+ QTextStream ts( &f );
+ ts.setEncoding( QTextStream::UnicodeUTF8 );
+ contents += ts.read();
+ f.close();
+ } else
+ fake = TRUE;
+ }
+ if (fake) {
+ contents += "[Desktop Entry]\n";
+ contents += "Categories = " + Qtopia::Record::idsToString( doc->categories() ) + "\n";
+ contents += "File = "+doc->file()+"\n";
+ contents += "Name = "+doc->name()+"\n";
+ contents += "Type = "+doc->type()+"\n";
+ }
+ contents += QString("Size = %1\n").arg( fi.size() );
+ }
- //qDebug( "sending length %d", contents.length() );
- QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" );
- e << contents;
+ //qDebug( "sending length %d", contents.length() );
+ QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" );
+ e << contents;
- qDebug( "================ \n\n%s\n\n===============",
- contents.latin1() );
+ qDebug( "================ \n\n%s\n\n===============",
+ contents.latin1() );
- delete docsFolder;
- docsFolder = 0;
+ delete docsFolder;
+ docsFolder = 0;
}
}
void Launcher::cancelSync()
{
QCopEnvelope e( "QPE/Desktop", "cancelSync()" );
}
void Launcher::storageChanged()
{
if ( in_lnk_props ) {
got_lnk_change = TRUE;
lnk_change = "";
} else {
updateDocs();
}
}
bool Launcher::mkdir(const QString &localPath)
{
QDir fullDir(localPath);
if (fullDir.exists())
return true;
// at this point the directory doesn't exist
// go through the directory tree and start creating the direcotories
// that don't exist; if we can't create the directories, return false
QString dirSeps = "/";
int dirIndex = localPath.find(dirSeps);
QString checkedPath;
// didn't find any seps; weird, use the cur dir instead
if (dirIndex == -1) {
//qDebug("No seperators found in path %s", localPath.latin1());
checkedPath = QDir::currentDirPath();
}
while (checkedPath != localPath) {
// no more seperators found, use the local path
if (dirIndex == -1)
checkedPath = localPath;
else {
// the next directory to check
checkedPath = localPath.left(dirIndex) + "/";
// advance the iterator; the next dir seperator
dirIndex = localPath.find(dirSeps, dirIndex+1);
diff --git a/core/pim/today/changelog b/core/pim/today/changelog
index 93bbcac..73de50d 100644
--- a/core/pim/today/changelog
+++ b/core/pim/today/changelog
@@ -1,50 +1,51 @@
0.3.4
+* "fill our business card now a clickable label"
* 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:
- overdue items on top
- then sorted by date, then by priority
* some cleanups
* speed optimisations
0.2.9
* Many bugfixes.
* Today now apparently sorts the dates _allways_ right, i would assume it
to be a qt bug
0.2.8
* Appointments are now clickable (connection to datebook still missing)
* autostart support (opie only)
0.2.7
* check if todolist.xml was changed before parsing it
* check only every 30 sec for changes.
* some visual stuff
* as usual many little improvements .-)
diff --git a/core/pim/today/today.cpp b/core/pim/today/today.cpp
index 06cfa01..9e9d31f 100644
--- a/core/pim/today/today.cpp
+++ b/core/pim/today/today.cpp
@@ -90,103 +90,103 @@ Today::Today( QWidget* parent, const char* name, WFlags fl )
}
/*
* 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();
OwnerField->setText( "<b>" +tr ("Owned by ") + returnString + "</b>");
} else {
OwnerField->setText( "<b>" + tr ("Please fill out the business card")+" </b>");
}
}
/*
* Set the owner field with a given QString, for example per qcop.
*/
void Today::setOwnerField(QString &message) {
if (!message.isEmpty()) {
OwnerField->setText("<b>" + message + "</b>");
}
}
/*
* Autostart, uses the new (opie only) autostart method in the launcher code.
* If registered against that today ist started on each resume.
*/
void Today::autoStart() {
Config cfg("today");
cfg.setGroup("Autostart");
int AUTOSTART = cfg.readNumEntry("autostart",1);
// qDebug(QString("%1").arg(AUTOSTART));
if (AUTOSTART) {
- QCopEnvelope e("QPE/System", "autoStart(QString, QString, QString)");
+ 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)");
+ 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() || 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");
QDateTime fileTime = file.lastModified();
if (time.compare(fileTime.toString()) == 0) {
return false;
} else {
cfg.writeEntry("todolisttimestamp", fileTime.toString() );
cfg.write();
return true;
}
}
@@ -376,104 +376,104 @@ 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> 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));
}
-
/*
* launch addressbook (personal card)
*/
void Today::editCard() {
QCopEnvelope w("QPE/System", "execute(QString)");
w << QString("addressbook");
+ // while( !QCopChannel::isRegistered("QPE/Addressbook"))
QCopEnvelope v("QPE/Addressbook", "editPersonalAndClose()");
}
/*
* launches datebook
*/
void Today::startDatebook() {
QCopEnvelope e("QPE/System", "execute(QString)");
e << QString("datebook");
}
/*
* starts the edit dialog as known from datebook
*/
extern QPEApplication *todayApp;
void Today::editEvent(const Event &e) {
startDatebook();
while(!QCopChannel::isRegistered("QPE/Datebook")) todayApp->processEvents();
QCopEnvelope env("QPE/Datebook", "editEvent(int)");
env << e.uid();
}
/*
* launches todolist
*/
void Today::startTodo() {
QCopEnvelope e("QPE/System", "execute(QString)");
e << QString("todolist");
}
/*
* launch opiemail
*/
void Today::startMail() {
QCopEnvelope e("QPE/System", "execute(QString)");
e << QString("opiemail");
//Right now start both, maybe decide which to rum via config file ..
QCopEnvelope f("QPE/System", "execute(QString)");
f << QString("qtmail");
}
Today::~Today() {
}