summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kaddressbookE.pro2
-rw-r--r--korganizer/koeventviewer.cpp10
-rw-r--r--libkcal/kincidenceformatter.cpp328
-rw-r--r--libkcal/kincidenceformatter.h42
-rw-r--r--libkcal/libkcalE.pro2
-rw-r--r--libkdepim/libkdepimE.pro6
-rwxr-xr-xsetZaurus324
7 files changed, 405 insertions, 9 deletions
diff --git a/kaddressbook/kaddressbookE.pro b/kaddressbook/kaddressbookE.pro
index c027895..7eb85fd 100644
--- a/kaddressbook/kaddressbookE.pro
+++ b/kaddressbook/kaddressbookE.pro
@@ -3,25 +3,25 @@ CONFIG += qt warn_on
TARGET = kapi
OBJECTS_DIR = obj/$(PLATFORM)
MOC_DIR = moc/$(PLATFORM)
DESTDIR=$(QPEDIR)/bin
INCLUDEPATH += . ./details ./features ./xxport ../libkdepim ../microkde ../microkde/kdecore ../microkde/kutils ../microkde/kio/kfile ../microkde/kio/kio ../microkde/kdeui ../microkde/kresources ../kabc ../qtcompat ../ interfaces $(QPEDIR)/include
DEFINES += KAB_EMBEDDED KAB_NOSPLITTER
#DEFINES += KORG_NODND KORG_NOPLUGINS KORG_NOKABC KORG_NOARCHIVE KORG_NOMAIL
#DEFINES += KORG_NOPRINTER KORG_NODCOP KORG_NOKALARMD KORG_NORESOURCEVIEW KORG_NOSPLITTER
#DEFINES += KORG_NOLVALTERNATION
-#LIBS += -lmicrokdepim
+LIBS += -lmicrokdepim
#LIBS += -lmicrokcal
LIBS += -lmicrokde
LIBS += -lmicroqtcompat
LIBS += -lmicrokabc
LIBS += -lqpe
LIBS += -ljpeg
LIBS += $(QTOPIALIB)
LIBS += -L$(QPEDIR)/lib
LIBS += -Wl,-export-dynamic
LIBS += $(GCC3EXTRALIB1)
LIBS += $(GCC3EXTRALIB2)
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index 948047a..e938e4e 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -26,42 +26,42 @@
#include <klocale.h>
#include <kapplication.h>
#include <libkcal/event.h>
#include <libkcal/todo.h>
#include <kdebug.h>
#include <kiconloader.h>
#include <krun.h>
#include <kglobal.h>
#include <kprocess.h>
#include "koprefs.h"
-#include <libkdepim/addresseeview.h>
#include <kabc/stdaddressbook.h>
#ifndef KORG_NODCOP
#include <dcopclient.h>
#include "korganizer.h"
#include "koprefs.h"
#include "actionmanager.h"
#endif
#include "koeventviewer.h"
-#ifndef KORG_NOKABC
-#include <kabc/stdaddressbook.h>
-#define size count
-#endif
+//#ifndef KORG_NOKABC
+//#include <kabc/stdaddressbook.h>
+//#define size count
+//#endif
#ifdef DESKTOP_VERSION
#include <kabc/addresseedialog.h>
+#include <kabc/addresseeview.h>
#else //DESKTOP_VERSION
#include <externalapphandler.h>
#include <qtopia/qcopenvelope_qws.h>
#endif //DESKTOP_VERSION
KOEventViewer::KOEventViewer(QWidget *parent,const char *name)
: QTextBrowser(parent,name)
{
mSyncMode = false;
mColorMode = 0;
}
diff --git a/libkcal/kincidenceformatter.cpp b/libkcal/kincidenceformatter.cpp
new file mode 100644
index 0000000..2c45f21
--- a/dev/null
+++ b/libkcal/kincidenceformatter.cpp
@@ -0,0 +1,328 @@
+#include "kincidenceformatter.h"
+#include <kstaticdeleter.h>
+#include <kglobal.h>
+#include <klocale.h>
+#ifdef DEKTOP_VERSION
+#include <kabc/stdaddressbook.h>
+#define size count
+#endif
+
+KIncidenceFormatter* KIncidenceFormatter::mInstance = 0;
+static KStaticDeleter<KIncidenceFormatter> insd;
+
+QString KIncidenceFormatter::getFormattedText( Incidence * inc )
+{
+// #ifndef QT_NO_INPUTDIALOG
+// return QInputDialog::getItem( caption, label, items, current, editable );
+// #else
+// return QString::null;
+// #endif
+ mText = "";
+ if ( inc->type() == "Event" )
+ setEvent((Event *) inc );
+ else if ( inc->type() == "Todo" )
+ setTodo((Todo *) inc );
+ return mText;
+}
+
+KIncidenceFormatter* KIncidenceFormatter::instance()
+{
+ if (!mInstance) {
+ mInstance = insd.setObject(new KIncidenceFormatter());
+ }
+ return mInstance;
+}
+KIncidenceFormatter::~KIncidenceFormatter()
+{
+ if (mInstance == this)
+ mInstance = insd.setObject(0);
+ //qDebug("KIncidenceFormatter::~KIncidenceFormatter ");
+}
+KIncidenceFormatter::KIncidenceFormatter()
+{
+ mColorMode = 0;
+}
+void KIncidenceFormatter::setEvent(Event *event)
+{
+ int mode = 0;
+ mCurrentIncidence = event;
+ bool shortDate = true;
+ if ( mode == 0 ) {
+ addTag("h3",event->summary());
+ }
+ else {
+ if ( mColorMode == 1 ) {
+ mText +="<font color=\"#00A000\">";
+ }
+ if ( mColorMode == 2 ) {
+ mText +="<font color=\"#C00000\">";
+ }
+ // mText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>";
+ if ( mode == 1 ) {
+ addTag("h2",i18n( "Local: " ) +event->summary());
+ } else {
+ addTag("h2",i18n( "Remote: " ) +event->summary());
+ }
+ addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) );
+ if ( mColorMode )
+ mText += "</font>";
+ }
+ if (event->cancelled ()) {
+ mText +="<font color=\"#B00000\">";
+ addTag("i",i18n("This event has been cancelled!"));
+ mText.append("<br>");
+ mText += "</font>";
+ }
+ if (!event->location().isEmpty()) {
+ addTag("b",i18n("Location: "));
+ mText.append(event->location()+"<br>");
+ }
+ if (event->doesFloat()) {
+ if (event->isMultiDay()) {
+ mText.append(i18n("<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>")
+ .arg(event->dtStartDateStr(shortDate))
+ .arg(event->dtEndDateStr(shortDate)));
+ } else {
+ mText.append(i18n("<p><b>On:</b> %1</p>").arg(event->dtStartDateStr( shortDate )));
+ }
+ } else {
+ if (event->isMultiDay()) {
+ mText.append(i18n("<p><b>From:</b> %1</p> ")
+ .arg(event->dtStartStr( shortDate)));
+ mText.append(i18n("<p><b>To:</b> %1</p>")
+ .arg(event->dtEndStr(shortDate)));
+ } else {
+ mText.append(i18n("<p><b>On:</b> %1</p> ")
+ .arg(event->dtStartDateStr( shortDate )));
+ mText.append(i18n("<p><b>From:</b> %1 <b>To:</b> %2</p>")
+ .arg(event->dtStartTimeStr())
+ .arg(event->dtEndTimeStr()));
+ }
+ }
+
+ if (event->recurrence()->doesRecur()) {
+
+ QString recurText = event->recurrence()->recurrenceText();
+ addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>");
+ bool last;
+ QDate start = QDate::currentDate();
+ QDate next;
+ next = event->recurrence()->getPreviousDate( start , &last );
+ if ( !last ) {
+ next = event->recurrence()->getNextDate( start.addDays( - 1 ) );
+ addTag("p",i18n("Next recurrence is on: ")+ KGlobal::locale()->formatDate( next, shortDate ) );
+ //addTag("p", KGlobal::locale()->formatDate( next, shortDate ));
+ } else {
+ addTag("p",i18n("<b>Last recurrence was on:</b>") );
+ addTag("p", KGlobal::locale()->formatDate( next, shortDate ));
+ }
+ }
+
+
+ if (event->isAlarmEnabled()) {
+ Alarm *alarm =event->alarms().first() ;
+ QDateTime t = alarm->time();
+ int min = t.secsTo( event->dtStart() )/60;
+ QString s =i18n("(%1 min before)").arg( min );
+ addTag("p",i18n("<b>Alarm on: </b>") + s + ": "+KGlobal::locale()->formatDateTime( t, shortDate ));
+ //addTag("p", KGlobal::locale()->formatDateTime( t, shortDate ));
+ //addTag("p",s);
+ }
+
+ addTag("p",i18n("<b>Access: </b>") +event->secrecyStr() );
+ // mText.append(event->secrecyStr()+"<br>");
+ formatCategories(event);
+ if (!event->description().isEmpty()) {
+ addTag("p",i18n("<b>Details: </b>"));
+ addTag("p",event->description());
+ }
+
+
+ formatReadOnly(event);
+ formatAttendees(event);
+
+
+}
+
+void KIncidenceFormatter::setTodo(Todo *event )
+{
+ int mode = 0;
+ mCurrentIncidence = event;
+ bool shortDate = true;
+ if (mode == 0 )
+ addTag("h3",event->summary());
+ else {
+ if ( mColorMode == 1 ) {
+ mText +="<font color=\"#00A000\">";
+ }
+ if ( mColorMode == 2 ) {
+ mText +="<font color=\"#B00000\">";
+ }
+ if ( mode == 1 ) {
+ addTag("h2",i18n( "Local: " ) +event->summary());
+ } else {
+ addTag("h2",i18n( "Remote: " ) +event->summary());
+ }
+ addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) );
+ if ( mColorMode )
+ mText += "</font>";
+ }
+ if (event->cancelled ()) {
+ mText +="<font color=\"#B00000\">";
+ addTag("i",i18n("This todo has been cancelled!"));
+ mText.append("<br>");
+ mText += "</font>";
+ }
+
+ if (!event->location().isEmpty()) {
+ addTag("b",i18n("Location: "));
+ mText.append(event->location()+"<br>");
+ }
+ if (event->hasDueDate()) {
+ mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(shortDate)));
+ }
+ mText.append(i18n("<p><b>Priority:</b> %2</p>")
+ .arg(QString::number(event->priority())));
+
+ mText.append(i18n("<p><i>%1 % completed</i></p>")
+ .arg(event->percentComplete()));
+ addTag("p",i18n("<b>Access: </b>") +event->secrecyStr() );
+ formatCategories(event);
+ if (!event->description().isEmpty()) {
+ addTag("p",i18n("<b>Details: </b>"));
+ addTag("p",event->description());
+ }
+
+
+
+ formatReadOnly(event);
+ formatAttendees(event);
+
+}
+
+void KIncidenceFormatter::setJournal(Journal* )
+{
+
+}
+
+void KIncidenceFormatter::formatCategories(Incidence *event)
+{
+ if (!event->categoriesStr().isEmpty()) {
+ addTag("p",i18n("<b>Categories: </b>")+event->categoriesStr() );
+ //mText.append(event->categoriesStr());
+ }
+}
+void KIncidenceFormatter::addTag(const QString & tag,const QString & text)
+{
+ int number=text.contains("\n");
+ QString str = "<" + tag + ">";
+ QString tmpText=text;
+ QString tmpStr=str;
+ if(number !=-1)
+ {
+ if (number > 0) {
+ int pos=0;
+ QString tmp;
+ for(int i=0;i<=number;i++) {
+ pos=tmpText.find("\n");
+ tmp=tmpText.left(pos);
+ tmpText=tmpText.right(tmpText.length()-pos-1);
+ tmpStr+=tmp+"<br>";
+ }
+ }
+ else tmpStr += tmpText;
+ tmpStr+="</" + tag + ">";
+ mText.append(tmpStr);
+ }
+ else
+ {
+ str += text + "</" + tag + ">";
+ mText.append(str);
+ }
+}
+
+void KIncidenceFormatter::formatAttendees(Incidence *event)
+{
+ QPtrList<Attendee> attendees = event->attendees();
+ if (attendees.count()) {
+ QString iconPath = KGlobal::iconLoader()->iconPath("mailappt",KIcon::Small);
+ addTag("h3",i18n("Organizer"));
+ mText.append("<ul><li>");
+#if 0
+ //ndef KORG_NOKABC
+
+ KABC::AddressBook *add_book = KABC::StdAddressBook::self();
+ KABC::Addressee::List addressList;
+ addressList = add_book->findByEmail(event->organizer());
+ KABC::Addressee o = addressList.first();
+ if (!o.isEmpty() && addressList.size()<2) {
+ mText += "<a href=\"uid:" + o.uid() + "\">";
+ mText += o.formattedName();
+ mText += "</a>\n";
+ } else {
+ mText.append(event->organizer());
+ }
+#else
+ mText.append(event->organizer());
+#endif
+ if (iconPath) {
+ mText += " <a href=\"mailto:" + event->organizer() + "\">";
+ mText += "<IMG src=\"" + iconPath + "\">";
+ mText += "</a>\n";
+ }
+ mText.append("</li></ul>");
+
+ addTag("h3",i18n("Attendees"));
+ Attendee *a;
+ mText.append("<ul>");
+ for(a=attendees.first();a;a=attendees.next()) {
+#if 0
+//ndef KORG_NOKABC
+ if (a->name().isEmpty()) {
+ addressList = add_book->findByEmail(a->email());
+ KABC::Addressee o = addressList.first();
+ if (!o.isEmpty() && addressList.size()<2) {
+ mText += "<a href=\"uid:" + o.uid() + "\">";
+ mText += o.formattedName();
+ mText += "</a>\n";
+ } else {
+ mText += "<li>";
+ mText.append(a->email());
+ mText += "\n";
+ }
+ } else {
+ mText += "<li><a href=\"uid:" + a->uid() + "\">";
+ if (!a->name().isEmpty()) mText += a->name();
+ else mText += a->email();
+ mText += "</a>\n";
+ }
+#else
+ //qDebug("nokabc ");
+ mText += "<li><a href=\"uid:" + a->uid() + "\">";
+ if (!a->name().isEmpty()) mText += a->name();
+ else mText += a->email();
+ mText += "</a>\n";
+#endif
+
+ if (!a->email().isEmpty()) {
+ if (iconPath) {
+ mText += "<a href=\"mailto:" + a->name() +" "+ "<" + a->email() + ">" + "\">";
+ mText += "<IMG src=\"" + iconPath + "\">";
+ mText += "</a>\n";
+ }
+ }
+ if (a->status() != Attendee::NeedsAction )
+ mText +="[" + a->statusStr() + "] ";
+ if (a->role() == Attendee::Chair )
+ mText +="(" + a->roleStr().left(1) + ".)";
+ }
+ mText.append("</li></ul>");
+ }
+}
+
+void KIncidenceFormatter::formatReadOnly(Incidence *event)
+{
+ if (event->isReadOnly()) {
+ addTag("p","<em>(" + i18n("read-only") + ")</em>");
+ }
+}
diff --git a/libkcal/kincidenceformatter.h b/libkcal/kincidenceformatter.h
new file mode 100644
index 0000000..6165a9f
--- a/dev/null
+++ b/libkcal/kincidenceformatter.h
@@ -0,0 +1,42 @@
+#ifndef KINCIDENCENFORMATTER_H
+#define KINCIDENCENFORMATTER_H
+
+#include <qstring.h>
+#include <qobject.h>
+
+#include "incidence.h"
+#include "event.h"
+#include "todo.h"
+#include "journal.h"
+
+using namespace KCal;
+
+class KIncidenceFormatter : public QObject
+{
+ public:
+ static KIncidenceFormatter* instance();
+ KIncidenceFormatter();
+ ~KIncidenceFormatter();
+ QString getFormattedText( Incidence * inc );
+
+ void setEvent(Event *event);
+ void setTodo(Todo *event );
+ void setJournal(Journal* );
+
+ protected:
+ int mColorMode;
+ void addTag(const QString & tag,const QString & text);
+
+ void formatCategories(Incidence *event);
+ void formatAttendees(Incidence *event);
+ void formatReadOnly(Incidence *event);
+
+ private:
+ bool mSyncMode;
+
+ QString mText;
+ Incidence* mCurrentIncidence;
+ static KIncidenceFormatter* mInstance;
+};
+
+#endif
diff --git a/libkcal/libkcalE.pro b/libkcal/libkcalE.pro
index f5be980..1f5ef78 100644
--- a/libkcal/libkcalE.pro
+++ b/libkcal/libkcalE.pro
@@ -27,24 +27,25 @@ HEADERS = \
dummyscheduler.h \
duration.h \
event.h \
exceptions.h \
filestorage.h \
freebusy.h \
icaldrag.h \
icalformat.h \
icalformatimpl.h \
imipscheduler.h \
incidence.h \
incidencebase.h \
+kincidenceformatter.h \
journal.h \
period.h \
person.h \
qtopiaformat.h \
sharpformat.h \
phoneformat.h \
recurrence.h \
scheduler.h \
todo.h \
vcaldrag.h \
vcalformat.h \
versit/port.h \
@@ -64,24 +65,25 @@ SOURCES = \
dummyscheduler.cpp \
duration.cpp \
event.cpp \
exceptions.cpp \
filestorage.cpp \
freebusy.cpp \
icaldrag.cpp \
icalformat.cpp \
icalformatimpl.cpp \
imipscheduler.cpp \
incidence.cpp \
incidencebase.cpp \
+ kincidenceformatter.cpp \
journal.cpp \
period.cpp \
person.cpp \
qtopiaformat.cpp \
sharpformat.cpp \
phoneformat.cpp \
recurrence.cpp \
scheduler.cpp \
todo.cpp \
vcaldrag.cpp \
vcalformat.cpp \
versit/vcc.c \
diff --git a/libkdepim/libkdepimE.pro b/libkdepim/libkdepimE.pro
index 102d827..69980e3 100644
--- a/libkdepim/libkdepimE.pro
+++ b/libkdepim/libkdepimE.pro
@@ -1,51 +1,51 @@
TEMPLATE = lib
CONFIG += qt warn_on
TARGET = microkdepim
INCLUDEPATH += . $(KDEPIMDIR) $(KDEPIMDIR)/microkde $(KDEPIMDIR)/qtcompat $(KDEPIMDIR)/microkde/kdecore $(KDEPIMDIR)/microkde/kdeui $(QPEDIR)/include
LIBS += -lmicrokde
-LIBS += -lmicrokcal
+#LIBS += -lmicrokcal
LIBS += -L$(QPEDIR)/lib
OBJECTS_DIR = obj/$(PLATFORM)
MOC_DIR = moc/$(PLATFORM)
DESTDIR=$(QPEDIR)/lib
INTERFACES = \
HEADERS = \
categoryeditdialog.h \
categoryeditdialog_base.h \
categoryselectdialog.h \
categoryselectdialog_base.h \
externalapphandler.h \
kdateedit.h \
kdatepicker.h \
kinputdialog.h \
- kincidenceformatter.h \
kpimprefs.h \
kpimglobalprefs.h \
kprefsdialog.h \
ksyncprofile.h \
ksyncprefsdialog.h \
kcmconfigs/kcmkdepimconfig.h \
kcmconfigs/kdepimconfigwidget.h
SOURCES = \
categoryeditdialog.cpp \
categoryeditdialog_base.cpp \
categoryselectdialog.cpp \
categoryselectdialog_base.cpp \
externalapphandler.cpp \
kdateedit.cpp \
kinputdialog.cpp \
kdatepicker.cpp \
- kincidenceformatter.cpp \
kpimprefs.cpp \
kpimglobalprefs.cpp \
kprefsdialog.cpp \
ksyncprofile.cpp \
ksyncprefsdialog.cpp \
kcmconfigs/kcmkdepimconfig.cpp \
kcmconfigs/kdepimconfigwidget.cpp
+
+
diff --git a/setZaurus3 b/setZaurus3
new file mode 100755
index 0000000..2649292
--- a/dev/null
+++ b/setZaurus3
@@ -0,0 +1,24 @@
+# Settings to compile KDE-Pim/Pi with gcc 3.3.2 cross compiler for Zaurus
+# copy this dir to /opt/Qtopia/examples/
+# Now this file should be in the path /opt/Qtopia/examples/kdepim/setZaurus3
+# add the following line to ~/.bashrc without leading #
+# alias cz='source /opt/Qtopia/examples/kdepim/setZaurus3'
+# then type in terminal cz3<return> to set the variables
+# for cross-compiling
+export QPEDIR=/opt/Qtopia/sharp3
+export OPIEDIR=/kde_dev/opie
+#export BUILD_NO_OPIE_PLUGIN=1
+export BUILD_NO_QTOPIA_PLUGIN=1
+export BUILD_NO_SHARP_PLUGIN=1
+#export BUILD_NO_GAMMU=1
+export QTDIR=/opt/Qtopia/sharp3
+#insert here path to your gcc 3.3.2 compiler
+export PATH=$QTDIR/bin:/opt/cross/bin:$PATH
+export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-sharp-g++
+export PLATFORM=zaurus3
+export RELEASE_DEBUG=release
+export SHARPDTMSDK=/opt/dtm
+#export RELEASE_DEBUG=debug
+export GCC3EXTRALIB1=-lpng12
+export GCC3EXTRALIB2=-lz
+export KDEPIM_VERSION=1.9.5c \ No newline at end of file