summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt3
-rw-r--r--kaddressbook/kabcore.cpp1
-rw-r--r--libkdepim/externalapphandler.cpp5
3 files changed, 8 insertions, 1 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index b5285bf..03aec7b 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,109 +1,112 @@
Info about the changes in new versions of KDE-Pim/Pi
********** VERSION 2.0.22 ************
KO/Pi:
Fix for creating events/todos via the abgenda context menu.
Added option to split toolbar to 3 toolbars.
Added option to show one small filter-view-toolbar.
Added a print option to the desktop version:
Now you can print out the view of the "Event Viewer".
That means you can print all data of one particular event/todo.
Added scaling options to printout of Event Viewer and What'sNext View.
Fixed some problems in the month view in "week start sunday" mode.
+KA/Pi:
+Added two more config options.
+Fixed resizing problem of address request dialog when orientation was switched.
********** VERSION 2.0.21 ************
Fixed another SMTP problem in OM/Pi.
Some small changed in the new datenavigator in KO/Pi.
Changed default setting for new filter in KA/Pi to "exclude categories".
Changed the default font size for 640x480 display .
Changed popup menu behaviour in agenda and list view.
Fixed some layout problems of the date label size in the month view.
Made month view update faster.
Made first datenavigator repainting faster.
Changed the title of the event/todo edit dialogs.
Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course).
Many small usebility fixes in KO/Pi.
Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi.
The set of possible "next views" are the views you have toolbar buttons for.
Made alarm sound working on Linux.
KO/Pi alarm applet changed:
Made buttons in alarm dialog much bigger.
Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger.
The goal was it to make it possible to use a finger tip ( and not the stylus ) on the touchscreen to adjust the settings.
And because this version is realeased at Easter, I added an Easter-egg:
With a new undocumented command you can get a message box about the next alarm.
Good luck to find it!
********** VERSION 2.0.20 ************
Two small fixes in OM/Pi.
Better resizing of the new datenavigator in KO/Pi.
********** VERSION 2.0.19 ************
KO/Pi:
Enhancements and bugfixes in the new datenavigator.
Bugfix in this changelog:
The datenavigator was changed in version 2.0.18, not the datepicker.
********** VERSION 2.0.18 ************
KO/Pi:
Fixed some minor problems.
Cleaned up the KO/Pi config dialog.
Fixed problem moving events in aganda view.
Made datepicker scaleable, i.e. if the datenavigator shows now a
datenavigator matrix depending on its size.
Birthdays are now displayed green in the datenavigator.
What'sThis Help in datenavigator shows all events of the day.
OM/Pi:
Updated the backend mail library to the latest version.
Please backup your mail before using this version.
********** VERSION 2.0.17 ************
KO/Pi:
Tooltips in month view were not sorted. Fixed.
Daylabel in agenda view ( for display of one day ) was too short. Fixed.
Conflict display dialog for syncing was not on top of other windows. Fixed.
Fixed some minor problems.
Fixed an endless loop when importing vcs file with RESOURCES entry.
********** VERSION 2.0.16 ************
OM/Pi:
Fixed the SMTP account setting the option.
Fixed something in mail sending.
KO/Pi:
Added possibility to export selected events/todos as vcal file.
********** VERSION 2.0.15 ************
PwM/Pi:
Added keyboard shorcuts for
- toggling summary view (space bar)
- delete item (delete + backspace key)
- add new item ( i + n key)
Fixed length of info in the title.
KO/Pi-KA/Pi:
Changed "ME" menu bar entry to an icon.
KO/Pi:
Fixed two minor bugs in displaying todos.
If in month view a cell is selected, the key shortcut "d" shows now that date.
Added complete info for a todo in month view as an icon left of the text.
Fixed problems of displaying data when "<" or ">" are used in summary/location/description.
Fixed problem of search dialog size when switching displays.
Cancel key now closes date picker.
Rearranged KO/Pi file menu structure.
OM/Pi:
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index db19dd5..27aca2d 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -2420,192 +2420,193 @@ void KABCore::setFormattedName()
return;
mAddressBook->setUntagged();
dlg.tagSelected();
int count = 0;
KABC::AddressBook::Iterator it;
for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
if ( (*it).tagged() ) {
++count;
if ( count %10 == 0 )
message(i18n("Changing contact #%1").arg( count ) );
qApp->processEvents();
QString fName;
if ( setpref.simple->isChecked() )
fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName );
else if ( setpref.full->isChecked() )
fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName );
else if ( setpref.reverse->isChecked() )
fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName );
else
fName = (*it).organization();
if ( setpref.setCompany->isChecked() )
if ( fName.isEmpty() || fName =="," )
fName = (*it).organization();
(*it).setFormattedName( fName );
}
}
message(i18n("Refreshing view...") );
qApp->processEvents();
mViewManager->refreshView( "" );
Addressee add;
mDetails->setAddressee( add );
message(i18n("Setting formatted name completed!") );
}
void KABCore::clipboardDataChanged()
{
if ( mReadWrite )
mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
}
void KABCore::updateActionMenu()
{
UndoStack *undo = UndoStack::instance();
RedoStack *redo = RedoStack::instance();
if ( undo->isEmpty() )
mActionUndo->setText( i18n( "Undo" ) );
else
mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
mActionUndo->setEnabled( !undo->isEmpty() );
if ( !redo->top() )
mActionRedo->setText( i18n( "Redo" ) );
else
mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
mActionRedo->setEnabled( !redo->isEmpty() );
}
void KABCore::configureKeyBindings()
{
#ifndef KAB_EMBEDDED
KKeyDialog::configure( actionCollection(), true );
#else //KAB_EMBEDDED
qDebug("KABCore::configureKeyBindings() not implemented");
#endif //KAB_EMBEDDED
}
#ifdef KAB_EMBEDDED
void KABCore::configureResources()
{
KRES::KCMKResources dlg( this, "" , 0 );
if ( !dlg.exec() )
return;
KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
}
#endif //KAB_EMBEDDED
/* this method will be called through the QCop interface from Ko/Pi to select addresses
* for the attendees list of an event.
*/
void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid)
{
QStringList nameList;
QStringList emailList;
QStringList uidList;
bool ok = false;
int wid = uid.toInt( &ok );
if ( ok ) {
if ( wid != QApplication::desktop()->width() ) {
qDebug("KA/Pi: Request from different desktop geometry. Resizing ...");
+ message( i18n("Resizing, please wait...") );
raise();
qApp->processEvents();
}
} else {
qDebug("KABCore::requestForNameEmailUidList:: Got invalid uid ");
}
KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
uint i=0;
for (i=0; i < list.count(); i++)
{
nameList.append(list[i].realName());
emailList.append(list[i].preferredEmail());
uidList.append(list[i].uid());
}
//qDebug("%s %s ", sourceChannel.latin1(), uid.latin1());
bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList);
}
/* this method will be called through the QCop interface from Ko/Pi to select birthdays
* to put them into the calendar.
*/
void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid)
{
// qDebug("KABCore::requestForBirthdayList");
QStringList birthdayList;
QStringList anniversaryList;
QStringList realNameList;
QStringList preferredEmailList;
QStringList assembledNameList;
QStringList uidList;
KABC::AddressBook::Iterator it;
int count = 0;
for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
++count;
}
QProgressBar bar(count,0 );
int w = 300;
if ( QApplication::desktop()->width() < 320 )
w = 220;
int h = bar.sizeHint().height() ;
int dw = QApplication::desktop()->width();
int dh = QApplication::desktop()->height();
bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
bar.show();
bar.setCaption (i18n("Collecting birthdays - close to abort!") );
qApp->processEvents();
QDate bday;
QString anni;
QString formattedbday;
for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it )
{
if ( ! bar.isVisible() )
return;
bar.setProgress( count++ );
qApp->processEvents();
bday = (*it).birthday().date();
anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" );
if ( bday.isValid() || !anni.isEmpty())
{
if (bday.isValid())
formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate);
else
formattedbday = "NOTVALID";
if (anni.isEmpty())
anni = "INVALID";
birthdayList.append(formattedbday);
anniversaryList.append(anni); //should be ISODate
realNameList.append((*it).realName());
preferredEmailList.append((*it).preferredEmail());
assembledNameList.append((*it).assembledName());
uidList.append((*it).uid());
//qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() );
}
}
bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList);
}
/* this method will be called through the QCop interface from other apps to show details of a contact.
*/
void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid)
{
//qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1());
QString foundUid = QString::null;
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index 7200da9..f8f4c8a 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -1059,143 +1059,146 @@ bool ExternalAppHandler::callBySIP( const QString& sipnumber )
}
/**************************************************************************
*
**************************************************************************/
QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const
{
message = message.replace( QRegExp("%1"), param1 );
return message.replace( QRegExp("%2"), param2 );
}
/**************************************************************************
*
**************************************************************************/
void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const
{
#ifndef DESKTOP_VERSION
QMap<QString, QString> valmap;
bool useValMap = false;
// first extract all parts of the parameters.
QStringList paramlist = QStringList::split(";", parameters);
//Now check how many parts we have.
//=0 :no params to pass
//>0 :parameters to pass
for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it )
{
QString param = (*it);
QStringList keyvallist = QStringList::split("=", param);
//if we have keyvalue pairs, we assume that we pass a map to the envelope
QStringList::Iterator it2 = keyvallist.begin();
QString key = (*it2);
key = key.replace( QRegExp("%1"), param1 );
key = key.replace( QRegExp("%2"), param2 );
++it2;
if(it2 != keyvallist.end())
{
QString value = (*it2);
value = value.replace( QRegExp("%1"), param1 );
value = value.replace( QRegExp("%2"), param2 );
valmap.insert(key, value);
useValMap = true;
}
else
{
// qDebug("pass parameter << %s", key.latin1());
(*e) << key;
}
}
if (useValMap == true)
(*e) << valmap;
#endif
}
/**************************************************************************
*
**************************************************************************/
void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data )
{
if ( cmsg == "nextView()" ) {
qDebug("nextView()");
emit nextView();
return;
}
bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
if (!res)
res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data );
if (!res)
res = mDisplayDetails->appMessage( cmsg, data );
// if (!res)
// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
}
bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
{
mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
- return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid);
+ // maybe we are sending to KA/Pi fom a different worldd...
+ // it may be that the QAplication::desktop()->width() values in KA/Pi are not the same as in our application
+ // for that reason we send the current QApplication::desktop()->width() to KA/Pi
+ return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(QString::number ( QApplication::desktop()->width() ));
}
bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
{
QStringList list4, list5, list6;
mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
}
bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email)
{
mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email);
}
bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
{
QStringList list4, list5, list6;
mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
}
bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid)
{
mDisplayDetails->setSourceChannel("");
return mDisplayDetails->sendMessageToTarget("", name, email, uid);
}
bool ExternalAppHandler::requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
{
mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel);
return mBirthdayListFromKAPITransfer->sendMessageToTarget(sessionuid);
}
bool ExternalAppHandler::returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6)
{
mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel);
return mBirthdayListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
}