summaryrefslogtreecommitdiffabout
path: root/korganizer/navigatorbar.cpp
Unidiff
Diffstat (limited to 'korganizer/navigatorbar.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/navigatorbar.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/korganizer/navigatorbar.cpp b/korganizer/navigatorbar.cpp
index 4a51bba..e4abbf7 100644
--- a/korganizer/navigatorbar.cpp
+++ b/korganizer/navigatorbar.cpp
@@ -112,124 +112,146 @@ NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *nam
112 mSelectMonth->setFlat( true); 112 mSelectMonth->setFlat( true);
113 mPrevYear->setFlat( true); 113 mPrevYear->setFlat( true);
114 mPrevMonth->setFlat( true); 114 mPrevMonth->setFlat( true);
115 mPrevWeek->setFlat( true); 115 mPrevWeek->setFlat( true);
116 } else { 116 } else {
117 mPrevWeek->hide(); 117 mPrevWeek->hide();
118 mNextWeek->hide(); 118 mNextWeek->hide();
119 } 119 }
120 120
121 resetFont( font() ); 121 resetFont( font() );
122 122
123 123
124 // set up control frame layout 124 // set up control frame layout
125 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 ); 125 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 );
126 ctrlLayout->addWidget( mPrevYear, 3 ); 126 ctrlLayout->addWidget( mPrevYear, 3 );
127 ctrlLayout->addWidget( mPrevMonth, 3 ); 127 ctrlLayout->addWidget( mPrevMonth, 3 );
128 ctrlLayout->addWidget( mPrevWeek, 3 ); 128 ctrlLayout->addWidget( mPrevWeek, 3 );
129 //ctrlLayout->addStretch( 1 ); 129 //ctrlLayout->addStretch( 1 );
130 // ctrlLayout->addSpacing( 1 ); 130 // ctrlLayout->addSpacing( 1 );
131 // ctrlLayout->addWidget( mDateLabel ); 131 // ctrlLayout->addWidget( mDateLabel );
132 ctrlLayout->addWidget( mSelectMonth ); 132 ctrlLayout->addWidget( mSelectMonth );
133 // ctrlLayout->addSpacing( 1 ); 133 // ctrlLayout->addSpacing( 1 );
134 // ctrlLayout->addStretch( 1 ); 134 // ctrlLayout->addStretch( 1 );
135 ctrlLayout->addWidget( mNextWeek, 3 ); 135 ctrlLayout->addWidget( mNextWeek, 3 );
136 ctrlLayout->addWidget( mNextMonth, 3 ); 136 ctrlLayout->addWidget( mNextMonth, 3 );
137 ctrlLayout->addWidget( mNextYear, 3 ); 137 ctrlLayout->addWidget( mNextYear, 3 );
138 138
139 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) ); 139 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) );
140 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) ); 140 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) );
141 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) ); 141 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) );
142 connect( mPrevWeek, SIGNAL( clicked() ), SIGNAL( goPrevWeek() ) ); 142 connect( mPrevWeek, SIGNAL( clicked() ), SIGNAL( goPrevWeek() ) );
143 connect( mNextWeek, SIGNAL( clicked() ), SIGNAL( goNextWeek() ) ); 143 connect( mNextWeek, SIGNAL( clicked() ), SIGNAL( goNextWeek() ) );
144 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) ); 144 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) );
145 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) ); 145 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) );
146 mPrevYear->setFocusPolicy(NoFocus); 146 mPrevYear->setFocusPolicy(NoFocus);
147 mPrevMonth->setFocusPolicy(NoFocus); 147 mPrevMonth->setFocusPolicy(NoFocus);
148 mNextMonth->setFocusPolicy(NoFocus); 148 mNextMonth->setFocusPolicy(NoFocus);
149 mPrevWeek->setFocusPolicy(NoFocus); 149 mPrevWeek->setFocusPolicy(NoFocus);
150 mNextWeek->setFocusPolicy(NoFocus); 150 mNextWeek->setFocusPolicy(NoFocus);
151 mNextYear->setFocusPolicy(NoFocus); 151 mNextYear->setFocusPolicy(NoFocus);
152 mSelectMonth->setFocusPolicy(NoFocus); 152 mSelectMonth->setFocusPolicy(NoFocus);
153 setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); 153 setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) );
154 154
155} 155}
156 156
157NavigatorBar::~NavigatorBar() 157NavigatorBar::~NavigatorBar()
158{ 158{
159} 159}
160QSize NavigatorBar::sizeHint() const
161{
162 int wid = mCurrentMinWid ;
163 if ( mPrevYear->isVisible() )
164 wid += mCurrentButtonMinWid;
165 if ( mPrevMonth->isVisible() )
166 wid += mCurrentButtonMinWid;
167 if ( mPrevWeek->isVisible() )
168 wid += mCurrentButtonMinWid;
169 if ( mNextMonth->isVisible() )
170 wid += mCurrentButtonMinWid;
171 if ( mNextWeek->isVisible() )
172 wid += mCurrentButtonMinWid;
173 if ( mNextYear->isVisible() )
174 wid += mCurrentButtonMinWid;
175 //qDebug("ret %d %d ", wid, mCurrentHei);
176 int add = 2;
177 return QSize ( wid+add, mCurrentHei+add );
178}
160void NavigatorBar::resetFont ( QFont fo ) 179void NavigatorBar::resetFont ( QFont fo )
161{ 180{
162 181
163 QFont tfont = fo; 182 QFont tfont = fo;
164 if ( QApplication::desktop()->width() >= 480 ) 183 if ( QApplication::desktop()->width() >= 480 )
165 tfont.setPointSize(tfont.pointSize()+2); 184 tfont.setPointSize(tfont.pointSize()+2);
166 tfont.setBold(true); 185 tfont.setBold(true);
167 186
168 mSelectMonth->setFont( tfont ); 187 mSelectMonth->setFont( tfont );
169 // Set minimum width to width of widest month name label 188 // Set minimum width to width of widest month name label
170 int i; 189 int i;
171 int maxwidth = 0; 190 int maxwidth = 0;
172 QFontMetrics fm ( mSelectMonth->font() ); 191 QFontMetrics fm ( mSelectMonth->font() );
173 int width = fm.width("September '00" ); 192 int width = fm.width("September '00" );
174 maxwidth = width+2; 193 maxwidth = width+2;
175 int size = fm.height()+2; 194 int size = fm.height()+2;
176 if ( QApplication::desktop()->width() >= 480 ) { 195 if ( QApplication::desktop()->width() >= 480 ) {
177 size += 6; 196 size += 6;
178 maxwidth+= 6; 197 maxwidth+= 6;
179 } 198 }
180 mSelectMonth->setMinimumWidth( maxwidth ); 199 mSelectMonth->setMinimumWidth( maxwidth );
181 mSelectMonth->setFixedHeight( size ); 200 mSelectMonth->setFixedHeight( size );
182 mPrevYear->setFixedHeight( size ); 201 mPrevYear->setFixedHeight( size );
183 mPrevMonth->setFixedHeight( size ); 202 mPrevMonth->setFixedHeight( size );
184 mPrevWeek->setFixedHeight( size ); 203 mPrevWeek->setFixedHeight( size );
185 mNextMonth->setFixedHeight( size ); 204 mNextMonth->setFixedHeight( size );
186 mNextWeek->setFixedHeight( size ); 205 mNextWeek->setFixedHeight( size );
187 mNextYear->setFixedHeight ( size ); 206 mNextYear->setFixedHeight ( size );
207 mCurrentHei = size;
208 mCurrentMinWid = maxwidth;
209 mCurrentButtonMinWid = mPrevYear->sizeHint().width()+2;
188} 210}
189 211
190void NavigatorBar::showButtons( bool left, bool right ) 212void NavigatorBar::showButtons( bool left, bool right )
191{ 213{
192 if ( left ) { 214 if ( left ) {
193 mPrevYear->show(); 215 mPrevYear->show();
194 mPrevMonth->show(); 216 mPrevMonth->show();
195 } else { 217 } else {
196 mPrevYear->hide(); 218 mPrevYear->hide();
197 mPrevMonth->hide(); 219 mPrevMonth->hide();
198 } 220 }
199 221
200 if ( right ) { 222 if ( right ) {
201 mNextYear->show(); 223 mNextYear->show();
202 mNextMonth->show(); 224 mNextMonth->show();
203 } else { 225 } else {
204 mNextYear->hide(); 226 mNextYear->hide();
205 mNextMonth->hide(); 227 mNextMonth->hide();
206 } 228 }
207 if ( !left && !right ) { 229 if ( !left && !right ) {
208 //mSelectMonth->setMaximumWidth( 1024 ); 230 //mSelectMonth->setMaximumWidth( 1024 );
209 mSelectMonth->setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) ); 231 mSelectMonth->setSizePolicy( QSizePolicy ( QSizePolicy::Expanding ,QSizePolicy::Fixed ) );
210 } 232 }
211} 233}
212 234
213void NavigatorBar::selectMonth() 235void NavigatorBar::selectMonth()
214{ 236{
215 237
216 int month; 238 int month;
217 KPopupFrame* popup = new KPopupFrame(this); 239 KPopupFrame* popup = new KPopupFrame(this);
218 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup); 240 KDateInternalMonthPicker* picker = new KDateInternalMonthPicker(popup);
219 // ----- 241 // -----
220 picker->resize(picker->sizeHint()); 242 picker->resize(picker->sizeHint());
221 popup->setMainWidget(picker); 243 popup->setMainWidget(picker);
222 picker->setFocus(); 244 picker->setFocus();
223 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int))); 245 connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
224 if(popup->exec(mSelectMonth->mapToGlobal(QPoint(0, mSelectMonth->height())))) 246 if(popup->exec(mSelectMonth->mapToGlobal(QPoint(0, mSelectMonth->height()))))
225 { 247 {
226 month = picker->getResult(); 248 month = picker->getResult();
227 emit monthSelected ( month ); 249 emit monthSelected ( month );
228 } else { 250 } else {
229 KNotifyClient::beep(); 251 KNotifyClient::beep();
230 } 252 }
231 delete popup; 253 delete popup;
232} 254}
233void NavigatorBar::selectDates( const KCal::DateList &dateList ) 255void NavigatorBar::selectDates( const KCal::DateList &dateList )
234{ 256{
235 if (dateList.count() > 0) { 257 if (dateList.count() > 0) {