-rw-r--r-- | korganizer/koprefs.cpp | 6 | ||||
-rw-r--r-- | korganizer/koprefs.h | 3 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 134 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 1 |
4 files changed, 144 insertions, 0 deletions
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index c28da9a..716a125 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -77,6 +77,12 @@ KOPrefs::KOPrefs() : | |||
77 | mJornalViewFont = QFont("helvetica",12); | 77 | mJornalViewFont = QFont("helvetica",12); |
78 | 78 | ||
79 | KPrefs::setCurrentGroup("General"); | 79 | KPrefs::setCurrentGroup("General"); |
80 | |||
81 | |||
82 | addItemString("Ex2PhoneDevice",&mEx2PhoneDevice,"/dev/ircomm"); | ||
83 | addItemString("Ex2PhoneConnection",&mEx2PhoneConnection,"irda"); | ||
84 | addItemString("Ex2PhoneModel",&mEx2PhoneModel,"6310i"); | ||
85 | |||
80 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); | 86 | addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); |
81 | 87 | ||
82 | addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); | 88 | addItemBool("ShowIconNewTodo",&mShowIconNewTodo,true); |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index d9ac851..a1ba8b3 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -210,6 +210,9 @@ class KOPrefs : public KPimPrefs | |||
210 | QString mPhoneDevice; | 210 | QString mPhoneDevice; |
211 | QString mPhoneConnection; | 211 | QString mPhoneConnection; |
212 | QString mPhoneModel; | 212 | QString mPhoneModel; |
213 | QString mEx2PhoneDevice; | ||
214 | QString mEx2PhoneConnection; | ||
215 | QString mEx2PhoneModel; | ||
213 | 216 | ||
214 | int mLastSyncTime; | 217 | int mLastSyncTime; |
215 | int mSyncAlgoPrefs; | 218 | int mSyncAlgoPrefs; |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index de94b8c..ef73a78 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -13,6 +13,8 @@ | |||
13 | #include <qapp.h> | 13 | #include <qapp.h> |
14 | #include <qfileinfo.h> | 14 | #include <qfileinfo.h> |
15 | #include <qlabel.h> | 15 | #include <qlabel.h> |
16 | #include <qspinbox.h> | ||
17 | #include <qcheckbox.h> | ||
16 | #include <qmap.h> | 18 | #include <qmap.h> |
17 | #include <qwmatrix.h> | 19 | #include <qwmatrix.h> |
18 | #include <qtextbrowser.h> | 20 | #include <qtextbrowser.h> |
@@ -35,6 +37,7 @@ | |||
35 | #endif | 37 | #endif |
36 | #include <libkcal/calendarlocal.h> | 38 | #include <libkcal/calendarlocal.h> |
37 | #include <libkcal/todo.h> | 39 | #include <libkcal/todo.h> |
40 | #include <libkcal/phoneformat.h> | ||
38 | #include <libkdepim/ksyncprofile.h> | 41 | #include <libkdepim/ksyncprofile.h> |
39 | #include <libkcal/kincidenceformatter.h> | 42 | #include <libkcal/kincidenceformatter.h> |
40 | #include <libkdepim/kpimglobalprefs.h> | 43 | #include <libkdepim/kpimglobalprefs.h> |
@@ -66,6 +69,55 @@ using namespace KCal; | |||
66 | #endif | 69 | #endif |
67 | #include "mainwindow.h" | 70 | #include "mainwindow.h" |
68 | 71 | ||
72 | class KOex2phonePrefs : public QDialog | ||
73 | { | ||
74 | public: | ||
75 | KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : | ||
76 | QDialog( parent, name, true ) | ||
77 | { | ||
78 | setCaption( i18n("Export to phone options") ); | ||
79 | QVBoxLayout* lay = new QVBoxLayout( this ); | ||
80 | lay->setSpacing( 3 ); | ||
81 | lay->setMargin( 3 ); | ||
82 | |||
83 | lay->addWidget(new QLabel( i18n("Please read phone sync howto to\nknow more about the connection settings."), this ) ); | ||
84 | QHBox* temphb; | ||
85 | temphb = new QHBox( this ); | ||
86 | new QLabel( i18n("I/O device: "), temphb ); | ||
87 | mPhoneDevice = new QLineEdit( temphb); | ||
88 | lay->addWidget( temphb ); | ||
89 | temphb = new QHBox( this ); | ||
90 | new QLabel( i18n("Connection: "), temphb ); | ||
91 | mPhoneConnection = new QLineEdit( temphb); | ||
92 | lay->addWidget( temphb ); | ||
93 | temphb = new QHBox( this ); | ||
94 | new QLabel( i18n("Model(opt.): "), temphb ); | ||
95 | mPhoneModel = new QLineEdit( temphb); | ||
96 | lay->addWidget( temphb ); | ||
97 | mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); | ||
98 | mWriteBackFuture->setChecked( true ); | ||
99 | lay->addWidget( mWriteBackFuture ); | ||
100 | temphb = new QHBox( this ); | ||
101 | new QLabel( i18n("Max. weeks in future: ") , temphb ); | ||
102 | mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); | ||
103 | mWriteBackFutureWeeks->setValue( 8 ); | ||
104 | lay->addWidget( temphb ); | ||
105 | QPushButton * ok = new QPushButton( i18n("Export!"), this ); | ||
106 | lay->addWidget( ok ); | ||
107 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | ||
108 | lay->addWidget( cancel ); | ||
109 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | ||
110 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | ||
111 | resize( 220, 220 ); | ||
112 | |||
113 | } | ||
114 | |||
115 | public: | ||
116 | QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; | ||
117 | QCheckBox* mWriteBackFuture; | ||
118 | QSpinBox* mWriteBackFutureWeeks; | ||
119 | }; | ||
120 | |||
69 | int globalFlagBlockStartup; | 121 | int globalFlagBlockStartup; |
70 | MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : | 122 | MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : |
71 | QMainWindow( parent, name ) | 123 | QMainWindow( parent, name ) |
@@ -653,6 +705,15 @@ void MainWindow::initActions() | |||
653 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, | 705 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, |
654 | this ); | 706 | this ); |
655 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); | 707 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); |
708 | |||
709 | |||
710 | //LR | ||
711 | QPopupMenu *ex2phone = new QPopupMenu( this ); | ||
712 | ex2phone->insertItem(i18n("Complete calendar..."), 1 ); | ||
713 | ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); | ||
714 | connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); | ||
715 | importMenu->insertItem( i18n("Export to phone"), ex2phone ); | ||
716 | |||
656 | importMenu->insertSeparator(); | 717 | importMenu->insertSeparator(); |
657 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, | 718 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, |
658 | this ); | 719 | this ); |
@@ -1087,6 +1148,78 @@ void MainWindow::slotSyncMenu( int action ) | |||
1087 | delete temp; | 1148 | delete temp; |
1088 | mBlockSaveFlag = false; | 1149 | mBlockSaveFlag = false; |
1089 | } | 1150 | } |
1151 | void MainWindow::exportToPhone( int mode ) | ||
1152 | { | ||
1153 | |||
1154 | //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); | ||
1155 | //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); | ||
1156 | KOex2phonePrefs ex2phone; | ||
1157 | ex2phone.mPhoneConnection->setText( KOPrefs::instance()->mEx2PhoneConnection ); | ||
1158 | ex2phone.mPhoneDevice->setText( KOPrefs::instance()->mEx2PhoneDevice ); | ||
1159 | ex2phone.mPhoneModel->setText( KOPrefs::instance()->mEx2PhoneModel ); | ||
1160 | |||
1161 | if ( !ex2phone.exec() ) { | ||
1162 | return; | ||
1163 | } | ||
1164 | KOPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); | ||
1165 | KOPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); | ||
1166 | KOPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); | ||
1167 | |||
1168 | int inFuture = 0; | ||
1169 | if ( ex2phone.mWriteBackFuture->isChecked() ) | ||
1170 | inFuture = ex2phone.mWriteBackFutureWeeks->value(); | ||
1171 | QPtrList<Incidence> delSel; | ||
1172 | if ( mode == 1 ) | ||
1173 | delSel = mCalendar->rawIncidences(); | ||
1174 | if ( mode == 2 ) | ||
1175 | delSel = mCalendar->incidences(); | ||
1176 | CalendarLocal* cal = new CalendarLocal(); | ||
1177 | cal->setLocalTime(); | ||
1178 | Incidence *incidence = delSel.first(); | ||
1179 | QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); | ||
1180 | QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); | ||
1181 | while ( incidence ) { | ||
1182 | if ( incidence->type() != "journal" ) { | ||
1183 | bool add = true; | ||
1184 | if ( inFuture ) { | ||
1185 | QDateTime dt; | ||
1186 | if ( incidence->type() == "Todo" ) { | ||
1187 | Todo * t = (Todo*)incidence; | ||
1188 | if ( t->hasDueDate() ) | ||
1189 | dt = t->dtDue(); | ||
1190 | else | ||
1191 | dt = cur.addSecs( 62 ); | ||
1192 | } | ||
1193 | else { | ||
1194 | bool ok; | ||
1195 | dt = incidence->getNextOccurence( cur, &ok ); | ||
1196 | if ( !ok ) | ||
1197 | dt = cur.addSecs( -62 ); | ||
1198 | } | ||
1199 | if ( dt < cur || dt > end ) { | ||
1200 | add = false; | ||
1201 | } | ||
1202 | } | ||
1203 | if ( add ) { | ||
1204 | Incidence *in = incidence->clone(); | ||
1205 | cal->addIncidence( in ); | ||
1206 | } | ||
1207 | } | ||
1208 | incidence = delSel.next(); | ||
1209 | } | ||
1210 | PhoneFormat::writeConfig( KOPrefs::instance()->mEx2PhoneDevice, | ||
1211 | KOPrefs::instance()->mEx2PhoneConnection, | ||
1212 | KOPrefs::instance()->mEx2PhoneModel ); | ||
1213 | |||
1214 | setCaption( i18n("Writing to phone...")); | ||
1215 | if ( PhoneFormat::writeToPhone( cal ) ) | ||
1216 | setCaption( i18n("Export to phone successful!")); | ||
1217 | else | ||
1218 | setCaption( i18n("Error exporting to phone!")); | ||
1219 | delete cal; | ||
1220 | } | ||
1221 | |||
1222 | |||
1090 | void MainWindow::setDefaultPreferences() | 1223 | void MainWindow::setDefaultPreferences() |
1091 | { | 1224 | { |
1092 | KOPrefs *p = KOPrefs::instance(); | 1225 | KOPrefs *p = KOPrefs::instance(); |
@@ -1094,6 +1227,7 @@ void MainWindow::setDefaultPreferences() | |||
1094 | p->mCompactDialogs = true; | 1227 | p->mCompactDialogs = true; |
1095 | p->mConfirm = true; | 1228 | p->mConfirm = true; |
1096 | // p->mEnableQuickTodo = false; | 1229 | // p->mEnableQuickTodo = false; |
1230 | |||
1097 | } | 1231 | } |
1098 | 1232 | ||
1099 | QString MainWindow::resourcePath() | 1233 | QString MainWindow::resourcePath() |
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 7b24b88..74c7f45 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h | |||
@@ -144,6 +144,7 @@ class MainWindow : public QMainWindow | |||
144 | void exportVCalendar(); | 144 | void exportVCalendar(); |
145 | void fillFilterMenu(); | 145 | void fillFilterMenu(); |
146 | void selectFilter( int ); | 146 | void selectFilter( int ); |
147 | void exportToPhone( int ); | ||
147 | 148 | ||
148 | void slotSyncMenu( int ); | 149 | void slotSyncMenu( int ); |
149 | void confSync(); | 150 | void confSync(); |