-rw-r--r-- | korganizer/journalentry.cpp | 53 | ||||
-rw-r--r-- | korganizer/journalentry.h | 7 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 8 | ||||
-rw-r--r-- | korganizer/kojournalview.cpp | 10 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 10 | ||||
-rw-r--r-- | korganizer/koprefs.h | 1 |
6 files changed, 63 insertions, 26 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp index 4751d40..56221dc 100644 --- a/korganizer/journalentry.cpp +++ b/korganizer/journalentry.cpp @@ -74,19 +74,19 @@ JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : QPixmap iconp; vb->setMargin ( KDialog::marginHint()-1 ); QPushButton * toggleJournal = new QPushButton( vb ); iconp = SmallIcon("1updownarrow"); toggleJournal->setPixmap (iconp ) ; new QLabel(" "+i18n("Title: "),vb); mTitle = new KOLocationBox(TRUE, vb, 30); mTitle->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding ,QSizePolicy::Fixed ,FALSE) ); - mTitleLabel = new QLabel(i18n("Title"),vb); - mTitleLabel->setMargin(0); - mTitleLabel->setAlignment(AlignCenter); + mCalendarBox = new QComboBox(vb); + //mTitleLabel->setMargin(0); + //mTitleLabel->setAlignment(AlignCenter); QPushButton * loadTemplate = new QPushButton( vb ); QPushButton * saveTemplate = new QPushButton( vb ); if ( QApplication::desktop()->width() < 321 ) iconp = SmallIcon("fileexport16"); else iconp = SmallIcon("fileexport"); saveTemplate->setPixmap (iconp ) ; int size = saveTemplate->sizeHint().height(); @@ -94,16 +94,17 @@ JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : iconp = SmallIcon("fileimport16"); else iconp = SmallIcon("fileimport"); loadTemplate->setPixmap (iconp ) ; loadTemplate->setFixedSize( size, size ); saveTemplate->setFixedSize( size, size ); toggleJournal->setFixedSize( size , size ); mTitle->setMaximumHeight( size+4); + mCalendarBox->setMaximumHeight( size+4); mEditor = new KTextEdit(this); #ifndef DESKTOP_VERSION QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); #endif mEditor->setWordWrap( KTextEdit::WidgetWidth ); QBoxLayout *topLayout = new QVBoxLayout(this); topLayout->addWidget(vb); topLayout->addWidget(mEditor); @@ -171,19 +172,44 @@ void JournalEntry::slotLoadTemplate() mEditor-> insertAt ( text, line, col, true ); //mEditor->setIgnoreMark( true ); } void JournalEntry::setDate(const QDate &date) { showOnlyMode = false; writeJournal(); mDate = date; - int id = mCalendar->defaultCalendar(); - QString calname = KOPrefs::instance()->getCalendar( id )->mName; - mTitleLabel->setText( " (" + calname +")"); + fillCalendar( mCalendar->defaultCalendar() ); +} +void JournalEntry::fillCalendar( int setToID ) +{ + mCalendarBox->clear(); + KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); + int std = 0; + int count = 0; + while ( kkf ) { + if ( (!kkf->mErrorOnLoad &&! kkf->isReadOnly) || setToID == kkf->mCalNumber ) { + if ( setToID ) { + if ( kkf->mCalNumber == setToID ) + std = count; + } else { + if ( kkf->isStandard ) { + std = count; + } + } + ++count; + mCalendarBox->insertItem( kkf->mName ); + } + kkf = KOPrefs::instance()->mCalendars.next(); + } + mCalendarBox->setCurrentItem( std ); + if ( KOPrefs::instance()->mCalendars.count() == 1 ) + mCalendarBox->hide(); + else + mCalendarBox->show(); } void JournalEntry::toggleShowJournal() { if (!mEditor->text().isEmpty() || !mTitle->currentText ().isEmpty()) flushEntry(); if ( showOnlyMode ) emit showJournalOnly( 0 ); @@ -201,33 +227,31 @@ void JournalEntry::setVisibleOn() void JournalEntry::setShowOnly() { showOnlyMode = true; if ( mTitle->currentText().isEmpty() ) mTitle->setFocus(); else mEditor->setFocus(); } -void JournalEntry::setJournal(Journal *journal) +void JournalEntry::setJournal(Journal *journal, bool saveJournal ) { - writeJournal(); + if ( saveJournal ) + writeJournal(); mTitle->load( KOLocationBox::SUMMARYJOURNAL ); mJournal = journal; if ( journal->isReadOnly() ) mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")"); else mTitle->lineEdit ()->setText(mJournal->summary()); mEditor->setText(mJournal->description()); mTitle->setEnabled (!journal->isReadOnly() ); mEditor->setReadOnly ( journal->isReadOnly() ); - int id = mJournal->calID(); - - QString calname = KOPrefs::instance()->getCalendar( id )->mName; - mTitleLabel->setText( " (" + calname +")"); + fillCalendar( mJournal->calID() ); } Journal *JournalEntry::journal() const { return mJournal; } @@ -255,16 +279,17 @@ bool JournalEntry::eventFilter( QObject *o, QEvent *e ) } return QFrame::eventFilter( o, e ); // standard event processing } void JournalEntry::writeJournal() { if ( !visibleMode ) return; + if ( !mTitle->isEnabled() ) return; if (mEditor->text().isEmpty() && mTitle->currentText().isEmpty()) { if ( mJournal ) { Journal* j = mJournal; mJournal = 0; bool conf = KOPrefs::instance()->mConfirm; KOPrefs::instance()->mConfirm = false; emit deleteJournal(j); KOPrefs::instance()->mConfirm = conf; @@ -281,16 +306,20 @@ void JournalEntry::writeJournal() } if ( mJournal->description() != mEditor->text() ) { mJournal->setDescription(mEditor->text()); } if ( mJournal->summary() != mTitle->currentText() ) { mJournal->setSummary(mTitle->currentText()); mTitle->save(KOLocationBox::SUMMARYJOURNAL); } + int id = KOPrefs::instance()->getCalendarID( mCalendarBox->currentText() ); + if ( mJournal->calID() != id ) { + mJournal->setCalID( id ); + } } void JournalEntry::flushEntry() { writeJournal(); } void JournalEntry::keyPressEvent ( QKeyEvent * e ) { diff --git a/korganizer/journalentry.h b/korganizer/journalentry.h index fb19fb1..ed04b7c 100644 --- a/korganizer/journalentry.h +++ b/korganizer/journalentry.h @@ -26,39 +26,40 @@ // Widget showing one Journal entry #include <qframe.h> #include <libkcal/calendar.h> class QLabel; class KTextEdit; +class QComboBox; class KLineEdit; class KOLocationBox; using namespace KCal; class JournalEntry : public QFrame { Q_OBJECT public: JournalEntry(Calendar *,QWidget *parent); virtual ~JournalEntry(); - void setJournal(Journal *); + void setJournal(Journal *, bool saveJournal = true ); Journal *journal() const; void setDate(const QDate &); void clear(); void flushEntry(); void setShowOnly(); QSize sizeHint() const; void setVisibleMode( bool b ) { visibleMode = b;} - + void fillCalendar( int id = 0 ); protected slots: void slotSaveTemplate(); void slotLoadTemplate(); void toggleShowJournal(); void setVisibleOn(); signals: void deleteJournal(Journal *); void newJournal(); @@ -71,15 +72,15 @@ class JournalEntry : public QFrame { private: bool visibleMode; bool showOnlyMode; Calendar *mCalendar; Journal *mJournal; QDate mDate; void keyPressEvent ( QKeyEvent * ) ; - QLabel *mTitleLabel; + QComboBox *mCalendarBox; KOLocationBox * mTitle; KTextEdit *mEditor; int heiHint; }; #endif diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp index fd50b05..aa55d82 100644 --- a/korganizer/koeditorgeneral.cpp +++ b/korganizer/koeditorgeneral.cpp @@ -478,23 +478,17 @@ void KOEditorGeneral::fillCalCombo( int setToID ) if ( KOPrefs::instance()->mCalendars.count() == 1 ) mCalendarBox->hide(); else mCalendarBox->show(); } int KOEditorGeneral::getCalendarID() { - KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); - while ( kkf ) { - if ( mCalendarBox->currentText() == kkf->mName) - return kkf->mCalNumber; - kkf = KOPrefs::instance()->mCalendars.next(); - } - return 1; + return KOPrefs::instance()->getCalendarID( mCalendarBox->currentText() ); } void KOEditorGeneral::readIncidence(Incidence *event) { fillCalCombo( event->calID() ); mAlarmMessage = event->summary(); if ( ! event->location().isEmpty() ) mAlarmMessage += " ("+event->location()+")"; diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp index 9b0e748..0523954 100644 --- a/korganizer/kojournalview.cpp +++ b/korganizer/kojournalview.cpp @@ -150,46 +150,48 @@ void KOJournalView::newJournal() Journal* mJournal = new Journal; mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); mCalendar->addJournal(mJournal); showDates( mDate, QDate() ); } void KOJournalView::showOnly ( Journal* j ) { - qDebug("showOnly %x ", j); + //qDebug("showOnly %x ", j); flushView(); if ( j == 0 ) { showDates( mDate, QDate() ); return; } QPtrList<Journal> jl; jl.append ( j ); showList( jl ); JournalEntry* mEntry = jEntries.first(); mEntry->setShowOnly(); } void KOJournalView::showList(QPtrList<Journal> jl) { - qDebug("KOJournalView::showList %d",jl.count() ); + //qDebug("KOJournalView::showList %d",jl.count() ); JournalEntry* mEntry = jEntries.first(); JournalEntry* firstEntry = mEntry; int count = jl.count(); int iii = 0; while ( iii < count ) { if ( !mEntry ) { mEntry = getNewEntry(); + mEntry->setVisibleMode( true ); mEntry->setDate(mDate); - mEntry->setJournal(jl.at(iii)); + mEntry->setJournal(jl.at(iii), false); mEntry->setVisibleMode( true ); mEntry->show(); mEntry = 0; } else { + mEntry->setVisibleMode( true ); mEntry->setDate(mDate); - mEntry->setJournal(jl.at(iii)); + mEntry->setJournal(jl.at(iii), false); mEntry->setVisibleMode( true ); mEntry->show(); mEntry = jEntries.next(); } ++iii; } while ( mEntry ) { mEntry->setDate(mDate); diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index bb3d720..a886735 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp @@ -496,16 +496,26 @@ void KOPrefs::deleteCalendar( int num ) qDebug("KOPrefs::deleteCalendar %d ", num ); mCalendars.remove( kkf ); delete kkf; return; } kkf = mCalendars.next(); } } +int KOPrefs::getCalendarID( const QString & name ) +{ + KopiCalendarFile * kkf = mCalendars.first(); + while ( kkf ) { + if ( name == kkf->mName) + return kkf->mCalNumber; + kkf = mCalendars.next(); + } + return 1; +} QString KOPrefs::calName( int calNum) const { return (mDefCalColors[calNum-1])->mName; } QColor KOPrefs::defaultColor( int calNum ) const { if ( calNum == 1 ) return mEventColor; return (mDefCalColors[calNum-1])->mDefaultColor; diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 53d193b..7ec5327 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h @@ -95,16 +95,17 @@ class KOPrefs : public KPimPrefs void usrWriteConfig(); void setCategoryDefaults(); void setAllDefaults(); KopiCalendarFile * getNewCalendar(); KopiCalendarFile * getCalendar( int ); void deleteCalendar( int ); QColor defaultColor( int ) const; QString calName( int ) const; + int getCalendarID( const QString & name ); protected: void setTimeZoneIdDefault(); /** Fill empty mail fields with default values. */ void fillMailDefaults(); private: /** Constructor disabled for public. Use instance() to create a KOPrefs |