author | zautrix <zautrix> | 2005-07-07 12:30:17 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-07-07 12:30:17 (UTC) |
commit | 766b53919de14b8faec22db32b6a750acde0b760 (patch) (unidiff) | |
tree | bb07c0af89b0dddf4257a61e9f5b1cf23c4a282a /korganizer | |
parent | b4d85da57e2d558ec088af6f3b2a34b1854462c0 (diff) | |
download | kdepimpi-766b53919de14b8faec22db32b6a750acde0b760.zip kdepimpi-766b53919de14b8faec22db32b6a750acde0b760.tar.gz kdepimpi-766b53919de14b8faec22db32b6a750acde0b760.tar.bz2 |
fixesss
-rw-r--r-- | korganizer/calendarview.cpp | 70 | ||||
-rw-r--r-- | korganizer/calendarview.h | 2 | ||||
-rw-r--r-- | korganizer/kolistview.cpp | 39 | ||||
-rw-r--r-- | korganizer/komonthview.cpp | 124 | ||||
-rw-r--r-- | korganizer/komonthview.h | 2 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 1 | ||||
-rw-r--r-- | korganizer/koprefs.h | 1 | ||||
-rw-r--r-- | korganizer/koprefsdialog.cpp | 4 |
8 files changed, 192 insertions, 51 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 9a114d0..e766b8f 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -2713,22 +2713,92 @@ void CalendarView::changeEventDisplay(Event *which, int action) | |||
2713 | //mDialogManager->updateSearchDialog(); | 2713 | //mDialogManager->updateSearchDialog(); |
2714 | 2714 | ||
2715 | if (which) { | 2715 | if (which) { |
2716 | // If there is an event view visible update the display | 2716 | // If there is an event view visible update the display |
2717 | mViewManager->currentView()->changeEventDisplay(which,action); | 2717 | mViewManager->currentView()->changeEventDisplay(which,action); |
2718 | // TODO: check, if update needed | 2718 | // TODO: check, if update needed |
2719 | // if (which->getTodoStatus()) { | 2719 | // if (which->getTodoStatus()) { |
2720 | mTodoList->updateView(); | 2720 | mTodoList->updateView(); |
2721 | if ( action != KOGlobals::EVENTDELETED ) { | ||
2722 | mConflictingEvent = which ; | ||
2723 | QTimer::singleShot( 1000, this, SLOT ( checkConflictForEvent() ) ); | ||
2724 | } | ||
2721 | // } | 2725 | // } |
2722 | } else { | 2726 | } else { |
2723 | mViewManager->currentView()->updateView(); | 2727 | mViewManager->currentView()->updateView(); |
2724 | } | 2728 | } |
2725 | } | 2729 | } |
2730 | void CalendarView::checkConflictForEvent() | ||
2731 | { | ||
2732 | |||
2733 | if (!KOPrefs::instance()->mConfirm) | ||
2734 | return; | ||
2735 | if ( ! mConflictingEvent ) return; | ||
2736 | if ( mConflictingEvent->doesFloat() ) { | ||
2737 | mConflictingEvent = 0; | ||
2738 | return; | ||
2739 | } | ||
2740 | bool all = false; | ||
2741 | bool allday = false; | ||
2742 | Event * ev = mConflictingEvent; | ||
2743 | mConflictingEvent = 0; | ||
2744 | QDate start = ev->dtStart().date(); | ||
2745 | QDate end = ev->dtEnd().date().addDays(1); | ||
2746 | while ( start < end ) { | ||
2747 | QPtrList<Event> test = calendar()->events( start ); | ||
2748 | //qDebug("found %d on %s ", eventList.count(), start.toString().latin1()); | ||
2749 | Event * t_ev = test.first(); | ||
2750 | QDateTime es = ev->dtStart(); | ||
2751 | QDateTime ee = ev->dtEnd(); | ||
2752 | if ( ev->doesFloat() ) | ||
2753 | ee = ee.addDays( 1 ); | ||
2754 | if ( ! all ) { | ||
2755 | if ( ev->doesFloat() != allday ) | ||
2756 | t_ev = 0; | ||
2757 | } | ||
2758 | while ( t_ev ) { | ||
2759 | bool skip = false; | ||
2760 | if ( ! all ) { | ||
2761 | if ( t_ev->doesFloat() != allday ) | ||
2762 | skip = true; | ||
2763 | } | ||
2764 | if ( !skip && ev != t_ev ) { | ||
2765 | QDateTime ets = t_ev->dtStart(); | ||
2766 | QDateTime ete = t_ev->dtEnd(); | ||
2767 | if ( t_ev->doesFloat() ) | ||
2768 | ete = ete.addDays( 1 ); | ||
2769 | //qDebug("test %s -- %s -------- %s -- %s ", es.toString().latin1() , ee.toString().latin1(), ets.toString().latin1() , ete.toString().latin1() ); | ||
2770 | if ( es < ete && ets < ee ) { | ||
2771 | QString mess = i18n("The event\n%1\nconflicts with event\n%2\nat date\n%3.\n").arg(KGlobal::formatMessage ( ev->summary(),0 ) ).arg( KGlobal::formatMessage ( t_ev->summary(),0 )).arg(KGlobal::locale()->formatDate(start) ) ; | ||
2772 | qApp->processEvents(); | ||
2773 | int km = KMessageBox::warningContinueCancel(this,mess, | ||
2774 | i18n("KO/Pi Conflict delected"),i18n("Show date"),i18n("No problem!")); | ||
2775 | if ( km != KMessageBox::Continue ) | ||
2776 | return; | ||
2777 | |||
2778 | if ( mViewManager->currentView() != mViewManager->agendaView() || mNavigator->selectedDates().count() > 1 ) | ||
2779 | mViewManager->showDayView(); | ||
2780 | mNavigator->slotDaySelect( start ); | ||
2781 | int hour = es.time().hour(); | ||
2782 | if ( ets > es ) | ||
2783 | hour = ets.time().hour(); | ||
2784 | mViewManager->agendaView()->setStartHour( hour ); | ||
2785 | topLevelWidget()->setCaption( i18n("Conflict %1 <-> %2"). arg( ev->summary().left( 20 ) ).arg( t_ev->summary().left( 20 ) ) ); | ||
2786 | return; | ||
2787 | } | ||
2788 | } | ||
2789 | t_ev = test.next(); | ||
2790 | } | ||
2791 | start = start.addDays( 1 ); | ||
2792 | } | ||
2793 | qDebug("No conflict found "); | ||
2794 | |||
2726 | 2795 | ||
2796 | } | ||
2727 | 2797 | ||
2728 | void CalendarView::updateTodoViews() | 2798 | void CalendarView::updateTodoViews() |
2729 | { | 2799 | { |
2730 | mTodoList->updateView(); | 2800 | mTodoList->updateView(); |
2731 | mViewManager->currentView()->updateView(); | 2801 | mViewManager->currentView()->updateView(); |
2732 | 2802 | ||
2733 | } | 2803 | } |
2734 | 2804 | ||
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 51eb1d4..706d05d 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -503,16 +503,17 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
503 | void scrollBarValue(int); | 503 | void scrollBarValue(int); |
504 | void slotViewerClosed(); | 504 | void slotViewerClosed(); |
505 | void timerAlarm(); | 505 | void timerAlarm(); |
506 | void suspendAlarm(); | 506 | void suspendAlarm(); |
507 | void beamDone( Ir *ir ); | 507 | void beamDone( Ir *ir ); |
508 | /** Select a view or adapt the current view to display the specified dates. */ | 508 | /** Select a view or adapt the current view to display the specified dates. */ |
509 | void showDates( const KCal::DateList & ); | 509 | void showDates( const KCal::DateList & ); |
510 | void selectWeekNum ( int ); | 510 | void selectWeekNum ( int ); |
511 | void checkConflictForEvent(); | ||
511 | 512 | ||
512 | public: | 513 | public: |
513 | // show a standard warning | 514 | // show a standard warning |
514 | // returns KMsgBox::yesNoCancel() | 515 | // returns KMsgBox::yesNoCancel() |
515 | int msgCalModified(); | 516 | int msgCalModified(); |
516 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 517 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
517 | 518 | ||
518 | virtual bool syncExternal(KSyncManager* manager, QString resource); | 519 | virtual bool syncExternal(KSyncManager* manager, QString resource); |
@@ -529,16 +530,17 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
529 | void adaptNavigationUnits(); | 530 | void adaptNavigationUnits(); |
530 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); | 531 | bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode ); |
531 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); | 532 | int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false ); |
532 | //Attendee* getYourAttendee(Event *event); | 533 | //Attendee* getYourAttendee(Event *event); |
533 | void setBlockShowDates( bool b ) { mBlockShowDates = b ;} | 534 | void setBlockShowDates( bool b ) { mBlockShowDates = b ;} |
534 | void setScrollBarStep(int val ); | 535 | void setScrollBarStep(int val ); |
535 | 536 | ||
536 | protected: | 537 | protected: |
538 | Event *mConflictingEvent; | ||
537 | void schedule(Scheduler::Method, Incidence *incidence = 0); | 539 | void schedule(Scheduler::Method, Incidence *incidence = 0); |
538 | 540 | ||
539 | // returns KMsgBox::OKCandel() | 541 | // returns KMsgBox::OKCandel() |
540 | int msgItemDelete(const QString name); | 542 | int msgItemDelete(const QString name); |
541 | void showEventEditor(); | 543 | void showEventEditor(); |
542 | void showTodoEditor(); | 544 | void showTodoEditor(); |
543 | Todo *selectedTodo(); | 545 | Todo *selectedTodo(); |
544 | private: | 546 | private: |
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index 7783dd4..d25f671 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp | |||
@@ -512,41 +512,36 @@ void KOListView::setAlarm() | |||
512 | QPtrList<Incidence> delSel = getSelectedIncidences( true, true, false, true ); // no journals, only due todos | 512 | QPtrList<Incidence> delSel = getSelectedIncidences( true, true, false, true ); // no journals, only due todos |
513 | Incidence* inc = delSel.first(); | 513 | Incidence* inc = delSel.first(); |
514 | int count = 0; | 514 | int count = 0; |
515 | while ( inc ) { | 515 | while ( inc ) { |
516 | ++count; | 516 | ++count; |
517 | if (kap.mAlarmButton->isChecked()) { | 517 | if (kap.mAlarmButton->isChecked()) { |
518 | if (inc->alarms().count() == 0) | 518 | if (inc->alarms().count() == 0) |
519 | inc->newAlarm(); | 519 | inc->newAlarm(); |
520 | Alarm *alarm = inc->alarms().first(); | ||
521 | alarm->setEnabled(true); | ||
522 | int j = kap.mAlarmTimeEdit->value()* -60; | ||
523 | if (kap.mAlarmIncrCombo->currentItem() == 1) | ||
524 | j = j * 60; | ||
525 | else if (kap.mAlarmIncrCombo->currentItem() == 2) | ||
526 | j = j * (60 * 24); | ||
527 | alarm->setStartOffset( j ); | ||
528 | |||
529 | if (!kap.mAlarmProgram.isEmpty() && kap.mAlarmProgramButton->isOn()) { | ||
530 | alarm->setProcedureAlarm(kap.mAlarmProgram); | ||
531 | } | ||
532 | else if (!kap.mAlarmSound.isEmpty() && kap.mAlarmSoundButton->isOn()) | ||
533 | alarm->setAudioAlarm(kap.mAlarmSound); | ||
534 | else | ||
535 | alarm->setType(Alarm::Invalid); | ||
536 | } else { | ||
520 | QPtrList<Alarm> alarms = inc->alarms(); | 537 | QPtrList<Alarm> alarms = inc->alarms(); |
521 | Alarm *alarm; | 538 | Alarm *alarm; |
522 | for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { | 539 | for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { |
523 | alarm->setEnabled(true); | ||
524 | int j = kap.mAlarmTimeEdit->value()* -60; | ||
525 | if (kap.mAlarmIncrCombo->currentItem() == 1) | ||
526 | j = j * 60; | ||
527 | else if (kap.mAlarmIncrCombo->currentItem() == 2) | ||
528 | j = j * (60 * 24); | ||
529 | alarm->setStartOffset( j ); | ||
530 | |||
531 | if (!kap.mAlarmProgram.isEmpty() && kap.mAlarmProgramButton->isOn()) { | ||
532 | alarm->setProcedureAlarm(kap.mAlarmProgram); | ||
533 | } | ||
534 | else if (!kap.mAlarmSound.isEmpty() && kap.mAlarmSoundButton->isOn()) | ||
535 | alarm->setAudioAlarm(kap.mAlarmSound); | ||
536 | else | ||
537 | alarm->setType(Alarm::Invalid); | ||
538 | //alarm->setAudioAlarm("default"); | ||
539 | // TODO: Deal with multiple alarms | ||
540 | break; // For now, stop after the first alarm | ||
541 | } | ||
542 | } else { | ||
543 | Alarm* alarm = inc->alarms().first(); | ||
544 | if ( alarm ) { | ||
545 | alarm->setEnabled(false); | 540 | alarm->setEnabled(false); |
546 | alarm->setType(Alarm::Invalid); | 541 | alarm->setType(Alarm::Invalid); |
547 | } | 542 | } |
548 | } | 543 | } |
549 | KOListViewItem* item = getItemForEvent(inc); | 544 | KOListViewItem* item = getItemForEvent(inc); |
550 | if (item) { | 545 | if (item) { |
551 | ListItemVisitor v(item, mStartDate ); | 546 | ListItemVisitor v(item, mStartDate ); |
552 | inc->accept(v); | 547 | inc->accept(v); |
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 2289977..53bbe28 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -1519,17 +1519,18 @@ void KOMonthView::updateConfig() | |||
1519 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); | 1519 | int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); |
1520 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; | 1520 | if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; |
1521 | } | 1521 | } |
1522 | bool temp = mShowSatSunComp ; | 1522 | bool temp = mShowSatSunComp ; |
1523 | mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; | 1523 | mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; |
1524 | if ( ! mShowWeekView ) { | 1524 | if ( ! mShowWeekView ) { |
1525 | if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) | 1525 | if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) |
1526 | computeLayout(); | 1526 | computeLayout(); |
1527 | } | 1527 | } else |
1528 | doComputeLayoutWeek(); | ||
1528 | updateDayLabels(); | 1529 | updateDayLabels(); |
1529 | //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); | 1530 | //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); |
1530 | //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; | 1531 | //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; |
1531 | //resizeEvent( 0 ); | 1532 | //resizeEvent( 0 ); |
1532 | for (uint i = 0; i < mCells.count(); ++i) { | 1533 | for (uint i = 0; i < mCells.count(); ++i) { |
1533 | mCells[i]->updateConfig(); | 1534 | mCells[i]->updateConfig(); |
1534 | } | 1535 | } |
1535 | 1536 | ||
@@ -1810,58 +1811,49 @@ void KOMonthView::setKeyBFocus() | |||
1810 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1811 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1811 | { | 1812 | { |
1812 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1813 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1813 | if ( isVisible() ) { | 1814 | if ( isVisible() ) { |
1814 | //qDebug("KOMonthView::isVisible "); | 1815 | //qDebug("KOMonthView::isVisible "); |
1815 | slotComputeLayout(); | 1816 | slotComputeLayout(); |
1816 | } else | 1817 | } else |
1817 | mComputeLayoutTimer->start( 100 ); | 1818 | mComputeLayoutTimer->start( 100 ); |
1818 | KOEventView::resizeEvent( e ); | 1819 | if ( e ) |
1820 | KOEventView::resizeEvent( e ); | ||
1819 | } | 1821 | } |
1820 | 1822 | ||
1821 | void KOMonthView::slotComputeLayout() | 1823 | void KOMonthView::slotComputeLayout() |
1822 | { | 1824 | { |
1823 | mComputeLayoutTimer->stop(); | 1825 | mComputeLayoutTimer->stop(); |
1824 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); | 1826 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); |
1825 | computeLayout(); | 1827 | computeLayout(); |
1826 | clPending = true; | 1828 | clPending = true; |
1827 | setKeyBFocus(); | 1829 | setKeyBFocus(); |
1828 | } | 1830 | } |
1829 | void KOMonthView::computeLayoutWeek() | 1831 | |
1832 | void KOMonthView::doComputeLayoutWeek() | ||
1830 | { | 1833 | { |
1831 | static int lastWid = 0; | 1834 | |
1832 | static int lastHei = 0; | ||
1833 | int daysToShow; | 1835 | int daysToShow; |
1834 | bool combinedSatSun = false; | 1836 | bool combinedSatSun = false; |
1835 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1837 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1836 | daysToShow = 6; | 1838 | daysToShow = 6; |
1837 | combinedSatSun = true; | 1839 | combinedSatSun = true; |
1838 | } | 1840 | } |
1839 | int tWid = topLevelWidget()->size().width(); | ||
1840 | int tHei = topLevelWidget()->size().height(); | ||
1841 | |||
1842 | int wid = width();//e | 1841 | int wid = width();//e |
1843 | int hei = height()-1-mNavigatorBar->height(); | 1842 | int hei = height()-1-mNavigatorBar->height(); |
1844 | 1843 | if ( !KOPrefs::instance()->mMonthViewWeekRowlayout ) { | |
1845 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | ||
1846 | return; | ||
1847 | |||
1848 | if ( lastWid == width() && lastHei == height() ) { | ||
1849 | //qDebug("KOListWeekView::No compute layout needed "); | ||
1850 | return; | ||
1851 | } | ||
1852 | lastWid = width(); | ||
1853 | lastHei = height(); | ||
1854 | |||
1855 | |||
1856 | if ( wid < hei ) | ||
1857 | daysToShow = 2; | 1844 | daysToShow = 2; |
1858 | else | 1845 | } else { |
1859 | daysToShow = 3; | 1846 | if ( wid < hei ) |
1847 | daysToShow = 2; | ||
1848 | else | ||
1849 | daysToShow = 3; | ||
1850 | } | ||
1851 | bool landscape = (daysToShow == 3); | ||
1860 | mShowSatSunComp = true; | 1852 | mShowSatSunComp = true; |
1861 | combinedSatSun = true; | 1853 | combinedSatSun = true; |
1862 | 1854 | ||
1863 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); | 1855 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); |
1864 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1856 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1865 | int weeklabelwid = fm.width( "888" ); | 1857 | int weeklabelwid = fm.width( "888" ); |
1866 | wid -= weeklabelwid; | 1858 | wid -= weeklabelwid; |
1867 | 1859 | ||
@@ -1881,32 +1873,45 @@ void KOMonthView::computeLayoutWeek() | |||
1881 | if ( i && !( i % daysToShow) && i < 6) { | 1873 | if ( i && !( i % daysToShow) && i < 6) { |
1882 | y += hei/(5-daysToShow); | 1874 | y += hei/(5-daysToShow); |
1883 | x = 0; | 1875 | x = 0; |
1884 | w = colWid; | 1876 | w = colWid; |
1885 | } | 1877 | } |
1886 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1878 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1887 | ++w; | 1879 | ++w; |
1888 | } | 1880 | } |
1881 | int xC,yC,wC,hC; | ||
1889 | if ( i >= 5 ) { | 1882 | if ( i >= 5 ) { |
1890 | int wi = width() - x - weeklabelwid; | 1883 | int wi = width() - x - weeklabelwid; |
1891 | if ( i == 5 ) { | 1884 | if ( i == 5 ) { |
1892 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h); | 1885 | xC = x+weeklabelwid; |
1886 | yC = y; | ||
1887 | wC = wi/2+wi%2; | ||
1888 | hC = h; | ||
1893 | } else { | 1889 | } else { |
1894 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); | 1890 | xC = x+weeklabelwid; |
1891 | yC = y; | ||
1892 | wC = wi; | ||
1893 | hC = h; | ||
1895 | } | 1894 | } |
1896 | x = x - w + wi - (wi/2 ); | 1895 | x = x - w + wi - (wi/2 ); |
1897 | } | 1896 | } |
1898 | else { | 1897 | else { |
1899 | int wi = w; | 1898 | int wi = w; |
1900 | if ( !(( i+1) % daysToShow)) { | 1899 | if ( !(( i+1) % daysToShow)) { |
1901 | wi = width() - x - weeklabelwid; | 1900 | wi = width() - x - weeklabelwid; |
1902 | } | 1901 | } |
1903 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); | 1902 | xC = x+weeklabelwid; |
1903 | yC = y; | ||
1904 | wC = wi; | ||
1905 | hC = h; | ||
1904 | } | 1906 | } |
1907 | mDayLabelsW[mapWeekLayout(i,landscape)]->setGeometry( xC,yC,wC,hC); | ||
1908 | |||
1909 | |||
1905 | x += w; | 1910 | x += w; |
1906 | } | 1911 | } |
1907 | x= 0; | 1912 | x= 0; |
1908 | y= dayLabelHei; | 1913 | y= dayLabelHei; |
1909 | w = colWid; | 1914 | w = colWid; |
1910 | h = cellHei; | 1915 | h = cellHei; |
1911 | int max = 0; | 1916 | int max = 0; |
1912 | int w_count = mCellsW.count(); | 1917 | int w_count = mCellsW.count(); |
@@ -1918,33 +1923,44 @@ void KOMonthView::computeLayoutWeek() | |||
1918 | 1923 | ||
1919 | w = colWid; | 1924 | w = colWid; |
1920 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1925 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1921 | ++w; | 1926 | ++w; |
1922 | } | 1927 | } |
1923 | if ( i == (daysToShow-1-rowModulo)*7) | 1928 | if ( i == (daysToShow-1-rowModulo)*7) |
1924 | ++h; | 1929 | ++h; |
1925 | 1930 | ||
1931 | int xC,yC,wC,hC; | ||
1926 | if ( i >= 5 ) { | 1932 | if ( i >= 5 ) { |
1927 | if ( i ==5 ) { | 1933 | if ( i ==5 ) { |
1928 | max = h/2; | 1934 | max = h/2; |
1929 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | 1935 | xC = x+weeklabelwid; |
1936 | yC = y; | ||
1937 | wC = w; | ||
1938 | hC = max; | ||
1930 | x -= w ;y += h/2; | 1939 | x -= w ;y += h/2; |
1931 | } else { | 1940 | } else { |
1932 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { | 1941 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { |
1933 | ++w; | 1942 | ++w; |
1934 | } | 1943 | } |
1935 | max = h-h/2; | 1944 | max = h-h/2; |
1936 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | 1945 | xC = x+weeklabelwid; |
1946 | yC = y; | ||
1947 | wC = w; | ||
1948 | hC = max; | ||
1937 | y -= h/2; | 1949 | y -= h/2; |
1938 | } | 1950 | } |
1939 | } else { | 1951 | } else { |
1940 | max = h; | 1952 | max = h; |
1941 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1953 | xC = x+weeklabelwid; |
1954 | yC = y; | ||
1955 | wC = w; | ||
1956 | hC = h; | ||
1942 | } | 1957 | } |
1958 | mCellsW[mapWeekLayout(i,landscape)]->setGeometry ( xC,yC,wC,hC ); | ||
1943 | 1959 | ||
1944 | 1960 | ||
1945 | x += w; | 1961 | x += w; |
1946 | if ( x + w/2 > wid ) { | 1962 | if ( x + w/2 > wid ) { |
1947 | x = 0; | 1963 | x = 0; |
1948 | y += h+dayLabelHei ; | 1964 | y += h+dayLabelHei ; |
1949 | } | 1965 | } |
1950 | //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); | 1966 | //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); |
@@ -1958,16 +1974,66 @@ void KOMonthView::computeLayoutWeek() | |||
1958 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; | 1974 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; |
1959 | updateDayLabels(); | 1975 | updateDayLabels(); |
1960 | //bool forceUpdate = !updatePossible; | 1976 | //bool forceUpdate = !updatePossible; |
1961 | updatePossible = true; | 1977 | updatePossible = true; |
1962 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); | 1978 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); |
1963 | //if ( forceUpdate ) | 1979 | //if ( forceUpdate ) |
1964 | // updateView(); | 1980 | // updateView(); |
1965 | } | 1981 | } |
1982 | void KOMonthView::computeLayoutWeek() | ||
1983 | { | ||
1984 | static int lastWid = 0; | ||
1985 | static int lastHei = 0; | ||
1986 | int tWid = topLevelWidget()->size().width(); | ||
1987 | int tHei = topLevelWidget()->size().height(); | ||
1988 | int wid = width();//e | ||
1989 | int hei = height()-1-mNavigatorBar->height(); | ||
1990 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | ||
1991 | return; | ||
1992 | |||
1993 | if ( lastWid == width() && lastHei == height() ) { | ||
1994 | //qDebug("KOListWeekView::No compute layout needed "); | ||
1995 | return; | ||
1996 | } | ||
1997 | lastWid = width(); | ||
1998 | lastHei = height(); | ||
1999 | doComputeLayoutWeek(); | ||
2000 | } | ||
2001 | int KOMonthView::mapWeekLayout( int index, bool landscape ) | ||
2002 | { | ||
2003 | if ( KOPrefs::instance()->mMonthViewWeekRowlayout ) | ||
2004 | return index; | ||
2005 | int diff = 0; | ||
2006 | if ( !landscape ) diff = 1; | ||
2007 | switch( index ) { | ||
2008 | case 0: | ||
2009 | case 5: | ||
2010 | case 6: | ||
2011 | return index; | ||
2012 | break; | ||
2013 | case 1: | ||
2014 | return 2+diff; | ||
2015 | break; | ||
2016 | case 2: | ||
2017 | return 4-(3*diff); | ||
2018 | break; | ||
2019 | case 3: | ||
2020 | return 1+(3*diff); | ||
2021 | break; | ||
2022 | case 4: | ||
2023 | return 3-diff; | ||
2024 | break; | ||
2025 | default: | ||
2026 | qDebug("KO: Error in mapping week layout "); | ||
2027 | return index; | ||
2028 | break; | ||
2029 | } | ||
2030 | return index; | ||
2031 | } | ||
1966 | void KOMonthView::computeLayout() | 2032 | void KOMonthView::computeLayout() |
1967 | { | 2033 | { |
1968 | 2034 | ||
1969 | 2035 | ||
1970 | static int lastWid = 0; | 2036 | static int lastWid = 0; |
1971 | static int lastHei = 0; | 2037 | static int lastHei = 0; |
1972 | 2038 | ||
1973 | if ( mShowWeekView ){ | 2039 | if ( mShowWeekView ){ |
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h index 4d62e9b..61a141a 100644 --- a/korganizer/komonthview.h +++ b/korganizer/komonthview.h | |||
@@ -297,16 +297,17 @@ class KOMonthView: public KOEventView | |||
297 | void selectMonth (); | 297 | void selectMonth (); |
298 | void showDaySignal( QDate ); | 298 | void showDaySignal( QDate ); |
299 | void newTodoSignal( QDateTime, bool ); | 299 | void newTodoSignal( QDateTime, bool ); |
300 | void showJournalSignal( int,QDate ); | 300 | void showJournalSignal( int,QDate ); |
301 | protected: | 301 | protected: |
302 | void resizeEvent(QResizeEvent *); | 302 | void resizeEvent(QResizeEvent *); |
303 | void viewChanged(); | 303 | void viewChanged(); |
304 | void updateDayLabels(); | 304 | void updateDayLabels(); |
305 | int mapWeekLayout( int, bool ); | ||
305 | 306 | ||
306 | private: | 307 | private: |
307 | int mKBFcounter; | 308 | int mKBFcounter; |
308 | QTimer* mComputeLayoutTimer; | 309 | QTimer* mComputeLayoutTimer; |
309 | NavigatorBar* mNavigatorBar; | 310 | NavigatorBar* mNavigatorBar; |
310 | int currentWeek(); | 311 | int currentWeek(); |
311 | bool clPending; | 312 | bool clPending; |
312 | QWidgetStack * mWidStack; | 313 | QWidgetStack * mWidStack; |
@@ -316,16 +317,17 @@ class KOMonthView: public KOEventView | |||
316 | bool updatePossible; | 317 | bool updatePossible; |
317 | int mDaysPerWeek; | 318 | int mDaysPerWeek; |
318 | int mNumWeeks; | 319 | int mNumWeeks; |
319 | int mNumCells; | 320 | int mNumCells; |
320 | //bool mWeekStartsMonday; | 321 | //bool mWeekStartsMonday; |
321 | bool mShowSatSunComp; | 322 | bool mShowSatSunComp; |
322 | void computeLayout(); | 323 | void computeLayout(); |
323 | void computeLayoutWeek(); | 324 | void computeLayoutWeek(); |
325 | void doComputeLayoutWeek(); | ||
324 | 326 | ||
325 | QPtrVector<MonthViewCell> mCells; | 327 | QPtrVector<MonthViewCell> mCells; |
326 | QPtrVector<QLabel> mDayLabels; | 328 | QPtrVector<QLabel> mDayLabels; |
327 | QPtrVector<KOWeekButton> mWeekLabels; | 329 | QPtrVector<KOWeekButton> mWeekLabels; |
328 | QPtrVector<MonthViewCell> mCellsW; | 330 | QPtrVector<MonthViewCell> mCellsW; |
329 | QPtrVector<QLabel> mDayLabelsW; | 331 | QPtrVector<QLabel> mDayLabelsW; |
330 | QPtrVector<KOWeekButton> mWeekLabelsW; | 332 | QPtrVector<KOWeekButton> mWeekLabelsW; |
331 | 333 | ||
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index a63297e..9e7f18c 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -259,16 +259,17 @@ KOPrefs::KOPrefs() : | |||
259 | addItemBool("WNViewShowsPast",&mWNViewShowsPast,true); | 259 | addItemBool("WNViewShowsPast",&mWNViewShowsPast,true); |
260 | addItemBool("WNViewShowLocation",&mWNViewShowLocation,false); | 260 | addItemBool("WNViewShowLocation",&mWNViewShowLocation,false); |
261 | addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false); | 261 | addItemBool("UseHighlightLightColor",&mUseHighlightLightColor,false); |
262 | addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true); | 262 | addItemBool("ListViewMonthTimespan",&mListViewMonthTimespan,true); |
263 | addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false); | 263 | addItemBool("TodoViewUsesCatColors",&mTodoViewUsesCatColors,false); |
264 | addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false); | 264 | addItemBool("TodoViewShowsPercentage",&mTodoViewShowsPercentage,false); |
265 | addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,true); | 265 | addItemBool("TodoViewUsesSmallFont",&mTodoViewUsesSmallFont,true); |
266 | addItemBool("MonthViewUsesBigFont",&mMonthViewUsesBigFont,true); | 266 | addItemBool("MonthViewUsesBigFont",&mMonthViewUsesBigFont,true); |
267 | addItemBool("MonthViewWeekRowlayout",&mMonthViewWeekRowlayout,true); | ||
267 | addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false); | 268 | addItemBool("TodoViewUsesForegroundColor",&mTodoViewUsesForegroundColor,false); |
268 | addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false); | 269 | addItemBool("MonthViewUsesForegroundColor",&mMonthViewUsesForegroundColor,false); |
269 | #ifdef DESKTOP_VERSION | 270 | #ifdef DESKTOP_VERSION |
270 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true); | 271 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,true); |
271 | #else | 272 | #else |
272 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false); | 273 | addItemBool("UseInternalAlarmNotification",&mUseInternalAlarmNotification,false); |
273 | #endif | 274 | #endif |
274 | addItemInt("Day Begins",&mDayBegins,7); | 275 | addItemInt("Day Begins",&mDayBegins,7); |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 392360d..2ff03fa 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -178,16 +178,17 @@ class KOPrefs : public KPimPrefs | |||
178 | QColor mTodoOverdueColor; | 178 | QColor mTodoOverdueColor; |
179 | QColor mTodoRunColor; | 179 | QColor mTodoRunColor; |
180 | QColor mMonthViewEvenColor; | 180 | QColor mMonthViewEvenColor; |
181 | QColor mMonthViewOddColor; | 181 | QColor mMonthViewOddColor; |
182 | QColor mMonthViewHolidayColor; | 182 | QColor mMonthViewHolidayColor; |
183 | bool mMonthViewUsesDayColors; | 183 | bool mMonthViewUsesDayColors; |
184 | bool mMonthViewSatSunTog; | 184 | bool mMonthViewSatSunTog; |
185 | bool mMonthViewWeek; | 185 | bool mMonthViewWeek; |
186 | bool mMonthViewWeekRowlayout; | ||
186 | QColor mAppColor1; | 187 | QColor mAppColor1; |
187 | QColor mAppColor2; | 188 | QColor mAppColor2; |
188 | bool mUseAppColors; | 189 | bool mUseAppColors; |
189 | 190 | ||
190 | int mDayBegins; | 191 | int mDayBegins; |
191 | int mHourSize; | 192 | int mHourSize; |
192 | int mAllDaySize; | 193 | int mAllDaySize; |
193 | bool mShowFullMenu; | 194 | bool mShowFullMenu; |
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp index ebcff33..05bd73f 100644 --- a/korganizer/koprefsdialog.cpp +++ b/korganizer/koprefsdialog.cpp | |||
@@ -698,16 +698,20 @@ void KOPrefsDialog::setupViewsTab() | |||
698 | &(KOPrefs::instance()->mEnableMonthScroll),topFrame); | 698 | &(KOPrefs::instance()->mEnableMonthScroll),topFrame); |
699 | topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); | 699 | topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); |
700 | #endif | 700 | #endif |
701 | dummy = | 701 | dummy = |
702 | addWidBool(i18n("Week view mode uses bigger font"), | 702 | addWidBool(i18n("Week view mode uses bigger font"), |
703 | &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame); | 703 | &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame); |
704 | topLayout->addWidget(dummy->checkBox(),ii++,0); | 704 | topLayout->addWidget(dummy->checkBox(),ii++,0); |
705 | dummy = | 705 | dummy = |
706 | addWidBool(i18n("Week view mode uses row layout"), | ||
707 | &(KOPrefs::instance()->mMonthViewWeekRowlayout),topFrame); | ||
708 | topLayout->addWidget(dummy->checkBox(),ii++,0); | ||
709 | dummy = | ||
706 | addWidBool(i18n("Show Sat/Sun together"), | 710 | addWidBool(i18n("Show Sat/Sun together"), |
707 | &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); | 711 | &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); |
708 | topLayout->addWidget(dummy->checkBox(),ii++,0); | 712 | topLayout->addWidget(dummy->checkBox(),ii++,0); |
709 | 713 | ||
710 | KPrefsDialogWidBool *coloredCategoriesInMonthView = | 714 | KPrefsDialogWidBool *coloredCategoriesInMonthView = |
711 | addWidBool(i18n("Month view uses category colors"), | 715 | addWidBool(i18n("Month view uses category colors"), |
712 | &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); | 716 | &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); |
713 | topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); | 717 | topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); |