summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/koeditorrecurrence.cpp77
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
81RecurDaily::RecurDaily( QWidget *parent, const char *name ) : 81RecurDaily::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
99RecurWeekly::RecurWeekly( QWidget *parent, const char *name ) : 100RecurWeekly::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
131void RecurWeekly::setDays( const QBitArray &days ) 136void 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
151RecurMonthly::RecurMonthly( QWidget *parent, const char *name ) : 156RecurMonthly::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
286RecurYearly::RecurYearly( QWidget *parent, const char *name ) : 293RecurYearly::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
651RecurrenceChooser::RecurrenceChooser( QWidget *parent, const char *name ) : 660RecurrenceChooser::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
689int RecurrenceChooser::type() 677int 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
731KOEditorRecurrence::KOEditorRecurrence( QWidget* parent, const char *name ) : 719KOEditorRecurrence::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
834KOEditorRecurrence::~KOEditorRecurrence() 795KOEditorRecurrence::~KOEditorRecurrence()
835{ 796{
836} 797}
837 798