-rw-r--r-- | korganizer/calendarview.cpp | 52 | ||||
-rw-r--r-- | korganizer/calendarview.h | 2 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 20 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.h | 1 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 5 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 11 |
6 files changed, 65 insertions, 26 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 8f05276..038da54 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -2092,195 +2092,195 @@ void CalendarView::eventChanged(Event *event) | |||
2092 | //updateUnmanagedViews(); | 2092 | //updateUnmanagedViews(); |
2093 | } | 2093 | } |
2094 | 2094 | ||
2095 | void CalendarView::eventAdded(Event *event) | 2095 | void CalendarView::eventAdded(Event *event) |
2096 | { | 2096 | { |
2097 | changeEventDisplay(event,KOGlobals::EVENTADDED); | 2097 | changeEventDisplay(event,KOGlobals::EVENTADDED); |
2098 | } | 2098 | } |
2099 | 2099 | ||
2100 | void CalendarView::eventToBeDeleted(Event *) | 2100 | void CalendarView::eventToBeDeleted(Event *) |
2101 | { | 2101 | { |
2102 | kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; | 2102 | kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; |
2103 | } | 2103 | } |
2104 | 2104 | ||
2105 | void CalendarView::eventDeleted() | 2105 | void CalendarView::eventDeleted() |
2106 | { | 2106 | { |
2107 | changeEventDisplay(0,KOGlobals::EVENTDELETED); | 2107 | changeEventDisplay(0,KOGlobals::EVENTDELETED); |
2108 | } | 2108 | } |
2109 | void CalendarView::changeTodoDisplay(Todo *which, int action) | 2109 | void CalendarView::changeTodoDisplay(Todo *which, int action) |
2110 | { | 2110 | { |
2111 | changeIncidenceDisplay((Incidence *)which, action); | 2111 | changeIncidenceDisplay((Incidence *)which, action); |
2112 | mDateNavigator->updateView(); //LR | 2112 | mDateNavigator->updateView(); //LR |
2113 | //mDialogManager->updateSearchDialog(); | 2113 | //mDialogManager->updateSearchDialog(); |
2114 | 2114 | ||
2115 | if (which) { | 2115 | if (which) { |
2116 | mViewManager->updateWNview(); | 2116 | mViewManager->updateWNview(); |
2117 | //mTodoList->updateView(); | 2117 | //mTodoList->updateView(); |
2118 | } | 2118 | } |
2119 | 2119 | ||
2120 | } | 2120 | } |
2121 | 2121 | ||
2122 | void CalendarView::changeIncidenceDisplay(Incidence *which, int action) | 2122 | void CalendarView::changeIncidenceDisplay(Incidence *which, int action) |
2123 | { | 2123 | { |
2124 | updateUnmanagedViews(); | 2124 | updateUnmanagedViews(); |
2125 | //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); | 2125 | //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); |
2126 | if ( action == KOGlobals::EVENTDELETED ) { //delete | 2126 | if ( action == KOGlobals::EVENTDELETED ) { //delete |
2127 | mCalendar->checkAlarmForIncidence( 0, true ); | 2127 | mCalendar->checkAlarmForIncidence( 0, true ); |
2128 | if ( mEventViewerDialog ) | 2128 | if ( mEventViewerDialog ) |
2129 | mEventViewerDialog->hide(); | 2129 | mEventViewerDialog->hide(); |
2130 | } | 2130 | } |
2131 | else | 2131 | else |
2132 | mCalendar->checkAlarmForIncidence( which , false ); | 2132 | mCalendar->checkAlarmForIncidence( which , false ); |
2133 | } | 2133 | } |
2134 | 2134 | ||
2135 | // most of the changeEventDisplays() right now just call the view's | 2135 | // most of the changeEventDisplays() right now just call the view's |
2136 | // total update mode, but they SHOULD be recoded to be more refresh-efficient. | 2136 | // total update mode, but they SHOULD be recoded to be more refresh-efficient. |
2137 | void CalendarView::changeEventDisplay(Event *which, int action) | 2137 | void CalendarView::changeEventDisplay(Event *which, int action) |
2138 | { | 2138 | { |
2139 | // kdDebug() << "CalendarView::changeEventDisplay" << endl; | 2139 | // kdDebug() << "CalendarView::changeEventDisplay" << endl; |
2140 | changeIncidenceDisplay((Incidence *)which, action); | 2140 | changeIncidenceDisplay((Incidence *)which, action); |
2141 | mDateNavigator->updateView(); | 2141 | mDateNavigator->updateView(); |
2142 | //mDialogManager->updateSearchDialog(); | 2142 | //mDialogManager->updateSearchDialog(); |
2143 | 2143 | ||
2144 | if (which) { | 2144 | if (which) { |
2145 | // If there is an event view visible update the display | 2145 | // If there is an event view visible update the display |
2146 | mViewManager->currentView()->changeEventDisplay(which,action); | 2146 | mViewManager->currentView()->changeEventDisplay(which,action); |
2147 | // TODO: check, if update needed | 2147 | // TODO: check, if update needed |
2148 | // if (which->getTodoStatus()) { | 2148 | // if (which->getTodoStatus()) { |
2149 | mTodoList->updateView(); | 2149 | mTodoList->updateView(); |
2150 | // } | 2150 | // } |
2151 | } else { | 2151 | } else { |
2152 | mViewManager->currentView()->updateView(); | 2152 | mViewManager->currentView()->updateView(); |
2153 | } | 2153 | } |
2154 | } | 2154 | } |
2155 | 2155 | ||
2156 | 2156 | ||
2157 | void CalendarView::updateTodoViews() | 2157 | void CalendarView::updateTodoViews() |
2158 | { | 2158 | { |
2159 | 2159 | ||
2160 | mTodoList->updateView(); | 2160 | mTodoList->updateView(); |
2161 | mViewManager->currentView()->updateView(); | 2161 | mViewManager->currentView()->updateView(); |
2162 | 2162 | ||
2163 | } | 2163 | } |
2164 | 2164 | ||
2165 | 2165 | ||
2166 | void CalendarView::updateView(const QDate &start, const QDate &end) | 2166 | void CalendarView::updateView(const QDate &start, const QDate &end) |
2167 | { | 2167 | { |
2168 | mTodoList->updateView(); | 2168 | mTodoList->updateView(); |
2169 | mViewManager->updateView(start, end); | 2169 | mViewManager->updateView(start, end); |
2170 | //mDateNavigator->updateView(); | 2170 | //mDateNavigator->updateView(); |
2171 | } | 2171 | } |
2172 | 2172 | ||
2173 | void CalendarView::updateView() | 2173 | void CalendarView::updateView() |
2174 | { | 2174 | { |
2175 | DateList tmpList = mNavigator->selectedDates(); | 2175 | DateList tmpList = mNavigator->selectedDates(); |
2176 | 2176 | ||
2177 | if ( KOPrefs::instance()->mHideNonStartedTodos ) | 2177 | if ( KOPrefs::instance()->mHideNonStartedTodos ) |
2178 | mTodoList->updateView(); | 2178 | mTodoList->updateView(); |
2179 | // We assume that the navigator only selects consecutive days. | 2179 | // We assume that the navigator only selects consecutive days. |
2180 | updateView( tmpList.first(), tmpList.last() ); | 2180 | updateView( tmpList.first(), tmpList.last() ); |
2181 | } | 2181 | } |
2182 | 2182 | ||
2183 | void CalendarView::updateUnmanagedViews() | 2183 | void CalendarView::updateUnmanagedViews() |
2184 | { | 2184 | { |
2185 | mDateNavigator->updateDayMatrix(); | 2185 | mDateNavigator->updateDayMatrix(); |
2186 | } | 2186 | } |
2187 | 2187 | ||
2188 | int CalendarView::msgItemDelete() | 2188 | int CalendarView::msgItemDelete(const QString name) |
2189 | { | 2189 | { |
2190 | return KMessageBox::warningContinueCancel(this, | 2190 | return KMessageBox::warningContinueCancel(this,name +"\n\n"+ |
2191 | i18n("This item will be\npermanently deleted."), | 2191 | i18n("This item will be\npermanently deleted."), |
2192 | i18n("KO/Pi Confirmation"),i18n("Delete")); | 2192 | i18n("KO/Pi Confirmation"),i18n("Delete")); |
2193 | } | 2193 | } |
2194 | 2194 | ||
2195 | 2195 | ||
2196 | void CalendarView::edit_cut() | 2196 | void CalendarView::edit_cut() |
2197 | { | 2197 | { |
2198 | Event *anEvent=0; | 2198 | Event *anEvent=0; |
2199 | 2199 | ||
2200 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); | 2200 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); |
2201 | 2201 | ||
2202 | if (mViewManager->currentView()->isEventView()) { | 2202 | if (mViewManager->currentView()->isEventView()) { |
2203 | if ( incidence && incidence->type() == "Event" ) { | 2203 | if ( incidence && incidence->type() == "Event" ) { |
2204 | anEvent = static_cast<Event *>(incidence); | 2204 | anEvent = static_cast<Event *>(incidence); |
2205 | } | 2205 | } |
2206 | } | 2206 | } |
2207 | 2207 | ||
2208 | if (!anEvent) { | 2208 | if (!anEvent) { |
2209 | KNotifyClient::beep(); | 2209 | KNotifyClient::beep(); |
2210 | return; | 2210 | return; |
2211 | } | 2211 | } |
2212 | DndFactory factory( mCalendar ); | 2212 | DndFactory factory( mCalendar ); |
2213 | factory.cutEvent(anEvent); | 2213 | factory.cutEvent(anEvent); |
2214 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); | 2214 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); |
2215 | } | 2215 | } |
2216 | 2216 | ||
2217 | void CalendarView::edit_copy() | 2217 | void CalendarView::edit_copy() |
2218 | { | 2218 | { |
2219 | Event *anEvent=0; | 2219 | Event *anEvent=0; |
2220 | 2220 | ||
2221 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); | 2221 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); |
2222 | 2222 | ||
2223 | if (mViewManager->currentView()->isEventView()) { | 2223 | if (mViewManager->currentView()->isEventView()) { |
2224 | if ( incidence && incidence->type() == "Event" ) { | 2224 | if ( incidence && incidence->type() == "Event" ) { |
2225 | anEvent = static_cast<Event *>(incidence); | 2225 | anEvent = static_cast<Event *>(incidence); |
2226 | } | 2226 | } |
2227 | } | 2227 | } |
2228 | 2228 | ||
2229 | if (!anEvent) { | 2229 | if (!anEvent) { |
2230 | KNotifyClient::beep(); | 2230 | KNotifyClient::beep(); |
2231 | return; | 2231 | return; |
2232 | } | 2232 | } |
2233 | DndFactory factory( mCalendar ); | 2233 | DndFactory factory( mCalendar ); |
2234 | factory.copyEvent(anEvent); | 2234 | factory.copyEvent(anEvent); |
2235 | } | 2235 | } |
2236 | 2236 | ||
2237 | void CalendarView::edit_paste() | 2237 | void CalendarView::edit_paste() |
2238 | { | 2238 | { |
2239 | QDate date = mNavigator->selectedDates().first(); | 2239 | QDate date = mNavigator->selectedDates().first(); |
2240 | 2240 | ||
2241 | DndFactory factory( mCalendar ); | 2241 | DndFactory factory( mCalendar ); |
2242 | Event *pastedEvent = factory.pasteEvent( date ); | 2242 | Event *pastedEvent = factory.pasteEvent( date ); |
2243 | 2243 | ||
2244 | changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); | 2244 | changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); |
2245 | } | 2245 | } |
2246 | 2246 | ||
2247 | void CalendarView::edit_options() | 2247 | void CalendarView::edit_options() |
2248 | { | 2248 | { |
2249 | mDialogManager->showOptionsDialog(); | 2249 | mDialogManager->showOptionsDialog(); |
2250 | //writeSettings(); | 2250 | //writeSettings(); |
2251 | } | 2251 | } |
2252 | 2252 | ||
2253 | 2253 | ||
2254 | void CalendarView::slotSelectPickerDate( QDate d) | 2254 | void CalendarView::slotSelectPickerDate( QDate d) |
2255 | { | 2255 | { |
2256 | mDateFrame->hide(); | 2256 | mDateFrame->hide(); |
2257 | if ( mDatePickerMode == 1 ) { | 2257 | if ( mDatePickerMode == 1 ) { |
2258 | mNavigator->slotDaySelect( d ); | 2258 | mNavigator->slotDaySelect( d ); |
2259 | } else if ( mDatePickerMode == 2 ) { | 2259 | } else if ( mDatePickerMode == 2 ) { |
2260 | if ( mMoveIncidence->type() == "Todo" ) { | 2260 | if ( mMoveIncidence->type() == "Todo" ) { |
2261 | Todo * to = (Todo *) mMoveIncidence; | 2261 | Todo * to = (Todo *) mMoveIncidence; |
2262 | QTime tim; | 2262 | QTime tim; |
2263 | if ( to->hasDueDate() ) | 2263 | if ( to->hasDueDate() ) |
2264 | tim = to->dtDue().time(); | 2264 | tim = to->dtDue().time(); |
2265 | else { | 2265 | else { |
2266 | tim = QTime ( 0,0,0 ); | 2266 | tim = QTime ( 0,0,0 ); |
2267 | to->setFloats( true ); | 2267 | to->setFloats( true ); |
2268 | to->setHasDueDate( true ); | 2268 | to->setHasDueDate( true ); |
2269 | } | 2269 | } |
2270 | QDateTime dt ( d,tim ); | 2270 | QDateTime dt ( d,tim ); |
2271 | to->setDtDue( dt ); | 2271 | to->setDtDue( dt ); |
2272 | todoChanged( to ); | 2272 | todoChanged( to ); |
2273 | } else { | 2273 | } else { |
2274 | if ( mMoveIncidence->doesRecur() ) { | 2274 | if ( mMoveIncidence->doesRecur() ) { |
2275 | #if 0 | 2275 | #if 0 |
2276 | // PENDING implement this | 2276 | // PENDING implement this |
2277 | Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); | 2277 | Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); |
2278 | mCalendar()->addIncidence( newInc ); | 2278 | mCalendar()->addIncidence( newInc ); |
2279 | if ( mMoveIncidence->type() == "Todo" ) | 2279 | if ( mMoveIncidence->type() == "Todo" ) |
2280 | emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); | 2280 | emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); |
2281 | else | 2281 | else |
2282 | emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); | 2282 | emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); |
2283 | mMoveIncidence = newInc; | 2283 | mMoveIncidence = newInc; |
2284 | 2284 | ||
2285 | #endif | 2285 | #endif |
2286 | } | 2286 | } |
@@ -2795,226 +2795,229 @@ void CalendarView::showJournal( Journal *jour ) | |||
2795 | // } | 2795 | // } |
2796 | 2796 | ||
2797 | void CalendarView::appointment_show() | 2797 | void CalendarView::appointment_show() |
2798 | { | 2798 | { |
2799 | Event *anEvent = 0; | 2799 | Event *anEvent = 0; |
2800 | 2800 | ||
2801 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); | 2801 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); |
2802 | 2802 | ||
2803 | if (mViewManager->currentView()->isEventView()) { | 2803 | if (mViewManager->currentView()->isEventView()) { |
2804 | if ( incidence && incidence->type() == "Event" ) { | 2804 | if ( incidence && incidence->type() == "Event" ) { |
2805 | anEvent = static_cast<Event *>(incidence); | 2805 | anEvent = static_cast<Event *>(incidence); |
2806 | } | 2806 | } |
2807 | } | 2807 | } |
2808 | 2808 | ||
2809 | if (!anEvent) { | 2809 | if (!anEvent) { |
2810 | KNotifyClient::beep(); | 2810 | KNotifyClient::beep(); |
2811 | return; | 2811 | return; |
2812 | } | 2812 | } |
2813 | 2813 | ||
2814 | showEvent(anEvent); | 2814 | showEvent(anEvent); |
2815 | } | 2815 | } |
2816 | 2816 | ||
2817 | void CalendarView::appointment_edit() | 2817 | void CalendarView::appointment_edit() |
2818 | { | 2818 | { |
2819 | Event *anEvent = 0; | 2819 | Event *anEvent = 0; |
2820 | 2820 | ||
2821 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); | 2821 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); |
2822 | 2822 | ||
2823 | if (mViewManager->currentView()->isEventView()) { | 2823 | if (mViewManager->currentView()->isEventView()) { |
2824 | if ( incidence && incidence->type() == "Event" ) { | 2824 | if ( incidence && incidence->type() == "Event" ) { |
2825 | anEvent = static_cast<Event *>(incidence); | 2825 | anEvent = static_cast<Event *>(incidence); |
2826 | } | 2826 | } |
2827 | } | 2827 | } |
2828 | 2828 | ||
2829 | if (!anEvent) { | 2829 | if (!anEvent) { |
2830 | KNotifyClient::beep(); | 2830 | KNotifyClient::beep(); |
2831 | return; | 2831 | return; |
2832 | } | 2832 | } |
2833 | 2833 | ||
2834 | editEvent(anEvent); | 2834 | editEvent(anEvent); |
2835 | } | 2835 | } |
2836 | 2836 | ||
2837 | void CalendarView::appointment_delete() | 2837 | void CalendarView::appointment_delete() |
2838 | { | 2838 | { |
2839 | Event *anEvent = 0; | 2839 | Event *anEvent = 0; |
2840 | 2840 | ||
2841 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); | 2841 | Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); |
2842 | 2842 | ||
2843 | if (mViewManager->currentView()->isEventView()) { | 2843 | if (mViewManager->currentView()->isEventView()) { |
2844 | if ( incidence && incidence->type() == "Event" ) { | 2844 | if ( incidence && incidence->type() == "Event" ) { |
2845 | anEvent = static_cast<Event *>(incidence); | 2845 | anEvent = static_cast<Event *>(incidence); |
2846 | } | 2846 | } |
2847 | } | 2847 | } |
2848 | 2848 | ||
2849 | if (!anEvent) { | 2849 | if (!anEvent) { |
2850 | KNotifyClient::beep(); | 2850 | KNotifyClient::beep(); |
2851 | return; | 2851 | return; |
2852 | } | 2852 | } |
2853 | 2853 | ||
2854 | deleteEvent(anEvent); | 2854 | deleteEvent(anEvent); |
2855 | } | 2855 | } |
2856 | 2856 | ||
2857 | void CalendarView::todo_resub( Todo * parent, Todo * sub ) | 2857 | void CalendarView::todo_resub( Todo * parent, Todo * sub ) |
2858 | { | 2858 | { |
2859 | if (!sub) return; | 2859 | if (!sub) return; |
2860 | if (!parent) return; | 2860 | if (!parent) return; |
2861 | if ( sub->relatedTo() ) | 2861 | if ( sub->relatedTo() ) |
2862 | sub->relatedTo()->removeRelation(sub); | 2862 | sub->relatedTo()->removeRelation(sub); |
2863 | sub->setRelatedTo(parent); | 2863 | sub->setRelatedTo(parent); |
2864 | sub->setRelatedToUid(parent->uid()); | 2864 | sub->setRelatedToUid(parent->uid()); |
2865 | parent->addRelation(sub); | 2865 | parent->addRelation(sub); |
2866 | sub->updated(); | 2866 | sub->updated(); |
2867 | parent->updated(); | 2867 | parent->updated(); |
2868 | setModified(true); | 2868 | setModified(true); |
2869 | updateView(); | 2869 | updateView(); |
2870 | } | 2870 | } |
2871 | void CalendarView::todo_unsub(Todo *anTodo ) | 2871 | void CalendarView::todo_unsub(Todo *anTodo ) |
2872 | { | 2872 | { |
2873 | // Todo *anTodo = selectedTodo(); | 2873 | // Todo *anTodo = selectedTodo(); |
2874 | if (!anTodo) return; | 2874 | if (!anTodo) return; |
2875 | if (!anTodo->relatedTo()) return; | 2875 | if (!anTodo->relatedTo()) return; |
2876 | anTodo->relatedTo()->removeRelation(anTodo); | 2876 | anTodo->relatedTo()->removeRelation(anTodo); |
2877 | anTodo->setRelatedTo(0); | 2877 | anTodo->setRelatedTo(0); |
2878 | anTodo->updated(); | 2878 | anTodo->updated(); |
2879 | anTodo->setRelatedToUid(""); | 2879 | anTodo->setRelatedToUid(""); |
2880 | setModified(true); | 2880 | setModified(true); |
2881 | updateView(); | 2881 | updateView(); |
2882 | } | 2882 | } |
2883 | 2883 | ||
2884 | void CalendarView::deleteTodo(Todo *todo) | 2884 | void CalendarView::deleteTodo(Todo *todo) |
2885 | { | 2885 | { |
2886 | if (!todo) { | 2886 | if (!todo) { |
2887 | KNotifyClient::beep(); | 2887 | KNotifyClient::beep(); |
2888 | return; | 2888 | return; |
2889 | } | 2889 | } |
2890 | if (KOPrefs::instance()->mConfirm) { | 2890 | if (KOPrefs::instance()->mConfirm) { |
2891 | switch (msgItemDelete()) { | 2891 | QString text = todo->summary().left(20); |
2892 | if (!todo->relations().isEmpty()) { | ||
2893 | text += i18n("\nhas sub-todos.\nAll completed sub-todos\nwill be deleted as well!"); | ||
2894 | |||
2895 | } | ||
2896 | switch (msgItemDelete(text)) { | ||
2892 | case KMessageBox::Continue: // OK | 2897 | case KMessageBox::Continue: // OK |
2898 | bool deleteT = false; | ||
2893 | if (!todo->relations().isEmpty()) { | 2899 | if (!todo->relations().isEmpty()) { |
2894 | KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), | 2900 | deleteT = removeCompletedSubTodos( todo ); |
2895 | i18n("Delete To-Do")); | 2901 | } |
2896 | } else { | 2902 | // deleteT == true: todo already deleted in removeCompletedSubTodos |
2903 | if ( !deleteT ) { | ||
2897 | checkExternalId( todo ); | 2904 | checkExternalId( todo ); |
2898 | calendar()->deleteTodo(todo); | 2905 | calendar()->deleteTodo(todo); |
2899 | changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); | 2906 | changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); |
2900 | updateView(); | 2907 | updateView(); |
2901 | } | 2908 | } |
2902 | break; | 2909 | break; |
2903 | } // switch | 2910 | } // switch |
2904 | } else { | 2911 | } else { |
2905 | if (!todo->relations().isEmpty()) { | 2912 | checkExternalId( todo ); |
2906 | KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), | 2913 | mCalendar->deleteTodo(todo); |
2907 | i18n("Delete To-Do")); | 2914 | changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); |
2908 | } else { | 2915 | updateView(); |
2909 | checkExternalId( todo ); | ||
2910 | mCalendar->deleteTodo(todo); | ||
2911 | changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); | ||
2912 | updateView(); | ||
2913 | } | ||
2914 | } | 2916 | } |
2917 | |||
2915 | emit updateSearchDialog(); | 2918 | emit updateSearchDialog(); |
2916 | } | 2919 | } |
2917 | void CalendarView::deleteJournal(Journal *jour) | 2920 | void CalendarView::deleteJournal(Journal *jour) |
2918 | { | 2921 | { |
2919 | if (!jour) { | 2922 | if (!jour) { |
2920 | KNotifyClient::beep(); | 2923 | KNotifyClient::beep(); |
2921 | return; | 2924 | return; |
2922 | } | 2925 | } |
2923 | if (KOPrefs::instance()->mConfirm) { | 2926 | if (KOPrefs::instance()->mConfirm) { |
2924 | switch (msgItemDelete()) { | 2927 | switch (msgItemDelete( jour->description().left(20))) { |
2925 | case KMessageBox::Continue: // OK | 2928 | case KMessageBox::Continue: // OK |
2926 | calendar()->deleteJournal(jour); | 2929 | calendar()->deleteJournal(jour); |
2927 | updateView(); | 2930 | updateView(); |
2928 | break; | 2931 | break; |
2929 | } // switch | 2932 | } // switch |
2930 | } else { | 2933 | } else { |
2931 | calendar()->deleteJournal(jour);; | 2934 | calendar()->deleteJournal(jour);; |
2932 | updateView(); | 2935 | updateView(); |
2933 | } | 2936 | } |
2934 | emit updateSearchDialog(); | 2937 | emit updateSearchDialog(); |
2935 | } | 2938 | } |
2936 | 2939 | ||
2937 | void CalendarView::deleteEvent(Event *anEvent) | 2940 | void CalendarView::deleteEvent(Event *anEvent) |
2938 | { | 2941 | { |
2939 | if (!anEvent) { | 2942 | if (!anEvent) { |
2940 | KNotifyClient::beep(); | 2943 | KNotifyClient::beep(); |
2941 | return; | 2944 | return; |
2942 | } | 2945 | } |
2943 | 2946 | ||
2944 | if (anEvent->recurrence()->doesRecur()) { | 2947 | if (anEvent->recurrence()->doesRecur()) { |
2945 | QDate itemDate = mViewManager->currentSelectionDate(); | 2948 | QDate itemDate = mViewManager->currentSelectionDate(); |
2946 | int km; | 2949 | int km; |
2947 | if (!itemDate.isValid()) { | 2950 | if (!itemDate.isValid()) { |
2948 | //kdDebug() << "Date Not Valid" << endl; | 2951 | //kdDebug() << "Date Not Valid" << endl; |
2949 | if (KOPrefs::instance()->mConfirm) { | 2952 | if (KOPrefs::instance()->mConfirm) { |
2950 | km = KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) + | 2953 | km = KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) + |
2951 | i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"), | 2954 | i18n("\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?"), |
2952 | i18n("KO/Pi Confirmation"),i18n("Delete All")); | 2955 | i18n("KO/Pi Confirmation"),i18n("Delete All")); |
2953 | if ( km == KMessageBox::Continue ) | 2956 | if ( km == KMessageBox::Continue ) |
2954 | km = KMessageBox::No; // No = all below | 2957 | km = KMessageBox::No; // No = all below |
2955 | } else | 2958 | } else |
2956 | km = KMessageBox::No; | 2959 | km = KMessageBox::No; |
2957 | } else { | 2960 | } else { |
2958 | km = KMessageBox::warningYesNoCancel(this,anEvent->summary().left(25) + | 2961 | km = KMessageBox::warningYesNoCancel(this,anEvent->summary().left(25) + |
2959 | i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+ | 2962 | i18n("\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n")+ |
2960 | KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"), | 2963 | KGlobal::locale()->formatDate(itemDate)+i18n(" ?\n\nDelete:\n"), |
2961 | i18n("KO/Pi Confirmation"),i18n("Current"), | 2964 | i18n("KO/Pi Confirmation"),i18n("Current"), |
2962 | i18n("All")); | 2965 | i18n("All")); |
2963 | } | 2966 | } |
2964 | switch(km) { | 2967 | switch(km) { |
2965 | 2968 | ||
2966 | case KMessageBox::No: // Continue // all | 2969 | case KMessageBox::No: // Continue // all |
2967 | //qDebug("KMessageBox::No "); | 2970 | //qDebug("KMessageBox::No "); |
2968 | if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) | 2971 | if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) |
2969 | schedule(Scheduler::Cancel,anEvent); | 2972 | schedule(Scheduler::Cancel,anEvent); |
2970 | 2973 | ||
2971 | checkExternalId( anEvent); | 2974 | checkExternalId( anEvent); |
2972 | mCalendar->deleteEvent(anEvent); | 2975 | mCalendar->deleteEvent(anEvent); |
2973 | changeEventDisplay(anEvent,KOGlobals::EVENTDELETED); | 2976 | changeEventDisplay(anEvent,KOGlobals::EVENTDELETED); |
2974 | break; | 2977 | break; |
2975 | 2978 | ||
2976 | // Disabled because it does not work | 2979 | // Disabled because it does not work |
2977 | //#if 0 | 2980 | //#if 0 |
2978 | case KMessageBox::Yes: // just this one | 2981 | case KMessageBox::Yes: // just this one |
2979 | //QDate qd = mNavigator->selectedDates().first(); | 2982 | //QDate qd = mNavigator->selectedDates().first(); |
2980 | //if (!qd.isValid()) { | 2983 | //if (!qd.isValid()) { |
2981 | // kdDebug() << "no date selected, or invalid date" << endl; | 2984 | // kdDebug() << "no date selected, or invalid date" << endl; |
2982 | // KNotifyClient::beep(); | 2985 | // KNotifyClient::beep(); |
2983 | // return; | 2986 | // return; |
2984 | //} | 2987 | //} |
2985 | //while (!anEvent->recursOn(qd)) qd = qd.addDays(1); | 2988 | //while (!anEvent->recursOn(qd)) qd = qd.addDays(1); |
2986 | if (itemDate!=QDate(1,1,1) || itemDate.isValid()) { | 2989 | if (itemDate!=QDate(1,1,1) || itemDate.isValid()) { |
2987 | anEvent->addExDate(itemDate); | 2990 | anEvent->addExDate(itemDate); |
2988 | int duration = anEvent->recurrence()->duration(); | 2991 | int duration = anEvent->recurrence()->duration(); |
2989 | if ( duration > 0 ) { | 2992 | if ( duration > 0 ) { |
2990 | anEvent->recurrence()->setDuration( duration - 1 ); | 2993 | anEvent->recurrence()->setDuration( duration - 1 ); |
2991 | } | 2994 | } |
2992 | changeEventDisplay(anEvent, KOGlobals::EVENTEDITED); | 2995 | changeEventDisplay(anEvent, KOGlobals::EVENTEDITED); |
2993 | } | 2996 | } |
2994 | break; | 2997 | break; |
2995 | //#endif | 2998 | //#endif |
2996 | } // switch | 2999 | } // switch |
2997 | } else { | 3000 | } else { |
2998 | if (KOPrefs::instance()->mConfirm) { | 3001 | if (KOPrefs::instance()->mConfirm) { |
2999 | switch (KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) + | 3002 | switch (KMessageBox::warningContinueCancel(this,anEvent->summary().left(25) + |
3000 | i18n("\nAre you sure you want\nto delete this event?"), | 3003 | i18n("\nAre you sure you want\nto delete this event?"), |
3001 | i18n("KO/Pi Confirmation"),i18n("Delete"))) { | 3004 | i18n("KO/Pi Confirmation"),i18n("Delete"))) { |
3002 | case KMessageBox::Continue: // OK | 3005 | case KMessageBox::Continue: // OK |
3003 | if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) | 3006 | if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) |
3004 | schedule(Scheduler::Cancel,anEvent); | 3007 | schedule(Scheduler::Cancel,anEvent); |
3005 | checkExternalId( anEvent); | 3008 | checkExternalId( anEvent); |
3006 | mCalendar->deleteEvent(anEvent); | 3009 | mCalendar->deleteEvent(anEvent); |
3007 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); | 3010 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); |
3008 | break; | 3011 | break; |
3009 | } // switch | 3012 | } // switch |
3010 | } else { | 3013 | } else { |
3011 | if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) | 3014 | if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) |
3012 | schedule(Scheduler::Cancel,anEvent); | 3015 | schedule(Scheduler::Cancel,anEvent); |
3013 | checkExternalId( anEvent); | 3016 | checkExternalId( anEvent); |
3014 | mCalendar->deleteEvent(anEvent); | 3017 | mCalendar->deleteEvent(anEvent); |
3015 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); | 3018 | changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); |
3016 | } | 3019 | } |
3017 | } // if-else | 3020 | } // if-else |
3018 | emit updateSearchDialog(); | 3021 | emit updateSearchDialog(); |
3019 | } | 3022 | } |
3020 | 3023 | ||
@@ -3390,192 +3393,209 @@ void CalendarView::adaptNavigationUnits() | |||
3390 | void CalendarView::processMainViewSelection( Incidence *incidence ) | 3393 | void CalendarView::processMainViewSelection( Incidence *incidence ) |
3391 | { | 3394 | { |
3392 | if ( incidence ) mTodoList->clearSelection(); | 3395 | if ( incidence ) mTodoList->clearSelection(); |
3393 | processIncidenceSelection( incidence ); | 3396 | processIncidenceSelection( incidence ); |
3394 | } | 3397 | } |
3395 | 3398 | ||
3396 | void CalendarView::processTodoListSelection( Incidence *incidence ) | 3399 | void CalendarView::processTodoListSelection( Incidence *incidence ) |
3397 | { | 3400 | { |
3398 | if ( incidence && mViewManager->currentView() ) { | 3401 | if ( incidence && mViewManager->currentView() ) { |
3399 | mViewManager->currentView()->clearSelection(); | 3402 | mViewManager->currentView()->clearSelection(); |
3400 | } | 3403 | } |
3401 | processIncidenceSelection( incidence ); | 3404 | processIncidenceSelection( incidence ); |
3402 | } | 3405 | } |
3403 | 3406 | ||
3404 | void CalendarView::processIncidenceSelection( Incidence *incidence ) | 3407 | void CalendarView::processIncidenceSelection( Incidence *incidence ) |
3405 | { | 3408 | { |
3406 | if ( incidence == mSelectedIncidence ) return; | 3409 | if ( incidence == mSelectedIncidence ) return; |
3407 | 3410 | ||
3408 | mSelectedIncidence = incidence; | 3411 | mSelectedIncidence = incidence; |
3409 | 3412 | ||
3410 | emit incidenceSelected( mSelectedIncidence ); | 3413 | emit incidenceSelected( mSelectedIncidence ); |
3411 | 3414 | ||
3412 | if ( incidence && incidence->type() == "Event" ) { | 3415 | if ( incidence && incidence->type() == "Event" ) { |
3413 | Event *event = static_cast<Event *>( incidence ); | 3416 | Event *event = static_cast<Event *>( incidence ); |
3414 | if ( event->organizer() == KOPrefs::instance()->email() ) { | 3417 | if ( event->organizer() == KOPrefs::instance()->email() ) { |
3415 | emit organizerEventsSelected( true ); | 3418 | emit organizerEventsSelected( true ); |
3416 | } else { | 3419 | } else { |
3417 | emit organizerEventsSelected(false); | 3420 | emit organizerEventsSelected(false); |
3418 | } | 3421 | } |
3419 | if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, | 3422 | if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, |
3420 | KOPrefs::instance()->email() ) ) { | 3423 | KOPrefs::instance()->email() ) ) { |
3421 | emit groupEventsSelected( true ); | 3424 | emit groupEventsSelected( true ); |
3422 | } else { | 3425 | } else { |
3423 | emit groupEventsSelected(false); | 3426 | emit groupEventsSelected(false); |
3424 | } | 3427 | } |
3425 | return; | 3428 | return; |
3426 | } else { | 3429 | } else { |
3427 | if ( incidence && incidence->type() == "Todo" ) { | 3430 | if ( incidence && incidence->type() == "Todo" ) { |
3428 | emit todoSelected( true ); | 3431 | emit todoSelected( true ); |
3429 | Todo *event = static_cast<Todo *>( incidence ); | 3432 | Todo *event = static_cast<Todo *>( incidence ); |
3430 | if ( event->organizer() == KOPrefs::instance()->email() ) { | 3433 | if ( event->organizer() == KOPrefs::instance()->email() ) { |
3431 | emit organizerEventsSelected( true ); | 3434 | emit organizerEventsSelected( true ); |
3432 | } else { | 3435 | } else { |
3433 | emit organizerEventsSelected(false); | 3436 | emit organizerEventsSelected(false); |
3434 | } | 3437 | } |
3435 | if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, | 3438 | if (event->attendeeByMails( KOPrefs::instance()->mAdditionalMails, |
3436 | KOPrefs::instance()->email() ) ) { | 3439 | KOPrefs::instance()->email() ) ) { |
3437 | emit groupEventsSelected( true ); | 3440 | emit groupEventsSelected( true ); |
3438 | } else { | 3441 | } else { |
3439 | emit groupEventsSelected(false); | 3442 | emit groupEventsSelected(false); |
3440 | } | 3443 | } |
3441 | return; | 3444 | return; |
3442 | } else { | 3445 | } else { |
3443 | emit todoSelected( false ); | 3446 | emit todoSelected( false ); |
3444 | emit organizerEventsSelected(false); | 3447 | emit organizerEventsSelected(false); |
3445 | emit groupEventsSelected(false); | 3448 | emit groupEventsSelected(false); |
3446 | } | 3449 | } |
3447 | return; | 3450 | return; |
3448 | } | 3451 | } |
3449 | 3452 | ||
3450 | /* if ( incidence && incidence->type() == "Todo" ) { | 3453 | /* if ( incidence && incidence->type() == "Todo" ) { |
3451 | emit todoSelected( true ); | 3454 | emit todoSelected( true ); |
3452 | } else { | 3455 | } else { |
3453 | emit todoSelected( false ); | 3456 | emit todoSelected( false ); |
3454 | }*/ | 3457 | }*/ |
3455 | } | 3458 | } |
3456 | 3459 | ||
3457 | 3460 | ||
3458 | void CalendarView::checkClipboard() | 3461 | void CalendarView::checkClipboard() |
3459 | { | 3462 | { |
3460 | #ifndef KORG_NODND | 3463 | #ifndef KORG_NODND |
3461 | if (ICalDrag::canDecode(QApplication::clipboard()->data())) { | 3464 | if (ICalDrag::canDecode(QApplication::clipboard()->data())) { |
3462 | emit pasteEnabled(true); | 3465 | emit pasteEnabled(true); |
3463 | } else { | 3466 | } else { |
3464 | emit pasteEnabled(false); | 3467 | emit pasteEnabled(false); |
3465 | } | 3468 | } |
3466 | #endif | 3469 | #endif |
3467 | } | 3470 | } |
3468 | 3471 | ||
3469 | void CalendarView::showDates(const DateList &selectedDates) | 3472 | void CalendarView::showDates(const DateList &selectedDates) |
3470 | { | 3473 | { |
3471 | // kdDebug() << "CalendarView::selectDates()" << endl; | 3474 | // kdDebug() << "CalendarView::selectDates()" << endl; |
3472 | 3475 | ||
3473 | 3476 | ||
3474 | if ( !mBlockShowDates ) { | 3477 | if ( !mBlockShowDates ) { |
3475 | if ( mViewManager->currentView() ) { | 3478 | if ( mViewManager->currentView() ) { |
3476 | updateView( selectedDates.first(), selectedDates.last() ); | 3479 | updateView( selectedDates.first(), selectedDates.last() ); |
3477 | } else { | 3480 | } else { |
3478 | mViewManager->showAgendaView(); | 3481 | mViewManager->showAgendaView(); |
3479 | } | 3482 | } |
3480 | } | 3483 | } |
3481 | 3484 | ||
3482 | QString selDates; | 3485 | QString selDates; |
3483 | selDates = KGlobal::locale()->formatDate( selectedDates.first(), true); | 3486 | selDates = KGlobal::locale()->formatDate( selectedDates.first(), true); |
3484 | if (selectedDates.first() < selectedDates.last() ) | 3487 | if (selectedDates.first() < selectedDates.last() ) |
3485 | selDates += " - " + KGlobal::locale()->formatDate( selectedDates.last(),true); | 3488 | selDates += " - " + KGlobal::locale()->formatDate( selectedDates.last(),true); |
3489 | else { | ||
3490 | QString addString; | ||
3491 | if ( selectedDates.first() == QDateTime::currentDateTime().date() ) | ||
3492 | addString = i18n("Today"); | ||
3493 | else if ( selectedDates.first() == QDateTime::currentDateTime().date().addDays(1) ) | ||
3494 | addString = i18n("Tomorrow"); | ||
3495 | else if ( selectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) ) | ||
3496 | addString = i18n("Yesterday"); | ||
3497 | else if ( selectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) ) | ||
3498 | addString = i18n("Day before yesterday"); | ||
3499 | else if ( selectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) | ||
3500 | addString = i18n("Day after tomorrow"); | ||
3501 | if ( !addString.isEmpty() ) { | ||
3502 | topLevelWidget()->setCaption( addString+", " + selDates ); | ||
3503 | return; | ||
3504 | } | ||
3505 | } | ||
3486 | topLevelWidget()->setCaption( i18n("Dates: ") + selDates ); | 3506 | topLevelWidget()->setCaption( i18n("Dates: ") + selDates ); |
3487 | 3507 | ||
3488 | } | 3508 | } |
3489 | 3509 | ||
3490 | QPtrList<CalFilter> CalendarView::filters() | 3510 | QPtrList<CalFilter> CalendarView::filters() |
3491 | { | 3511 | { |
3492 | return mFilters; | 3512 | return mFilters; |
3493 | 3513 | ||
3494 | } | 3514 | } |
3495 | void CalendarView::editFilters() | 3515 | void CalendarView::editFilters() |
3496 | { | 3516 | { |
3497 | // kdDebug() << "CalendarView::editFilters()" << endl; | 3517 | // kdDebug() << "CalendarView::editFilters()" << endl; |
3498 | 3518 | ||
3499 | CalFilter *filter = mFilters.first(); | 3519 | CalFilter *filter = mFilters.first(); |
3500 | while(filter) { | 3520 | while(filter) { |
3501 | kdDebug() << " Filter: " << filter->name() << endl; | 3521 | kdDebug() << " Filter: " << filter->name() << endl; |
3502 | filter = mFilters.next(); | 3522 | filter = mFilters.next(); |
3503 | } | 3523 | } |
3504 | 3524 | ||
3505 | mDialogManager->showFilterEditDialog(&mFilters); | 3525 | mDialogManager->showFilterEditDialog(&mFilters); |
3506 | } | 3526 | } |
3507 | void CalendarView::toggleFilter() | 3527 | void CalendarView::toggleFilter() |
3508 | { | 3528 | { |
3509 | showFilter(! mFilterView->isVisible()); | 3529 | showFilter(! mFilterView->isVisible()); |
3510 | } | 3530 | } |
3511 | 3531 | ||
3512 | KOFilterView *CalendarView::filterView() | 3532 | KOFilterView *CalendarView::filterView() |
3513 | { | 3533 | { |
3514 | return mFilterView; | 3534 | return mFilterView; |
3515 | } | 3535 | } |
3516 | void CalendarView::selectFilter( int fil ) | 3536 | void CalendarView::selectFilter( int fil ) |
3517 | { | 3537 | { |
3518 | mFilterView->setSelectedFilter( fil ); | 3538 | mFilterView->setSelectedFilter( fil ); |
3519 | } | 3539 | } |
3520 | void CalendarView::showFilter(bool visible) | 3540 | void CalendarView::showFilter(bool visible) |
3521 | { | 3541 | { |
3522 | if (visible) mFilterView->show(); | 3542 | if (visible) mFilterView->show(); |
3523 | else mFilterView->hide(); | 3543 | else mFilterView->hide(); |
3524 | } | 3544 | } |
3525 | void CalendarView::toggleFilerEnabled( ) | 3545 | void CalendarView::toggleFilerEnabled( ) |
3526 | { | 3546 | { |
3527 | mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() ); | 3547 | mFilterView->setFiltersEnabled ( !mFilterView->filtersEnabled() ); |
3528 | if ( !mFilterView->filtersEnabled() ) | 3548 | if ( !mFilterView->filtersEnabled() ) |
3529 | topLevelWidget()->setCaption( i18n("Filter disabled ") ); | 3549 | topLevelWidget()->setCaption( i18n("Filter disabled ") ); |
3530 | 3550 | ||
3531 | } | 3551 | } |
3532 | void CalendarView::updateFilter() | 3552 | void CalendarView::updateFilter() |
3533 | { | 3553 | { |
3534 | CalFilter *filter = mFilterView->selectedFilter(); | 3554 | CalFilter *filter = mFilterView->selectedFilter(); |
3535 | if (filter) { | 3555 | if (filter) { |
3536 | if (mFilterView->filtersEnabled()) { | 3556 | if (mFilterView->filtersEnabled()) { |
3537 | topLevelWidget()->setCaption( i18n("Filter selected: ")+filter->name() ); | 3557 | topLevelWidget()->setCaption( i18n("Filter selected: ")+filter->name() ); |
3538 | filter->setEnabled(true); | 3558 | filter->setEnabled(true); |
3539 | } | 3559 | } |
3540 | else filter->setEnabled(false); | 3560 | else filter->setEnabled(false); |
3541 | mCalendar->setFilter(filter); | 3561 | mCalendar->setFilter(filter); |
3542 | updateView(); | 3562 | updateView(); |
3543 | } | 3563 | } |
3544 | } | 3564 | } |
3545 | 3565 | ||
3546 | void CalendarView::filterEdited() | 3566 | void CalendarView::filterEdited() |
3547 | { | 3567 | { |
3548 | mFilterView->updateFilters(); | 3568 | mFilterView->updateFilters(); |
3549 | updateFilter(); | 3569 | updateFilter(); |
3550 | writeSettings(); | 3570 | writeSettings(); |
3551 | } | 3571 | } |
3552 | 3572 | ||
3553 | 3573 | ||
3554 | void CalendarView::takeOverEvent() | 3574 | void CalendarView::takeOverEvent() |
3555 | { | 3575 | { |
3556 | Incidence *incidence = currentSelection(); | 3576 | Incidence *incidence = currentSelection(); |
3557 | 3577 | ||
3558 | if (!incidence) return; | 3578 | if (!incidence) return; |
3559 | 3579 | ||
3560 | incidence->setOrganizer(KOPrefs::instance()->email()); | 3580 | incidence->setOrganizer(KOPrefs::instance()->email()); |
3561 | incidence->recreate(); | 3581 | incidence->recreate(); |
3562 | incidence->setReadOnly(false); | 3582 | incidence->setReadOnly(false); |
3563 | 3583 | ||
3564 | updateView(); | 3584 | updateView(); |
3565 | } | 3585 | } |
3566 | 3586 | ||
3567 | void CalendarView::takeOverCalendar() | 3587 | void CalendarView::takeOverCalendar() |
3568 | { | 3588 | { |
3569 | // TODO: Create Calendar::allIncidences() function and use it here | 3589 | // TODO: Create Calendar::allIncidences() function and use it here |
3570 | 3590 | ||
3571 | QPtrList<Event> events = mCalendar->events(); | 3591 | QPtrList<Event> events = mCalendar->events(); |
3572 | for(uint i=0; i<events.count(); ++i) { | 3592 | for(uint i=0; i<events.count(); ++i) { |
3573 | events.at(i)->setOrganizer(KOPrefs::instance()->email()); | 3593 | events.at(i)->setOrganizer(KOPrefs::instance()->email()); |
3574 | events.at(i)->recreate(); | 3594 | events.at(i)->recreate(); |
3575 | events.at(i)->setReadOnly(false); | 3595 | events.at(i)->setReadOnly(false); |
3576 | } | 3596 | } |
3577 | 3597 | ||
3578 | QPtrList<Todo> todos = mCalendar->todos(); | 3598 | QPtrList<Todo> todos = mCalendar->todos(); |
3579 | for(uint i=0; i<todos.count(); ++i) { | 3599 | for(uint i=0; i<todos.count(); ++i) { |
3580 | todos.at(i)->setOrganizer(KOPrefs::instance()->email()); | 3600 | todos.at(i)->setOrganizer(KOPrefs::instance()->email()); |
3581 | todos.at(i)->recreate(); | 3601 | todos.at(i)->recreate(); |
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index e27da9a..c8d6bdd 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -392,193 +392,193 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
392 | void toggleFilerEnabled(); | 392 | void toggleFilerEnabled(); |
393 | QPtrList<CalFilter> filters(); | 393 | QPtrList<CalFilter> filters(); |
394 | void toggleFilter(); | 394 | void toggleFilter(); |
395 | void showFilter(bool visible); | 395 | void showFilter(bool visible); |
396 | void updateFilter(); | 396 | void updateFilter(); |
397 | void filterEdited(); | 397 | void filterEdited(); |
398 | void selectFilter( int ); | 398 | void selectFilter( int ); |
399 | KOFilterView *filterView(); | 399 | KOFilterView *filterView(); |
400 | 400 | ||
401 | void showIntro(); | 401 | void showIntro(); |
402 | 402 | ||
403 | /** Move the curdatepient view date to today */ | 403 | /** Move the curdatepient view date to today */ |
404 | void goToday(); | 404 | void goToday(); |
405 | 405 | ||
406 | /** Move to the next date(s) in the current view */ | 406 | /** Move to the next date(s) in the current view */ |
407 | void goNext(); | 407 | void goNext(); |
408 | 408 | ||
409 | /** Move to the previous date(s) in the current view */ | 409 | /** Move to the previous date(s) in the current view */ |
410 | void goPrevious(); | 410 | void goPrevious(); |
411 | /** Move to the next date(s) in the current view */ | 411 | /** Move to the next date(s) in the current view */ |
412 | void goNextMonth(); | 412 | void goNextMonth(); |
413 | 413 | ||
414 | /** Move to the previous date(s) in the current view */ | 414 | /** Move to the previous date(s) in the current view */ |
415 | void goPreviousMonth(); | 415 | void goPreviousMonth(); |
416 | 416 | ||
417 | void toggleExpand(); | 417 | void toggleExpand(); |
418 | void toggleDateNavigatorWidget(); | 418 | void toggleDateNavigatorWidget(); |
419 | void toggleAllDaySize(); | 419 | void toggleAllDaySize(); |
420 | void dialogClosing(Incidence *); | 420 | void dialogClosing(Incidence *); |
421 | 421 | ||
422 | /** Look for new messages in the inbox */ | 422 | /** Look for new messages in the inbox */ |
423 | void lookForIncomingMessages(); | 423 | void lookForIncomingMessages(); |
424 | /** Look for new messages in the outbox */ | 424 | /** Look for new messages in the outbox */ |
425 | void lookForOutgoingMessages(); | 425 | void lookForOutgoingMessages(); |
426 | 426 | ||
427 | void processMainViewSelection( Incidence * ); | 427 | void processMainViewSelection( Incidence * ); |
428 | void processTodoListSelection( Incidence * ); | 428 | void processTodoListSelection( Incidence * ); |
429 | 429 | ||
430 | void processIncidenceSelection( Incidence * ); | 430 | void processIncidenceSelection( Incidence * ); |
431 | 431 | ||
432 | void purgeCompleted(); | 432 | void purgeCompleted(); |
433 | bool removeCompletedSubTodos( Todo* ); | 433 | bool removeCompletedSubTodos( Todo* ); |
434 | void slotCalendarChanged(); | 434 | void slotCalendarChanged(); |
435 | bool importBday(); | 435 | bool importBday(); |
436 | bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); | 436 | bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday ); |
437 | bool importQtopia( const QString &categoriesFile, | 437 | bool importQtopia( const QString &categoriesFile, |
438 | const QString &datebookFile, | 438 | const QString &datebookFile, |
439 | const QString &tasklistFile ); | 439 | const QString &tasklistFile ); |
440 | void syncExternal( int mode ); | 440 | void syncExternal( int mode ); |
441 | void slotSelectPickerDate( QDate ) ; | 441 | void slotSelectPickerDate( QDate ) ; |
442 | void showDatePicker( ) ; | 442 | void showDatePicker( ) ; |
443 | void moveIncidence(Incidence *) ; | 443 | void moveIncidence(Incidence *) ; |
444 | void beamIncidence(Incidence *) ; | 444 | void beamIncidence(Incidence *) ; |
445 | void beamCalendar() ; | 445 | void beamCalendar() ; |
446 | void beamFilteredCalendar() ; | 446 | void beamFilteredCalendar() ; |
447 | void beamIncidenceList(QPtrList<Incidence>) ; | 447 | void beamIncidenceList(QPtrList<Incidence>) ; |
448 | void manageCategories(); | 448 | void manageCategories(); |
449 | int addCategories(); | 449 | int addCategories(); |
450 | void removeCategories(); | 450 | void removeCategories(); |
451 | void setSyncDevice( QString ); | 451 | void setSyncDevice( QString ); |
452 | void setSyncName( QString ); | 452 | void setSyncName( QString ); |
453 | void showDay( QDate ); | 453 | void showDay( QDate ); |
454 | void undo_delete(); | 454 | void undo_delete(); |
455 | protected slots: | 455 | protected slots: |
456 | void timerAlarm(); | 456 | void timerAlarm(); |
457 | void suspendAlarm(); | 457 | void suspendAlarm(); |
458 | void beamDone( Ir *ir ); | 458 | void beamDone( Ir *ir ); |
459 | /** Select a view or adapt the current view to display the specified dates. */ | 459 | /** Select a view or adapt the current view to display the specified dates. */ |
460 | void showDates( const KCal::DateList & ); | 460 | void showDates( const KCal::DateList & ); |
461 | void selectWeekNum ( int ); | 461 | void selectWeekNum ( int ); |
462 | 462 | ||
463 | public: | 463 | public: |
464 | // show a standard warning | 464 | // show a standard warning |
465 | // returns KMsgBox::yesNoCancel() | 465 | // returns KMsgBox::yesNoCancel() |
466 | int msgCalModified(); | 466 | int msgCalModified(); |
467 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 467 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
468 | 468 | ||
469 | virtual bool syncExternal(KSyncManager* manager, QString resource); | 469 | virtual bool syncExternal(KSyncManager* manager, QString resource); |
470 | virtual void removeSyncInfo( QString syncProfile); | 470 | virtual void removeSyncInfo( QString syncProfile); |
471 | void setSyncManager(KSyncManager* manager); | 471 | void setSyncManager(KSyncManager* manager); |
472 | void setLoadedFileVersion(QDateTime); | 472 | void setLoadedFileVersion(QDateTime); |
473 | bool checkFileVersion(QString fn); | 473 | bool checkFileVersion(QString fn); |
474 | bool checkFileChanged(QString fn); | 474 | bool checkFileChanged(QString fn); |
475 | Event* getLastSyncEvent(); | 475 | Event* getLastSyncEvent(); |
476 | /** Adapt navigation units correpsonding to step size of navigation of the | 476 | /** Adapt navigation units correpsonding to step size of navigation of the |
477 | * current view. | 477 | * current view. |
478 | */ | 478 | */ |
479 | void adaptNavigationUnits(); | 479 | void adaptNavigationUnits(); |
480 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); | 480 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); |
481 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); | 481 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); |
482 | //Attendee* getYourAttendee(Event *event); | 482 | //Attendee* getYourAttendee(Event *event); |
483 | void setBlockShowDates( bool b ) { mBlockShowDates = b ;} | 483 | void setBlockShowDates( bool b ) { mBlockShowDates = b ;} |
484 | protected: | 484 | protected: |
485 | void schedule(Scheduler::Method, Incidence *incidence = 0); | 485 | void schedule(Scheduler::Method, Incidence *incidence = 0); |
486 | 486 | ||
487 | // returns KMsgBox::OKCandel() | 487 | // returns KMsgBox::OKCandel() |
488 | int msgItemDelete(); | 488 | int msgItemDelete(const QString name); |
489 | void showEventEditor(); | 489 | void showEventEditor(); |
490 | void showTodoEditor(); | 490 | void showTodoEditor(); |
491 | void writeLocale(); | 491 | void writeLocale(); |
492 | Todo *selectedTodo(); | 492 | Todo *selectedTodo(); |
493 | 493 | ||
494 | private: | 494 | private: |
495 | bool mBlockShowDates; | 495 | bool mBlockShowDates; |
496 | KSyncManager* mSyncManager; | 496 | KSyncManager* mSyncManager; |
497 | AlarmDialog * mAlarmDialog; | 497 | AlarmDialog * mAlarmDialog; |
498 | QString mAlarmNotification; | 498 | QString mAlarmNotification; |
499 | QString mSuspendAlarmNotification; | 499 | QString mSuspendAlarmNotification; |
500 | QTimer* mSuspendTimer; | 500 | QTimer* mSuspendTimer; |
501 | QTimer* mAlarmTimer; | 501 | QTimer* mAlarmTimer; |
502 | QTimer* mRecheckAlarmTimer; | 502 | QTimer* mRecheckAlarmTimer; |
503 | void computeAlarm( QString ); | 503 | void computeAlarm( QString ); |
504 | void startAlarm( QString, QString ); | 504 | void startAlarm( QString, QString ); |
505 | void setSyncEventsReadOnly(); | 505 | void setSyncEventsReadOnly(); |
506 | 506 | ||
507 | QDateTime loadedFileVersion; | 507 | QDateTime loadedFileVersion; |
508 | void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); | 508 | void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); |
509 | void checkExternalId( Incidence * inc ); | 509 | void checkExternalId( Incidence * inc ); |
510 | int mGlobalSyncMode; | 510 | int mGlobalSyncMode; |
511 | QString mCurrentSyncDevice; | 511 | QString mCurrentSyncDevice; |
512 | QString mCurrentSyncName; | 512 | QString mCurrentSyncName; |
513 | KOBeamPrefs* beamDialog; | 513 | KOBeamPrefs* beamDialog; |
514 | void init(); | 514 | void init(); |
515 | int mDatePickerMode; | 515 | int mDatePickerMode; |
516 | bool mFlagEditDescription; | 516 | bool mFlagEditDescription; |
517 | QDateTime mLastCalendarSync; | 517 | QDateTime mLastCalendarSync; |
518 | void createPrinter(); | 518 | void createPrinter(); |
519 | 519 | ||
520 | void calendarModified( bool, Calendar * ); | 520 | void calendarModified( bool, Calendar * ); |
521 | 521 | ||
522 | CalPrinter *mCalPrinter; | 522 | CalPrinter *mCalPrinter; |
523 | 523 | ||
524 | QSplitter *mPanner; | 524 | QSplitter *mPanner; |
525 | QSplitter *mLeftSplitter; | 525 | QSplitter *mLeftSplitter; |
526 | QWidget *mLeftFrame; | 526 | QWidget *mLeftFrame; |
527 | QWidgetStack *mRightFrame; | 527 | QWidgetStack *mRightFrame; |
528 | 528 | ||
529 | KDatePicker* mDatePicker; | 529 | KDatePicker* mDatePicker; |
530 | QVBox* mDateFrame; | 530 | QVBox* mDateFrame; |
531 | NavigatorBar *mNavigatorBar; | 531 | NavigatorBar *mNavigatorBar; |
532 | 532 | ||
533 | KDateNavigator *mDateNavigator; // widget showing small month view. | 533 | KDateNavigator *mDateNavigator; // widget showing small month view. |
534 | 534 | ||
535 | KOFilterView *mFilterView; | 535 | KOFilterView *mFilterView; |
536 | 536 | ||
537 | ResourceView *mResourceView; | 537 | ResourceView *mResourceView; |
538 | 538 | ||
539 | // calendar object for this viewing instance | 539 | // calendar object for this viewing instance |
540 | Calendar *mCalendar; | 540 | Calendar *mCalendar; |
541 | 541 | ||
542 | CalendarResourceManager *mResourceManager; | 542 | CalendarResourceManager *mResourceManager; |
543 | 543 | ||
544 | FileStorage *mStorage; | 544 | FileStorage *mStorage; |
545 | 545 | ||
546 | DateNavigator *mNavigator; | 546 | DateNavigator *mNavigator; |
547 | 547 | ||
548 | KOViewManager *mViewManager; | 548 | KOViewManager *mViewManager; |
549 | KODialogManager *mDialogManager; | 549 | KODialogManager *mDialogManager; |
550 | 550 | ||
551 | // Calendar filters | 551 | // Calendar filters |
552 | QPtrList<CalFilter> mFilters; | 552 | QPtrList<CalFilter> mFilters; |
553 | 553 | ||
554 | // various housekeeping variables. | 554 | // various housekeeping variables. |
555 | bool mModified; // flag indicating if calendar is modified | 555 | bool mModified; // flag indicating if calendar is modified |
556 | bool mReadOnly; // flag indicating if calendar is read-only | 556 | bool mReadOnly; // flag indicating if calendar is read-only |
557 | QDate mSaveSingleDate; | 557 | QDate mSaveSingleDate; |
558 | 558 | ||
559 | Incidence *mSelectedIncidence; | 559 | Incidence *mSelectedIncidence; |
560 | Incidence *mMoveIncidence; | 560 | Incidence *mMoveIncidence; |
561 | QDate mMoveIncidenceOldDate; | 561 | QDate mMoveIncidenceOldDate; |
562 | KOTodoView *mTodoList; | 562 | KOTodoView *mTodoList; |
563 | KOEventEditor * mEventEditor; | 563 | KOEventEditor * mEventEditor; |
564 | KOTodoEditor * mTodoEditor; | 564 | KOTodoEditor * mTodoEditor; |
565 | KOEventViewerDialog * mEventViewerDialog; | 565 | KOEventViewerDialog * mEventViewerDialog; |
566 | void keyPressEvent ( QKeyEvent *e) ; | 566 | void keyPressEvent ( QKeyEvent *e) ; |
567 | //QMap<Incidence*,KOIncidenceEditor*> mDialogList; | 567 | //QMap<Incidence*,KOIncidenceEditor*> mDialogList; |
568 | }; | 568 | }; |
569 | 569 | ||
570 | 570 | ||
571 | class CalendarViewVisitor : public Incidence::Visitor | 571 | class CalendarViewVisitor : public Incidence::Visitor |
572 | { | 572 | { |
573 | public: | 573 | public: |
574 | CalendarViewVisitor() : mView( 0 ) {} | 574 | CalendarViewVisitor() : mView( 0 ) {} |
575 | 575 | ||
576 | bool act( Incidence *incidence, CalendarView *view ) | 576 | bool act( Incidence *incidence, CalendarView *view ) |
577 | { | 577 | { |
578 | mView = view; | 578 | mView = view; |
579 | return incidence->accept( *this ); | 579 | return incidence->accept( *this ); |
580 | } | 580 | } |
581 | 581 | ||
582 | protected: | 582 | protected: |
583 | CalendarView *mView; | 583 | CalendarView *mView; |
584 | }; | 584 | }; |
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp index 94e1f4c..b4fe965 100644 --- a/korganizer/koeditorgeneral.cpp +++ b/korganizer/koeditorgeneral.cpp | |||
@@ -190,212 +190,226 @@ void KOEditorGeneral::initAlarm(QWidget *parent,QBoxLayout *topLayout) | |||
190 | mAlarmIncrCombo->insertItem(i18n("min")); | 190 | mAlarmIncrCombo->insertItem(i18n("min")); |
191 | mAlarmIncrCombo->insertItem(i18n("hou")); | 191 | mAlarmIncrCombo->insertItem(i18n("hou")); |
192 | mAlarmIncrCombo->insertItem(i18n("day")); | 192 | mAlarmIncrCombo->insertItem(i18n("day")); |
193 | mAlarmTimeEdit->setMaximumWidth( mAlarmTimeEdit->sizeHint().width() ); | 193 | mAlarmTimeEdit->setMaximumWidth( mAlarmTimeEdit->sizeHint().width() ); |
194 | mAlarmIncrCombo->setMaximumWidth( mAlarmIncrCombo->sizeHint().width() ); | 194 | mAlarmIncrCombo->setMaximumWidth( mAlarmIncrCombo->sizeHint().width() ); |
195 | } else { | 195 | } else { |
196 | mAlarmIncrCombo->insertItem(i18n("minute(s)")); | 196 | mAlarmIncrCombo->insertItem(i18n("minute(s)")); |
197 | mAlarmIncrCombo->insertItem(i18n("hour(s)")); | 197 | mAlarmIncrCombo->insertItem(i18n("hour(s)")); |
198 | mAlarmIncrCombo->insertItem(i18n("day(s)")); | 198 | mAlarmIncrCombo->insertItem(i18n("day(s)")); |
199 | } | 199 | } |
200 | 200 | ||
201 | // mAlarmIncrCombo->setMinimumHeight(20); | 201 | // mAlarmIncrCombo->setMinimumHeight(20); |
202 | alarmLayout->addWidget(mAlarmIncrCombo); | 202 | alarmLayout->addWidget(mAlarmIncrCombo); |
203 | mAlarmSoundButton = new QPushButton(parent); | 203 | mAlarmSoundButton = new QPushButton(parent); |
204 | mAlarmSoundButton->setPixmap(SmallIcon("playsound")); | 204 | mAlarmSoundButton->setPixmap(SmallIcon("playsound")); |
205 | mAlarmSoundButton->setToggleButton(true); | 205 | mAlarmSoundButton->setToggleButton(true); |
206 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); | 206 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); |
207 | connect(mAlarmSoundButton, SIGNAL(clicked()), SLOT(pickAlarmSound())); | 207 | connect(mAlarmSoundButton, SIGNAL(clicked()), SLOT(pickAlarmSound())); |
208 | alarmLayout->addWidget(mAlarmSoundButton); | 208 | alarmLayout->addWidget(mAlarmSoundButton); |
209 | 209 | ||
210 | mAlarmProgramButton = new QPushButton(parent); | 210 | mAlarmProgramButton = new QPushButton(parent); |
211 | mAlarmProgramButton->setPixmap(SmallIcon("run")); | 211 | mAlarmProgramButton->setPixmap(SmallIcon("run")); |
212 | mAlarmProgramButton->setToggleButton(true); | 212 | mAlarmProgramButton->setToggleButton(true); |
213 | QToolTip::add(mAlarmProgramButton, i18n("No program set")); | 213 | QToolTip::add(mAlarmProgramButton, i18n("No program set")); |
214 | connect(mAlarmProgramButton, SIGNAL(clicked()), SLOT(pickAlarmProgram())); | 214 | connect(mAlarmProgramButton, SIGNAL(clicked()), SLOT(pickAlarmProgram())); |
215 | alarmLayout->addWidget(mAlarmProgramButton); | 215 | alarmLayout->addWidget(mAlarmProgramButton); |
216 | mAlarmSoundButton->setMaximumWidth( mAlarmSoundButton->sizeHint().width() + 4 ); | 216 | mAlarmSoundButton->setMaximumWidth( mAlarmSoundButton->sizeHint().width() + 4 ); |
217 | mAlarmProgramButton->setMaximumWidth(mAlarmProgramButton->sizeHint().width() + 4 ); | 217 | mAlarmProgramButton->setMaximumWidth(mAlarmProgramButton->sizeHint().width() + 4 ); |
218 | // if ( KOPrefs::instance()->mCompactDialogs ) { | 218 | // if ( KOPrefs::instance()->mCompactDialogs ) { |
219 | // mAlarmSoundButton->hide(); | 219 | // mAlarmSoundButton->hide(); |
220 | // mAlarmProgramButton->hide(); | 220 | // mAlarmProgramButton->hide(); |
221 | // } | 221 | // } |
222 | } | 222 | } |
223 | 223 | ||
224 | void KOEditorGeneral::pickAlarmSound() | 224 | void KOEditorGeneral::pickAlarmSound() |
225 | { | 225 | { |
226 | 226 | ||
227 | //QString prefix = mAlarmSound; | 227 | //QString prefix = mAlarmSound; |
228 | if (!mAlarmSoundButton->isOn()) { | 228 | if (!mAlarmSoundButton->isOn()) { |
229 | //mAlarmSound = ""; | 229 | //mAlarmSound = ""; |
230 | QToolTip::remove(mAlarmSoundButton); | 230 | QToolTip::remove(mAlarmSoundButton); |
231 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); | 231 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); |
232 | mAlarmProgramButton->setOn(true); | 232 | mAlarmProgramButton->setOn(true); |
233 | mAlarmSoundButton->setOn(false); | 233 | mAlarmSoundButton->setOn(false); |
234 | } else { | 234 | } else { |
235 | QString fileName(KFileDialog::getOpenFileName(mAlarmSound, | 235 | QString fileName(KFileDialog::getOpenFileName(mAlarmSound, |
236 | i18n("*.wav|Wav Files"), 0)); | 236 | i18n("*.wav|Wav Files"), 0)); |
237 | if (!fileName.isEmpty()) { | 237 | if (!fileName.isEmpty()) { |
238 | mAlarmSound = fileName; | 238 | mAlarmSound = fileName; |
239 | QToolTip::remove(mAlarmSoundButton); | 239 | QToolTip::remove(mAlarmSoundButton); |
240 | QString dispStr = i18n("Playing '%1'").arg(fileName); | 240 | QString dispStr = i18n("Playing '%1'").arg(fileName); |
241 | QToolTip::add(mAlarmSoundButton, dispStr); | 241 | QToolTip::add(mAlarmSoundButton, dispStr); |
242 | mAlarmProgramButton->setOn(false); | 242 | mAlarmProgramButton->setOn(false); |
243 | mAlarmSoundButton->setOn(true); | 243 | mAlarmSoundButton->setOn(true); |
244 | } else { | 244 | } else { |
245 | mAlarmProgramButton->setOn(true); | 245 | mAlarmProgramButton->setOn(true); |
246 | mAlarmSoundButton->setOn(false); | 246 | mAlarmSoundButton->setOn(false); |
247 | 247 | ||
248 | } | 248 | } |
249 | } | 249 | } |
250 | 250 | ||
251 | if (mAlarmProgramButton->isOn()) | 251 | if (mAlarmProgramButton->isOn()) |
252 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + mAlarmProgram ); | 252 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + mAlarmProgram ); |
253 | if ( mAlarmSoundButton->isOn()) | 253 | if ( mAlarmSoundButton->isOn()) |
254 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio.Al.: ") + mAlarmSound ); | 254 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio.Al.: ") + mAlarmSound ); |
255 | } | 255 | } |
256 | 256 | ||
257 | void KOEditorGeneral::pickAlarmProgram() | 257 | void KOEditorGeneral::pickAlarmProgram() |
258 | { | 258 | { |
259 | if (!mAlarmProgramButton->isOn()) { | 259 | if (!mAlarmProgramButton->isOn()) { |
260 | //mAlarmProgram = ""; | 260 | //mAlarmProgram = ""; |
261 | QToolTip::remove(mAlarmProgramButton); | 261 | QToolTip::remove(mAlarmProgramButton); |
262 | QToolTip::add(mAlarmProgramButton, i18n("No program set")); | 262 | QToolTip::add(mAlarmProgramButton, i18n("No program set")); |
263 | mAlarmProgramButton->setOn(false); | 263 | mAlarmProgramButton->setOn(false); |
264 | mAlarmSoundButton->setOn(true); | 264 | mAlarmSoundButton->setOn(true); |
265 | } else { | 265 | } else { |
266 | QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm.: ") , 0)); | 266 | QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm.: ") , 0)); |
267 | if (!fileName.isEmpty()) { | 267 | if (!fileName.isEmpty()) { |
268 | mAlarmProgram = fileName; | 268 | mAlarmProgram = fileName; |
269 | QToolTip::remove(mAlarmProgramButton); | 269 | QToolTip::remove(mAlarmProgramButton); |
270 | QString dispStr = i18n("Running '%1'").arg(fileName); | 270 | QString dispStr = i18n("Running '%1'").arg(fileName); |
271 | QToolTip::add(mAlarmProgramButton, dispStr); | 271 | QToolTip::add(mAlarmProgramButton, dispStr); |
272 | mAlarmSoundButton->setOn(false); | 272 | mAlarmSoundButton->setOn(false); |
273 | mAlarmProgramButton->setOn(true); | 273 | mAlarmProgramButton->setOn(true); |
274 | } else { | 274 | } else { |
275 | mAlarmProgramButton->setOn(false); | 275 | mAlarmProgramButton->setOn(false); |
276 | mAlarmSoundButton->setOn(true); | 276 | mAlarmSoundButton->setOn(true); |
277 | } | 277 | } |
278 | } | 278 | } |
279 | if (mAlarmProgramButton->isOn()) | 279 | if (mAlarmProgramButton->isOn()) |
280 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + mAlarmProgram ); | 280 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + mAlarmProgram ); |
281 | if ( mAlarmSoundButton->isOn()) | 281 | if ( mAlarmSoundButton->isOn()) |
282 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Sound.Al.: ") + mAlarmSound ); | 282 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Sound.Al.: ") + mAlarmSound ); |
283 | } | 283 | } |
284 | 284 | ||
285 | 285 | ||
286 | QString KOEditorGeneral::getFittingPath( const QString s ) | ||
287 | { | ||
288 | int maxlen = 50; | ||
289 | if ( QApplication::desktop()->width() < 640 ) { | ||
290 | if ( QApplication::desktop()->width() < 320 ) | ||
291 | maxlen = 22; | ||
292 | else | ||
293 | maxlen = 35; | ||
294 | } | ||
295 | if ( s.length() > maxlen ) { | ||
296 | return "..."+s.right(maxlen -3); | ||
297 | } | ||
298 | return s; | ||
299 | } | ||
286 | 300 | ||
287 | void KOEditorGeneral::enableAlarmEdit(bool enable) | 301 | void KOEditorGeneral::enableAlarmEdit(bool enable) |
288 | { | 302 | { |
289 | if ( enable ) { | 303 | if ( enable ) { |
290 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { | 304 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { |
291 | mAlarmSoundButton->setOn( true ); | 305 | mAlarmSoundButton->setOn( true ); |
292 | if ( mAlarmSound.isEmpty() ) | 306 | if ( mAlarmSound.isEmpty() ) |
293 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 307 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
294 | else { | 308 | else { |
295 | if ( ! QFile::exists( mAlarmSound ) ) | 309 | if ( ! QFile::exists( mAlarmSound ) ) |
296 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 310 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
297 | } | 311 | } |
298 | } | 312 | } |
299 | if (mAlarmProgramButton->isOn()) | 313 | if (mAlarmProgramButton->isOn()) |
300 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + mAlarmProgram ); | 314 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); |
301 | if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) | 315 | if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) |
302 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Sound.Al.: ") + mAlarmSound ); | 316 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); |
303 | } | 317 | } |
304 | else { | 318 | else { |
305 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Alarm disabled")); | 319 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Alarm disabled for this item")); |
306 | 320 | ||
307 | } | 321 | } |
308 | mAlarmTimeEdit->setEnabled(enable); | 322 | mAlarmTimeEdit->setEnabled(enable); |
309 | mAlarmSoundButton->setEnabled(enable); | 323 | mAlarmSoundButton->setEnabled(enable); |
310 | mAlarmProgramButton->setEnabled(enable); | 324 | mAlarmProgramButton->setEnabled(enable); |
311 | mAlarmIncrCombo->setEnabled(enable); | 325 | mAlarmIncrCombo->setEnabled(enable); |
312 | } | 326 | } |
313 | 327 | ||
314 | void KOEditorGeneral::disableAlarmEdit(bool disable) | 328 | void KOEditorGeneral::disableAlarmEdit(bool disable) |
315 | { | 329 | { |
316 | enableAlarmEdit( !disable ); | 330 | enableAlarmEdit( !disable ); |
317 | } | 331 | } |
318 | 332 | ||
319 | void KOEditorGeneral::enableAlarm( bool enable ) | 333 | void KOEditorGeneral::enableAlarm( bool enable ) |
320 | { | 334 | { |
321 | enableAlarmEdit( enable ); | 335 | enableAlarmEdit( enable ); |
322 | } | 336 | } |
323 | 337 | ||
324 | void KOEditorGeneral::alarmDisable(bool disable) | 338 | void KOEditorGeneral::alarmDisable(bool disable) |
325 | { | 339 | { |
326 | if (!disable) { | 340 | if (!disable) { |
327 | //mAlarmBell->setEnabled(true); | 341 | //mAlarmBell->setEnabled(true); |
328 | mAlarmButton->setEnabled(true); | 342 | mAlarmButton->setEnabled(true); |
329 | } else { | 343 | } else { |
330 | //mAlarmBell->setEnabled(false); | 344 | //mAlarmBell->setEnabled(false); |
331 | mAlarmButton->setEnabled(false); | 345 | mAlarmButton->setEnabled(false); |
332 | mAlarmButton->setChecked(false); | 346 | mAlarmButton->setChecked(false); |
333 | mAlarmTimeEdit->setEnabled(false); | 347 | mAlarmTimeEdit->setEnabled(false); |
334 | mAlarmSoundButton->setEnabled(false); | 348 | mAlarmSoundButton->setEnabled(false); |
335 | mAlarmProgramButton->setEnabled(false); | 349 | mAlarmProgramButton->setEnabled(false); |
336 | mAlarmIncrCombo->setEnabled(false); | 350 | mAlarmIncrCombo->setEnabled(false); |
337 | } | 351 | } |
338 | } | 352 | } |
339 | 353 | ||
340 | void KOEditorGeneral::setCategories(const QString &str) | 354 | void KOEditorGeneral::setCategories(const QString &str) |
341 | { | 355 | { |
342 | mCategoriesLabel->setText(str); | 356 | mCategoriesLabel->setText(str); |
343 | } | 357 | } |
344 | 358 | ||
345 | void KOEditorGeneral::setDefaults(bool allDay) | 359 | void KOEditorGeneral::setDefaults(bool allDay) |
346 | { | 360 | { |
347 | #if 0 | 361 | #if 0 |
348 | mOwnerLabel->setText(i18n("Owner: ") + KOPrefs::instance()->fullName()); | 362 | mOwnerLabel->setText(i18n("Owner: ") + KOPrefs::instance()->fullName()); |
349 | #endif | 363 | #endif |
350 | 364 | ||
351 | enableAlarmEdit( !allDay ); | 365 | enableAlarmEdit( !allDay ); |
352 | 366 | ||
353 | // TODO: Implement a KPrefsComboItem to solve this in a clean way. | 367 | // TODO: Implement a KPrefsComboItem to solve this in a clean way. |
354 | int alarmTime; | 368 | int alarmTime; |
355 | int a[] = { 1,5,10,15,30,60,180, 1440 }; | 369 | int a[] = { 1,5,10,15,30,60,180, 1440 }; |
356 | int index = KOPrefs::instance()->mAlarmTime; | 370 | int index = KOPrefs::instance()->mAlarmTime; |
357 | if (index < 0 || index > 7) { | 371 | if (index < 0 || index > 7) { |
358 | alarmTime = 15; | 372 | alarmTime = 15; |
359 | } else { | 373 | } else { |
360 | alarmTime = a[index]; | 374 | alarmTime = a[index]; |
361 | } | 375 | } |
362 | mAlarmButton ->setChecked( false ); | 376 | mAlarmButton ->setChecked( false ); |
363 | mAlarmTimeEdit->setValue(alarmTime); | 377 | mAlarmTimeEdit->setValue(alarmTime); |
364 | mAlarmIncrCombo->setCurrentItem(0); | 378 | mAlarmIncrCombo->setCurrentItem(0); |
365 | enableAlarmEdit( false ); | 379 | enableAlarmEdit( false ); |
366 | //alarmDisable (false); | 380 | //alarmDisable (false); |
367 | mSecrecyCombo->setCurrentItem(Incidence::SecrecyPublic); | 381 | mSecrecyCombo->setCurrentItem(Incidence::SecrecyPublic); |
368 | mCancelBox->setChecked( false ); | 382 | mCancelBox->setChecked( false ); |
369 | mSummaryEdit->setEditText(""); | 383 | mSummaryEdit->setEditText(""); |
370 | mLocationEdit->setEditText(""); | 384 | mLocationEdit->setEditText(""); |
371 | mDescriptionEdit->setText(""); | 385 | mDescriptionEdit->setText(""); |
372 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 386 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
373 | setCategories(""); | 387 | setCategories(""); |
374 | } | 388 | } |
375 | void KOEditorGeneral::setSecrecy( int num ) | 389 | void KOEditorGeneral::setSecrecy( int num ) |
376 | { | 390 | { |
377 | mSecrecyCombo->setCurrentItem(num); | 391 | mSecrecyCombo->setCurrentItem(num); |
378 | } | 392 | } |
379 | void KOEditorGeneral::readIncidence(Incidence *event) | 393 | void KOEditorGeneral::readIncidence(Incidence *event) |
380 | { | 394 | { |
381 | 395 | ||
382 | mAlarmIncrCombo->setCurrentItem(0); | 396 | mAlarmIncrCombo->setCurrentItem(0); |
383 | mSummaryEdit->setEditText(event->summary()); | 397 | mSummaryEdit->setEditText(event->summary()); |
384 | mLocationEdit->setEditText(event->location()); | 398 | mLocationEdit->setEditText(event->location()); |
385 | mDescriptionEdit->setText(event->description()); | 399 | mDescriptionEdit->setText(event->description()); |
386 | 400 | ||
387 | #if 0 | 401 | #if 0 |
388 | // organizer information | 402 | // organizer information |
389 | mOwnerLabel->setText(i18n("Owner: ") + event->organizer()); | 403 | mOwnerLabel->setText(i18n("Owner: ") + event->organizer()); |
390 | #endif | 404 | #endif |
391 | 405 | ||
392 | enableAlarmEdit( event->isAlarmEnabled() ); | 406 | enableAlarmEdit( event->isAlarmEnabled() ); |
393 | //qDebug("KOEditorGeneral::readIncidence(Incidence *event) "); | 407 | //qDebug("KOEditorGeneral::readIncidence(Incidence *event) "); |
394 | if(!event->isAlarmEnabled()) { | 408 | if(!event->isAlarmEnabled()) { |
395 | // TODO: Implement a KPrefsComboItem to solve this in a clean way. | 409 | // TODO: Implement a KPrefsComboItem to solve this in a clean way. |
396 | int alarmTime; | 410 | int alarmTime; |
397 | int a[] = { 1,5,10,15,30,60,180, 1440 }; | 411 | int a[] = { 1,5,10,15,30,60,180, 1440 }; |
398 | int index = KOPrefs::instance()->mAlarmTime; | 412 | int index = KOPrefs::instance()->mAlarmTime; |
399 | if (index < 0 || index > 7) { | 413 | if (index < 0 || index > 7) { |
400 | alarmTime = 15; | 414 | alarmTime = 15; |
401 | } else { | 415 | } else { |
diff --git a/korganizer/koeditorgeneral.h b/korganizer/koeditorgeneral.h index c58335e..de8edaf 100644 --- a/korganizer/koeditorgeneral.h +++ b/korganizer/koeditorgeneral.h | |||
@@ -12,101 +12,102 @@ | |||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | #ifndef KOEDITORGENERAL_H | 23 | #ifndef KOEDITORGENERAL_H |
24 | #define KOEDITORGENERAL_H | 24 | #define KOEDITORGENERAL_H |
25 | 25 | ||
26 | #include <qframe.h> | 26 | #include <qframe.h> |
27 | #include <qlabel.h> | 27 | #include <qlabel.h> |
28 | #include <qcheckbox.h> | 28 | #include <qcheckbox.h> |
29 | #include <qpushbutton.h> | 29 | #include <qpushbutton.h> |
30 | #include <qgroupbox.h> | 30 | #include <qgroupbox.h> |
31 | #include <qlineedit.h> | 31 | #include <qlineedit.h> |
32 | #include <qcombobox.h> | 32 | #include <qcombobox.h> |
33 | #include <qlistview.h> | 33 | #include <qlistview.h> |
34 | #include <qradiobutton.h> | 34 | #include <qradiobutton.h> |
35 | #include <qlayout.h> | 35 | #include <qlayout.h> |
36 | #include <qspinbox.h> | 36 | #include <qspinbox.h> |
37 | 37 | ||
38 | #include <ktextedit.h> | 38 | #include <ktextedit.h> |
39 | #include <krestrictedline.h> | 39 | #include <krestrictedline.h> |
40 | 40 | ||
41 | #include <libkcal/incidence.h> | 41 | #include <libkcal/incidence.h> |
42 | 42 | ||
43 | #include "ktimeedit.h" | 43 | #include "ktimeedit.h" |
44 | 44 | ||
45 | class KDateEdit; | 45 | class KDateEdit; |
46 | class KOLocationBox; | 46 | class KOLocationBox; |
47 | using namespace KCal; | 47 | using namespace KCal; |
48 | 48 | ||
49 | class KOEditorGeneral : public QObject | 49 | class KOEditorGeneral : public QObject |
50 | { | 50 | { |
51 | Q_OBJECT | 51 | Q_OBJECT |
52 | public: | 52 | public: |
53 | KOEditorGeneral (QObject* parent=0,const char* name=0); | 53 | KOEditorGeneral (QObject* parent=0,const char* name=0); |
54 | virtual ~KOEditorGeneral(); | 54 | virtual ~KOEditorGeneral(); |
55 | void setFocusOn( int i ); | 55 | void setFocusOn( int i ); |
56 | void initHeader(QWidget *,QBoxLayout *); | 56 | void initHeader(QWidget *,QBoxLayout *); |
57 | void initDescription(QWidget *,QBoxLayout *); | 57 | void initDescription(QWidget *,QBoxLayout *); |
58 | void initSecrecy(QWidget *,QBoxLayout *); | 58 | void initSecrecy(QWidget *,QBoxLayout *); |
59 | void initCategories(QWidget *,QBoxLayout *); | 59 | void initCategories(QWidget *,QBoxLayout *); |
60 | void initAlarm(QWidget *,QBoxLayout *); | 60 | void initAlarm(QWidget *,QBoxLayout *); |
61 | 61 | ||
62 | /** Set widgets to default values */ | 62 | /** Set widgets to default values */ |
63 | void setDefaults(bool allDay); | 63 | void setDefaults(bool allDay); |
64 | /** Read event object and setup widgets accordingly */ | 64 | /** Read event object and setup widgets accordingly */ |
65 | void readIncidence(Incidence *); | 65 | void readIncidence(Incidence *); |
66 | /** Write event settings to event object */ | 66 | /** Write event settings to event object */ |
67 | void writeIncidence(Incidence *); | 67 | void writeIncidence(Incidence *); |
68 | 68 | ||
69 | /** Check if the input is valid. */ | 69 | /** Check if the input is valid. */ |
70 | bool validateInput() { return true; } | 70 | bool validateInput() { return true; } |
71 | 71 | ||
72 | void enableAlarm( bool enable ); | 72 | void enableAlarm( bool enable ); |
73 | void setSecrecy( int num ); | 73 | void setSecrecy( int num ); |
74 | public slots: | 74 | public slots: |
75 | void setCategories(const QString &); | 75 | void setCategories(const QString &); |
76 | void editCategories(); | 76 | void editCategories(); |
77 | 77 | ||
78 | protected slots: | 78 | protected slots: |
79 | void enableAlarmEdit( bool enable ); | 79 | void enableAlarmEdit( bool enable ); |
80 | void disableAlarmEdit( bool disable ); | 80 | void disableAlarmEdit( bool disable ); |
81 | void alarmDisable( bool disable ); | 81 | void alarmDisable( bool disable ); |
82 | void pickAlarmSound(); | 82 | void pickAlarmSound(); |
83 | void pickAlarmProgram(); | 83 | void pickAlarmProgram(); |
84 | 84 | ||
85 | signals: | 85 | signals: |
86 | void openCategoryDialog(); | 86 | void openCategoryDialog(); |
87 | void allAccepted(); | 87 | void allAccepted(); |
88 | 88 | ||
89 | protected: | 89 | protected: |
90 | //QLineEdit *mSummaryEdit; | 90 | //QLineEdit *mSummaryEdit; |
91 | //QLineEdit *mLocationEdit; | 91 | //QLineEdit *mLocationEdit; |
92 | KOLocationBox *mSummaryEdit; | 92 | KOLocationBox *mSummaryEdit; |
93 | KOLocationBox *mLocationEdit; | 93 | KOLocationBox *mLocationEdit; |
94 | QLabel *mAlarmBell; | 94 | QLabel *mAlarmBell; |
95 | QCheckBox *mAlarmButton; | 95 | QCheckBox *mAlarmButton; |
96 | QSpinBox *mAlarmTimeEdit; | 96 | QSpinBox *mAlarmTimeEdit; |
97 | QPushButton *mAlarmSoundButton; | 97 | QPushButton *mAlarmSoundButton; |
98 | QPushButton *mAlarmProgramButton; | 98 | QPushButton *mAlarmProgramButton; |
99 | QComboBox *mAlarmIncrCombo; | 99 | QComboBox *mAlarmIncrCombo; |
100 | KTextEdit *mDescriptionEdit; | 100 | KTextEdit *mDescriptionEdit; |
101 | QLabel *mOwnerLabel; | 101 | QLabel *mOwnerLabel; |
102 | QComboBox *mSecrecyCombo; | 102 | QComboBox *mSecrecyCombo; |
103 | QCheckBox *mCancelBox; | 103 | QCheckBox *mCancelBox; |
104 | QPushButton *mCategoriesButton; | 104 | QPushButton *mCategoriesButton; |
105 | QLabel *mCategoriesLabel; | 105 | QLabel *mCategoriesLabel; |
106 | 106 | ||
107 | private: | 107 | private: |
108 | QString getFittingPath( const QString ) ; | ||
108 | QString mAlarmSound; | 109 | QString mAlarmSound; |
109 | QString mAlarmProgram; | 110 | QString mAlarmProgram; |
110 | }; | 111 | }; |
111 | 112 | ||
112 | #endif | 113 | #endif |
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 97b4a03..30adb06 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -725,198 +725,193 @@ void KOTodoView::editItem(QListViewItem *item ) | |||
725 | emit editTodoSignal(((KOTodoViewItem *)item)->todo()); | 725 | emit editTodoSignal(((KOTodoViewItem *)item)->todo()); |
726 | } | 726 | } |
727 | 727 | ||
728 | void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) | 728 | void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) |
729 | { | 729 | { |
730 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); | 730 | emit showTodoSignal(((KOTodoViewItem *)item)->todo()); |
731 | } | 731 | } |
732 | 732 | ||
733 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &,int column) | 733 | void KOTodoView::popupMenu(QListViewItem *item,const QPoint &,int column) |
734 | { | 734 | { |
735 | pendingSubtodo = 0; | 735 | pendingSubtodo = 0; |
736 | mActiveItem = (KOTodoViewItem *)item; | 736 | mActiveItem = (KOTodoViewItem *)item; |
737 | if (item) { | 737 | if (item) { |
738 | switch (column){ | 738 | switch (column){ |
739 | case 1: | 739 | case 1: |
740 | mPriorityPopupMenu->popup(QCursor::pos ()); break; | 740 | mPriorityPopupMenu->popup(QCursor::pos ()); break; |
741 | case 2: | 741 | case 2: |
742 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; | 742 | mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; |
743 | case 3: | 743 | case 3: |
744 | moveTodo(); | 744 | moveTodo(); |
745 | break; | 745 | break; |
746 | case 8: | 746 | case 8: |
747 | getCategoryPopupMenu((KOTodoViewItem *)item)->popup(QCursor::pos ()); break; | 747 | getCategoryPopupMenu((KOTodoViewItem *)item)->popup(QCursor::pos ()); break; |
748 | default: | 748 | default: |
749 | mItemPopupMenu->popup(QCursor::pos()); | 749 | mItemPopupMenu->popup(QCursor::pos()); |
750 | } | 750 | } |
751 | } else mPopupMenu->popup(QCursor::pos()); | 751 | } else mPopupMenu->popup(QCursor::pos()); |
752 | } | 752 | } |
753 | void KOTodoView::newTodo() | 753 | void KOTodoView::newTodo() |
754 | { | 754 | { |
755 | emit newTodoSignal(); | 755 | emit newTodoSignal(); |
756 | } | 756 | } |
757 | 757 | ||
758 | void KOTodoView::newSubTodo() | 758 | void KOTodoView::newSubTodo() |
759 | { | 759 | { |
760 | if (mActiveItem) { | 760 | if (mActiveItem) { |
761 | emit newSubTodoSignal(mActiveItem->todo()); | 761 | emit newSubTodoSignal(mActiveItem->todo()); |
762 | } | 762 | } |
763 | } | 763 | } |
764 | void KOTodoView::unparentTodo() | 764 | void KOTodoView::unparentTodo() |
765 | { | 765 | { |
766 | if (mActiveItem) { | 766 | if (mActiveItem) { |
767 | emit unparentTodoSignal(mActiveItem->todo()); | 767 | emit unparentTodoSignal(mActiveItem->todo()); |
768 | } | 768 | } |
769 | } | 769 | } |
770 | 770 | ||
771 | void KOTodoView::reparentTodo() | 771 | void KOTodoView::reparentTodo() |
772 | { | 772 | { |
773 | if (mActiveItem) { | 773 | if (mActiveItem) { |
774 | qDebug("KOTodoView::reparentTodo() "); | 774 | qDebug("KOTodoView::reparentTodo() "); |
775 | topLevelWidget()->setCaption(i18n("Click on new parent item")); | 775 | topLevelWidget()->setCaption(i18n("Click on new parent item")); |
776 | pendingSubtodo = mActiveItem; | 776 | pendingSubtodo = mActiveItem; |
777 | } | 777 | } |
778 | } | 778 | } |
779 | void KOTodoView::editTodo() | 779 | void KOTodoView::editTodo() |
780 | { | 780 | { |
781 | if (mActiveItem) { | 781 | if (mActiveItem) { |
782 | emit editTodoSignal(mActiveItem->todo()); | 782 | emit editTodoSignal(mActiveItem->todo()); |
783 | } | 783 | } |
784 | } | 784 | } |
785 | void KOTodoView::cloneTodo() | 785 | void KOTodoView::cloneTodo() |
786 | { | 786 | { |
787 | if (mActiveItem) { | 787 | if (mActiveItem) { |
788 | emit cloneTodoSignal((Incidence*)mActiveItem->todo()); | 788 | emit cloneTodoSignal((Incidence*)mActiveItem->todo()); |
789 | } | 789 | } |
790 | } | 790 | } |
791 | void KOTodoView::cancelTodo() | 791 | void KOTodoView::cancelTodo() |
792 | { | 792 | { |
793 | if (mActiveItem) { | 793 | if (mActiveItem) { |
794 | emit cancelTodoSignal((Incidence*)mActiveItem->todo()); | 794 | emit cancelTodoSignal((Incidence*)mActiveItem->todo()); |
795 | } | 795 | } |
796 | } | 796 | } |
797 | void KOTodoView::moveTodo() | 797 | void KOTodoView::moveTodo() |
798 | { | 798 | { |
799 | if (mActiveItem) { | 799 | if (mActiveItem) { |
800 | emit moveTodoSignal((Incidence*)mActiveItem->todo()); | 800 | emit moveTodoSignal((Incidence*)mActiveItem->todo()); |
801 | } | 801 | } |
802 | } | 802 | } |
803 | void KOTodoView::beamTodo() | 803 | void KOTodoView::beamTodo() |
804 | { | 804 | { |
805 | if (mActiveItem) { | 805 | if (mActiveItem) { |
806 | emit beamTodoSignal((Incidence*)mActiveItem->todo()); | 806 | emit beamTodoSignal((Incidence*)mActiveItem->todo()); |
807 | } | 807 | } |
808 | } | 808 | } |
809 | 809 | ||
810 | 810 | ||
811 | void KOTodoView::showTodo() | 811 | void KOTodoView::showTodo() |
812 | { | 812 | { |
813 | if (mActiveItem) { | 813 | if (mActiveItem) { |
814 | emit showTodoSignal(mActiveItem->todo()); | 814 | emit showTodoSignal(mActiveItem->todo()); |
815 | } | 815 | } |
816 | } | 816 | } |
817 | 817 | ||
818 | void KOTodoView::deleteTodo() | 818 | void KOTodoView::deleteTodo() |
819 | { | 819 | { |
820 | if (mActiveItem) { | 820 | if (mActiveItem) { |
821 | if (mActiveItem->childCount()) { | ||
822 | KMessageBox::sorry(this,i18n("Cannot delete To-Do which has children."), | ||
823 | i18n("Delete To-Do")); | ||
824 | } else { | ||
825 | emit deleteTodoSignal(mActiveItem->todo()); | 821 | emit deleteTodoSignal(mActiveItem->todo()); |
826 | } | ||
827 | } | 822 | } |
828 | } | 823 | } |
829 | 824 | ||
830 | void KOTodoView::setNewPriority(int index) | 825 | void KOTodoView::setNewPriority(int index) |
831 | { | 826 | { |
832 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { | 827 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { |
833 | mActiveItem->todo()->setPriority(mPriority[index]); | 828 | mActiveItem->todo()->setPriority(mPriority[index]); |
834 | mActiveItem->construct(); | 829 | mActiveItem->construct(); |
835 | todoModified (mActiveItem->todo(), KOGlobals::PRIORITY_MODIFIED); | 830 | todoModified (mActiveItem->todo(), KOGlobals::PRIORITY_MODIFIED); |
836 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); | 831 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); |
837 | } | 832 | } |
838 | } | 833 | } |
839 | 834 | ||
840 | void KOTodoView::setNewPercentage(int index) | 835 | void KOTodoView::setNewPercentage(int index) |
841 | { | 836 | { |
842 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { | 837 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { |
843 | if (mPercentage[index] == 100) { | 838 | if (mPercentage[index] == 100) { |
844 | mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); | 839 | mActiveItem->todo()->setCompleted(QDateTime::currentDateTime()); |
845 | } else { | 840 | } else { |
846 | mActiveItem->todo()->setCompleted(false); | 841 | mActiveItem->todo()->setCompleted(false); |
847 | } | 842 | } |
848 | mActiveItem->todo()->setPercentComplete(mPercentage[index]); | 843 | mActiveItem->todo()->setPercentComplete(mPercentage[index]); |
849 | mActiveItem->construct(); | 844 | mActiveItem->construct(); |
850 | todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); | 845 | todoModified (mActiveItem->todo (), KOGlobals::COMPLETION_MODIFIED); |
851 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); | 846 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); |
852 | } | 847 | } |
853 | } | 848 | } |
854 | 849 | ||
855 | 850 | ||
856 | QPopupMenu * KOTodoView::getCategoryPopupMenu (KOTodoViewItem *todoItem) | 851 | QPopupMenu * KOTodoView::getCategoryPopupMenu (KOTodoViewItem *todoItem) |
857 | { | 852 | { |
858 | QPopupMenu* tempMenu = new QPopupMenu (this); | 853 | QPopupMenu* tempMenu = new QPopupMenu (this); |
859 | QStringList checkedCategories = todoItem->todo()->categories (); | 854 | QStringList checkedCategories = todoItem->todo()->categories (); |
860 | 855 | ||
861 | tempMenu->setCheckable (true); | 856 | tempMenu->setCheckable (true); |
862 | for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); | 857 | for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); |
863 | it != KOPrefs::instance()->mCustomCategories.end (); | 858 | it != KOPrefs::instance()->mCustomCategories.end (); |
864 | ++it) { | 859 | ++it) { |
865 | int index = tempMenu->insertItem (*it); | 860 | int index = tempMenu->insertItem (*it); |
866 | mCategory[index] = *it; | 861 | mCategory[index] = *it; |
867 | if (checkedCategories.find (*it) != checkedCategories.end ()) tempMenu->setItemChecked (index, true); | 862 | if (checkedCategories.find (*it) != checkedCategories.end ()) tempMenu->setItemChecked (index, true); |
868 | } | 863 | } |
869 | 864 | ||
870 | connect (tempMenu, SIGNAL (activated (int)), SLOT (changedCategories (int))); | 865 | connect (tempMenu, SIGNAL (activated (int)), SLOT (changedCategories (int))); |
871 | return tempMenu; | 866 | return tempMenu; |
872 | 867 | ||
873 | 868 | ||
874 | } | 869 | } |
875 | void KOTodoView::changedCategories(int index) | 870 | void KOTodoView::changedCategories(int index) |
876 | { | 871 | { |
877 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { | 872 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { |
878 | QStringList categories = mActiveItem->todo()->categories (); | 873 | QStringList categories = mActiveItem->todo()->categories (); |
879 | if (categories.find (mCategory[index]) != categories.end ()) | 874 | if (categories.find (mCategory[index]) != categories.end ()) |
880 | categories.remove (mCategory[index]); | 875 | categories.remove (mCategory[index]); |
881 | else | 876 | else |
882 | categories.insert (categories.end(), mCategory[index]); | 877 | categories.insert (categories.end(), mCategory[index]); |
883 | categories.sort (); | 878 | categories.sort (); |
884 | mActiveItem->todo()->setCategories (categories); | 879 | mActiveItem->todo()->setCategories (categories); |
885 | mActiveItem->construct(); | 880 | mActiveItem->construct(); |
886 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); | 881 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); |
887 | todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); | 882 | todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); |
888 | } | 883 | } |
889 | } | 884 | } |
890 | void KOTodoView::itemDoubleClicked(QListViewItem *item) | 885 | void KOTodoView::itemDoubleClicked(QListViewItem *item) |
891 | { | 886 | { |
892 | if ( pendingSubtodo != 0 ) { | 887 | if ( pendingSubtodo != 0 ) { |
893 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); | 888 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); |
894 | } | 889 | } |
895 | pendingSubtodo = 0; | 890 | pendingSubtodo = 0; |
896 | if (!item) { | 891 | if (!item) { |
897 | newTodo(); | 892 | newTodo(); |
898 | return; | 893 | return; |
899 | } | 894 | } |
900 | if ( KOPrefs::instance()->mEditOnDoubleClick ) | 895 | if ( KOPrefs::instance()->mEditOnDoubleClick ) |
901 | editItem( item ); | 896 | editItem( item ); |
902 | else | 897 | else |
903 | showItem( item , QPoint(), 0 ); | 898 | showItem( item , QPoint(), 0 ); |
904 | } | 899 | } |
905 | void KOTodoView::itemClicked(QListViewItem *item) | 900 | void KOTodoView::itemClicked(QListViewItem *item) |
906 | { | 901 | { |
907 | 902 | ||
908 | if (!item) { | 903 | if (!item) { |
909 | if ( pendingSubtodo != 0 ) { | 904 | if ( pendingSubtodo != 0 ) { |
910 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); | 905 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); |
911 | } | 906 | } |
912 | pendingSubtodo = 0; | 907 | pendingSubtodo = 0; |
913 | return; | 908 | return; |
914 | } | 909 | } |
915 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; | 910 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; |
916 | if ( pendingSubtodo != 0 ) { | 911 | if ( pendingSubtodo != 0 ) { |
917 | bool allowReparent = true; | 912 | bool allowReparent = true; |
918 | QListViewItem *par = item; | 913 | QListViewItem *par = item; |
919 | while ( par ) { | 914 | while ( par ) { |
920 | if ( par == pendingSubtodo ) { | 915 | if ( par == pendingSubtodo ) { |
921 | allowReparent = false; | 916 | allowReparent = false; |
922 | break; | 917 | break; |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 151b55b..7b07a2e 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -1611,193 +1611,202 @@ void MainWindow::keyPressEvent ( QKeyEvent * e ) | |||
1611 | mView->editIncidence(); | 1611 | mView->editIncidence(); |
1612 | break; | 1612 | break; |
1613 | case Qt::Key_Plus: | 1613 | case Qt::Key_Plus: |
1614 | size = p->mHourSize +2; | 1614 | size = p->mHourSize +2; |
1615 | if ( size <= 18 ) | 1615 | if ( size <= 18 ) |
1616 | configureAgenda( size ); | 1616 | configureAgenda( size ); |
1617 | break; | 1617 | break; |
1618 | case Qt::Key_Minus: | 1618 | case Qt::Key_Minus: |
1619 | size = p->mHourSize - 2; | 1619 | size = p->mHourSize - 2; |
1620 | if ( size >= 4 ) | 1620 | if ( size >= 4 ) |
1621 | configureAgenda( size ); | 1621 | configureAgenda( size ); |
1622 | break; | 1622 | break; |
1623 | 1623 | ||
1624 | 1624 | ||
1625 | default: | 1625 | default: |
1626 | e->ignore(); | 1626 | e->ignore(); |
1627 | } | 1627 | } |
1628 | if ( pro > 0 ) { | 1628 | if ( pro > 0 ) { |
1629 | mView->selectFilter( pro-1 ); | 1629 | mView->selectFilter( pro-1 ); |
1630 | } | 1630 | } |
1631 | if ( showSelectedDates ) { | 1631 | if ( showSelectedDates ) { |
1632 | ;// setCaptionToDates(); | 1632 | ;// setCaptionToDates(); |
1633 | } | 1633 | } |
1634 | 1634 | ||
1635 | } | 1635 | } |
1636 | 1636 | ||
1637 | void MainWindow::fillFilterMenu() | 1637 | void MainWindow::fillFilterMenu() |
1638 | { | 1638 | { |
1639 | selectFilterMenu->clear(); | 1639 | selectFilterMenu->clear(); |
1640 | bool disable = false; | 1640 | bool disable = false; |
1641 | selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 ); | 1641 | selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 ); |
1642 | selectFilterMenu->insertSeparator(); | 1642 | selectFilterMenu->insertSeparator(); |
1643 | if ( mView->filterView()->filtersEnabled() ) { | 1643 | if ( mView->filterView()->filtersEnabled() ) { |
1644 | selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 1 ); | 1644 | selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 1 ); |
1645 | } | 1645 | } |
1646 | else { | 1646 | else { |
1647 | selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 1 ); | 1647 | selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 1 ); |
1648 | disable = true; | 1648 | disable = true; |
1649 | } | 1649 | } |
1650 | selectFilterMenu->insertSeparator(); | 1650 | selectFilterMenu->insertSeparator(); |
1651 | QPtrList<CalFilter> fili = mView->filters(); | 1651 | QPtrList<CalFilter> fili = mView->filters(); |
1652 | CalFilter *curfilter = mView->filterView()->selectedFilter(); | 1652 | CalFilter *curfilter = mView->filterView()->selectedFilter(); |
1653 | CalFilter *filter = fili.first(); | 1653 | CalFilter *filter = fili.first(); |
1654 | int iii = 2; | 1654 | int iii = 2; |
1655 | while(filter) { | 1655 | while(filter) { |
1656 | selectFilterMenu->insertItem( filter->name(), iii ); | 1656 | selectFilterMenu->insertItem( filter->name(), iii ); |
1657 | if ( filter == curfilter) | 1657 | if ( filter == curfilter) |
1658 | selectFilterMenu->setItemChecked( iii, true ); | 1658 | selectFilterMenu->setItemChecked( iii, true ); |
1659 | if ( disable ) | 1659 | if ( disable ) |
1660 | selectFilterMenu->setItemEnabled( iii, false ); | 1660 | selectFilterMenu->setItemEnabled( iii, false ); |
1661 | filter = fili.next(); | 1661 | filter = fili.next(); |
1662 | ++iii; | 1662 | ++iii; |
1663 | } | 1663 | } |
1664 | } | 1664 | } |
1665 | void MainWindow::selectFilter( int fil ) | 1665 | void MainWindow::selectFilter( int fil ) |
1666 | { | 1666 | { |
1667 | if ( fil == 0 ) { | 1667 | if ( fil == 0 ) { |
1668 | mView->editFilters( ); | 1668 | mView->editFilters( ); |
1669 | } else if ( fil == 1 ){ | 1669 | } else if ( fil == 1 ){ |
1670 | mView->toggleFilerEnabled( ); | 1670 | mView->toggleFilerEnabled( ); |
1671 | } else { | 1671 | } else { |
1672 | mView->selectFilter( fil-2 ); | 1672 | mView->selectFilter( fil-2 ); |
1673 | } | 1673 | } |
1674 | } | 1674 | } |
1675 | void MainWindow::configureToolBar( int item ) | 1675 | void MainWindow::configureToolBar( int item ) |
1676 | { | 1676 | { |
1677 | 1677 | ||
1678 | configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); | 1678 | configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); |
1679 | KOPrefs *p = KOPrefs::instance(); | 1679 | KOPrefs *p = KOPrefs::instance(); |
1680 | p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); | 1680 | p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); |
1681 | p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); | 1681 | p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); |
1682 | p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); | 1682 | p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); |
1683 | p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); | 1683 | p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); |
1684 | p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); | 1684 | p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); |
1685 | p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); | 1685 | p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); |
1686 | p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); | 1686 | p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); |
1687 | p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); | 1687 | p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); |
1688 | p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); | 1688 | p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); |
1689 | p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); | 1689 | p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); |
1690 | p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); | 1690 | p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); |
1691 | p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); | 1691 | p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); |
1692 | p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); | 1692 | p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); |
1693 | p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); | 1693 | p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); |
1694 | p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); | 1694 | p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); |
1695 | p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); | 1695 | p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); |
1696 | p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); | 1696 | p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); |
1697 | p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); | 1697 | p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); |
1698 | p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); | 1698 | p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); |
1699 | // initActions(); | 1699 | // initActions(); |
1700 | } | 1700 | } |
1701 | 1701 | ||
1702 | void MainWindow::setCaptionToDates() | 1702 | void MainWindow::setCaptionToDates() |
1703 | { | 1703 | { |
1704 | QString selDates; | 1704 | QString selDates; |
1705 | selDates = KGlobal::locale()->formatDate(mView->startDate(), true); | 1705 | selDates = KGlobal::locale()->formatDate(mView->startDate(), true); |
1706 | if (mView->startDate() < mView->endDate() ) | 1706 | if (mView->startDate() < mView->endDate() ) |
1707 | selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); | 1707 | selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); |
1708 | else { | ||
1709 | QString addString; | ||
1710 | if ( mView->startDate() == QDateTime::currentDateTime().date() ) | ||
1711 | addString = i18n("Today"); | ||
1712 | else if ( mView->startDate() == QDateTime::currentDateTime().date().addDays(1) ) | ||
1713 | addString = i18n("Tomorrow"); | ||
1714 | if ( !addString.isEmpty() ) | ||
1715 | selDates = addString+", "+selDates ; | ||
1716 | } | ||
1708 | setCaption( i18n("Dates: ") + selDates ); | 1717 | setCaption( i18n("Dates: ") + selDates ); |
1709 | 1718 | ||
1710 | } | 1719 | } |
1711 | // parameter item == 0: reinit | 1720 | // parameter item == 0: reinit |
1712 | void MainWindow::configureAgenda( int item ) | 1721 | void MainWindow::configureAgenda( int item ) |
1713 | { | 1722 | { |
1714 | 1723 | ||
1715 | KOPrefs *p = KOPrefs::instance(); | 1724 | KOPrefs *p = KOPrefs::instance(); |
1716 | 1725 | ||
1717 | int i; | 1726 | int i; |
1718 | // do not allow 4 for widgets higher than 480 | 1727 | // do not allow 4 for widgets higher than 480 |
1719 | // if ( QApplication::desktop()->height() > 480 ) { | 1728 | // if ( QApplication::desktop()->height() > 480 ) { |
1720 | // if ( item == 4 ) | 1729 | // if ( item == 4 ) |
1721 | // item = 6; | 1730 | // item = 6; |
1722 | // } | 1731 | // } |
1723 | for ( i = 4; i <= 18; i= i+2 ) | 1732 | for ( i = 4; i <= 18; i= i+2 ) |
1724 | configureAgendaMenu->setItemChecked( i, false ); | 1733 | configureAgendaMenu->setItemChecked( i, false ); |
1725 | configureAgendaMenu->setItemChecked( item, true ); | 1734 | configureAgendaMenu->setItemChecked( item, true ); |
1726 | if ( p->mHourSize == item ) | 1735 | if ( p->mHourSize == item ) |
1727 | return; | 1736 | return; |
1728 | p->mHourSize=item; | 1737 | p->mHourSize=item; |
1729 | mView->viewManager()->agendaView()->updateConfig(); | 1738 | mView->viewManager()->agendaView()->updateConfig(); |
1730 | } | 1739 | } |
1731 | 1740 | ||
1732 | void MainWindow::saveCalendar() | 1741 | void MainWindow::saveCalendar() |
1733 | { | 1742 | { |
1734 | QString fn = KOPrefs::instance()->mLastSaveFile; | 1743 | QString fn = KOPrefs::instance()->mLastSaveFile; |
1735 | fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); | 1744 | fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); |
1736 | 1745 | ||
1737 | if ( fn == "" ) | 1746 | if ( fn == "" ) |
1738 | return; | 1747 | return; |
1739 | QFileInfo info; | 1748 | QFileInfo info; |
1740 | info.setFile( fn ); | 1749 | info.setFile( fn ); |
1741 | QString mes; | 1750 | QString mes; |
1742 | bool createbup = true; | 1751 | bool createbup = true; |
1743 | if ( info. exists() ) { | 1752 | if ( info. exists() ) { |
1744 | mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; | 1753 | mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; |
1745 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, | 1754 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, |
1746 | i18n("Overwrite!"), i18n("Cancel"), 0, | 1755 | i18n("Overwrite!"), i18n("Cancel"), 0, |
1747 | 0, 1 ); | 1756 | 0, 1 ); |
1748 | if ( result != 0 ) { | 1757 | if ( result != 0 ) { |
1749 | createbup = false; | 1758 | createbup = false; |
1750 | } | 1759 | } |
1751 | } | 1760 | } |
1752 | if ( createbup ) { | 1761 | if ( createbup ) { |
1753 | mView->saveCalendar( fn ); | 1762 | mView->saveCalendar( fn ); |
1754 | mes = i18n("KO/Pi:Saved %1").arg(fn); | 1763 | mes = i18n("KO/Pi:Saved %1").arg(fn); |
1755 | KOPrefs::instance()->mLastSaveFile = fn; | 1764 | KOPrefs::instance()->mLastSaveFile = fn; |
1756 | setCaption(mes); | 1765 | setCaption(mes); |
1757 | } | 1766 | } |
1758 | } | 1767 | } |
1759 | void MainWindow::loadCalendar() | 1768 | void MainWindow::loadCalendar() |
1760 | { | 1769 | { |
1761 | 1770 | ||
1762 | QString fn = KOPrefs::instance()->mLastLoadFile; | 1771 | QString fn = KOPrefs::instance()->mLastLoadFile; |
1763 | fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); | 1772 | fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); |
1764 | 1773 | ||
1765 | if ( fn == "" ) | 1774 | if ( fn == "" ) |
1766 | return; | 1775 | return; |
1767 | QFileInfo info; | 1776 | QFileInfo info; |
1768 | info.setFile( fn ); | 1777 | info.setFile( fn ); |
1769 | QString mess; | 1778 | QString mess; |
1770 | bool loadbup = true; | 1779 | bool loadbup = true; |
1771 | if ( info. exists() ) { | 1780 | if ( info. exists() ) { |
1772 | mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); | 1781 | mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); |
1773 | int result = QMessageBox::warning( this, "KO/Pi: Warning!", | 1782 | int result = QMessageBox::warning( this, "KO/Pi: Warning!", |
1774 | mess, | 1783 | mess, |
1775 | i18n("Load!"), i18n("Cancel"), 0, | 1784 | i18n("Load!"), i18n("Cancel"), 0, |
1776 | 0, 1 ); | 1785 | 0, 1 ); |
1777 | if ( result != 0 ) { | 1786 | if ( result != 0 ) { |
1778 | loadbup = false; | 1787 | loadbup = false; |
1779 | } | 1788 | } |
1780 | } else { | 1789 | } else { |
1781 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1790 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1782 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, | 1791 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, |
1783 | 0, 1 ); | 1792 | 0, 1 ); |
1784 | 1793 | ||
1785 | return; | 1794 | return; |
1786 | } | 1795 | } |
1787 | if ( loadbup ) { | 1796 | if ( loadbup ) { |
1788 | mView->openCalendar( fn ); | 1797 | mView->openCalendar( fn ); |
1789 | KOPrefs::instance()->mLastLoadFile = fn; | 1798 | KOPrefs::instance()->mLastLoadFile = fn; |
1790 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; | 1799 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; |
1791 | setCaption(mess); | 1800 | setCaption(mess); |
1792 | } | 1801 | } |
1793 | 1802 | ||
1794 | } | 1803 | } |
1795 | void MainWindow::quickImportIcal() | 1804 | void MainWindow::quickImportIcal() |
1796 | { | 1805 | { |
1797 | importFile( KOPrefs::instance()->mLastImportFile, false ); | 1806 | importFile( KOPrefs::instance()->mLastImportFile, false ); |
1798 | } | 1807 | } |
1799 | void MainWindow::importFile( QString fn, bool quick ) | 1808 | void MainWindow::importFile( QString fn, bool quick ) |
1800 | { | 1809 | { |
1801 | QFileInfo info; | 1810 | QFileInfo info; |
1802 | info.setFile( fn ); | 1811 | info.setFile( fn ); |
1803 | QString mess; | 1812 | QString mess; |