-rw-r--r-- | korganizer/koeditorrecurrence.cpp | 77 |
1 files changed, 19 insertions, 58 deletions
diff --git a/korganizer/koeditorrecurrence.cpp b/korganizer/koeditorrecurrence.cpp index bedc75a..bf81b01 100644 --- a/korganizer/koeditorrecurrence.cpp +++ b/korganizer/koeditorrecurrence.cpp | |||
@@ -80,12 +80,13 @@ int RecurBase::frequency() | |||
80 | 80 | ||
81 | RecurDaily::RecurDaily( QWidget *parent, const char *name ) : | 81 | RecurDaily::RecurDaily( QWidget *parent, const char *name ) : |
82 | RecurBase( parent, name ) | 82 | RecurBase( parent, name ) |
83 | { | 83 | { |
84 | QBoxLayout *topLayout = new QHBoxLayout( this ); | 84 | QBoxLayout *topLayout = new QHBoxLayout( this ); |
85 | topLayout->setSpacing( KDialog::spacingHint() ); | 85 | topLayout->setSpacing( KDialog::spacingHint() ); |
86 | topLayout->setMargin( KDialog::marginHintSmall() ); | ||
86 | 87 | ||
87 | QLabel *preLabel = new QLabel( i18n("Recur every"), this ); | 88 | QLabel *preLabel = new QLabel( i18n("Recur every"), this ); |
88 | topLayout->addWidget( preLabel ); | 89 | topLayout->addWidget( preLabel ); |
89 | 90 | ||
90 | topLayout->addWidget( frequencyEdit() ); | 91 | topLayout->addWidget( frequencyEdit() ); |
91 | 92 | ||
@@ -98,14 +99,15 @@ RecurDaily::RecurDaily( QWidget *parent, const char *name ) : | |||
98 | 99 | ||
99 | RecurWeekly::RecurWeekly( QWidget *parent, const char *name ) : | 100 | RecurWeekly::RecurWeekly( QWidget *parent, const char *name ) : |
100 | RecurBase( parent, name ) | 101 | RecurBase( parent, name ) |
101 | { | 102 | { |
102 | QBoxLayout *topLayout = new QVBoxLayout( this ); | 103 | QBoxLayout *topLayout = new QVBoxLayout( this ); |
103 | topLayout->setSpacing( KDialog::spacingHint() ); | 104 | topLayout->setSpacing( KDialog::spacingHint() ); |
105 | topLayout->setMargin( KDialog::marginHintSmall() ); | ||
104 | 106 | ||
105 | topLayout->addStretch( 1 ); | 107 | //topLayout->addStretch( 1 ); |
106 | 108 | ||
107 | QBoxLayout *weeksLayout = new QHBoxLayout( topLayout ); | 109 | QBoxLayout *weeksLayout = new QHBoxLayout( topLayout ); |
108 | 110 | ||
109 | QLabel *preLabel = new QLabel( i18n("Recur every"), this ); | 111 | QLabel *preLabel = new QLabel( i18n("Recur every"), this ); |
110 | weeksLayout->addWidget( preLabel ); | 112 | weeksLayout->addWidget( preLabel ); |
111 | 113 | ||
@@ -116,19 +118,22 @@ RecurWeekly::RecurWeekly( QWidget *parent, const char *name ) : | |||
116 | 118 | ||
117 | QHBox *dayBox = new QHBox( this ); | 119 | QHBox *dayBox = new QHBox( this ); |
118 | topLayout->addWidget( dayBox, 1, AlignVCenter ); | 120 | topLayout->addWidget( dayBox, 1, AlignVCenter ); |
119 | // TODO: Respect start of week setting | 121 | // TODO: Respect start of week setting |
120 | for ( int i = 0; i < 7; ++i ) { | 122 | for ( int i = 0; i < 7; ++i ) { |
121 | QString weekDayName = KGlobal::locale()->weekDayName( i + 1, true ); | 123 | QString weekDayName = KGlobal::locale()->weekDayName( i + 1, true ); |
122 | if ( KOPrefs::instance()->mCompactDialogs ) { | 124 | int left = 1; |
123 | weekDayName = weekDayName.left( 1 ); | 125 | if ( QApplication::desktop()->width() > 480 ) { |
126 | ++left; | ||
127 | if ( QApplication::desktop()->width() > 640 ) | ||
128 | ++left; | ||
124 | } | 129 | } |
125 | mDayBoxes[ i ] = new QCheckBox( weekDayName, dayBox ); | 130 | mDayBoxes[ i ] = new QCheckBox( weekDayName.left( left ), dayBox ); |
126 | } | 131 | } |
127 | 132 | ||
128 | topLayout->addStretch( 1 ); | 133 | topLayout->addStretch( ); |
129 | } | 134 | } |
130 | 135 | ||
131 | void RecurWeekly::setDays( const QBitArray &days ) | 136 | void RecurWeekly::setDays( const QBitArray &days ) |
132 | { | 137 | { |
133 | for ( int i = 0; i < 7; ++i ) { | 138 | for ( int i = 0; i < 7; ++i ) { |
134 | mDayBoxes[ i ]->setChecked( days.testBit( i ) ); | 139 | mDayBoxes[ i ]->setChecked( days.testBit( i ) ); |
@@ -150,12 +155,13 @@ QBitArray RecurWeekly::days() | |||
150 | 155 | ||
151 | RecurMonthly::RecurMonthly( QWidget *parent, const char *name ) : | 156 | RecurMonthly::RecurMonthly( QWidget *parent, const char *name ) : |
152 | RecurBase( parent, name ) | 157 | RecurBase( parent, name ) |
153 | { | 158 | { |
154 | QBoxLayout *topLayout = new QVBoxLayout( this ); | 159 | QBoxLayout *topLayout = new QVBoxLayout( this ); |
155 | topLayout->setSpacing( KDialog::spacingHint() ); | 160 | topLayout->setSpacing( KDialog::spacingHint() ); |
161 | topLayout->setMargin( KDialog::marginHintSmall() ); | ||
156 | 162 | ||
157 | 163 | ||
158 | QBoxLayout *freqLayout = new QHBoxLayout( topLayout ); | 164 | QBoxLayout *freqLayout = new QHBoxLayout( topLayout ); |
159 | 165 | ||
160 | QLabel *preLabel = new QLabel( i18n("every"), this ); | 166 | QLabel *preLabel = new QLabel( i18n("every"), this ); |
161 | freqLayout->addWidget( preLabel ); | 167 | freqLayout->addWidget( preLabel ); |
@@ -169,16 +175,17 @@ RecurMonthly::RecurMonthly( QWidget *parent, const char *name ) : | |||
169 | QButtonGroup *buttonGroup = new QButtonGroup( this ); | 175 | QButtonGroup *buttonGroup = new QButtonGroup( this ); |
170 | buttonGroup->setFrameStyle( QFrame::NoFrame ); | 176 | buttonGroup->setFrameStyle( QFrame::NoFrame ); |
171 | topLayout->addWidget( buttonGroup, 1, AlignVCenter ); | 177 | topLayout->addWidget( buttonGroup, 1, AlignVCenter ); |
172 | 178 | ||
173 | QGridLayout *buttonLayout = new QGridLayout( buttonGroup, 3, 2 ); | 179 | QGridLayout *buttonLayout = new QGridLayout( buttonGroup, 3, 2 ); |
174 | buttonLayout->setSpacing( KDialog::spacingHint() ); | 180 | buttonLayout->setSpacing( KDialog::spacingHint() ); |
181 | buttonLayout->setMargin( KDialog::marginHintSmall() ); | ||
175 | 182 | ||
176 | 183 | ||
177 | QString recurOnText; | 184 | QString recurOnText; |
178 | if ( !KOPrefs::instance()->mCompactDialogs ) { | 185 | if ( QApplication::desktop()->width() > 320 ) { |
179 | recurOnText = i18n("Recur on the"); | 186 | recurOnText = i18n("Recur on the"); |
180 | } | 187 | } |
181 | 188 | ||
182 | mByDayRadio = new QRadioButton( recurOnText, buttonGroup ); | 189 | mByDayRadio = new QRadioButton( recurOnText, buttonGroup ); |
183 | buttonLayout->addWidget( mByDayRadio, 0, 0 ); | 190 | buttonLayout->addWidget( mByDayRadio, 0, 0 ); |
184 | 191 | ||
@@ -285,12 +292,13 @@ int RecurMonthly::weekday() | |||
285 | 292 | ||
286 | RecurYearly::RecurYearly( QWidget *parent, const char *name ) : | 293 | RecurYearly::RecurYearly( QWidget *parent, const char *name ) : |
287 | RecurBase( parent, name ) | 294 | RecurBase( parent, name ) |
288 | { | 295 | { |
289 | QBoxLayout *topLayout = new QVBoxLayout( this ); | 296 | QBoxLayout *topLayout = new QVBoxLayout( this ); |
290 | topLayout->setSpacing( KDialog::spacingHint() ); | 297 | topLayout->setSpacing( KDialog::spacingHint() ); |
298 | topLayout->setMargin( KDialog::marginHintSmall() ); | ||
291 | 299 | ||
292 | 300 | ||
293 | QBoxLayout *freqLayout = new QHBoxLayout( topLayout ); | 301 | QBoxLayout *freqLayout = new QHBoxLayout( topLayout ); |
294 | 302 | ||
295 | QLabel *preLabel = new QLabel( i18n("every"), this ); | 303 | QLabel *preLabel = new QLabel( i18n("every"), this ); |
296 | freqLayout->addWidget( preLabel ); | 304 | freqLayout->addWidget( preLabel ); |
@@ -502,12 +510,13 @@ RecurrenceRangeWidget::RecurrenceRangeWidget( QWidget *parent, | |||
502 | this ); | 510 | this ); |
503 | topLayout->addWidget( mRangeGroupBox ); | 511 | topLayout->addWidget( mRangeGroupBox ); |
504 | 512 | ||
505 | QWidget *rangeBox = new QWidget( mRangeGroupBox ); | 513 | QWidget *rangeBox = new QWidget( mRangeGroupBox ); |
506 | QVBoxLayout *rangeLayout = new QVBoxLayout( rangeBox ); | 514 | QVBoxLayout *rangeLayout = new QVBoxLayout( rangeBox ); |
507 | rangeLayout->setSpacing( KDialog::spacingHint() ); | 515 | rangeLayout->setSpacing( KDialog::spacingHint() ); |
516 | rangeLayout->setMargin( KDialog::marginHintSmall() ); | ||
508 | 517 | ||
509 | mStartDateLabel = new QLabel( i18n("Begin on:"), rangeBox ); | 518 | mStartDateLabel = new QLabel( i18n("Begin on:"), rangeBox ); |
510 | rangeLayout->addWidget( mStartDateLabel ); | 519 | rangeLayout->addWidget( mStartDateLabel ); |
511 | 520 | ||
512 | QButtonGroup *rangeButtonGroup = new QButtonGroup; | 521 | QButtonGroup *rangeButtonGroup = new QButtonGroup; |
513 | 522 | ||
@@ -535,13 +544,13 @@ RecurrenceRangeWidget::RecurrenceRangeWidget( QWidget *parent, | |||
535 | rangeButtonGroup->insert( mEndDateButton ); | 544 | rangeButtonGroup->insert( mEndDateButton ); |
536 | endDateLayout->addWidget( mEndDateButton ); | 545 | endDateLayout->addWidget( mEndDateButton ); |
537 | 546 | ||
538 | mEndDateEdit = new KDateEdit( rangeBox ); | 547 | mEndDateEdit = new KDateEdit( rangeBox ); |
539 | endDateLayout->addWidget( mEndDateEdit ); | 548 | endDateLayout->addWidget( mEndDateEdit ); |
540 | 549 | ||
541 | endDateLayout->addStretch( 1 ); | 550 | //endDateLayout->addStretch( 1 ); |
542 | 551 | ||
543 | connect( mNoEndDateButton, SIGNAL( toggled( bool ) ), | 552 | connect( mNoEndDateButton, SIGNAL( toggled( bool ) ), |
544 | SLOT( showCurrentRange() ) ); | 553 | SLOT( showCurrentRange() ) ); |
545 | connect( mEndDurationButton, SIGNAL( toggled( bool ) ), | 554 | connect( mEndDurationButton, SIGNAL( toggled( bool ) ), |
546 | SLOT( showCurrentRange() ) ); | 555 | SLOT( showCurrentRange() ) ); |
547 | connect( mEndDateButton, SIGNAL( toggled( bool ) ), | 556 | connect( mEndDateButton, SIGNAL( toggled( bool ) ), |
@@ -650,43 +659,22 @@ void RecurrenceRangeDialog::setDateTimes( const QDateTime &start, | |||
650 | 659 | ||
651 | RecurrenceChooser::RecurrenceChooser( QWidget *parent, const char *name ) : | 660 | RecurrenceChooser::RecurrenceChooser( QWidget *parent, const char *name ) : |
652 | QWidget( parent, name ) | 661 | QWidget( parent, name ) |
653 | { | 662 | { |
654 | QBoxLayout *topLayout = new QVBoxLayout( this ); | 663 | QBoxLayout *topLayout = new QVBoxLayout( this ); |
655 | 664 | ||
656 | if ( KOPrefs::instance()->mCompactDialogs ) { | ||
657 | mTypeCombo = new QComboBox( this ); | 665 | mTypeCombo = new QComboBox( this ); |
658 | mTypeCombo->insertItem( i18n("Daily") ); | 666 | mTypeCombo->insertItem( i18n("Daily") ); |
659 | mTypeCombo->insertItem( i18n("Weekly") ); | 667 | mTypeCombo->insertItem( i18n("Weekly") ); |
660 | mTypeCombo->insertItem( i18n("Monthly") ); | 668 | mTypeCombo->insertItem( i18n("Monthly") ); |
661 | mTypeCombo->insertItem( i18n("Yearly") ); | 669 | mTypeCombo->insertItem( i18n("Yearly") ); |
662 | 670 | ||
663 | topLayout->addWidget( mTypeCombo ); | 671 | topLayout->addWidget( mTypeCombo ); |
664 | 672 | ||
665 | connect( mTypeCombo, SIGNAL( activated( int ) ), SLOT( emitChoice() ) ); | 673 | connect( mTypeCombo, SIGNAL( activated( int ) ), SLOT( emitChoice() ) ); |
666 | } else { | ||
667 | mTypeCombo = 0; | ||
668 | |||
669 | QButtonGroup *ruleButtonGroup = new QButtonGroup( 1, Horizontal, this ); | ||
670 | ruleButtonGroup->setFrameStyle( QFrame::NoFrame ); | ||
671 | topLayout->addWidget( ruleButtonGroup ); | ||
672 | 674 | ||
673 | mDailyButton = new QRadioButton( i18n("Daily"), ruleButtonGroup ); | ||
674 | mWeeklyButton = new QRadioButton( i18n("Weekly"), ruleButtonGroup ); | ||
675 | mMonthlyButton = new QRadioButton( i18n("Monthly"), ruleButtonGroup ); | ||
676 | mYearlyButton = new QRadioButton( i18n("Yearly"), ruleButtonGroup ); | ||
677 | |||
678 | connect( mDailyButton, SIGNAL( toggled( bool ) ), | ||
679 | SLOT( emitChoice() ) ); | ||
680 | connect( mWeeklyButton, SIGNAL( toggled( bool ) ), | ||
681 | SLOT( emitChoice() ) ); | ||
682 | connect( mMonthlyButton, SIGNAL( toggled( bool ) ), | ||
683 | SLOT( emitChoice() ) ); | ||
684 | connect( mYearlyButton, SIGNAL( toggled( bool ) ), | ||
685 | SLOT( emitChoice() ) ); | ||
686 | } | ||
687 | } | 675 | } |
688 | 676 | ||
689 | int RecurrenceChooser::type() | 677 | int RecurrenceChooser::type() |
690 | { | 678 | { |
691 | if ( mTypeCombo ) { | 679 | if ( mTypeCombo ) { |
692 | return mTypeCombo->currentItem(); | 680 | return mTypeCombo->currentItem(); |
@@ -730,54 +718,43 @@ void RecurrenceChooser::emitChoice() | |||
730 | 718 | ||
731 | KOEditorRecurrence::KOEditorRecurrence( QWidget* parent, const char *name ) : | 719 | KOEditorRecurrence::KOEditorRecurrence( QWidget* parent, const char *name ) : |
732 | QWidget( parent, name ) | 720 | QWidget( parent, name ) |
733 | { | 721 | { |
734 | QGridLayout *topLayout = new QGridLayout( this, 2,2 ); | 722 | QGridLayout *topLayout = new QGridLayout( this, 2,2 ); |
735 | topLayout->setSpacing( KDialog::spacingHint() ); | 723 | topLayout->setSpacing( KDialog::spacingHint() ); |
724 | topLayout->setMargin( KDialog::marginHintSmall() ); | ||
736 | 725 | ||
737 | mEnabledCheck = new QCheckBox( i18n("Enable Recurrence"), this ); | 726 | mEnabledCheck = new QCheckBox( i18n("Enable Recurrence"), this ); |
738 | connect( mEnabledCheck, SIGNAL( toggled( bool ) ), | 727 | connect( mEnabledCheck, SIGNAL( toggled( bool ) ), |
739 | SLOT( setEnabled( bool ) ) ); | 728 | SLOT( setEnabled( bool ) ) ); |
740 | topLayout->addMultiCellWidget( mEnabledCheck, 0, 0, 0, 1 ); | 729 | topLayout->addMultiCellWidget( mEnabledCheck, 0, 0, 0, 1 ); |
741 | 730 | ||
742 | 731 | ||
743 | mTimeGroupBox = new QGroupBox( 1, Horizontal, i18n("Appointment Time "), | 732 | mTimeGroupBox = new QGroupBox( 1, Horizontal, i18n("Appointment Time "), |
744 | this ); | 733 | this ); |
745 | topLayout->addMultiCellWidget( mTimeGroupBox, 1, 1 , 0 , 1 ); | 734 | topLayout->addMultiCellWidget( mTimeGroupBox, 1, 1 , 0 , 1 ); |
746 | 735 | ||
747 | if ( KOPrefs::instance()->mCompactDialogs ) { | 736 | if ( QApplication::desktop()->width() <= 320) { |
748 | mTimeGroupBox->hide(); | 737 | mTimeGroupBox->hide(); |
749 | } | 738 | } |
750 | 739 | ||
751 | // QFrame *timeFrame = new QFrame( mTimeGroupBox ); | 740 | // QFrame *timeFrame = new QFrame( mTimeGroupBox ); |
752 | // QBoxLayout *layoutTimeFrame = new QHBoxLayout( timeFrame ); | 741 | // QBoxLayout *layoutTimeFrame = new QHBoxLayout( timeFrame ); |
753 | // layoutTimeFrame->setSpacing( KDialog::spacingHint() ); | 742 | // layoutTimeFrame->setSpacing( KDialog::spacingHint() ); |
754 | 743 | ||
755 | mDateTimeLabel = new QLabel( mTimeGroupBox ); | 744 | mDateTimeLabel = new QLabel( mTimeGroupBox ); |
756 | // mDateTimeLabel = new QLabel( timeFrame ); | 745 | // mDateTimeLabel = new QLabel( timeFrame ); |
757 | // layoutTimeFrame->addWidget( mDateTimeLabel ); | 746 | // layoutTimeFrame->addWidget( mDateTimeLabel ); |
758 | 747 | ||
759 | Qt::Orientation orientation; | ||
760 | if ( KOPrefs::instance()->mCompactDialogs ) orientation = Horizontal; | ||
761 | else orientation = Vertical; | ||
762 | 748 | ||
763 | mRuleBox = new QGroupBox( 1, orientation, i18n("Recurrence Rule"), this ); | 749 | mRuleBox = new QGroupBox( 1, Horizontal, i18n("Recurrence Rule"), this ); |
764 | if ( KOPrefs::instance()->mCompactDialogs ) { | ||
765 | topLayout->addMultiCellWidget( mRuleBox, 2, 2, 0, 1 ); | 750 | topLayout->addMultiCellWidget( mRuleBox, 2, 2, 0, 1 ); |
766 | } else { | ||
767 | topLayout->addMultiCellWidget( mRuleBox, 2, 2, 0, 1 ); | ||
768 | } | ||
769 | |||
770 | mRecurrenceChooser = new RecurrenceChooser( mRuleBox ); | 751 | mRecurrenceChooser = new RecurrenceChooser( mRuleBox ); |
771 | connect( mRecurrenceChooser, SIGNAL( chosen( int ) ), | 752 | connect( mRecurrenceChooser, SIGNAL( chosen( int ) ), |
772 | SLOT( showCurrentRule( int ) ) ); | 753 | SLOT( showCurrentRule( int ) ) ); |
773 | 754 | ||
774 | if ( !KOPrefs::instance()->mCompactDialogs ) { | ||
775 | QFrame *ruleSepFrame = new QFrame( mRuleBox ); | ||
776 | ruleSepFrame->setFrameStyle( QFrame::VLine | QFrame::Sunken ); | ||
777 | } | ||
778 | 755 | ||
779 | mRuleStack = new QWidgetStack( mRuleBox ); | 756 | mRuleStack = new QWidgetStack( mRuleBox ); |
780 | 757 | ||
781 | mDaily = new RecurDaily( mRuleStack ); | 758 | mDaily = new RecurDaily( mRuleStack ); |
782 | mRuleStack->addWidget( mDaily, 0 ); | 759 | mRuleStack->addWidget( mDaily, 0 ); |
783 | 760 | ||
@@ -788,14 +765,12 @@ KOEditorRecurrence::KOEditorRecurrence( QWidget* parent, const char *name ) : | |||
788 | mRuleStack->addWidget( mMonthly, 0 ); | 765 | mRuleStack->addWidget( mMonthly, 0 ); |
789 | 766 | ||
790 | mYearly = new RecurYearly( mRuleStack ); | 767 | mYearly = new RecurYearly( mRuleStack ); |
791 | mRuleStack->addWidget( mYearly, 0 ); | 768 | mRuleStack->addWidget( mYearly, 0 ); |
792 | 769 | ||
793 | showCurrentRule( mRecurrenceChooser->type() ); | 770 | showCurrentRule( mRecurrenceChooser->type() ); |
794 | |||
795 | if ( KOPrefs::instance()->mCompactDialogs ) { | ||
796 | mRecurrenceRangeWidget = 0; | 771 | mRecurrenceRangeWidget = 0; |
797 | mRecurrenceRangeDialog = new RecurrenceRangeDialog( this ); | 772 | mRecurrenceRangeDialog = new RecurrenceRangeDialog( this ); |
798 | mRecurrenceRange = mRecurrenceRangeDialog; | 773 | mRecurrenceRange = mRecurrenceRangeDialog; |
799 | mRecurrenceRangeButton = new QPushButton( i18n("Recurrence Range..."), | 774 | mRecurrenceRangeButton = new QPushButton( i18n("Recurrence Range..."), |
800 | this ); | 775 | this ); |
801 | 776 | ||
@@ -812,26 +787,12 @@ KOEditorRecurrence::KOEditorRecurrence( QWidget* parent, const char *name ) : | |||
812 | } else { | 787 | } else { |
813 | topLayout->addWidget( mRecurrenceRangeButton, 3, 0 ); | 788 | topLayout->addWidget( mRecurrenceRangeButton, 3, 0 ); |
814 | topLayout->addWidget( mExceptionsButton, 3, 1 ); | 789 | topLayout->addWidget( mExceptionsButton, 3, 1 ); |
815 | } | 790 | } |
816 | connect( mExceptionsButton, SIGNAL( clicked() ), | 791 | connect( mExceptionsButton, SIGNAL( clicked() ), |
817 | SLOT( showExceptionsDialog() ) ); | 792 | SLOT( showExceptionsDialog() ) ); |
818 | |||
819 | } else { | ||
820 | mRecurrenceRangeWidget = new RecurrenceRangeWidget( this ); | ||
821 | mRecurrenceRangeDialog = 0; | ||
822 | mRecurrenceRange = mRecurrenceRangeWidget; | ||
823 | mRecurrenceRangeButton = 0; | ||
824 | topLayout->addWidget( mRecurrenceRangeWidget, 3, 0 ); | ||
825 | |||
826 | mExceptionsWidget = new ExceptionsWidget( this ); | ||
827 | mExceptionsDialog = 0; | ||
828 | mExceptions = mExceptionsWidget; | ||
829 | mExceptionsButton = 0; | ||
830 | topLayout->addWidget( mExceptionsWidget, 3, 1 ); | ||
831 | } | ||
832 | } | 793 | } |
833 | 794 | ||
834 | KOEditorRecurrence::~KOEditorRecurrence() | 795 | KOEditorRecurrence::~KOEditorRecurrence() |
835 | { | 796 | { |
836 | } | 797 | } |
837 | 798 | ||