summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/navigatorbar.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/korganizer/navigatorbar.cpp b/korganizer/navigatorbar.cpp
index 2b8fd4f..7ba97c8 100644
--- a/korganizer/navigatorbar.cpp
+++ b/korganizer/navigatorbar.cpp
@@ -1,200 +1,206 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 3
4 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source code for Qt in the source distribution. 22 without including the source code for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qstring.h> 25#include <qstring.h>
26#include <qtooltip.h> 26#include <qtooltip.h>
27#include <qpushbutton.h> 27#include <qpushbutton.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qframe.h> 29#include <qframe.h>
30#include <qlabel.h> 30#include <qlabel.h>
31#include <qpopupmenu.h> 31#include <qpopupmenu.h>
32#include <qapplication.h> 32#include <qapplication.h>
33 33
34#include <kdebug.h> 34#include <kdebug.h>
35#include <klocale.h> 35#include <klocale.h>
36#include <kglobal.h> 36#include <kglobal.h>
37#include <kiconloader.h> 37#include <kiconloader.h>
38#include "libkdepim/kdatepicker.h" 38#include "libkdepim/kdatepicker.h"
39#include <knotifyclient.h> 39#include <knotifyclient.h>
40#include "kdatetbl.h" 40#include "kdatetbl.h"
41 41
42#include "koglobals.h" 42#include "koglobals.h"
43#include <kglobalsettings.h> 43#include <kglobalsettings.h>
44#include "koprefs.h" 44#include "koprefs.h"
45#ifndef KORG_NOPLUGINS 45#ifndef KORG_NOPLUGINS
46#include "kocore.h" 46#include "kocore.h"
47#endif 47#endif
48 48
49#include <kcalendarsystem.h> 49#include <kcalendarsystem.h>
50 50
51#include "navigatorbar.h" 51#include "navigatorbar.h"
52 52
53NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *name ) 53NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *name )
54 : QWidget( parent, name ) 54 : QWidget( parent, name )
55{ 55{
56 QBoxLayout *topLayout = new QHBoxLayout( this ); 56 QBoxLayout *topLayout = new QHBoxLayout( this );
57 57
58 // Set up the control buttons and date label 58 // Set up the control buttons and date label
59 mCtrlFrame = new QFrame( this ); 59 mCtrlFrame = new QFrame( this );
60 mCtrlFrame->setFrameStyle(QFrame::Panel|QFrame::Raised); 60 mCtrlFrame->setFrameStyle(QFrame::Panel|QFrame::Raised);
61 mCtrlFrame->setLineWidth(1); 61 mCtrlFrame->setLineWidth(1);
62 62
63 topLayout->addWidget( mCtrlFrame ); 63 topLayout->addWidget( mCtrlFrame );
64 64
65 QFont tfont = KGlobalSettings::generalFont();//font(); 65 QFont tfont = KGlobalSettings::generalFont();//font();
66 if ( QApplication::desktop()->width() >= 480 ) 66 int add = 0;
67 tfont.setPointSize(tfont.pointSize()+2); 67 if ( QApplication::desktop()->width() >= 480 ) {
68 add = 2;
69 if ( QString ( name ) == QString("useBigPixmaps") )
70 add += 2;
71 }
72 if ( add )
73 tfont.setPointSize(tfont.pointSize()+add);
68 tfont.setBold(true); 74 tfont.setBold(true);
69 75
70 bool isRTL = KOGlobals::self()->reverseLayout(); 76 bool isRTL = KOGlobals::self()->reverseLayout();
71#ifndef DESKTOP_VERSION 77#ifndef DESKTOP_VERSION
72 bool isDesktop = false; 78 bool isDesktop = false;
73#else 79#else
74 bool isDesktop = true; 80 bool isDesktop = true;
75#endif 81#endif
76 if ( QString ( name ) == QString("useBigPixmaps") && QApplication::desktop()->width() > 320 ) 82 if ( QString ( name ) == QString("useBigPixmaps") && QApplication::desktop()->width() > 320 )
77 isDesktop = true; 83 isDesktop = true;
78 // Create backward navigation buttons 84 // Create backward navigation buttons
79 mPrevYear = new QPushButton( mCtrlFrame ); 85 mPrevYear = new QPushButton( mCtrlFrame );
80 mPrevYear->setPixmap( SmallIcon( isDesktop ? "2leftarrowB" : "2leftarrow" ) ); 86 mPrevYear->setPixmap( SmallIcon( isDesktop ? "2leftarrowB" : "2leftarrow" ) );
81 QToolTip::add( mPrevYear, i18n("Previous Year") ); 87 QToolTip::add( mPrevYear, i18n("Previous Year") );
82 88
83 mPrevMonth = new QPushButton( mCtrlFrame ); 89 mPrevMonth = new QPushButton( mCtrlFrame );
84 mPrevMonth->setPixmap( SmallIcon( isDesktop ? "1leftarrowB" : "1leftarrow") ); 90 mPrevMonth->setPixmap( SmallIcon( isDesktop ? "1leftarrowB" : "1leftarrow") );
85 QToolTip::add( mPrevMonth, i18n("Previous Month") ); 91 QToolTip::add( mPrevMonth, i18n("Previous Month") );
86 92
87 // Create forward navigation buttons 93 // Create forward navigation buttons
88 mNextMonth = new QPushButton( mCtrlFrame ); 94 mNextMonth = new QPushButton( mCtrlFrame );
89 mNextMonth->setPixmap( SmallIcon( isDesktop ? "1rightarrowB" : "1rightarrow") ); 95 mNextMonth->setPixmap( SmallIcon( isDesktop ? "1rightarrowB" : "1rightarrow") );
90 QToolTip::add( mNextMonth, i18n("Next Month") ); 96 QToolTip::add( mNextMonth, i18n("Next Month") );
91 97
92 mNextYear = new QPushButton( mCtrlFrame ); 98 mNextYear = new QPushButton( mCtrlFrame );
93 mNextYear->setPixmap( SmallIcon( isDesktop ? "2rightarrowB": "2rightarrow") ); 99 mNextYear->setPixmap( SmallIcon( isDesktop ? "2rightarrowB": "2rightarrow") );
94 QToolTip::add( mNextYear, i18n("Next Year") ); 100 QToolTip::add( mNextYear, i18n("Next Year") );
95 mSelectMonth = new QPushButton( mCtrlFrame ); 101 mSelectMonth = new QPushButton( mCtrlFrame );
96 // Create month name label 102 // Create month name label
97 //selectMonth->setFont( tfont ); 103 //selectMonth->setFont( tfont );
98 // selectMonth->setAlignment( AlignCenter ); 104 // selectMonth->setAlignment( AlignCenter );
99 //mDateLabel = new QLabel( selectMonth ); 105 //mDateLabel = new QLabel( selectMonth );
100 //mDateLabel->setFont( tfont ); 106 //mDateLabel->setFont( tfont );
101 //mDateLabel->setAlignment( AlignCenter ); 107 //mDateLabel->setAlignment( AlignCenter );
102 if ( QString ( name ) == QString("useBigPixmaps") ) { 108 if ( QString ( name ) == QString("useBigPixmaps") ) {
103 mNextMonth->setFlat( true); 109 mNextMonth->setFlat( true);
104 mNextYear->setFlat( true); 110 mNextYear->setFlat( true);
105 mSelectMonth->setFlat( true); 111 mSelectMonth->setFlat( true);
106 mPrevYear->setFlat( true); 112 mPrevYear->setFlat( true);
107 mPrevMonth->setFlat( true); 113 mPrevMonth->setFlat( true);
108 } 114 }
109 mSelectMonth->setFont( tfont ); 115 mSelectMonth->setFont( tfont );
110 // Set minimum width to width of widest month name label 116 // Set minimum width to width of widest month name label
111 int i; 117 int i;
112 int maxwidth = 0; 118 int maxwidth = 0;
113 QFontMetrics fm ( mSelectMonth->font() ); 119 QFontMetrics fm ( mSelectMonth->font() );
114 int width = fm.width("September '00" ); 120 int width = fm.width("September '00" );
115// for( i = 1; i <= KOGlobals::self()->calendarSystem()->monthsInYear(date); 121// for( i = 1; i <= KOGlobals::self()->calendarSystem()->monthsInYear(date);
116// ++i ) { 122// ++i ) {
117// //int width = fm.width( KOGlobals::self()->calendarSystem()->monthName(i, 123// //int width = fm.width( KOGlobals::self()->calendarSystem()->monthName(i,
118// // KOGlobals::self()->calendarSystem()->year(date) ) + " 2000" ); 124// // KOGlobals::self()->calendarSystem()->year(date) ) + " 2000" );
119// int width = fm.width("September 2000" ); 125// int width = fm.width("September 2000" );
120// if ( width > maxwidth ) maxwidth = width; 126// if ( width > maxwidth ) maxwidth = width;
121// } 127// }
122 maxwidth = width+2; 128 maxwidth = width+2;
123 int size = fm.height()+2; 129 int size = fm.height()+2;
124 if ( QApplication::desktop()->width() >= 480 ) { 130 if ( QApplication::desktop()->width() >= 480 ) {
125 size += 6; 131 size += 6;
126 maxwidth+= 6; 132 maxwidth+= 6;
127 } 133 }
128 134
129 mSelectMonth->setFixedWidth( maxwidth ); 135 mSelectMonth->setFixedWidth( maxwidth );
130 mSelectMonth->setFixedHeight( size ); 136 mSelectMonth->setFixedHeight( size );
131 mPrevYear->setFixedHeight( size ); 137 mPrevYear->setFixedHeight( size );
132 mPrevMonth->setFixedHeight( size ); 138 mPrevMonth->setFixedHeight( size );
133 mNextMonth->setFixedHeight( size ); 139 mNextMonth->setFixedHeight( size );
134 mNextYear->setFixedHeight ( size ); 140 mNextYear->setFixedHeight ( size );
135 // set up control frame layout 141 // set up control frame layout
136 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 ); 142 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 );
137 ctrlLayout->addWidget( mPrevYear, 3 ); 143 ctrlLayout->addWidget( mPrevYear, 3 );
138 ctrlLayout->addWidget( mPrevMonth, 3 ); 144 ctrlLayout->addWidget( mPrevMonth, 3 );
139 //ctrlLayout->addStretch( 1 ); 145 //ctrlLayout->addStretch( 1 );
140 // ctrlLayout->addSpacing( 1 ); 146 // ctrlLayout->addSpacing( 1 );
141 // ctrlLayout->addWidget( mDateLabel ); 147 // ctrlLayout->addWidget( mDateLabel );
142 ctrlLayout->addWidget( mSelectMonth ); 148 ctrlLayout->addWidget( mSelectMonth );
143 // ctrlLayout->addSpacing( 1 ); 149 // ctrlLayout->addSpacing( 1 );
144 // ctrlLayout->addStretch( 1 ); 150 // ctrlLayout->addStretch( 1 );
145 ctrlLayout->addWidget( mNextMonth, 3 ); 151 ctrlLayout->addWidget( mNextMonth, 3 );
146 ctrlLayout->addWidget( mNextYear, 3 ); 152 ctrlLayout->addWidget( mNextYear, 3 );
147 153
148 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) ); 154 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) );
149 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) ); 155 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) );
150 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) ); 156 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) );
151 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) ); 157 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) );
152 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) ); 158 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) );
153 mPrevYear->setFocusPolicy(NoFocus); 159 mPrevYear->setFocusPolicy(NoFocus);
154 mPrevMonth->setFocusPolicy(NoFocus); 160 mPrevMonth->setFocusPolicy(NoFocus);
155 mNextMonth->setFocusPolicy(NoFocus); 161 mNextMonth->setFocusPolicy(NoFocus);
156 mNextYear->setFocusPolicy(NoFocus); 162 mNextYear->setFocusPolicy(NoFocus);
157 mSelectMonth->setFocusPolicy(NoFocus); 163 mSelectMonth->setFocusPolicy(NoFocus);
158 setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); 164 setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) );
159 165
160} 166}
161 167
162NavigatorBar::~NavigatorBar() 168NavigatorBar::~NavigatorBar()
163{ 169{
164} 170}
165 171
166void NavigatorBar::selectMonth() 172void NavigatorBar::selectMonth()
167{ 173{
168 174
169 int month; 175 int month;
170 KPopupFrame* popup = new KPopupFrame(this); 176 KPopupFrame* popup = new KPopupFrame(this);
171 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup); 177 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup);
172 // ----- 178 // -----
173 picker->resize(picker->sizeHint()); 179 picker->resize(picker->sizeHint());
174 popup->setMainWidget(picker); 180 popup->setMainWidget(picker);
175 picker->setFocus(); 181 picker->setFocus();
176 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); 182 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
177 if(popup->exec(mSelectMonth->mapToGlobal(QPoint(0, mSelectMonth->height())))) 183 if(popup->exec(mSelectMonth->mapToGlobal(QPoint(0, mSelectMonth->height()))))
178 { 184 {
179 month = picker->getResult(); 185 month = picker->getResult();
180 emit monthSelected ( month ); 186 emit monthSelected ( month );
181 } else { 187 } else {
182 KNotifyClient::beep(); 188 KNotifyClient::beep();
183 } 189 }
184 delete popup; 190 delete popup;
185} 191}
186void NavigatorBar::selectDates( const KCal::DateList &dateList ) 192void NavigatorBar::selectDates( const KCal::DateList &dateList )
187{ 193{
188 if (dateList.count() > 0) { 194 if (dateList.count() > 0) {
189 QDate date = dateList.first(); 195 QDate date = dateList.first();
190 196
191 const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem(); 197 const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem();
192 198
193 // compute the label at the top of the navigator 199 // compute the label at the top of the navigator
194 QString dtstr = i18n(calSys->monthName( date )) + " '" + 200 QString dtstr = i18n(calSys->monthName( date )) + " '" +
195 QString::number( calSys->year( date ) ).right(2); 201 QString::number( calSys->year( date ) ).right(2);
196 202
197 mSelectMonth->setText( dtstr ); 203 mSelectMonth->setText( dtstr );
198 } 204 }
199} 205}
200 206