summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-30 12:37:10 (UTC)
committer zautrix <zautrix>2005-06-30 12:37:10 (UTC)
commit4c19ba3345d1af263c02ebe564e56d9dec679347 (patch) (unidiff)
tree1ac48610c5545998670fa1c14592ef4e1981ce94
parent13eb32c82e736b033435e596111b7b0f3fe75608 (diff)
downloadkdepimpi-4c19ba3345d1af263c02ebe564e56d9dec679347.zip
kdepimpi-4c19ba3345d1af263c02ebe564e56d9dec679347.tar.gz
kdepimpi-4c19ba3345d1af263c02ebe564e56d9dec679347.tar.bz2
fixx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/journalentry.cpp13
-rw-r--r--korganizer/journalentry.h1
-rw-r--r--korganizer/kojournalview.cpp12
3 files changed, 17 insertions, 9 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp
index 9e2c902..ca8d5f7 100644
--- a/korganizer/journalentry.cpp
+++ b/korganizer/journalentry.cpp
@@ -37,240 +37,247 @@
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#include <klineedit.h>
46 46
47#include <libkcal/journal.h> 47#include <libkcal/journal.h>
48#include <libkcal/calendarresources.h> 48#include <libkcal/calendarresources.h>
49#include <libkcal/resourcecalendar.h> 49#include <libkcal/resourcecalendar.h>
50#include <kresources/resourceselectdialog.h> 50#include <kresources/resourceselectdialog.h>
51 51
52#include "journalentry.h" 52#include "journalentry.h"
53//#include "journalentry.moc" 53//#include "journalentry.moc"
54#ifndef DESKTOP_VERSION 54#ifndef DESKTOP_VERSION
55#include <qpe/qpeapplication.h> 55#include <qpe/qpeapplication.h>
56#endif 56#endif
57JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : 57JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) :
58 QFrame(parent) 58 QFrame(parent)
59{ 59{
60 heiHint = QApplication::desktop()->height() / 5 ; 60 heiHint = QApplication::desktop()->height() / 5 ;
61 showOnlyMode = false; 61 showOnlyMode = false;
62 mCalendar = calendar; 62 mCalendar = calendar;
63 mJournal = 0; 63 mJournal = 0;
64 visibleMode = true; 64 visibleMode = true;
65 QHBox * vb = new QHBox ( this ); 65 QHBox * vb = new QHBox ( this );
66 QPixmap iconp; 66 QPixmap iconp;
67 67
68 QPushButton * toggleJournal = new QPushButton( vb ); 68 QPushButton * toggleJournal = new QPushButton( vb );
69 iconp = SmallIcon("1updownarrow"); 69 iconp = SmallIcon("1updownarrow");
70 toggleJournal->setPixmap (iconp ) ; 70 toggleJournal->setPixmap (iconp ) ;
71 new QLabel(" "+i18n("Title: "),vb); 71 new QLabel(" "+i18n("Title: "),vb);
72 mTitle = new KLineEdit ( vb ); 72 mTitle = new KLineEdit ( vb );
73 mTitleLabel = new QLabel(i18n("Title"),vb); 73 mTitleLabel = new QLabel(i18n("Title"),vb);
74 mTitleLabel->setMargin(0); 74 mTitleLabel->setMargin(0);
75 mTitleLabel->setAlignment(AlignCenter); 75 mTitleLabel->setAlignment(AlignCenter);
76 QPushButton * loadTemplate = new QPushButton( vb ); 76 QPushButton * loadTemplate = new QPushButton( vb );
77 QPushButton * saveTemplate = new QPushButton( vb ); 77 QPushButton * saveTemplate = new QPushButton( vb );
78 if ( QApplication::desktop()->width() < 321 ) 78 if ( QApplication::desktop()->width() < 321 )
79 iconp = SmallIcon("fileexport16"); 79 iconp = SmallIcon("fileexport16");
80 else 80 else
81 iconp = SmallIcon("fileexport"); 81 iconp = SmallIcon("fileexport");
82 saveTemplate->setPixmap (iconp ) ; 82 saveTemplate->setPixmap (iconp ) ;
83 int size = saveTemplate->sizeHint().height(); 83 int size = saveTemplate->sizeHint().height();
84 if ( QApplication::desktop()->width() < 321 ) 84 if ( QApplication::desktop()->width() < 321 )
85 iconp = SmallIcon("fileimport16"); 85 iconp = SmallIcon("fileimport16");
86 else 86 else
87 iconp = SmallIcon("fileimport"); 87 iconp = SmallIcon("fileimport");
88 loadTemplate->setPixmap (iconp ) ; 88 loadTemplate->setPixmap (iconp ) ;
89 loadTemplate->setFixedSize( size, size ); 89 loadTemplate->setFixedSize( size, size );
90 saveTemplate->setFixedSize( size, size ); 90 saveTemplate->setFixedSize( size, size );
91 toggleJournal->setFixedSize( size , size ); 91 toggleJournal->setFixedSize( size , size );
92 mEditor = new KTextEdit(this); 92 mEditor = new KTextEdit(this);
93#ifndef DESKTOP_VERSION 93#ifndef DESKTOP_VERSION
94 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); 94 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold );
95#endif 95#endif
96 mEditor->setWordWrap( KTextEdit::WidgetWidth ); 96 mEditor->setWordWrap( KTextEdit::WidgetWidth );
97 QBoxLayout *topLayout = new QVBoxLayout(this); 97 QBoxLayout *topLayout = new QVBoxLayout(this);
98 topLayout->addWidget(vb); 98 topLayout->addWidget(vb);
99 topLayout->addWidget(mEditor); 99 topLayout->addWidget(mEditor);
100 mEditor->installEventFilter(this); 100 mEditor->installEventFilter(this);
101 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); 101 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) );
102 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); 102 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) );
103 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) ); 103 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) );
104} 104}
105 105
106JournalEntry::~JournalEntry() 106JournalEntry::~JournalEntry()
107{ 107{
108 //qDebug("JournalEntry::~JournalEntry() "); 108 //qDebug("JournalEntry::~JournalEntry() ");
109} 109}
110QSize JournalEntry::sizeHint() const 110QSize JournalEntry::sizeHint() const
111{ 111{
112 return QSize ( 240, heiHint ); 112 return QSize ( 240, heiHint );
113} 113}
114void JournalEntry::slotSaveTemplate() 114void JournalEntry::slotSaveTemplate()
115{ 115{
116 QString fileName =locateLocal( "templates", "journals" ); 116 QString fileName =locateLocal( "templates", "journals" );
117 QDir t_dir; 117 QDir t_dir;
118 if ( !t_dir.exists(fileName) ) 118 if ( !t_dir.exists(fileName) )
119 t_dir.mkdir ( fileName ); 119 t_dir.mkdir ( fileName );
120 fileName += "/journal"; 120 fileName += "/journal";
121 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this ); 121 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this );
122 if ( fileName.length() == 0 ) 122 if ( fileName.length() == 0 )
123 return; 123 return;
124 124
125 QFile fileIn( fileName ); 125 QFile fileIn( fileName );
126 if (!fileIn.open( IO_WriteOnly ) ) { 126 if (!fileIn.open( IO_WriteOnly ) ) {
127 KMessageBox::error( this, i18n("Error saving template file\n '%1'.") 127 KMessageBox::error( this, i18n("Error saving template file\n '%1'.")
128 .arg( fileName ) ); 128 .arg( fileName ) );
129 return; 129 return;
130 } 130 }
131 // QString text; 131 // QString text;
132 QTextStream tsIn( &fileIn ); 132 QTextStream tsIn( &fileIn );
133 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 133 tsIn.setCodec( QTextCodec::codecForName("utf8") );
134 tsIn << mEditor->text(); 134 tsIn << mEditor->text();
135 fileIn.close(); 135 fileIn.close();
136} 136}
137void JournalEntry::slotLoadTemplate() 137void JournalEntry::slotLoadTemplate()
138{ 138{
139 QString fileName =locateLocal( "templates", "journals" ); 139 QString fileName =locateLocal( "templates", "journals" );
140 QDir t_dir; 140 QDir t_dir;
141 if ( !t_dir.exists(fileName) ) 141 if ( !t_dir.exists(fileName) )
142 t_dir.mkdir ( fileName ); 142 t_dir.mkdir ( fileName );
143 fileName += "/journal"; 143 fileName += "/journal";
144 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this ); 144 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this );
145 if ( fileName.length() == 0 ) 145 if ( fileName.length() == 0 )
146 return; 146 return;
147 QFile fileIn( fileName ); 147 QFile fileIn( fileName );
148 if (!fileIn.open( IO_ReadOnly ) ) { 148 if (!fileIn.open( IO_ReadOnly ) ) {
149 KMessageBox::error( this, i18n("Error loading template file\n '%1'.") 149 KMessageBox::error( this, i18n("Error loading template file\n '%1'.")
150 .arg( fileName ) ); 150 .arg( fileName ) );
151 return; 151 return;
152 } 152 }
153 QTextStream tsIn( &fileIn ); 153 QTextStream tsIn( &fileIn );
154 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 154 tsIn.setCodec( QTextCodec::codecForName("utf8") );
155 QString text = tsIn.read(); 155 QString text = tsIn.read();
156 fileIn.close(); 156 fileIn.close();
157 int line, col; 157 int line, col;
158 mEditor->getCursorPosition (& line, & col ); 158 mEditor->getCursorPosition (& line, & col );
159 mEditor-> insertAt ( text, line, col, true ); 159 mEditor-> insertAt ( text, line, col, true );
160 //mEditor->setIgnoreMark( true ); 160 //mEditor->setIgnoreMark( true );
161} 161}
162void JournalEntry::setDate(const QDate &date) 162void JournalEntry::setDate(const QDate &date)
163{ 163{
164 showOnlyMode = false; 164 showOnlyMode = false;
165 mDate = date;
166 writeJournal(); 165 writeJournal();
166 mDate = date;
167 int id = mCalendar->defaultCalendar(); 167 int id = mCalendar->defaultCalendar();
168 QString calname = KOPrefs::instance()->getCalendar( id )->mName; 168 QString calname = KOPrefs::instance()->getCalendar( id )->mName;
169 mTitleLabel->setText( " (" + calname +")"); 169 mTitleLabel->setText( " (" + calname +")");
170} 170}
171 171
172void JournalEntry::toggleShowJournal() 172void JournalEntry::toggleShowJournal()
173{ 173{
174 if (!mEditor->text().isEmpty() || !mTitle->text().isEmpty()) 174 if (!mEditor->text().isEmpty() || !mTitle->text().isEmpty())
175 flushEntry(); 175 flushEntry();
176 if ( showOnlyMode ) 176 if ( showOnlyMode )
177 emit showJournalOnly( 0 ); 177 emit showJournalOnly( 0 );
178 else { 178 else {
179 // we have to protect mJournal from deleting if mJournal has empty text 179 // we have to protect mJournal from deleting if mJournal has empty text
180 visibleMode = false; // set to true via :setShowOnly() 180 visibleMode = false; // set to true via :setShowOnly()
181 emit showJournalOnly( mJournal ); 181 emit showJournalOnly( mJournal );
182 //QTimer::singleShot( 0, this, SLOT( setVisibleOn() ) );
182 } 183 }
183} 184}
185void JournalEntry::setVisibleOn()
186{
187 visibleMode = true;
188}
184void JournalEntry::setShowOnly() 189void JournalEntry::setShowOnly()
185{ 190{
186 showOnlyMode = true; 191 showOnlyMode = true;
187 mEditor->setFocus(); 192 if ( mTitle->text().isEmpty() )
188 visibleMode = true; 193 mTitle->setFocus();
194 else
195 mEditor->setFocus();
189} 196}
190void JournalEntry::setJournal(Journal *journal) 197void JournalEntry::setJournal(Journal *journal)
191{ 198{
192 writeJournal(); 199 writeJournal();
193 200
194 mJournal = journal; 201 mJournal = journal;
195 if ( journal->isReadOnly() ) 202 if ( journal->isReadOnly() )
196 mTitle->setText(mJournal->summary()+" ("+i18n("readonly")+")"); 203 mTitle->setText(mJournal->summary()+" ("+i18n("readonly")+")");
197 else 204 else
198 mTitle->setText(mJournal->summary()); 205 mTitle->setText(mJournal->summary());
199 mEditor->setText(mJournal->description()); 206 mEditor->setText(mJournal->description());
200 mTitle->setReadOnly (journal->isReadOnly() ); 207 mTitle->setReadOnly (journal->isReadOnly() );
201 mEditor->setReadOnly ( journal->isReadOnly() ); 208 mEditor->setReadOnly ( journal->isReadOnly() );
202 int id = mJournal->calID(); 209 int id = mJournal->calID();
203 210
204 QString calname = KOPrefs::instance()->getCalendar( id )->mName; 211 QString calname = KOPrefs::instance()->getCalendar( id )->mName;
205 mTitleLabel->setText( " (" + calname +")"); 212 mTitleLabel->setText( " (" + calname +")");
206 213
207} 214}
208 215
209Journal *JournalEntry::journal() const 216Journal *JournalEntry::journal() const
210{ 217{
211 return mJournal; 218 return mJournal;
212} 219}
213 220
214 221
215void JournalEntry::clear() 222void JournalEntry::clear()
216{ 223{
217 mJournal = 0; 224 mJournal = 0;
218 mEditor->setText(""); 225 mEditor->setText("");
219 mTitle->setText(""); 226 mTitle->setText("");
220} 227}
221 228
222bool JournalEntry::eventFilter( QObject *o, QEvent *e ) 229bool JournalEntry::eventFilter( QObject *o, QEvent *e )
223{ 230{
224// kdDebug() << "JournalEntry::event received " << e->type() << endl; 231// kdDebug() << "JournalEntry::event received " << e->type() << endl;
225 232
226 if ( e->type() == QEvent::FocusOut ) { 233 if ( e->type() == QEvent::FocusOut ) {
227 writeJournal(); 234 writeJournal();
228 } 235 }
229 if ( e->type() == QEvent::KeyPress ) { 236 if ( e->type() == QEvent::KeyPress ) {
230 QKeyEvent * k = (QKeyEvent *) e; 237 QKeyEvent * k = (QKeyEvent *) e;
231 if ( k->state() == Qt::ControlButton ) { 238 if ( k->state() == Qt::ControlButton ) {
232 k->ignore(); 239 k->ignore();
233 //return true; 240 //return true;
234 } 241 }
235 } 242 }
236 243
237 return QFrame::eventFilter( o, e ); // standard event processing 244 return QFrame::eventFilter( o, e ); // standard event processing
238} 245}
239 246
240void JournalEntry::writeJournal() 247void JournalEntry::writeJournal()
241{ 248{
242 if ( !visibleMode ) return; 249 if ( !visibleMode ) return;
243 if (mEditor->text().isEmpty() && mTitle->text().isEmpty()) { 250 if (mEditor->text().isEmpty() && mTitle->text().isEmpty()) {
244 if ( mJournal ) { 251 if ( mJournal ) {
245 Journal* j = mJournal; 252 Journal* j = mJournal;
246 mJournal = 0; 253 mJournal = 0;
247 bool conf = KOPrefs::instance()->mConfirm; 254 bool conf = KOPrefs::instance()->mConfirm;
248 KOPrefs::instance()->mConfirm = false; 255 KOPrefs::instance()->mConfirm = false;
249 emit deleteJournal(j); 256 emit deleteJournal(j);
250 KOPrefs::instance()->mConfirm = conf; 257 KOPrefs::instance()->mConfirm = conf;
251 } 258 }
252 return; 259 return;
253 } 260 }
254 261
255// kdDebug() << "JournalEntry::writeJournal()..." << endl; 262// kdDebug() << "JournalEntry::writeJournal()..." << endl;
256 263
257 if (!mJournal) { 264 if (!mJournal) {
258 mJournal = new Journal; 265 mJournal = new Journal;
259 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); 266 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0)));
260 mCalendar->addJournal(mJournal); 267 mCalendar->addJournal(mJournal);
261 } 268 }
262 if ( mJournal->description() != mEditor->text() ) 269 if ( mJournal->description() != mEditor->text() )
263 mJournal->setDescription(mEditor->text()); 270 mJournal->setDescription(mEditor->text());
264 if ( mJournal->summary() != mTitle->text() ) 271 if ( mJournal->summary() != mTitle->text() )
265 mJournal->setSummary(mTitle->text()); 272 mJournal->setSummary(mTitle->text());
266} 273}
267 274
268void JournalEntry::flushEntry() 275void JournalEntry::flushEntry()
269{ 276{
270 writeJournal(); 277 writeJournal();
271} 278}
272void JournalEntry::keyPressEvent ( QKeyEvent * e ) 279void JournalEntry::keyPressEvent ( QKeyEvent * e )
273{ 280{
274 e->ignore(); 281 e->ignore();
275 282
276} 283}
diff --git a/korganizer/journalentry.h b/korganizer/journalentry.h
index e98d018..cc9b5ef 100644
--- a/korganizer/journalentry.h
+++ b/korganizer/journalentry.h
@@ -1,83 +1,84 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
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 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; 34class KLineEdit;
35 35
36using namespace KCal; 36using namespace KCal;
37 37
38class JournalEntry : public QFrame { 38class JournalEntry : public QFrame {
39 Q_OBJECT 39 Q_OBJECT
40 public: 40 public:
41 JournalEntry(Calendar *,QWidget *parent); 41 JournalEntry(Calendar *,QWidget *parent);
42 virtual ~JournalEntry(); 42 virtual ~JournalEntry();
43 43
44 void setJournal(Journal *); 44 void setJournal(Journal *);
45 Journal *journal() const; 45 Journal *journal() const;
46 46
47 void setDate(const QDate &); 47 void setDate(const QDate &);
48 48
49 void clear(); 49 void clear();
50 50
51 void flushEntry(); 51 void flushEntry();
52 void setShowOnly(); 52 void setShowOnly();
53 QSize sizeHint() const; 53 QSize sizeHint() const;
54 void setVisibleMode( bool b ) { visibleMode = b;} 54 void setVisibleMode( bool b ) { visibleMode = b;}
55 55
56 protected slots: 56 protected slots:
57 void slotSaveTemplate(); 57 void slotSaveTemplate();
58 void slotLoadTemplate(); 58 void slotLoadTemplate();
59 void toggleShowJournal(); 59 void toggleShowJournal();
60 void setVisibleOn();
60 signals: 61 signals:
61 void deleteJournal(Journal *); 62 void deleteJournal(Journal *);
62 void newJournal(); 63 void newJournal();
63 void showJournalOnly( Journal * ); 64 void showJournalOnly( Journal * );
64 65
65 protected: 66 protected:
66 bool eventFilter( QObject *o, QEvent *e ); 67 bool eventFilter( QObject *o, QEvent *e );
67 68
68 void writeJournal(); 69 void writeJournal();
69 70
70 private: 71 private:
71 bool visibleMode; 72 bool visibleMode;
72 bool showOnlyMode; 73 bool showOnlyMode;
73 Calendar *mCalendar; 74 Calendar *mCalendar;
74 Journal *mJournal; 75 Journal *mJournal;
75 QDate mDate; 76 QDate mDate;
76 void keyPressEvent ( QKeyEvent * ) ; 77 void keyPressEvent ( QKeyEvent * ) ;
77 QLabel *mTitleLabel; 78 QLabel *mTitleLabel;
78 KLineEdit * mTitle; 79 KLineEdit * mTitle;
79 KTextEdit *mEditor; 80 KTextEdit *mEditor;
80 int heiHint; 81 int heiHint;
81}; 82};
82 83
83#endif 84#endif
diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp
index 7a96aa5..6fa9b23 100644
--- a/korganizer/kojournalview.cpp
+++ b/korganizer/kojournalview.cpp
@@ -30,206 +30,206 @@
30#include <qhbox.h> 30#include <qhbox.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qlabel.h> 32#include <qlabel.h>
33#include <qpushbutton.h> 33#include <qpushbutton.h>
34#include <qapplication.h> 34#include <qapplication.h>
35 35
36#include <klocale.h> 36#include <klocale.h>
37#include <kdebug.h> 37#include <kdebug.h>
38#include "koprefs.h" 38#include "koprefs.h"
39#include <kglobal.h> 39#include <kglobal.h>
40 40
41#include <libkcal/calendar.h> 41#include <libkcal/calendar.h>
42 42
43#include "journalentry.h" 43#include "journalentry.h"
44 44
45#include "kojournalview.h" 45#include "kojournalview.h"
46using namespace KOrg; 46using namespace KOrg;
47 47
48KOJournalView::KOJournalView(Calendar *calendar, QWidget *parent, 48KOJournalView::KOJournalView(Calendar *calendar, QWidget *parent,
49 const char *name) 49 const char *name)
50 : KOrg::BaseView(calendar, parent, name) 50 : KOrg::BaseView(calendar, parent, name)
51{ 51{
52 mCalendar = calendar; 52 mCalendar = calendar;
53 QScrollView * sv = new QScrollView( this ); 53 QScrollView * sv = new QScrollView( this );
54 QHBoxLayout * hbl = new QHBoxLayout( this ); 54 QHBoxLayout * hbl = new QHBoxLayout( this );
55 hbl->addWidget( sv ); 55 hbl->addWidget( sv );
56 parWid = new QWidget( sv->viewport() ); 56 parWid = new QWidget( sv->viewport() );
57 sv->addChild(parWid); 57 sv->addChild(parWid);
58 sv->setResizePolicy( QScrollView:: AutoOneFit ); 58 sv->setResizePolicy( QScrollView:: AutoOneFit );
59 mTopLayout = new QVBoxLayout(parWid); 59 mTopLayout = new QVBoxLayout(parWid);
60 QHBox * vb = new QHBox ( parWid ); 60 QHBox * vb = new QHBox ( parWid );
61 QPushButton * newJournal = new QPushButton( vb ); 61 QPushButton * newJournal = new QPushButton( vb );
62 QPixmap icon; 62 QPixmap icon;
63 if ( QApplication::desktop()->width() < 321 ) 63 if ( QApplication::desktop()->width() < 321 )
64 icon = SmallIcon("ko16old"); 64 icon = SmallIcon("ko16old");
65 else 65 else
66 icon = SmallIcon("ko24old"); 66 icon = SmallIcon("ko24old");
67 newJournal->setPixmap (icon ) ; 67 newJournal->setPixmap (icon ) ;
68 int size = newJournal->sizeHint().height(); 68 int size = newJournal->sizeHint().height();
69 newJournal->setFixedSize( size, size ); 69 newJournal->setFixedSize( size, size );
70 mDateLabel = new QLabel ( vb ); 70 mDateLabel = new QLabel ( vb );
71 mTopLayout->addWidget( vb ); 71 mTopLayout->addWidget( vb );
72 mDateLabel->setMargin(1); 72 mDateLabel->setMargin(1);
73 mDateLabel->setAlignment(AlignCenter); 73 mDateLabel->setAlignment(AlignCenter);
74 connect( newJournal, SIGNAL( clicked() ), this , SLOT( newJournal() ) ); 74 connect( newJournal, SIGNAL( clicked() ), this , SLOT( newJournal() ) );
75 getNewEntry(); 75 getNewEntry();
76} 76}
77 77
78KOJournalView::~KOJournalView() 78KOJournalView::~KOJournalView()
79{ 79{
80} 80}
81 81
82int KOJournalView::currentDateCount() 82int KOJournalView::currentDateCount()
83{ 83{
84 return 0; 84 return 0;
85} 85}
86JournalEntry* KOJournalView::getNewEntry() 86JournalEntry* KOJournalView::getNewEntry()
87{ 87{
88 JournalEntry* Entry = new JournalEntry(mCalendar,parWid); 88 JournalEntry* Entry = new JournalEntry(mCalendar,parWid);
89 jEntries.append( Entry ); 89 jEntries.append( Entry );
90 mTopLayout->addWidget(Entry); 90 mTopLayout->addWidget(Entry);
91 Entry->setFont ( KOPrefs::instance()->mJornalViewFont ); 91 Entry->setFont ( KOPrefs::instance()->mJornalViewFont );
92 connect ( Entry,SIGNAL(deleteJournal(Journal *) ),this ,SIGNAL(deleteJournal(Journal *) ) ) ; 92 connect ( Entry,SIGNAL(deleteJournal(Journal *) ),this ,SIGNAL(deleteJournal(Journal *) ) ) ;
93 connect ( Entry,SIGNAL(newJournal() ),this ,SLOT(newJournal() ) ) ; 93 connect ( Entry,SIGNAL(newJournal() ),this ,SLOT(newJournal() ) ) ;
94 connect ( Entry,SIGNAL(showJournalOnly( Journal * ) ),this ,SLOT(showOnly ( Journal* ) ) ) ; 94 connect ( Entry,SIGNAL(showJournalOnly( Journal * ) ),this ,SLOT(showOnly ( Journal* ) ) ) ;
95 return Entry; 95 return Entry;
96} 96}
97 97
98QPtrList<Incidence> KOJournalView::selectedIncidences() 98QPtrList<Incidence> KOJournalView::selectedIncidences()
99{ 99{
100 QPtrList<Incidence> eventList; 100 QPtrList<Incidence> eventList;
101 101
102 return eventList; 102 return eventList;
103} 103}
104void KOJournalView::updateConfig() 104void KOJournalView::updateConfig()
105{ 105{
106 JournalEntry* mEntry = jEntries.first(); 106 JournalEntry* mEntry = jEntries.first();
107 while ( mEntry ) { 107 while ( mEntry ) {
108 mEntry->setFont ( KOPrefs::instance()->mJornalViewFont ); 108 mEntry->setFont ( KOPrefs::instance()->mJornalViewFont );
109 mEntry = jEntries.next(); 109 mEntry = jEntries.next();
110 } 110 }
111} 111}
112void KOJournalView::updateView() 112void KOJournalView::updateView()
113{ 113{
114 JournalEntry* mEntry = jEntries.first(); 114 JournalEntry* mEntry = jEntries.first();
115 while ( mEntry ) { 115 while ( mEntry ) {
116 mEntry->setFont ( KOPrefs::instance()->mJornalViewFont ); 116 mEntry->setFont ( KOPrefs::instance()->mJornalViewFont );
117 mEntry = jEntries.next(); 117 mEntry = jEntries.next();
118 } 118 }
119 showDates( mDate, QDate() ); 119 showDates( mDate, QDate() );
120} 120}
121void KOJournalView::checkModified() 121void KOJournalView::checkModified()
122{ 122{
123 flushView(); 123 flushView();
124} 124}
125void KOJournalView::flushView() 125void KOJournalView::flushView()
126{ 126{
127 static bool ff = false; 127 static bool ff = false;
128 if ( ff ) return; 128 if ( ff ) return;
129 ff = true; 129 ff = true;
130 JournalEntry* mEntry = jEntries.first(); 130 JournalEntry* mEntry = jEntries.first();
131 while ( mEntry ) { 131 while ( mEntry ) {
132 mEntry->flushEntry(); 132 mEntry->flushEntry();
133 mEntry = jEntries.next(); 133 mEntry = jEntries.next();
134 } 134 }
135 ff = false; 135 ff = false;
136} 136}
137 137
138void KOJournalView::clearList() 138void KOJournalView::clearList()
139{ 139{
140 JournalEntry* mEntry = jEntries.first(); 140 JournalEntry* mEntry = jEntries.first();
141 while ( mEntry ) { 141 while ( mEntry ) {
142 mEntry->clear(); 142 mEntry->clear();
143 mEntry = jEntries.next(); 143 mEntry = jEntries.next();
144 } 144 }
145} 145}
146void KOJournalView::newJournal() 146void KOJournalView::newJournal()
147{ 147{
148 //qDebug(" KOJournalView::newJournal()"); 148 //qDebug(" KOJournalView::newJournal()");
149 flushView(); 149 flushView();
150 Journal* mJournal = new Journal; 150 Journal* mJournal = new Journal;
151 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); 151 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0)));
152 mCalendar->addJournal(mJournal); 152 mCalendar->addJournal(mJournal);
153 showDates( mDate, QDate() ); 153 showDates( mDate, QDate() );
154} 154}
155 155
156void KOJournalView::showOnly ( Journal* j ) 156void KOJournalView::showOnly ( Journal* j )
157{ 157{
158 //qDebug("showOnly %x ", j); 158 qDebug("showOnly %x ", j);
159 flushView(); 159 flushView();
160 if ( j == 0 ) { 160 if ( j == 0 ) {
161 showDates( mDate, QDate() ); 161 showDates( mDate, QDate() );
162 return; 162 return;
163 } 163 }
164 QPtrList<Journal> jl; 164 QPtrList<Journal> jl;
165 jl.append ( j ); 165 jl.append ( j );
166 showList( jl ); 166 showList( jl );
167 JournalEntry* mEntry = jEntries.first(); 167 JournalEntry* mEntry = jEntries.first();
168 mEntry->setShowOnly(); 168 mEntry->setShowOnly();
169} 169}
170void KOJournalView::showList(QPtrList<Journal> jl) 170void KOJournalView::showList(QPtrList<Journal> jl)
171{ 171{
172 //qDebug("KOJournalView::showList %d",jl.count() ); 172 qDebug("KOJournalView::showList %d",jl.count() );
173 JournalEntry* mEntry = jEntries.first(); 173 JournalEntry* mEntry = jEntries.first();
174 JournalEntry* firstEntry = mEntry; 174 JournalEntry* firstEntry = mEntry;
175 int count = jl.count(); 175 int count = jl.count();
176 int iii = 0; 176 int iii = 0;
177 while ( iii < count ) { 177 while ( iii < count ) {
178 if ( !mEntry ) { 178 if ( !mEntry ) {
179 mEntry = getNewEntry(); 179 mEntry = getNewEntry();
180 mEntry->show();
181 mEntry->setVisibleMode( true );
182 mEntry->setDate(mDate); 180 mEntry->setDate(mDate);
183 mEntry->setJournal(jl.at(iii)); 181 mEntry->setJournal(jl.at(iii));
182 mEntry->setVisibleMode( true );
183 mEntry->show();
184 mEntry = 0; 184 mEntry = 0;
185 } else { 185 } else {
186 mEntry->setDate(mDate); 186 mEntry->setDate(mDate);
187 mEntry->setJournal(jl.at(iii)); 187 mEntry->setJournal(jl.at(iii));
188 mEntry->show();
189 mEntry->setVisibleMode( true ); 188 mEntry->setVisibleMode( true );
189 mEntry->show();
190 mEntry = jEntries.next(); 190 mEntry = jEntries.next();
191 } 191 }
192 ++iii; 192 ++iii;
193 } 193 }
194 while ( mEntry ) { 194 while ( mEntry ) {
195 mEntry->setDate(mDate); 195 mEntry->setDate(mDate);
196 mEntry->clear(); 196 mEntry->clear();
197 if ( mEntry != firstEntry ) { 197 if ( mEntry != firstEntry ) {
198 mEntry->hide(); 198 mEntry->hide();
199 mEntry->setVisibleMode( false ); 199 mEntry->setVisibleMode( false );
200 } 200 }
201 else { 201 else {
202 mEntry->setVisibleMode( true ); 202 mEntry->setVisibleMode( true );
203 mEntry->show(); 203 mEntry->show();
204 } 204 }
205 mEntry = jEntries.next(); 205 mEntry = jEntries.next();
206 } 206 }
207} 207}
208 208
209void KOJournalView::showDates(const QDate &start, const QDate &) 209void KOJournalView::showDates(const QDate &start, const QDate &)
210{ 210{
211 mDate = start; 211 mDate = start;
212 mDateLabel-> setText(KGlobal::locale()->formatDate(mDate)); 212 mDateLabel->setText(KGlobal::locale()->formatDate(mDate));
213 QPtrList<Journal> jl = calendar()->journals4Date( start ); 213 QPtrList<Journal> jl = calendar()->journals4Date( start );
214 showList( jl ); 214 showList( jl );
215} 215}
216 216
217void KOJournalView::showEvents(QPtrList<Event>) 217void KOJournalView::showEvents(QPtrList<Event>)
218{ 218{
219 // After new creation of list view no events are selected. 219 // After new creation of list view no events are selected.
220// emit incidenceSelected( 0 ); 220// emit incidenceSelected( 0 );
221} 221}
222 222
223void KOJournalView::changeEventDisplay(Event *, int /*action*/) 223void KOJournalView::changeEventDisplay(Event *, int /*action*/)
224{ 224{
225 updateView(); 225 updateView();
226} 226}
227 227
228void KOJournalView::keyPressEvent ( QKeyEvent * e ) 228void KOJournalView::keyPressEvent ( QKeyEvent * e )
229{ 229{
230 //qDebug("keyPressEven "); 230 //qDebug("keyPressEven ");
231 if ( e->state() == Qt::ControlButton ) { 231 if ( e->state() == Qt::ControlButton ) {
232 if ( e->key () == Qt::Key_Right || e->key () == Qt::Key_Left ) 232 if ( e->key () == Qt::Key_Right || e->key () == Qt::Key_Left )
233 e->ignore(); 233 e->ignore();
234 } 234 }
235} 235}