summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-06-29 12:29:53 (UTC)
committer zautrix <zautrix>2005-06-29 12:29:53 (UTC)
commit0d4d5898a32f162dca010db329e02310a14629d5 (patch) (unidiff)
tree2d6e758a8a5ec64995de79a4cd1c02c89f509190 /korganizer
parent435e68d6ace30fb2121b718226e00be44971c617 (diff)
downloadkdepimpi-0d4d5898a32f162dca010db329e02310a14629d5.zip
kdepimpi-0d4d5898a32f162dca010db329e02310a14629d5.tar.gz
kdepimpi-0d4d5898a32f162dca010db329e02310a14629d5.tar.bz2
j fixes
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/journalentry.cpp53
-rw-r--r--korganizer/journalentry.h4
-rw-r--r--korganizer/kodaymatrix.cpp27
-rw-r--r--korganizer/koeventviewer.cpp3
-rw-r--r--korganizer/kojournalview.cpp22
-rw-r--r--korganizer/kojournalview.h2
-rw-r--r--korganizer/kolistview.cpp14
-rw-r--r--korganizer/searchdialog.cpp37
8 files changed, 108 insertions, 54 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp
index 0b923ad..05bfd31 100644
--- a/korganizer/journalentry.cpp
+++ b/korganizer/journalentry.cpp
@@ -33,66 +33,57 @@
33#include <qtextcodec.h> 33#include <qtextcodec.h>
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qpushbutton.h> 35#include <qpushbutton.h>
36#include <qapplication.h> 36#include <qapplication.h>
37 37
38#include <kdebug.h> 38#include <kdebug.h>
39#include <kglobal.h> 39#include <kglobal.h>
40#include <klocale.h> 40#include <klocale.h>
41#include <ktextedit.h> 41#include <ktextedit.h>
42#include <kfiledialog.h> 42#include <kfiledialog.h>
43#include <kmessagebox.h> 43#include <kmessagebox.h>
44#include "koprefs.h" 44#include "koprefs.h"
45#include <klineedit.h>
45 46
46#include <libkcal/journal.h> 47#include <libkcal/journal.h>
47#include <libkcal/calendarresources.h> 48#include <libkcal/calendarresources.h>
48#include <libkcal/resourcecalendar.h> 49#include <libkcal/resourcecalendar.h>
49#include <kresources/resourceselectdialog.h> 50#include <kresources/resourceselectdialog.h>
50 51
51#include "journalentry.h" 52#include "journalentry.h"
52//#include "journalentry.moc" 53//#include "journalentry.moc"
53#ifndef DESKTOP_VERSION 54#ifndef DESKTOP_VERSION
54#include <qpe/qpeapplication.h> 55#include <qpe/qpeapplication.h>
55#endif 56#endif
56JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : 57JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) :
57 QFrame(parent) 58 QFrame(parent)
58{ 59{
59 heiHint = QApplication::desktop()->height() / 5 ; 60 heiHint = QApplication::desktop()->height() / 5 ;
60 showOnlyMode = false; 61 showOnlyMode = false;
61 mCalendar = calendar; 62 mCalendar = calendar;
62 mJournal = 0; 63 mJournal = 0;
63 mDirty = false; 64 mDirty = false;
64 65
65 QHBox * vb = new QHBox ( this ); 66 QHBox * vb = new QHBox ( this );
66 QPushButton * newJournal = new QPushButton( vb );
67 QIconSet icon; 67 QIconSet icon;
68 if ( QApplication::desktop()->width() < 321 )
69 icon = SmallIcon("ko16old");
70 else
71 icon = SmallIcon("ko24old");
72 newJournal->setIconSet (icon ) ;
73 int size = newJournal->sizeHint().height();
74 newJournal->setFixedSize( size, size );
75
76 68
77 QPushButton * toggleJournal = new QPushButton( vb ); 69 QPushButton * toggleJournal = new QPushButton( vb );
78 icon = SmallIcon("1updownarrow"); 70 icon = SmallIcon("1updownarrow");
79 toggleJournal->setIconSet (icon ) ; 71 toggleJournal->setIconSet (icon ) ;
80 //int size = toggleJournal->sizeHint().height(); 72 int size = toggleJournal->sizeHint().height();
81 toggleJournal->setFixedSize( size * 2 /3 , size ); 73 toggleJournal->setFixedSize( size * 2 /3 , size );
82 74 new QLabel(i18n(" Title: "),vb);
83 75 mTitle = new KLineEdit ( vb );
84
85 mTitleLabel = new QLabel(i18n("Title"),vb); 76 mTitleLabel = new QLabel(i18n("Title"),vb);
86 mTitleLabel->setMargin(2); 77 mTitleLabel->setMargin(0);
87 mTitleLabel->setAlignment(AlignCenter); 78 mTitleLabel->setAlignment(AlignCenter);
88 QPushButton * loadTemplate = new QPushButton( vb ); 79 QPushButton * loadTemplate = new QPushButton( vb );
89 QPushButton * saveTemplate = new QPushButton( vb ); 80 QPushButton * saveTemplate = new QPushButton( vb );
90 if ( QApplication::desktop()->width() < 321 ) 81 if ( QApplication::desktop()->width() < 321 )
91 icon = SmallIcon("fileexport16"); 82 icon = SmallIcon("fileexport16");
92 else 83 else
93 icon = SmallIcon("fileexport"); 84 icon = SmallIcon("fileexport");
94 saveTemplate->setIconSet (icon ) ; 85 saveTemplate->setIconSet (icon ) ;
95 //size = saveTemplate->sizeHint().height(); 86 //size = saveTemplate->sizeHint().height();
96 saveTemplate->setFixedSize( size, size ); 87 saveTemplate->setFixedSize( size, size );
97 if ( QApplication::desktop()->width() < 321 ) 88 if ( QApplication::desktop()->width() < 321 )
98 icon = SmallIcon("fileimport16"); 89 icon = SmallIcon("fileimport16");
@@ -102,32 +93,32 @@ JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) :
102 loadTemplate->setFixedSize( size, size ); 93 loadTemplate->setFixedSize( size, size );
103 mEditor = new KTextEdit(this); 94 mEditor = new KTextEdit(this);
104 connect(mEditor,SIGNAL(textChanged()),SLOT(setDirty())); 95 connect(mEditor,SIGNAL(textChanged()),SLOT(setDirty()));
105#ifndef DESKTOP_VERSION 96#ifndef DESKTOP_VERSION
106 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); 97 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold );
107#endif 98#endif
108 mEditor->setWordWrap( KTextEdit::WidgetWidth ); 99 mEditor->setWordWrap( KTextEdit::WidgetWidth );
109 QBoxLayout *topLayout = new QVBoxLayout(this); 100 QBoxLayout *topLayout = new QVBoxLayout(this);
110 topLayout->addWidget(vb); 101 topLayout->addWidget(vb);
111 topLayout->addWidget(mEditor); 102 topLayout->addWidget(mEditor);
112 mEditor->installEventFilter(this); 103 mEditor->installEventFilter(this);
113 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); 104 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) );
105 connect( mTitle, SIGNAL( textChanged ( const QString & ) ), this , SLOT( setDirty() ) );
114 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); 106 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) );
115 connect( newJournal, SIGNAL( clicked() ), this , SIGNAL( newJournal() ) );
116 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) ); 107 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) );
117} 108}
118 109
119JournalEntry::~JournalEntry() 110JournalEntry::~JournalEntry()
120{ 111{
121 qDebug("JournalEntry::~JournalEntry() "); 112 //qDebug("JournalEntry::~JournalEntry() ");
122} 113}
123QSize JournalEntry::sizeHint() const 114QSize JournalEntry::sizeHint() const
124{ 115{
125 return QSize ( 240, heiHint ); 116 return QSize ( 240, heiHint );
126} 117}
127void JournalEntry::slotSaveTemplate() 118void JournalEntry::slotSaveTemplate()
128{ 119{
129 QString fileName =locateLocal( "templates", "journals" ); 120 QString fileName =locateLocal( "templates", "journals" );
130 QDir t_dir; 121 QDir t_dir;
131 if ( !t_dir.exists(fileName) ) 122 if ( !t_dir.exists(fileName) )
132 t_dir.mkdir ( fileName ); 123 t_dir.mkdir ( fileName );
133 fileName += "/journal"; 124 fileName += "/journal";
@@ -170,54 +161,53 @@ void JournalEntry::slotLoadTemplate()
170 int line, col; 161 int line, col;
171 mEditor->getCursorPosition (& line, & col ); 162 mEditor->getCursorPosition (& line, & col );
172 mEditor-> insertAt ( text, line, col, true ); 163 mEditor-> insertAt ( text, line, col, true );
173 //mEditor->setIgnoreMark( true ); 164 //mEditor->setIgnoreMark( true );
174 setDirty(); 165 setDirty();
175} 166}
176void JournalEntry::setDate(const QDate &date) 167void JournalEntry::setDate(const QDate &date)
177{ 168{
178 showOnlyMode = false; 169 showOnlyMode = false;
179 mDate = date; 170 mDate = date;
180 writeJournal(); 171 writeJournal();
181 int id = mCalendar->defaultCalendar(); 172 int id = mCalendar->defaultCalendar();
182 if ( id == 1 ) { 173 QString calname = KOPrefs::instance()->getCalendar( id )->mName;
183 mTitleLabel->setText(KGlobal::locale()->formatDate(date)); 174 mTitleLabel->setText( " (" + calname +")");
184 } else {
185 QString calname = KOPrefs::instance()->getCalendar( id )->mName;
186 mTitleLabel->setText( KGlobal::locale()->formatDate(mDate,true) + " (" + calname +")");
187 }
188} 175}
189 176
190void JournalEntry::toggleShowJournal() 177void JournalEntry::toggleShowJournal()
191{ 178{
179 flushEntry();
192 if ( showOnlyMode ) 180 if ( showOnlyMode )
193 emit showJournalOnly( 0 ); 181 emit showJournalOnly( 0 );
194 else 182 else
195 emit showJournalOnly( mJournal ); 183 emit showJournalOnly( mJournal );
196} 184}
197 185void JournalEntry::setShowOnly()
186{
187 showOnlyMode = true;
188 mEditor->setFocus();
189}
198void JournalEntry::setJournal(Journal *journal) 190void JournalEntry::setJournal(Journal *journal)
199{ 191{
200 writeJournal(); 192 writeJournal();
201 193
202 mJournal = journal; 194 mJournal = journal;
203 195 mTitle->setText(mJournal->summary());
204 mEditor->setText(mJournal->description()); 196 mEditor->setText(mJournal->description());
205 int id = mJournal->calID(); 197 int id = mJournal->calID();
206 if ( id > 1 ) { 198
207 QString calname = KOPrefs::instance()->getCalendar( id )->mName; 199 QString calname = KOPrefs::instance()->getCalendar( id )->mName;
208 mTitleLabel->setText( KGlobal::locale()->formatDate(mDate,true) + " (" + calname +")"); 200 mTitleLabel->setText( " (" + calname +")");
209 } else { 201
210 mTitleLabel->setText(KGlobal::locale()->formatDate(mDate));
211 }
212 mDirty = false; 202 mDirty = false;
213} 203}
214 204
215Journal *JournalEntry::journal() const 205Journal *JournalEntry::journal() const
216{ 206{
217 return mJournal; 207 return mJournal;
218} 208}
219 209
220void JournalEntry::setDirty() 210void JournalEntry::setDirty()
221{ 211{
222 mDirty = true; 212 mDirty = true;
223 213
@@ -265,26 +255,25 @@ void JournalEntry::writeJournal()
265 return; 255 return;
266 } 256 }
267 257
268// kdDebug() << "JournalEntry::writeJournal()..." << endl; 258// kdDebug() << "JournalEntry::writeJournal()..." << endl;
269 259
270 if (!mJournal) { 260 if (!mJournal) {
271 mJournal = new Journal; 261 mJournal = new Journal;
272 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); 262 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0)));
273 mCalendar->addJournal(mJournal); 263 mCalendar->addJournal(mJournal);
274 } 264 }
275 265
276 mJournal->setDescription(mEditor->text()); 266 mJournal->setDescription(mEditor->text());
277 //qDebug("tttt%s ", mEditor->text().latin1()); 267 mJournal->setSummary(mTitle->text());
278
279 mDirty = false; 268 mDirty = false;
280} 269}
281 270
282void JournalEntry::flushEntry() 271void JournalEntry::flushEntry()
283{ 272{
284 if (!mDirty) return; 273 if (!mDirty) return;
285 274
286 writeJournal(); 275 writeJournal();
287} 276}
288void JournalEntry::keyPressEvent ( QKeyEvent * e ) 277void JournalEntry::keyPressEvent ( QKeyEvent * e )
289{ 278{
290 e->ignore(); 279 e->ignore();
diff --git a/korganizer/journalentry.h b/korganizer/journalentry.h
index b0e9cc7..b37cabd 100644
--- a/korganizer/journalentry.h
+++ b/korganizer/journalentry.h
@@ -22,61 +22,63 @@
22*/ 22*/
23#ifndef JOURNALENTRY_H 23#ifndef JOURNALENTRY_H
24#define JOURNALENTRY_H 24#define JOURNALENTRY_H
25// 25//
26// Widget showing one Journal entry 26// Widget showing one Journal entry
27 27
28#include <qframe.h> 28#include <qframe.h>
29 29
30#include <libkcal/calendar.h> 30#include <libkcal/calendar.h>
31 31
32class QLabel; 32class QLabel;
33class KTextEdit; 33class KTextEdit;
34class KLineEdit;
34 35
35using namespace KCal; 36using namespace KCal;
36 37
37class JournalEntry : public QFrame { 38class JournalEntry : public QFrame {
38 Q_OBJECT 39 Q_OBJECT
39 public: 40 public:
40 JournalEntry(Calendar *,QWidget *parent); 41 JournalEntry(Calendar *,QWidget *parent);
41 virtual ~JournalEntry(); 42 virtual ~JournalEntry();
42 43
43 void setJournal(Journal *); 44 void setJournal(Journal *);
44 Journal *journal() const; 45 Journal *journal() const;
45 46
46 void setDate(const QDate &); 47 void setDate(const QDate &);
47 48
48 void clear(); 49 void clear();
49 50
50 void flushEntry(); 51 void flushEntry();
51 void setShowOnly() {showOnlyMode = true;} 52 void setShowOnly();
52 QSize sizeHint() const; 53 QSize sizeHint() const;
53 54
54 protected slots: 55 protected slots:
55 void slotSaveTemplate(); 56 void slotSaveTemplate();
56 void slotLoadTemplate(); 57 void slotLoadTemplate();
57 void setDirty(); 58 void setDirty();
58 void toggleShowJournal(); 59 void toggleShowJournal();
59 signals: 60 signals:
60 void deleteJournal(Journal *); 61 void deleteJournal(Journal *);
61 void newJournal(); 62 void newJournal();
62 void showJournalOnly( Journal * ); 63 void showJournalOnly( Journal * );
63 64
64 protected: 65 protected:
65 bool eventFilter( QObject *o, QEvent *e ); 66 bool eventFilter( QObject *o, QEvent *e );
66 67
67 void writeJournal(); 68 void writeJournal();
68 69
69 private: 70 private:
70 bool showOnlyMode; 71 bool showOnlyMode;
71 Calendar *mCalendar; 72 Calendar *mCalendar;
72 Journal *mJournal; 73 Journal *mJournal;
73 QDate mDate; 74 QDate mDate;
74 void keyPressEvent ( QKeyEvent * ) ; 75 void keyPressEvent ( QKeyEvent * ) ;
75 QLabel *mTitleLabel; 76 QLabel *mTitleLabel;
77 KLineEdit * mTitle;
76 KTextEdit *mEditor; 78 KTextEdit *mEditor;
77 int heiHint; 79 int heiHint;
78 80
79 bool mDirty; 81 bool mDirty;
80}; 82};
81 83
82#endif 84#endif
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 3468657..067c34c 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -211,32 +211,41 @@ QString KODayMatrix::getWhatsThisText( QPoint p )
211 QString mToolTipText; 211 QString mToolTipText;
212 if ( !todo->doesFloat() ) 212 if ( !todo->doesFloat() )
213 mToolTipText += KGlobal::locale()->formatTime(todo->dtDue().time())+" "; 213 mToolTipText += KGlobal::locale()->formatTime(todo->dtDue().time())+" ";
214 mToolTipText += todo->summary(); 214 mToolTipText += todo->summary();
215 if ( !todo->location().isEmpty() ) 215 if ( !todo->location().isEmpty() )
216 mToolTipText += " (" + todo->location() + ")"; 216 mToolTipText += " (" + todo->location() + ")";
217 mToolTipText = deTag( mToolTipText); 217 mToolTipText = deTag( mToolTipText);
218 mToolTipText = "<b>" + i18n("Todo: ") + "</b>"+ mToolTipText; 218 mToolTipText = "<b>" + i18n("Todo: ") + "</b>"+ mToolTipText;
219 mToolTip.append( mToolTipText ); 219 mToolTip.append( mToolTipText );
220 } 220 }
221 } 221 }
222 if (KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { 222 if (KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
223 Journal *j = mCalendar->journal( mDate ); 223 QPtrList<Journal> j_list = mCalendar->journals4Date( mDate );
224 if ( j ) { 224 Journal *j = j_list.first();
225 QString mToolTipText = j->description().left(100); 225 while ( j ) {
226 if ( j->description().length() > 100 ) 226 QString mToolTipText;
227 mToolTipText += " ..."; 227 if ( !j->summary().isEmpty() ) {
228 mToolTipText = deTag( mToolTipText); 228 mToolTipText = j->summary().left(30);
229 if ( j->summary().length() > 30 )
230 mToolTipText += " ...";
231 } else {
232 mToolTipText = j->description().left(25);
233 if ( j->description().length() > 25 )
234 mToolTipText += " ...";
235 mToolTipText = deTag( mToolTipText);
236 }
229 mToolTipText = "<b>" + i18n("Journal: ") + "</b>"+ mToolTipText; 237 mToolTipText = "<b>" + i18n("Journal: ") + "</b>"+ mToolTipText;
230 mToolTip.append( mToolTipText ); 238 mToolTip.append( mToolTipText );
239 j = j_list.next();
231 } 240 }
232 } 241 }
233 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>"); 242 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>");
234} 243}
235 244
236 245
237QString KODayMatrix::deTag( QString mToolTipText ) 246QString KODayMatrix::deTag( QString mToolTipText )
238{ 247{
239 248
240#if QT_VERSION >= 0x030000 249#if QT_VERSION >= 0x030000
241 mToolTipText.replace( '<' , "&lt;" ); 250 mToolTipText.replace( '<' , "&lt;" );
242 mToolTipText.replace( '>' , "&gt;" ); 251 mToolTipText.replace( '>' , "&gt;" );
@@ -540,25 +549,27 @@ void KODayMatrix::updateViewTimed()
540 bDays.fill( false); 549 bDays.fill( false);
541 // insert due todos 550 // insert due todos
542 QPtrList<Journal> todos = mCalendar->journals( ); 551 QPtrList<Journal> todos = mCalendar->journals( );
543 Journal *todo; 552 Journal *todo;
544 for(todo = todos.first(); todo; todo = todos.next()) { 553 for(todo = todos.first(); todo; todo = todos.next()) {
545 int day = mStartDate.daysTo( todo->dtStart().date() ); 554 int day = mStartDate.daysTo( todo->dtStart().date() );
546 if ( day >= 0 && day < timeSpan + 1) { 555 if ( day >= 0 && day < timeSpan + 1) {
547 int i = day; 556 int i = day;
548 QString holiStr = mHolidays[i]; 557 QString holiStr = mHolidays[i];
549 pDays.setBit(i); 558 pDays.setBit(i);
550 if ( !holiStr.isEmpty() ) 559 if ( !holiStr.isEmpty() )
551 holiStr += "\n"; 560 holiStr += "\n";
552 holiStr += i18n("Journal"); 561 holiStr += i18n("Journal: ")+todo->summary().left(25);
562 if ( todo->summary().length() > 25 )
563 holiStr +="...";
553 bDays.setBit(i); 564 bDays.setBit(i);
554 mHolidays[i] =holiStr ; 565 mHolidays[i] =holiStr ;
555 eDays.setBit(i); 566 eDays.setBit(i);
556 567
557 } 568 }
558 } 569 }
559 } 570 }
560#else 571#else
561 //qDebug("KODayMatrix::updateViewTimed "); 572 //qDebug("KODayMatrix::updateViewTimed ");
562 for(int i = 0; i < NUMDAYS; i++) { 573 for(int i = 0; i < NUMDAYS; i++) {
563 // if events are set for the day then remember to draw it bold 574 // if events are set for the day then remember to draw it bold
564 QPtrList<Event> eventlist = mCalendar->events(days[i]); 575 QPtrList<Event> eventlist = mCalendar->events(days[i]);
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index 6315827..dcbb99f 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -692,24 +692,27 @@ void KOEventViewer::appendJournal(Journal *jour, int mode )
692 addTag("h2",i18n("Journal from: ")); 692 addTag("h2",i18n("Journal from: "));
693 } 693 }
694 else { 694 else {
695 if ( mode == 1 ) { 695 if ( mode == 1 ) {
696 addTag("h2",i18n( "Local: " ) +i18n("Journal from: ")); 696 addTag("h2",i18n( "Local: " ) +i18n("Journal from: "));
697 } else { 697 } else {
698 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: ")); 698 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: "));
699 } 699 }
700 } 700 }
701 topLevelWidget()->setCaption("Journal Viewer"); 701 topLevelWidget()->setCaption("Journal Viewer");
702 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer))); 702 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer)));
703 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) ); 703 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) );
704 if (!jour->summary().isEmpty()) {
705 addTag("p",i18n(" Title: ") + deTag(jour->summary()));
706 }
704 if (!jour->description().isEmpty()) { 707 if (!jour->description().isEmpty()) {
705 addTag("p",deTag(jour->description())); 708 addTag("p",deTag(jour->description()));
706 } 709 }
707 setText(mText); 710 setText(mText);
708} 711}
709 712
710void KOEventViewer::formatReadOnly(Incidence *event) 713void KOEventViewer::formatReadOnly(Incidence *event)
711{ 714{
712 if (event->isReadOnly()) { 715 if (event->isReadOnly()) {
713 addTag("p","<em>(" + i18n("read-only") + ")</em>"); 716 addTag("p","<em>(" + i18n("read-only") + ")</em>");
714 } 717 }
715} 718}
diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp
index 9e354d3..4fc9013 100644
--- a/korganizer/kojournalview.cpp
+++ b/korganizer/kojournalview.cpp
@@ -18,48 +18,69 @@
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24// 24//
25// View of Journal entries 25// View of Journal entries
26 26
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qscrollview.h> 28#include <qscrollview.h>
29#include <qpopupmenu.h> 29#include <qpopupmenu.h>
30#include <qhbox.h>
31#include <qpushbutton.h>
32#include <qlabel.h>
33#include <qpushbutton.h>
34#include <qapplication.h>
30 35
31#include <klocale.h> 36#include <klocale.h>
32#include <kdebug.h> 37#include <kdebug.h>
33#include "koprefs.h" 38#include "koprefs.h"
39#include <kglobal.h>
34 40
35#include <libkcal/calendar.h> 41#include <libkcal/calendar.h>
36 42
37#include "journalentry.h" 43#include "journalentry.h"
38 44
39#include "kojournalview.h" 45#include "kojournalview.h"
40using namespace KOrg; 46using namespace KOrg;
41 47
42KOJournalView::KOJournalView(Calendar *calendar, QWidget *parent, 48KOJournalView::KOJournalView(Calendar *calendar, QWidget *parent,
43 const char *name) 49 const char *name)
44 : KOrg::BaseView(calendar, parent, name) 50 : KOrg::BaseView(calendar, parent, name)
45{ 51{
46 mCalendar = calendar; 52 mCalendar = calendar;
47 QScrollView * sv = new QScrollView( this ); 53 QScrollView * sv = new QScrollView( this );
48 QHBoxLayout * hbl = new QHBoxLayout( this ); 54 QHBoxLayout * hbl = new QHBoxLayout( this );
49 hbl->addWidget( sv ); 55 hbl->addWidget( sv );
50 parWid = new QWidget( sv->viewport() ); 56 parWid = new QWidget( sv->viewport() );
51 sv->addChild(parWid); 57 sv->addChild(parWid);
52 sv->setResizePolicy( QScrollView:: AutoOneFit ); 58 sv->setResizePolicy( QScrollView:: AutoOneFit );
53 mTopLayout = new QVBoxLayout(parWid); 59 mTopLayout = new QVBoxLayout(parWid);
60 QHBox * vb = new QHBox ( parWid );
61 QPushButton * newJournal = new QPushButton( vb );
62 QIconSet icon;
63 if ( QApplication::desktop()->width() < 321 )
64 icon = SmallIcon("ko16old");
65 else
66 icon = SmallIcon("ko24old");
67 newJournal->setIconSet (icon ) ;
68 int size = newJournal->sizeHint().height();
69 newJournal->setFixedSize( size, size );
70 mDateLabel = new QLabel ( vb );
71 mTopLayout->addWidget( vb );
72 mDateLabel->setMargin(2);
73 mDateLabel->setAlignment(AlignCenter);
74 connect( newJournal, SIGNAL( clicked() ), this , SLOT( newJournal() ) );
54 getNewEntry(); 75 getNewEntry();
55} 76}
56 77
57KOJournalView::~KOJournalView() 78KOJournalView::~KOJournalView()
58{ 79{
59} 80}
60 81
61int KOJournalView::currentDateCount() 82int KOJournalView::currentDateCount()
62{ 83{
63 return 0; 84 return 0;
64} 85}
65JournalEntry* KOJournalView::getNewEntry() 86JournalEntry* KOJournalView::getNewEntry()
@@ -161,24 +182,25 @@ void KOJournalView::showList(QPtrList<Journal> jl)
161 mEntry->clear(); 182 mEntry->clear();
162 if ( mEntry != firstEntry ) 183 if ( mEntry != firstEntry )
163 mEntry->hide(); 184 mEntry->hide();
164 else 185 else
165 mEntry->show(); 186 mEntry->show();
166 mEntry = jEntries.next(); 187 mEntry = jEntries.next();
167 } 188 }
168} 189}
169 190
170void KOJournalView::showDates(const QDate &start, const QDate &) 191void KOJournalView::showDates(const QDate &start, const QDate &)
171{ 192{
172 mDate = start; 193 mDate = start;
194 mDateLabel-> setText(KGlobal::locale()->formatDate(mDate));
173 QPtrList<Journal> jl = calendar()->journals4Date( start ); 195 QPtrList<Journal> jl = calendar()->journals4Date( start );
174 showList( jl ); 196 showList( jl );
175} 197}
176 198
177void KOJournalView::showEvents(QPtrList<Event>) 199void KOJournalView::showEvents(QPtrList<Event>)
178{ 200{
179 // After new creation of list view no events are selected. 201 // After new creation of list view no events are selected.
180// emit incidenceSelected( 0 ); 202// emit incidenceSelected( 0 );
181} 203}
182 204
183void KOJournalView::changeEventDisplay(Event *, int /*action*/) 205void KOJournalView::changeEventDisplay(Event *, int /*action*/)
184{ 206{
diff --git a/korganizer/kojournalview.h b/korganizer/kojournalview.h
index 0437d95..331bdfa 100644
--- a/korganizer/kojournalview.h
+++ b/korganizer/kojournalview.h
@@ -18,24 +18,25 @@
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef _KOJOURNALVIEW_H 23#ifndef _KOJOURNALVIEW_H
24#define _KOJOURNALVIEW_H 24#define _KOJOURNALVIEW_H
25 25
26#include <korganizer/baseview.h> 26#include <korganizer/baseview.h>
27#include <qlayout.h> 27#include <qlayout.h>
28 28
29class JournalEntry; 29class JournalEntry;
30class QLabel;
30 31
31/** 32/**
32 * This class provides a journal view. 33 * This class provides a journal view.
33 34
34 * @short View for Journal components. 35 * @short View for Journal components.
35 * @author Cornelius Schumacher <schumacher@kde.org> 36 * @author Cornelius Schumacher <schumacher@kde.org>
36 * @see KOBaseView 37 * @see KOBaseView
37 */ 38 */
38class KOJournalView : public KOrg::BaseView 39class KOJournalView : public KOrg::BaseView
39{ 40{
40 Q_OBJECT 41 Q_OBJECT
41 public: 42 public:
@@ -61,17 +62,18 @@ class KOJournalView : public KOrg::BaseView
61 void showEvents(QPtrList<Event> eventList); 62 void showEvents(QPtrList<Event> eventList);
62 63
63 void changeEventDisplay(Event *, int); 64 void changeEventDisplay(Event *, int);
64 65
65 private: 66 private:
66 void showList(QPtrList<Journal> jl); 67 void showList(QPtrList<Journal> jl);
67 Calendar *mCalendar; 68 Calendar *mCalendar;
68 JournalEntry* getNewEntry(); 69 JournalEntry* getNewEntry();
69 QPtrList<JournalEntry> jEntries; 70 QPtrList<JournalEntry> jEntries;
70 void keyPressEvent ( QKeyEvent * ) ; 71 void keyPressEvent ( QKeyEvent * ) ;
71 QBoxLayout *mTopLayout; 72 QBoxLayout *mTopLayout;
72 QWidget *parWid; 73 QWidget *parWid;
74 QLabel * mDateLabel;
73 QDate mDate; 75 QDate mDate;
74 76
75}; 77};
76 78
77#endif 79#endif
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 22d9ac0..0c1ac7a 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -206,28 +206,34 @@ bool ListItemVisitor::visit(Todo *t)
206 } 206 }
207 if ( t->hasStartDate() ) { 207 if ( t->hasStartDate() ) {
208 d = t->dtStart().date(); 208 d = t->dtStart().date();
209 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); 209 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time();
210 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 210 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
211 mItem->setSortKey(1,key); 211 mItem->setSortKey(1,key);
212 } 212 }
213 return true; 213 return true;
214} 214}
215 215
216bool ListItemVisitor::visit(Journal * j) 216bool ListItemVisitor::visit(Journal * j)
217{ 217{
218 QString des = j->description().left(30); 218
219 des = des.simplifyWhiteSpace (); 219 QString des;
220 des.replace (QRegExp ("\\n"),"" ); 220 if ( !j->summary().isEmpty() ) {
221 des.replace (QRegExp ("\\r"),"" ); 221 des = j->summary();
222 } else {
223 des = j->description().left(30);
224 des = des.simplifyWhiteSpace ();
225 des.replace (QRegExp ("\\n"),"" );
226 des.replace (QRegExp ("\\r"),"" );
227 }
222 mItem->setText(0,i18n("Journal: ")+des.left(25)); 228 mItem->setText(0,i18n("Journal: ")+des.left(25));
223 mItem->setText(1,j->dtStartDateStr()); 229 mItem->setText(1,j->dtStartDateStr());
224 mItem->setText(2,"---"); 230 mItem->setText(2,"---");
225 mItem->setText(3,"---"); 231 mItem->setText(3,"---");
226 mItem->setText(4,"---"); 232 mItem->setText(4,"---");
227 mItem->setText(5,"---"); 233 mItem->setText(5,"---");
228 mItem->setText(6,"---"); 234 mItem->setText(6,"---");
229 mItem->setText(7,j->dtStartDateStr()); 235 mItem->setText(7,j->dtStartDateStr());
230 mItem->setText(8,"---"); 236 mItem->setText(8,"---");
231 mItem->setText(9,"---"); 237 mItem->setText(9,"---");
232 mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) ); 238 mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) );
233 mItem->setText(11, KOPrefs::instance()->calName( j->calID() )); 239 mItem->setText(11, KOPrefs::instance()->calName( j->calID() ));
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp
index 0e9f64c..72359df 100644
--- a/korganizer/searchdialog.cpp
+++ b/korganizer/searchdialog.cpp
@@ -209,24 +209,27 @@ void SearchDialog::raiseAndSelect()
209 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { 209 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
210 newState = VIEW_T_VIEW; 210 newState = VIEW_T_VIEW;
211 } 211 }
212 else { 212 else {
213 newState = VIEW_A_VIEW; 213 newState = VIEW_A_VIEW;
214 } 214 }
215 if ( newState != currentState ) { 215 if ( newState != currentState ) {
216 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { 216 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
217 if ( ! mSearchJournal->isChecked() ) { 217 if ( ! mSearchJournal->isChecked() ) {
218 mSearchJournal->setChecked( true ); 218 mSearchJournal->setChecked( true );
219 mSearchTodo->setChecked( false ); 219 mSearchTodo->setChecked( false );
220 mSearchEvent->setChecked( false ); 220 mSearchEvent->setChecked( false );
221 mSummaryCheck->setChecked( true );
222 mDescriptionCheck->setChecked( true );
223
221 } 224 }
222 } 225 }
223 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { 226 else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
224 if ( ! mSearchTodo->isChecked() ) { 227 if ( ! mSearchTodo->isChecked() ) {
225 mSearchTodo->setChecked( true ); 228 mSearchTodo->setChecked( true );
226 mSearchJournal->setChecked( false ); 229 mSearchJournal->setChecked( false );
227 mSearchEvent->setChecked( false ); 230 mSearchEvent->setChecked( false );
228 } 231 }
229 } 232 }
230 else { 233 else {
231 if ( ! mSearchEvent->isChecked() ) { 234 if ( ! mSearchEvent->isChecked() ) {
232 mSearchEvent->setChecked( true ); 235 mSearchEvent->setChecked( true );
@@ -541,36 +544,52 @@ void SearchDialog::search(const QRegExp &re)
541 QPtrList<Journal> journals; 544 QPtrList<Journal> journals;
542 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { 545 if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) {
543 if ( mRefineItems->isChecked() ) journals = mMatchedJournals ; 546 if ( mRefineItems->isChecked() ) journals = mMatchedJournals ;
544 mMatchedJournals.clear(); 547 mMatchedJournals.clear();
545 } 548 }
546 if (mSearchJournal->isChecked() ) { 549 if (mSearchJournal->isChecked() ) {
547 if ( ! mRefineItems->isChecked() ) journals = mCalendar->journals(); 550 if ( ! mRefineItems->isChecked() ) journals = mCalendar->journals();
548 Journal* journ; 551 Journal* journ;
549 552
550 for(journ=journals.first();journ;journ=journals.next()) { 553 for(journ=journals.first();journ;journ=journals.next()) {
551 if ( journ->dtStart().date() <= mEndDate->date() 554 if ( journ->dtStart().date() <= mEndDate->date()
552 &&journ->dtStart().date() >= mStartDate->date()) { 555 &&journ->dtStart().date() >= mStartDate->date()) {
556 if (mDescriptionCheck->isChecked()) {
553#if QT_VERSION >= 0x030000 557#if QT_VERSION >= 0x030000
554 if (re.search(journ->description()) != -1) 558 if (re.search(journ->description()) != -1)
555#else 559#else
556 if (re.match(journ->description()) != -1) 560 if (re.match(journ->description()) != -1)
557#endif 561#endif
558 { 562 {
559 if ( mSubItems->isChecked() ) 563 if ( mSubItems->isChecked() )
560 mMatchedJournals.remove(journ); 564 mMatchedJournals.remove(journ);
561 else if (!mMatchedJournals.contains( journ )) 565 else if (!mMatchedJournals.contains( journ ))
562 mMatchedJournals.append(journ); 566 mMatchedJournals.append(journ);
563 continue; 567 continue;
564 } 568 }
569 }
570 if (mSummaryCheck->isChecked()) {
571#if QT_VERSION >= 0x030000
572 if (re.search(journ->summary()) != -1)
573#else
574 if (re.match(journ->summary()) != -1)
575#endif
576 {
577 if ( mSubItems->isChecked() )
578 mMatchedJournals.remove(journ);
579 else if (!mMatchedJournals.contains( journ ))
580 mMatchedJournals.append(journ);
581 continue;
582 }
583 }
565 } 584 }
566 } 585 }
567 } 586 }
568 if ( mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() < 1 ) { 587 if ( mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() < 1 ) {
569 qDebug("count %d ", mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() ); 588 qDebug("count %d ", mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() );
570 if ( mRefineItems->isChecked() ) 589 if ( mRefineItems->isChecked() )
571 mRefineItems->setChecked( false ); 590 mRefineItems->setChecked( false );
572 else if ( mSubItems->isChecked() ) 591 else if ( mSubItems->isChecked() )
573 mSubItems->setChecked( false ); 592 mSubItems->setChecked( false );
574 } 593 }
575} 594}
576 595