-rw-r--r-- | korganizer/journalentry.cpp | 19 | ||||
-rw-r--r-- | korganizer/journalentry.h | 2 | ||||
-rw-r--r-- | korganizer/kojournalview.cpp | 19 |
3 files changed, 31 insertions, 9 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp index add874f..395392c 100644 --- a/korganizer/journalentry.cpp +++ b/korganizer/journalentry.cpp | |||
@@ -60,9 +60,9 @@ JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : | |||
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 | 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 ); |
@@ -170,18 +170,23 @@ void JournalEntry::setDate(const QDate &date) | |||
170 | } | 170 | } |
171 | 171 | ||
172 | void JournalEntry::toggleShowJournal() | 172 | void JournalEntry::toggleShowJournal() |
173 | { | 173 | { |
174 | flushEntry(); | 174 | if (!mEditor->text().isEmpty() || !mTitle->text().isEmpty()) |
175 | flushEntry(); | ||
175 | if ( showOnlyMode ) | 176 | if ( showOnlyMode ) |
176 | emit showJournalOnly( 0 ); | 177 | emit showJournalOnly( 0 ); |
177 | else | 178 | else { |
179 | // we have to protect mJournal from deleting if mJournal has empty text | ||
180 | visibleMode = false; // set to true via :setShowOnly() | ||
178 | emit showJournalOnly( mJournal ); | 181 | emit showJournalOnly( mJournal ); |
182 | } | ||
179 | } | 183 | } |
180 | void JournalEntry::setShowOnly() | 184 | void JournalEntry::setShowOnly() |
181 | { | 185 | { |
182 | showOnlyMode = true; | 186 | showOnlyMode = true; |
183 | mEditor->setFocus(); | 187 | mEditor->setFocus(); |
188 | visibleMode = true; | ||
184 | } | 189 | } |
185 | void JournalEntry::setJournal(Journal *journal) | 190 | void JournalEntry::setJournal(Journal *journal) |
186 | { | 191 | { |
187 | writeJournal(); | 192 | writeJournal(); |
@@ -210,8 +215,9 @@ Journal *JournalEntry::journal() const | |||
210 | void JournalEntry::clear() | 215 | void JournalEntry::clear() |
211 | { | 216 | { |
212 | mJournal = 0; | 217 | mJournal = 0; |
213 | mEditor->setText(""); | 218 | mEditor->setText(""); |
219 | mTitle->setText(""); | ||
214 | } | 220 | } |
215 | 221 | ||
216 | bool JournalEntry::eventFilter( QObject *o, QEvent *e ) | 222 | bool JournalEntry::eventFilter( QObject *o, QEvent *e ) |
217 | { | 223 | { |
@@ -232,16 +238,17 @@ bool JournalEntry::eventFilter( QObject *o, QEvent *e ) | |||
232 | } | 238 | } |
233 | 239 | ||
234 | void JournalEntry::writeJournal() | 240 | void JournalEntry::writeJournal() |
235 | { | 241 | { |
236 | 242 | if ( !visibleMode ) return; | |
237 | if (mEditor->text().isEmpty() && mTitle->text().isEmpty()) { | 243 | if (mEditor->text().isEmpty() && mTitle->text().isEmpty()) { |
238 | if ( mJournal ) { | 244 | if ( mJournal ) { |
245 | Journal* j = mJournal; | ||
246 | mJournal = 0; | ||
239 | bool conf = KOPrefs::instance()->mConfirm; | 247 | bool conf = KOPrefs::instance()->mConfirm; |
240 | KOPrefs::instance()->mConfirm = false; | 248 | KOPrefs::instance()->mConfirm = false; |
241 | emit deleteJournal(mJournal); | 249 | emit deleteJournal(j); |
242 | KOPrefs::instance()->mConfirm = conf; | 250 | KOPrefs::instance()->mConfirm = conf; |
243 | mJournal = 0; | ||
244 | } | 251 | } |
245 | return; | 252 | return; |
246 | } | 253 | } |
247 | 254 | ||
diff --git a/korganizer/journalentry.h b/korganizer/journalentry.h index f2db785..e98d018 100644 --- a/korganizer/journalentry.h +++ b/korganizer/journalentry.h | |||
@@ -50,8 +50,9 @@ class JournalEntry : public QFrame { | |||
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 | 55 | ||
55 | protected slots: | 56 | protected slots: |
56 | void slotSaveTemplate(); | 57 | void slotSaveTemplate(); |
57 | void slotLoadTemplate(); | 58 | void slotLoadTemplate(); |
@@ -66,8 +67,9 @@ class JournalEntry : public QFrame { | |||
66 | 67 | ||
67 | void writeJournal(); | 68 | void writeJournal(); |
68 | 69 | ||
69 | private: | 70 | private: |
71 | bool visibleMode; | ||
70 | bool showOnlyMode; | 72 | bool showOnlyMode; |
71 | Calendar *mCalendar; | 73 | Calendar *mCalendar; |
72 | Journal *mJournal; | 74 | Journal *mJournal; |
73 | QDate mDate; | 75 | QDate mDate; |
diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp index cb9a2c0..b659d53 100644 --- a/korganizer/kojournalview.cpp +++ b/korganizer/kojournalview.cpp | |||
@@ -120,13 +120,17 @@ void KOJournalView::updateView() | |||
120 | } | 120 | } |
121 | 121 | ||
122 | void KOJournalView::flushView() | 122 | void KOJournalView::flushView() |
123 | { | 123 | { |
124 | static bool ff = false; | ||
125 | if ( ff ) return; | ||
126 | ff = true; | ||
124 | JournalEntry* mEntry = jEntries.first(); | 127 | JournalEntry* mEntry = jEntries.first(); |
125 | while ( mEntry ) { | 128 | while ( mEntry ) { |
126 | mEntry->flushEntry(); | 129 | mEntry->flushEntry(); |
127 | mEntry = jEntries.next(); | 130 | mEntry = jEntries.next(); |
128 | } | 131 | } |
132 | ff = false; | ||
129 | } | 133 | } |
130 | 134 | ||
131 | void KOJournalView::clearList() | 135 | void KOJournalView::clearList() |
132 | { | 136 | { |
@@ -137,8 +141,9 @@ void KOJournalView::clearList() | |||
137 | } | 141 | } |
138 | } | 142 | } |
139 | void KOJournalView::newJournal() | 143 | void KOJournalView::newJournal() |
140 | { | 144 | { |
145 | //qDebug(" KOJournalView::newJournal()"); | ||
141 | flushView(); | 146 | flushView(); |
142 | Journal* mJournal = new Journal; | 147 | Journal* mJournal = new Journal; |
143 | mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); | 148 | mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); |
144 | mCalendar->addJournal(mJournal); | 149 | mCalendar->addJournal(mJournal); |
@@ -146,8 +151,9 @@ void KOJournalView::newJournal() | |||
146 | } | 151 | } |
147 | 152 | ||
148 | void KOJournalView::showOnly ( Journal* j ) | 153 | void KOJournalView::showOnly ( Journal* j ) |
149 | { | 154 | { |
155 | //qDebug("showOnly %x ", j); | ||
150 | flushView(); | 156 | flushView(); |
151 | if ( j == 0 ) { | 157 | if ( j == 0 ) { |
152 | showDates( mDate, QDate() ); | 158 | showDates( mDate, QDate() ); |
153 | return; | 159 | return; |
@@ -159,34 +165,41 @@ void KOJournalView::showOnly ( Journal* j ) | |||
159 | mEntry->setShowOnly(); | 165 | mEntry->setShowOnly(); |
160 | } | 166 | } |
161 | void KOJournalView::showList(QPtrList<Journal> jl) | 167 | void KOJournalView::showList(QPtrList<Journal> jl) |
162 | { | 168 | { |
169 | //qDebug("KOJournalView::showList %d",jl.count() ); | ||
163 | JournalEntry* mEntry = jEntries.first(); | 170 | JournalEntry* mEntry = jEntries.first(); |
164 | JournalEntry* firstEntry = mEntry; | 171 | JournalEntry* firstEntry = mEntry; |
165 | int count = jl.count(); | 172 | int count = jl.count(); |
166 | int iii = 0; | 173 | int iii = 0; |
167 | while ( iii < count ) { | 174 | while ( iii < count ) { |
168 | if ( !mEntry ) { | 175 | if ( !mEntry ) { |
169 | mEntry = getNewEntry(); | 176 | mEntry = getNewEntry(); |
170 | mEntry->show(); | 177 | mEntry->show(); |
178 | mEntry->setVisibleMode( true ); | ||
171 | mEntry->setDate(mDate); | 179 | mEntry->setDate(mDate); |
172 | mEntry->setJournal(jl.at(iii)); | 180 | mEntry->setJournal(jl.at(iii)); |
173 | mEntry = 0; | 181 | mEntry = 0; |
174 | } else { | 182 | } else { |
175 | mEntry->setDate(mDate); | 183 | mEntry->setDate(mDate); |
176 | mEntry->setJournal(jl.at(iii)); | 184 | mEntry->setJournal(jl.at(iii)); |
177 | mEntry->show(); | 185 | mEntry->show(); |
186 | mEntry->setVisibleMode( true ); | ||
178 | mEntry = jEntries.next(); | 187 | mEntry = jEntries.next(); |
179 | } | 188 | } |
180 | ++iii; | 189 | ++iii; |
181 | } | 190 | } |
182 | while ( mEntry ) { | 191 | while ( mEntry ) { |
183 | mEntry->setDate(mDate); | 192 | mEntry->setDate(mDate); |
184 | mEntry->clear(); | 193 | mEntry->clear(); |
185 | if ( mEntry != firstEntry ) | 194 | if ( mEntry != firstEntry ) { |
186 | mEntry->hide(); | 195 | mEntry->hide(); |
187 | else | 196 | mEntry->setVisibleMode( false ); |
197 | } | ||
198 | else { | ||
199 | mEntry->setVisibleMode( true ); | ||
188 | mEntry->show(); | 200 | mEntry->show(); |
201 | } | ||
189 | mEntry = jEntries.next(); | 202 | mEntry = jEntries.next(); |
190 | } | 203 | } |
191 | } | 204 | } |
192 | 205 | ||