summaryrefslogtreecommitdiffabout
path: root/korganizer/journalentry.cpp
Unidiff
Diffstat (limited to 'korganizer/journalentry.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/journalentry.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp
index 7f6f221..5269af7 100644
--- a/korganizer/journalentry.cpp
+++ b/korganizer/journalentry.cpp
@@ -88,96 +88,100 @@ JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) :
88 vb->setStretchFactor ( mTitle, 8 ); 88 vb->setStretchFactor ( mTitle, 8 );
89 int limit = 3; 89 int limit = 3;
90 if ( QApplication::desktop()->width() < 640 ) 90 if ( QApplication::desktop()->width() < 640 )
91 limit = 6; 91 limit = 6;
92 vb->setStretchFactor ( mCalendarBox, limit ); 92 vb->setStretchFactor ( mCalendarBox, limit );
93 //mTitleLabel->setMargin(0); 93 //mTitleLabel->setMargin(0);
94 //mTitleLabel->setAlignment(AlignCenter); 94 //mTitleLabel->setAlignment(AlignCenter);
95 QPushButton * loadTemplate = new QPushButton( vb ); 95 QPushButton * loadTemplate = new QPushButton( vb );
96 QPushButton * saveTemplate = new QPushButton( vb ); 96 QPushButton * saveTemplate = new QPushButton( vb );
97 if ( QApplication::desktop()->width() < 321 ) 97 if ( QApplication::desktop()->width() < 321 )
98 iconp = SmallIcon("fileexport16"); 98 iconp = SmallIcon("fileexport16");
99 else 99 else
100 iconp = SmallIcon("fileexport"); 100 iconp = SmallIcon("fileexport");
101 saveTemplate->setPixmap (iconp ) ; 101 saveTemplate->setPixmap (iconp ) ;
102 int size = saveTemplate->sizeHint().height(); 102 int size = saveTemplate->sizeHint().height();
103 if ( QApplication::desktop()->width() < 321 ) 103 if ( QApplication::desktop()->width() < 321 )
104 iconp = SmallIcon("fileimport16"); 104 iconp = SmallIcon("fileimport16");
105 else 105 else
106 iconp = SmallIcon("fileimport"); 106 iconp = SmallIcon("fileimport");
107 loadTemplate->setPixmap (iconp ) ; 107 loadTemplate->setPixmap (iconp ) ;
108 loadTemplate->setFixedSize( size, size ); 108 loadTemplate->setFixedSize( size, size );
109 saveTemplate->setFixedSize( size, size ); 109 saveTemplate->setFixedSize( size, size );
110 int widwid = size; 110 int widwid = size;
111 if ( QApplication::desktop()->width() < 320 ) 111 if ( QApplication::desktop()->width() < 320 )
112 widwid = size/2+1; 112 widwid = size/2+1;
113 toggleJournal->setFixedSize( widwid , size ); 113 toggleJournal->setFixedSize( widwid , size );
114 mTitle->setFixedHeight( size+4); 114 mTitle->setFixedHeight( size+4);
115 mCalendarBox->setFixedHeight( size+4); 115 mCalendarBox->setFixedHeight( size+4);
116 mEditor = new KTextEdit(this); 116 mEditor = new KTextEdit(this);
117#ifndef DESKTOP_VERSION 117#ifndef DESKTOP_VERSION
118 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); 118 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold );
119#endif 119#endif
120 mMaxWidDiff = 3*size - 2*frameWidth() - textLabel->sizeHint().width(); 120 mMaxWidDiff = 3*size - 2*frameWidth() - textLabel->sizeHint().width();
121 mDeskWid = QApplication::desktop()->width(); 121 mDeskWid = QApplication::desktop()->width();
122 int maxwid = mDeskWid - mMaxWidDiff; 122 int maxwid = mDeskWid - mMaxWidDiff;
123 if ( QApplication::desktop()->width() < 640 ) { 123 if ( QApplication::desktop()->width() < 640 ) {
124 mTitle->setMaximumWidth( maxwid/2 +20 ); 124 mTitle->setMaximumWidth( maxwid/2 +20 );
125 mCalendarBox->setMaximumWidth( maxwid/2 -20); 125 mCalendarBox->setMaximumWidth( maxwid/2 -20);
126 } else { 126 } else {
127 mTitle->setMaximumWidth( (maxwid/4)*3); 127 mTitle->setMaximumWidth( (maxwid/4)*3);
128 mCalendarBox->setMaximumWidth( maxwid/2 ); 128 mCalendarBox->setMaximumWidth( maxwid/2 );
129 } 129 }
130 //mCalendarBox->setMaximumWidth( maxwid/2 -20 ); 130 //mCalendarBox->setMaximumWidth( maxwid/2 -20 );
131 mEditor->setWordWrap( KTextEdit::WidgetWidth ); 131 mEditor->setWordWrap( KTextEdit::WidgetWidth );
132 QBoxLayout *topLayout = new QVBoxLayout(this); 132 QBoxLayout *topLayout = new QVBoxLayout(this);
133 topLayout->addWidget(vb); 133 topLayout->addWidget(vb);
134 topLayout->addWidget(mEditor); 134 topLayout->addWidget(mEditor);
135 mEditor->installEventFilter(this); 135 mEditor->installEventFilter(this);
136 installEventFilter(this);
137 mTitle->installEventFilter(this);
138 setFocusPolicy (QWidget::NoFocus);
139
136 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); 140 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) );
137 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); 141 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) );
138 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) ); 142 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) );
139 mTitle->load( KOLocationBox::SUMMARYJOURNAL ); 143 mTitle->load( KOLocationBox::SUMMARYJOURNAL );
140 mTitle->lineEdit ()->setText(""); 144 mTitle->lineEdit ()->setText("");
141} 145}
142 146
143JournalEntry::~JournalEntry() 147JournalEntry::~JournalEntry()
144{ 148{
145 //qDebug("JournalEntry::~JournalEntry() "); 149 //qDebug("JournalEntry::~JournalEntry() ");
146} 150}
147void JournalEntry::resizeEvent(QResizeEvent* e ) 151void JournalEntry::resizeEvent(QResizeEvent* e )
148{ 152{
149#ifndef DESKTOP_VERSION 153#ifndef DESKTOP_VERSION
150 154
151 if ( mDeskWid != QApplication::desktop()->width() ) { 155 if ( mDeskWid != QApplication::desktop()->width() ) {
152 mDeskWid == QApplication::desktop()->width(); 156 mDeskWid == QApplication::desktop()->width();
153 int maxwid = mDeskWid - mMaxWidDiff; 157 int maxwid = mDeskWid - mMaxWidDiff;
154 if ( QApplication::desktop()->width() < 640 ) { 158 if ( QApplication::desktop()->width() < 640 ) {
155 mTitle->setMaximumWidth( maxwid/2 +20 ); 159 mTitle->setMaximumWidth( maxwid/2 +20 );
156 mCalendarBox->setMaximumWidth( maxwid/2 -20); 160 mCalendarBox->setMaximumWidth( maxwid/2 -20);
157 } 161 }
158 else { 162 else {
159 mTitle->setMaximumWidth( (maxwid/4)*3); 163 mTitle->setMaximumWidth( (maxwid/4)*3);
160 mCalendarBox->setMaximumWidth( maxwid/2 ); 164 mCalendarBox->setMaximumWidth( maxwid/2 );
161 } 165 }
162 //mCalendarBox->setMaximumWidth( maxwid/2 -20 ); 166 //mCalendarBox->setMaximumWidth( maxwid/2 -20 );
163 } 167 }
164 //setMaximumWidth( QApplication::desktop()->width() ); 168 //setMaximumWidth( QApplication::desktop()->width() );
165 //qDebug("MAXXX %d ", QApplication::desktop()->width()); 169 //qDebug("MAXXX %d ", QApplication::desktop()->width());
166#endif 170#endif
167 QFrame::resizeEvent( e ); 171 QFrame::resizeEvent( e );
168} 172}
169QSize JournalEntry::sizeHint() const 173QSize JournalEntry::sizeHint() const
170{ 174{
171 return QSize ( 240, heiHint ); 175 return QSize ( 240, heiHint );
172} 176}
173void JournalEntry::slotSaveTemplate() 177void JournalEntry::slotSaveTemplate()
174{ 178{
175 QString fileName =locateLocal( "templates", "journals" ); 179 QString fileName =locateLocal( "templates", "journals" );
176 QDir t_dir; 180 QDir t_dir;
177 if ( !t_dir.exists(fileName) ) 181 if ( !t_dir.exists(fileName) )
178 t_dir.mkdir ( fileName ); 182 t_dir.mkdir ( fileName );
179 fileName += "/journal"; 183 fileName += "/journal";
180 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this ); 184 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this );
181 if ( fileName.length() == 0 ) 185 if ( fileName.length() == 0 )
182 return; 186 return;
183 187
@@ -266,102 +270,110 @@ void JournalEntry::toggleShowJournal()
266} 270}
267void JournalEntry::setVisibleOn() 271void JournalEntry::setVisibleOn()
268{ 272{
269 visibleMode = true; 273 visibleMode = true;
270} 274}
271void JournalEntry::setShowOnly() 275void JournalEntry::setShowOnly()
272{ 276{
273 showOnlyMode = true; 277 showOnlyMode = true;
274 if ( mTitle->currentText().isEmpty() ) 278 if ( mTitle->currentText().isEmpty() )
275 mTitle->setFocus(); 279 mTitle->setFocus();
276 else 280 else
277 mEditor->setFocus(); 281 mEditor->setFocus();
278} 282}
279void JournalEntry::setJournal(Journal *journal, bool saveJournal ) 283void JournalEntry::setJournal(Journal *journal, bool saveJournal )
280{ 284{
281 if ( saveJournal ) 285 if ( saveJournal )
282 writeJournal(); 286 writeJournal();
283 mTitle->load( KOLocationBox::SUMMARYJOURNAL ); 287 mTitle->load( KOLocationBox::SUMMARYJOURNAL );
284 288
285 mJournal = journal; 289 mJournal = journal;
286 if ( journal->isReadOnly() ) 290 if ( journal->isReadOnly() )
287 mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")"); 291 mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")");
288 else 292 else
289 mTitle->lineEdit ()->setText(mJournal->summary()); 293 mTitle->lineEdit ()->setText(mJournal->summary());
290 mEditor->setText(mJournal->description()); 294 mEditor->setText(mJournal->description());
291 mTitle->setEnabled (!journal->isReadOnly() ); 295 mTitle->setEnabled (!journal->isReadOnly() );
292 mEditor->setReadOnly ( journal->isReadOnly() ); 296 mEditor->setReadOnly ( journal->isReadOnly() );
293 mCalendarBox->setEnabled (!journal->isReadOnly() ); 297 mCalendarBox->setEnabled (!journal->isReadOnly() );
294 fillCalendar( mJournal->calID() ); 298 fillCalendar( mJournal->calID() );
295} 299}
296 300
297Journal *JournalEntry::journal() const 301Journal *JournalEntry::journal() const
298{ 302{
299 return mJournal; 303 return mJournal;
300} 304}
301 305
302 306
303void JournalEntry::clear() 307void JournalEntry::clear()
304{ 308{
305 mJournal = 0; 309 mJournal = 0;
306 mEditor->setText(""); 310 mEditor->setText("");
307 mTitle->load( KOLocationBox::SUMMARYJOURNAL ); 311 mTitle->load( KOLocationBox::SUMMARYJOURNAL );
308 mTitle->lineEdit ()->setText(""); 312 mTitle->lineEdit ()->setText("");
309} 313}
310 314
311bool JournalEntry::eventFilter( QObject *o, QEvent *e ) 315bool JournalEntry::eventFilter( QObject *o, QEvent *e )
312{ 316{
313// kdDebug() << "JournalEntry::event received " << e->type() << endl; 317// kdDebug() << "JournalEntry::event received " << e->type() << endl;
314 318 if ( isVisible() ) {
319 mEditor->setFocusPolicy (QWidget::StrongFocus);
320 mTitle->setFocusPolicy (QWidget::StrongFocus);
321 } else {
322 mEditor->setFocusPolicy (QWidget::NoFocus);
323 mTitle->setFocusPolicy (QWidget::NoFocus);
324 }
315 if ( e->type() == QEvent::FocusOut ) { 325 if ( e->type() == QEvent::FocusOut ) {
316 writeJournal(); 326 writeJournal();
317 } 327 }
318 if ( e->type() == QEvent::KeyPress ) { 328 if ( e->type() == QEvent::KeyPress ) {
319 QKeyEvent * k = (QKeyEvent *) e; 329 QKeyEvent * k = (QKeyEvent *) e;
330 if ( !isVisible() )
331 return true;
320 if ( k->state() == Qt::ControlButton ) { 332 if ( k->state() == Qt::ControlButton ) {
321 k->ignore(); 333 k->ignore();
322 //return true; 334 //return true;
323 } 335 }
324 } 336 }
325 337
326 return QFrame::eventFilter( o, e ); // standard event processing 338 return QFrame::eventFilter( o, e ); // standard event processing
327} 339}
328 340
329void JournalEntry::writeJournal() 341void JournalEntry::writeJournal()
330{ 342{
331 if ( !visibleMode ) return; 343 if ( !visibleMode ) return;
332 if ( !mTitle->isEnabled() ) return; 344 if ( !mTitle->isEnabled() ) return;
333 if (mEditor->text().isEmpty() && mTitle->currentText().isEmpty()) { 345 if (mEditor->text().isEmpty() && mTitle->currentText().isEmpty()) {
334 if ( mJournal ) { 346 if ( mJournal ) {
335 Journal* j = mJournal; 347 Journal* j = mJournal;
336 mJournal = 0; 348 mJournal = 0;
337 bool conf = KOPrefs::instance()->mConfirm; 349 bool conf = KOPrefs::instance()->mConfirm;
338 KOPrefs::instance()->mConfirm = false; 350 KOPrefs::instance()->mConfirm = false;
339 emit deleteJournal(j); 351 emit deleteJournal(j);
340 KOPrefs::instance()->mConfirm = conf; 352 KOPrefs::instance()->mConfirm = conf;
341 } 353 }
342 return; 354 return;
343 } 355 }
344 356
345// kdDebug() << "JournalEntry::writeJournal()..." << endl; 357// kdDebug() << "JournalEntry::writeJournal()..." << endl;
346 358
347 if (!mJournal) { 359 if (!mJournal) {
348 mJournal = new Journal; 360 mJournal = new Journal;
349 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); 361 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0)));
350 mCalendar->addJournal(mJournal); 362 mCalendar->addJournal(mJournal);
351 } 363 }
352 if ( mJournal->description() != mEditor->text() ) { 364 if ( mJournal->description() != mEditor->text() ) {
353 mJournal->setDescription(mEditor->text()); 365 mJournal->setDescription(mEditor->text());
354 } 366 }
355 if ( mJournal->summary() != mTitle->currentText() ) { 367 if ( mJournal->summary() != mTitle->currentText() ) {
356 mJournal->setSummary(mTitle->currentText()); 368 mJournal->setSummary(mTitle->currentText());
357 mTitle->save(KOLocationBox::SUMMARYJOURNAL); 369 mTitle->save(KOLocationBox::SUMMARYJOURNAL);
358 } 370 }
359 int id = KOPrefs::instance()->getCalendarID( mCalendarBox->currentText() ); 371 int id = KOPrefs::instance()->getCalendarID( mCalendarBox->currentText() );
360 if ( mJournal->calID() != id ) { 372 if ( mJournal->calID() != id ) {
361 mJournal->setCalID( id ); 373 mJournal->setCalID( id );
362 } 374 }
363} 375}
364 376
365void JournalEntry::flushEntry() 377void JournalEntry::flushEntry()
366{ 378{
367 writeJournal(); 379 writeJournal();