summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp32
-rw-r--r--korganizer/koeditorgeneral.cpp34
2 files changed, 31 insertions, 35 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 5508210..f287216 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -82,121 +82,133 @@ TimeLabels::TimeLabels(int rows,QWidget *parent,const char *name,WFlags f) :
82 QScrollView(parent,name,f) 82 QScrollView(parent,name,f)
83{ 83{
84 mRows = rows; 84 mRows = rows;
85 85
86 setMinimumHeight( 20 ); 86 setMinimumHeight( 20 );
87 mCellHeight = KOPrefs::instance()->mHourSize*4; 87 mCellHeight = KOPrefs::instance()->mHourSize*4;
88 88
89 enableClipper(true); 89 enableClipper(true);
90 90
91 setHScrollBarMode(AlwaysOff); 91 setHScrollBarMode(AlwaysOff);
92 setVScrollBarMode(AlwaysOff); 92 setVScrollBarMode(AlwaysOff);
93 93
94 resizeContents(50,mRows * mCellHeight); 94 resizeContents(50,mRows * mCellHeight);
95 95
96 viewport()->setBackgroundMode( PaletteBackground ); 96 viewport()->setBackgroundMode( PaletteBackground );
97} 97}
98 98
99void TimeLabels::setCellHeight(int height) 99void TimeLabels::setCellHeight(int height)
100{ 100{
101 mCellHeight = height; 101 mCellHeight = height;
102} 102}
103 103
104/* 104/*
105 Optimization so that only the "dirty" portion of the scroll view 105 Optimization so that only the "dirty" portion of the scroll view
106 is redrawn. Unfortunately, this is not called by default paintEvent() method. 106 is redrawn. Unfortunately, this is not called by default paintEvent() method.
107*/ 107*/
108void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch) 108void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch)
109{ 109{
110 110
111 // if ( globalFlagBlockAgenda ) 111 // if ( globalFlagBlockAgenda )
112 // return; 112 // return;
113 // bug: the parameters cx, cy, cw, ch are the areas that need to be 113 // bug: the parameters cx, cy, cw, ch are the areas that need to be
114 // redrawn, not the area of the widget. unfortunately, this 114 // redrawn, not the area of the widget. unfortunately, this
115 // code assumes the latter... 115 // code assumes the latter...
116 116
117 // now, for a workaround... 117 // now, for a workaround...
118 // these two assignments fix the weird redraw bug 118 // these two assignments fix the weird redraw bug
119 cx = contentsX() + 2; 119 cx = contentsX() + 2;
120 cw = contentsWidth() - 2; 120 cw = contentsWidth() - 2;
121 // end of workaround 121 // end of workaround
122 122
123 int cell = ((int)(cy/mCellHeight)); 123 int cell = ((int)(cy/mCellHeight));
124 int y = cell * mCellHeight; 124 int y = cell * mCellHeight;
125 QFontMetrics fm = fontMetrics(); 125 QFontMetrics fm = fontMetrics();
126 QString hour; 126 QString hour;
127 QString suffix; 127 QString suffix;
128 QString fullTime; 128 QString fullTime;
129 int tW = fm.width("24:00i"); 129 int tW = fm.width("24:00i");
130 int timeHeight = fm.height();
131 if ( timeHeight > mCellHeight )
132 timeHeight = mCellHeight-1;
133 int borderWidth = 5;
134 QFont nFont = p->font();
135 QFont sFont = nFont;
136 sFont.setPointSize( sFont.pointSize()/2+2 );
137 if (!KGlobal::locale()->use12Clock())
138 suffix = "00";
139 QFontMetrics fmS( sFont );
140 int sHei = fmS.height();
130 141
131 while (y < cy + ch) { 142 while (y < cy + ch) {
132 p->drawLine(cx,y,cx+tW,y); 143 p->drawLine(cx,y,cx+tW,y);
133 hour.setNum(cell); 144 hour.setNum(cell);
134 suffix = "am";
135 145
136 // handle 24h and am/pm time formats 146 // handle 24h and am/pm time formats
137 if (KGlobal::locale()->use12Clock()) { 147 if (KGlobal::locale()->use12Clock()) {
138 if (cell > 11) suffix = "pm"; 148 if (cell > 11) suffix = "pm";
149 else
150 suffix = "am";
139 if (cell == 0) hour.setNum(12); 151 if (cell == 0) hour.setNum(12);
140 if (cell > 12) hour.setNum(cell - 12); 152 if (cell > 12) hour.setNum(cell - 12);
141 } else {
142 suffix = ":00";
143 } 153 }
144 154
145 // create string in format of "XX:XX" or "XXpm/am" 155 // create string in format of "XX:XX" or "XXpm/am"
146 fullTime = hour + suffix; 156 fullTime = hour;// + suffix;
147 157
148 // center and draw the time label 158 // center and draw the time label
149 int timeWidth = fm.width(fullTime+"i"); 159 int timeWidth = fm.width(fullTime+"i");
150 int offset = this->width() - timeWidth; 160 int tw2 = fm.width(suffix);
151 int borderWidth = 5; 161 int offset = this->width() - timeWidth - tw2;
152 int timeHeight = fm.height(); 162 p->setFont( nFont );
153 timeHeight = timeHeight + 2 - ( timeHeight / 4 ); 163 p->drawText(cx - borderWidth + offset, y+ timeHeight, fullTime);
154 p->drawText(cx -borderWidth + offset, y+ timeHeight, fullTime); 164 p->setFont( sFont );
165 offset += timeWidth;
166 p->drawText(cx - borderWidth + offset, y+ sHei, suffix);
155 167
156 // increment indices 168 // increment indices
157 y += mCellHeight; 169 y += mCellHeight;
158 cell++; 170 cell++;
159 } 171 }
160} 172}
161 173
162/** 174/**
163 Calculates the minimum width. 175 Calculates the minimum width.
164*/ 176*/
165int TimeLabels::minimumWidth() const 177int TimeLabels::minimumWidth() const
166{ 178{
167 QFontMetrics fm = fontMetrics(); 179 QFontMetrics fm = fontMetrics();
168 180
169 //TODO: calculate this value 181 //TODO: calculate this value
170 int borderWidth = 4; 182 int borderWidth = 4;
171 183
172 // the maximum width possible 184 // the maximum width possible
173 int width = fm.width("88:88x") + borderWidth; 185 int width = fm.width("88:88x") + borderWidth;
174 186
175 return width; 187 return width;
176} 188}
177 189
178/** updates widget's internal state */ 190/** updates widget's internal state */
179void TimeLabels::updateConfig() 191void TimeLabels::updateConfig()
180{ 192{
181 // set the font 193 // set the font
182 // config->setGroup("Fonts"); 194 // config->setGroup("Fonts");
183 // QFont font = config->readFontEntry("TimeBar Font"); 195 // QFont font = config->readFontEntry("TimeBar Font");
184 setFont(KOPrefs::instance()->mTimeBarFont); 196 setFont(KOPrefs::instance()->mTimeBarFont);
185 197
186 // update geometry restrictions based on new settings 198 // update geometry restrictions based on new settings
187 setFixedWidth(minimumWidth()); 199 setFixedWidth(minimumWidth());
188 200
189 // update HourSize 201 // update HourSize
190 mCellHeight = KOPrefs::instance()->mHourSize*4; 202 mCellHeight = KOPrefs::instance()->mHourSize*4;
191 resizeContents(50,mRows * mCellHeight); 203 resizeContents(50,mRows * mCellHeight);
192} 204}
193 205
194/** update time label positions */ 206/** update time label positions */
195void TimeLabels::positionChanged() 207void TimeLabels::positionChanged()
196{ 208{
197 int adjustment = mAgenda->contentsY(); 209 int adjustment = mAgenda->contentsY();
198 setContentsPos(0, adjustment); 210 setContentsPos(0, adjustment);
199} 211}
200 212
201/** */ 213/** */
202void TimeLabels::setAgenda(KOAgenda* agenda) 214void TimeLabels::setAgenda(KOAgenda* agenda)
@@ -835,98 +847,96 @@ int KOAgendaView::currentDateCount()
835QPtrList<Incidence> KOAgendaView::selectedIncidences() 847QPtrList<Incidence> KOAgendaView::selectedIncidences()
836{ 848{
837 QPtrList<Incidence> selected; 849 QPtrList<Incidence> selected;
838 Incidence *incidence; 850 Incidence *incidence;
839 851
840 incidence = mAgenda->selectedIncidence(); 852 incidence = mAgenda->selectedIncidence();
841 if (incidence) selected.append(incidence); 853 if (incidence) selected.append(incidence);
842 854
843 incidence = mAllDayAgenda->selectedIncidence(); 855 incidence = mAllDayAgenda->selectedIncidence();
844 if (incidence) selected.append(incidence); 856 if (incidence) selected.append(incidence);
845 857
846 return selected; 858 return selected;
847} 859}
848 860
849DateList KOAgendaView::selectedDates() 861DateList KOAgendaView::selectedDates()
850{ 862{
851 DateList selected; 863 DateList selected;
852 QDate qd; 864 QDate qd;
853 865
854 qd = mAgenda->selectedIncidenceDate(); 866 qd = mAgenda->selectedIncidenceDate();
855 if (qd.isValid()) selected.append(qd); 867 if (qd.isValid()) selected.append(qd);
856 868
857 qd = mAllDayAgenda->selectedIncidenceDate(); 869 qd = mAllDayAgenda->selectedIncidenceDate();
858 if (qd.isValid()) selected.append(qd); 870 if (qd.isValid()) selected.append(qd);
859 871
860 return selected; 872 return selected;
861} 873}
862 874
863 875
864void KOAgendaView::updateView() 876void KOAgendaView::updateView()
865{ 877{
866 if ( mBlockUpdating ) 878 if ( mBlockUpdating )
867 return; 879 return;
868 // kdDebug() << "KOAgendaView::updateView()" << endl; 880 // kdDebug() << "KOAgendaView::updateView()" << endl;
869 fillAgenda(); 881 fillAgenda();
870 882
871} 883}
872 884
873 885
874/* 886/*
875 Update configuration settings for the agenda view. This method is not 887 Update configuration settings for the agenda view. This method is not
876 complete. 888 complete.
877*/ 889*/
878void KOAgendaView::updateConfig() 890void KOAgendaView::updateConfig()
879{ 891{
880 if ( mBlockUpdating ) 892 if ( mBlockUpdating )
881 return; 893 return;
882 894
883
884
885 // update config for children 895 // update config for children
886 mTimeLabels->updateConfig(); 896 mTimeLabels->updateConfig();
887 mAgenda->storePosition(); 897 mAgenda->storePosition();
888 mAgenda->updateConfig(); 898 mAgenda->updateConfig();
889 mAllDayAgenda->updateConfig(); 899 mAllDayAgenda->updateConfig();
890 // widget synchronization 900 // widget synchronization
891 //TODO: find a better way, maybe signal/slot 901 //TODO: find a better way, maybe signal/slot
892 mTimeLabels->positionChanged(); 902 mTimeLabels->positionChanged();
893 903
894 // for some reason, this needs to be called explicitly 904 // for some reason, this needs to be called explicitly
895 mTimeLabels->repaint(); 905 mTimeLabels->repaint();
896 906
897 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 907 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
898 908
899 // ToolTips displaying summary of events 909 // ToolTips displaying summary of events
900 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 910 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
901 ->mEnableToolTips); 911 ->mEnableToolTips);
902 912
903 //setHolidayMasks(); 913 //setHolidayMasks();
904 914
905 //createDayLabels(); called by via updateView(); 915 //createDayLabels(); called by via updateView();
906 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth()); 916 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth());
907 updateView(); 917 updateView();
908 mAgenda->restorePosition(); 918 mAgenda->restorePosition();
909} 919}
910 920
911 921
912void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) 922void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
913{ 923{
914 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl; 924 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl;
915 //qDebug("KOAgendaView::updateEventDates "); 925 //qDebug("KOAgendaView::updateEventDates ");
916 QDateTime startDt,endDt; 926 QDateTime startDt,endDt;
917 QDate startDate; 927 QDate startDate;
918 int lenInSecs; 928 int lenInSecs;
919 // if ( type == KOAgenda::RESIZETOP ) 929 // if ( type == KOAgenda::RESIZETOP )
920 // qDebug("RESIZETOP "); 930 // qDebug("RESIZETOP ");
921 // if ( type == KOAgenda::RESIZEBOTTOM ) 931 // if ( type == KOAgenda::RESIZEBOTTOM )
922 // qDebug("RESIZEBOTTOM "); 932 // qDebug("RESIZEBOTTOM ");
923 // if ( type == KOAgenda::MOVE ) 933 // if ( type == KOAgenda::MOVE )
924 // qDebug("MOVE "); 934 // qDebug("MOVE ");
925 if ( item->incidence()->type() == "Event" ) { 935 if ( item->incidence()->type() == "Event" ) {
926 startDt =item->incidence()->dtStart(); 936 startDt =item->incidence()->dtStart();
927 endDt = item->incidence()->dtEnd(); 937 endDt = item->incidence()->dtEnd();
928 lenInSecs = startDt.secsTo( endDt ); 938 lenInSecs = startDt.secsTo( endDt );
929 } 939 }
930 940
931 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED ); 941 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED );
932 942
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp
index 4ee5292..cf0d4ae 100644
--- a/korganizer/koeditorgeneral.cpp
+++ b/korganizer/koeditorgeneral.cpp
@@ -183,269 +183,255 @@ void KOEditorGeneral::initAlarm(QWidget *parent,QBoxLayout *topLayout)
183 183
184 connect(mAlarmButton, SIGNAL(toggled(bool)), SLOT(enableAlarmEdit(bool))); 184 connect(mAlarmButton, SIGNAL(toggled(bool)), SLOT(enableAlarmEdit(bool)));
185 alarmLayout->addWidget(mAlarmButton); 185 alarmLayout->addWidget(mAlarmButton);
186 186
187 mAlarmTimeEdit = new QSpinBox ( 0, 9999, 1, parent, "mAlarmTimeEdit " ) ; 187 mAlarmTimeEdit = new QSpinBox ( 0, 9999, 1, parent, "mAlarmTimeEdit " ) ;
188 alarmLayout->addWidget(mAlarmTimeEdit); 188 alarmLayout->addWidget(mAlarmTimeEdit);
189 mAlarmIncrCombo = new QComboBox(false, parent); 189 mAlarmIncrCombo = new QComboBox(false, parent);
190 if ( QApplication::desktop()->width() < 320 ) { 190 if ( QApplication::desktop()->width() < 320 ) {
191 mAlarmIncrCombo->insertItem(i18n("min")); 191 mAlarmIncrCombo->insertItem(i18n("min"));
192 mAlarmIncrCombo->insertItem(i18n("hou")); 192 mAlarmIncrCombo->insertItem(i18n("hou"));
193 mAlarmIncrCombo->insertItem(i18n("day")); 193 mAlarmIncrCombo->insertItem(i18n("day"));
194 mAlarmTimeEdit->setMaximumWidth( mAlarmTimeEdit->sizeHint().width() ); 194 mAlarmTimeEdit->setMaximumWidth( mAlarmTimeEdit->sizeHint().width() );
195 mAlarmIncrCombo->setMaximumWidth( mAlarmIncrCombo->sizeHint().width() ); 195 mAlarmIncrCombo->setMaximumWidth( mAlarmIncrCombo->sizeHint().width() );
196 } else { 196 } else {
197 mAlarmIncrCombo->insertItem(i18n("minute(s)")); 197 mAlarmIncrCombo->insertItem(i18n("minute(s)"));
198 mAlarmIncrCombo->insertItem(i18n("hour(s)")); 198 mAlarmIncrCombo->insertItem(i18n("hour(s)"));
199 mAlarmIncrCombo->insertItem(i18n("day(s)")); 199 mAlarmIncrCombo->insertItem(i18n("day(s)"));
200 } 200 }
201 201
202 // mAlarmIncrCombo->setMinimumHeight(20); 202 // mAlarmIncrCombo->setMinimumHeight(20);
203 alarmLayout->addWidget(mAlarmIncrCombo); 203 alarmLayout->addWidget(mAlarmIncrCombo);
204 mAlarmSoundButton = new QPushButton(parent); 204 mAlarmSoundButton = new QPushButton(parent);
205 mAlarmSoundButton->setPixmap(SmallIcon("playsound")); 205 mAlarmSoundButton->setPixmap(SmallIcon("playsound"));
206 mAlarmSoundButton->setToggleButton(true); 206 mAlarmSoundButton->setToggleButton(true);
207 QToolTip::add(mAlarmSoundButton, i18n("No sound set")); 207 QToolTip::add(mAlarmSoundButton, i18n("No sound set"));
208 connect(mAlarmSoundButton, SIGNAL(clicked()), SLOT(pickAlarmSound())); 208 connect(mAlarmSoundButton, SIGNAL(clicked()), SLOT(pickAlarmSound()));
209 alarmLayout->addWidget(mAlarmSoundButton); 209 alarmLayout->addWidget(mAlarmSoundButton);
210 210
211 mAlarmProgramButton = new QPushButton(parent); 211 mAlarmProgramButton = new QPushButton(parent);
212 mAlarmProgramButton->setPixmap(SmallIcon("run")); 212 mAlarmProgramButton->setPixmap(SmallIcon("run"));
213 mAlarmProgramButton->setToggleButton(true); 213 mAlarmProgramButton->setToggleButton(true);
214 QToolTip::add(mAlarmProgramButton, i18n("No program set")); 214 QToolTip::add(mAlarmProgramButton, i18n("No program set"));
215 connect(mAlarmProgramButton, SIGNAL(clicked()), SLOT(pickAlarmProgram())); 215 connect(mAlarmProgramButton, SIGNAL(clicked()), SLOT(pickAlarmProgram()));
216 alarmLayout->addWidget(mAlarmProgramButton); 216 alarmLayout->addWidget(mAlarmProgramButton);
217 mAlarmSoundButton->setMaximumWidth( mAlarmSoundButton->sizeHint().width() + 4 ); 217 mAlarmSoundButton->setMaximumWidth( mAlarmSoundButton->sizeHint().width() + 4 );
218 mAlarmProgramButton->setMaximumWidth(mAlarmProgramButton->sizeHint().width() + 4 ); 218 mAlarmProgramButton->setMaximumWidth(mAlarmProgramButton->sizeHint().width() + 4 );
219 // if ( KOPrefs::instance()->mCompactDialogs ) { 219 // if ( KOPrefs::instance()->mCompactDialogs ) {
220 // mAlarmSoundButton->hide(); 220 // mAlarmSoundButton->hide();
221 // mAlarmProgramButton->hide(); 221 // mAlarmProgramButton->hide();
222 // } 222 // }
223} 223}
224 224
225void KOEditorGeneral::pickAlarmSound() 225void KOEditorGeneral::pickAlarmSound()
226{ 226{
227 227
228 qDebug("KOEditorGeneral::pickAlarmSound() %d",mAlarmSoundButton->isOn() ); 228 qDebug("KOEditorGeneral::pickAlarmSound() %d",mAlarmSoundButton->isOn() );
229 //QString prefix = mAlarmSound; 229 //QString prefix = mAlarmSound;
230 if (!mAlarmSoundButton->isOn()) { 230 if (!mAlarmSoundButton->isOn()) {
231 //mAlarmSound = ""; 231 mAlarmSoundButton->setOn(true);
232 QToolTip::remove(mAlarmSoundButton); 232 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) );
233 QToolTip::add(mAlarmSoundButton, i18n("No sound set"));
234 mAlarmProgramButton->setOn(true);
235 mAlarmSoundButton->setOn(false);
236 pickAlarmProgram();
237 } else { 233 } else {
238 QString fileName(KFileDialog::getOpenFileName(mAlarmSound, 234 QString fileName(KFileDialog::getOpenFileName(mAlarmSound,
239 i18n("*.wav|Wav Files"), 0)); 235 i18n("*.wav|Wav Files"), 0));
240 if (!fileName.isEmpty()) { 236 if (!fileName.isEmpty()) {
241 mAlarmSound = fileName; 237 mAlarmSound = fileName;
242 QToolTip::remove(mAlarmSoundButton); 238 QToolTip::remove(mAlarmSoundButton);
243 QString dispStr = i18n("Playing '%1'").arg(fileName); 239 QString dispStr = i18n("Playing '%1'").arg(fileName);
244 QToolTip::add(mAlarmSoundButton, dispStr); 240 QToolTip::add(mAlarmSoundButton, dispStr);
245 mAlarmProgramButton->setOn(false); 241 mAlarmProgramButton->setOn(false);
246 mAlarmSoundButton->setOn(true); 242 mAlarmSoundButton->setOn(true);
247 } else { 243 } else {
248 mAlarmProgramButton->setOn(true); 244 mAlarmProgramButton->setOn(true);
249 mAlarmSoundButton->setOn(false); 245 mAlarmSoundButton->setOn(false);
250 246
251 } 247 }
252 } 248 }
253 249#if 0
254 if (mAlarmProgramButton->isOn()) 250 if (mAlarmProgramButton->isOn())
255 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); 251 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) );
256 if ( mAlarmSoundButton->isOn()) 252 if ( mAlarmSoundButton->isOn())
257 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); 253 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) );
254#endif
258} 255}
259 256
260void KOEditorGeneral::pickAlarmProgram() 257void KOEditorGeneral::pickAlarmProgram()
261{ 258{
262 if (!mAlarmProgramButton->isOn()) { 259 if (!mAlarmProgramButton->isOn()) {
263 //mAlarmProgram = ""; 260 mAlarmProgramButton->setOn(true);
264 QToolTip::remove(mAlarmProgramButton); 261 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) );
265 QToolTip::add(mAlarmProgramButton, i18n("No program set"));
266 mAlarmProgramButton->setOn(false);
267 mAlarmSoundButton->setOn(true);
268 pickAlarmSound();
269 } else { 262 } else {
270 QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm: ") , 0)); 263 QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm: ") , 0));
271 if (!fileName.isEmpty()) { 264 if (!fileName.isEmpty()) {
272 mAlarmProgram = fileName; 265 mAlarmProgram = fileName;
273 QToolTip::remove(mAlarmProgramButton); 266 QToolTip::remove(mAlarmProgramButton);
274 QString dispStr = i18n("Running '%1'").arg(fileName); 267 QString dispStr = i18n("Running '%1'").arg(fileName);
275 QToolTip::add(mAlarmProgramButton, dispStr); 268 QToolTip::add(mAlarmProgramButton, dispStr);
276 mAlarmSoundButton->setOn(false); 269 mAlarmSoundButton->setOn(false);
277 mAlarmProgramButton->setOn(true); 270 mAlarmProgramButton->setOn(true);
278 } else { 271 } else {
279 mAlarmProgramButton->setOn(false); 272 mAlarmProgramButton->setOn(false);
280 mAlarmSoundButton->setOn(true); 273 mAlarmSoundButton->setOn(true);
281 } 274 }
282 } 275 }
276#if 0
283 if (mAlarmProgramButton->isOn()) 277 if (mAlarmProgramButton->isOn())
284 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); 278 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) );
285 if ( mAlarmSoundButton->isOn()) 279 if ( mAlarmSoundButton->isOn())
286 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); 280 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) );
281#endif
287} 282}
288 283
289 284
290QString KOEditorGeneral::getFittingPath( const QString s ) 285QString KOEditorGeneral::getFittingPath( const QString s )
291{ 286{
292 int maxlen = 50; 287 int maxlen = 50;
293 if ( QApplication::desktop()->width() < 640 ) { 288 if ( QApplication::desktop()->width() < 640 ) {
294 if ( QApplication::desktop()->width() < 320 ) 289 if ( QApplication::desktop()->width() < 320 )
295 maxlen = 22; 290 maxlen = 22;
296 else 291 else
297 maxlen = 35; 292 maxlen = 35;
298 } 293 }
299 if ( s.length() > maxlen ) { 294 if ( s.length() > maxlen ) {
300 return "..."+s.right(maxlen -3); 295 return "..."+s.right(maxlen -3);
301 } 296 }
302 return s; 297 return s;
303} 298}
304 299
305void KOEditorGeneral::enableAlarmEdit(bool enable) 300void KOEditorGeneral::enableAlarmEdit(bool enable)
306{ 301{
307 if ( enable ) { 302 if ( enable ) {
308 if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { 303 if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) {
309 mAlarmSoundButton->setOn( true ); 304 mAlarmSoundButton->setOn( true );
310 if ( mAlarmSound.isEmpty() ) 305 if ( mAlarmSound.isEmpty() )
311 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; 306 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile;
312 else { 307 else {
313 if ( ! QFile::exists( mAlarmSound ) ) 308 if ( ! QFile::exists( mAlarmSound ) )
314 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; 309 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile;
315 } 310 }
316 } 311 }
317 if (mAlarmProgramButton->isOn())
318 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) );
319 if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn())
320 ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) );
321 }
322 else {
323 ((QWidget*)parent())->topLevelWidget()->setCaption(mAlarmMessage);
324 //((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Edit item: ") + mSummaryEdit->currentText());
325
326
327 } 312 }
313 ((QWidget*)parent())->topLevelWidget()->setCaption(mAlarmMessage);
328 mAlarmTimeEdit->setEnabled(enable); 314 mAlarmTimeEdit->setEnabled(enable);
329 mAlarmSoundButton->setEnabled(enable); 315 mAlarmSoundButton->setEnabled(enable);
330 mAlarmProgramButton->setEnabled(enable); 316 mAlarmProgramButton->setEnabled(enable);
331 mAlarmIncrCombo->setEnabled(enable); 317 mAlarmIncrCombo->setEnabled(enable);
332} 318}
333 319
334void KOEditorGeneral::disableAlarmEdit(bool disable) 320void KOEditorGeneral::disableAlarmEdit(bool disable)
335{ 321{
336 enableAlarmEdit( !disable ); 322 enableAlarmEdit( !disable );
337} 323}
338 324
339void KOEditorGeneral::enableAlarm( bool enable ) 325void KOEditorGeneral::enableAlarm( bool enable )
340{ 326{
341 enableAlarmEdit( enable ); 327 enableAlarmEdit( enable );
342} 328}
343 329
344void KOEditorGeneral::alarmDisable(bool disable) 330void KOEditorGeneral::alarmDisable(bool disable)
345{ 331{
346 if (!disable) { 332 if (!disable) {
347 //mAlarmBell->setEnabled(true); 333 //mAlarmBell->setEnabled(true);
348 mAlarmButton->setEnabled(true); 334 mAlarmButton->setEnabled(true);
349 } else { 335 } else {
350 //mAlarmBell->setEnabled(false); 336 //mAlarmBell->setEnabled(false);
351 mAlarmButton->setEnabled(false); 337 mAlarmButton->setEnabled(false);
352 mAlarmButton->setChecked(false); 338 mAlarmButton->setChecked(false);
353 mAlarmTimeEdit->setEnabled(false); 339 mAlarmTimeEdit->setEnabled(false);
354 mAlarmSoundButton->setEnabled(false); 340 mAlarmSoundButton->setEnabled(false);
355 mAlarmProgramButton->setEnabled(false); 341 mAlarmProgramButton->setEnabled(false);
356 mAlarmIncrCombo->setEnabled(false); 342 mAlarmIncrCombo->setEnabled(false);
357 } 343 }
358} 344}
359 345
360void KOEditorGeneral::setCategories(const QString &str) 346void KOEditorGeneral::setCategories(const QString &str)
361{ 347{
362 mCategoriesLabel->setText(str); 348 mCategoriesLabel->setText(str);
363} 349}
364 350
365void KOEditorGeneral::setDefaults(bool allDay) 351void KOEditorGeneral::setDefaults(bool allDay)
366{ 352{
367#if 0 353#if 0
368 mOwnerLabel->setText(i18n("Owner: ") + KOPrefs::instance()->fullName()); 354 mOwnerLabel->setText(i18n("Owner: ") + KOPrefs::instance()->fullName());
369#endif 355#endif
370 356
371 mAlarmMessage = i18n("Edit new item"); 357 mAlarmMessage = i18n("Edit new item");
372 enableAlarmEdit( !allDay ); 358 enableAlarmEdit( !allDay );
373 359
374 // TODO: Implement a KPrefsComboItem to solve this in a clean way. 360 // TODO: Implement a KPrefsComboItem to solve this in a clean way.
375 int alarmTime; 361 int alarmTime;
376 int a[] = { 1,5,10,15,30,60,180, 1440 }; 362 int a[] = { 1,5,10,15,30,60,180, 1440 };
377 int index = KOPrefs::instance()->mAlarmTime; 363 int index = KOPrefs::instance()->mAlarmTime;
378 if (index < 0 || index > 7) { 364 if (index < 0 || index > 7) {
379 alarmTime = 15; 365 alarmTime = 15;
380 } else { 366 } else {
381 alarmTime = a[index]; 367 alarmTime = a[index];
382 } 368 }
383 mAlarmButton ->setChecked( false ); 369 mAlarmButton ->setChecked( false );
384 mAlarmTimeEdit->setValue(alarmTime); 370 mAlarmTimeEdit->setValue(alarmTime);
385 mAlarmIncrCombo->setCurrentItem(0); 371 mAlarmIncrCombo->setCurrentItem(0);
386 enableAlarmEdit( false ); 372 enableAlarmEdit( false );
387 //alarmDisable (false); 373 //alarmDisable (false);
388 mSecrecyCombo->setCurrentItem(Incidence::SecrecyPublic); 374 mSecrecyCombo->setCurrentItem(Incidence::SecrecyPublic);
389 mCancelBox->setChecked( false ); 375 mCancelBox->setChecked( false );
390 mSummaryEdit->setEditText(""); 376 mSummaryEdit->setEditText("");
391 mLocationEdit->setEditText(""); 377 mLocationEdit->setEditText("");
392 mDescriptionEdit->setText(""); 378 mDescriptionEdit->setText("");
393 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; 379 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile;
394 setCategories(""); 380 setCategories("");
395} 381}
396void KOEditorGeneral::setSecrecy( int num ) 382void KOEditorGeneral::setSecrecy( int num )
397{ 383{
398 mSecrecyCombo->setCurrentItem(num); 384 mSecrecyCombo->setCurrentItem(num);
399} 385}
400void KOEditorGeneral::readIncidence(Incidence *event) 386void KOEditorGeneral::readIncidence(Incidence *event)
401{ 387{
402 388
403 mAlarmMessage = i18n("Edit") +" "+event->summary(); 389 mAlarmMessage = event->summary();
404 mAlarmIncrCombo->setCurrentItem(0); 390 mAlarmIncrCombo->setCurrentItem(0);
405 mSummaryEdit->setEditText(event->summary()); 391 mSummaryEdit->setEditText(event->summary());
406 mLocationEdit->setEditText(event->location()); 392 mLocationEdit->setEditText(event->location());
407 mDescriptionEdit->setText(event->description()); 393 mDescriptionEdit->setText(event->description());
408 394
409#if 0 395#if 0
410 // organizer information 396 // organizer information
411 mOwnerLabel->setText(i18n("Owner: ") + event->organizer()); 397 mOwnerLabel->setText(i18n("Owner: ") + event->organizer());
412#endif 398#endif
413 399
414 enableAlarmEdit( event->isAlarmEnabled() ); 400 enableAlarmEdit( event->isAlarmEnabled() );
415 //qDebug("KOEditorGeneral::readIncidence(Incidence *event) "); 401 //qDebug("KOEditorGeneral::readIncidence(Incidence *event) ");
416 if(!event->isAlarmEnabled()) { 402 if(!event->isAlarmEnabled()) {
417 // TODO: Implement a KPrefsComboItem to solve this in a clean way. 403 // TODO: Implement a KPrefsComboItem to solve this in a clean way.
418 int alarmTime; 404 int alarmTime;
419 int a[] = { 1,5,10,15,30,60,180, 1440 }; 405 int a[] = { 1,5,10,15,30,60,180, 1440 };
420 int index = KOPrefs::instance()->mAlarmTime; 406 int index = KOPrefs::instance()->mAlarmTime;
421 if (index < 0 || index > 7) { 407 if (index < 0 || index > 7) {
422 alarmTime = 15; 408 alarmTime = 15;
423 } else { 409 } else {
424 alarmTime = a[index]; 410 alarmTime = a[index];
425 } 411 }
426 mAlarmTimeEdit->setValue(alarmTime); 412 mAlarmTimeEdit->setValue(alarmTime);
427 } 413 }
428 mAlarmButton->setChecked( event->isAlarmEnabled() ); 414 mAlarmButton->setChecked( event->isAlarmEnabled() );
429 mSecrecyCombo->setCurrentItem(event->secrecy()); 415 mSecrecyCombo->setCurrentItem(event->secrecy());
430 mCancelBox->setChecked( event->cancelled() ); 416 mCancelBox->setChecked( event->cancelled() );
431 mAlarmProgramButton->setOn(false); 417 mAlarmProgramButton->setOn(false);
432 mAlarmSoundButton->setOn(false); 418 mAlarmSoundButton->setOn(false);
433 419
434 // set up alarm stuff 420 // set up alarm stuff
435 QPtrList<Alarm> alarms = event->alarms(); 421 QPtrList<Alarm> alarms = event->alarms();
436 Alarm* alarm; 422 Alarm* alarm;
437 mAlarmIncrCombo->setCurrentItem(0); 423 mAlarmIncrCombo->setCurrentItem(0);
438 for ( alarm = alarms.first(); alarm; alarm = alarms.next() ) { 424 for ( alarm = alarms.first(); alarm; alarm = alarms.next() ) {
439 int offset; 425 int offset;
440 if ( alarm->hasTime() ) { 426 if ( alarm->hasTime() ) {
441 QDateTime t = alarm->time(); 427 QDateTime t = alarm->time();
442 offset = event->dtStart().secsTo( t ); 428 offset = event->dtStart().secsTo( t );
443 } else { 429 } else {
444 offset = alarm->startOffset().asSeconds(); 430 offset = alarm->startOffset().asSeconds();
445 } 431 }
446 if ( offset != 0 ) { 432 if ( offset != 0 ) {
447 offset = offset / -60; // make minutes 433 offset = offset / -60; // make minutes
448 if (offset % 60 == 0) { // divides evenly into hours? 434 if (offset % 60 == 0) { // divides evenly into hours?
449 offset = offset / 60; 435 offset = offset / 60;
450 mAlarmIncrCombo->setCurrentItem(1); 436 mAlarmIncrCombo->setCurrentItem(1);
451 if (offset % 24 == 0) { // divides evenly into days? 437 if (offset % 24 == 0) { // divides evenly into days?