-rw-r--r-- | korganizer/journalentry.cpp | 36 | ||||
-rw-r--r-- | korganizer/journalentry.h | 3 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 4 | ||||
-rw-r--r-- | korganizer/kojournalview.cpp | 36 | ||||
-rw-r--r-- | korganizer/kolocationbox.cpp | 8 | ||||
-rw-r--r-- | korganizer/kolocationbox.h | 2 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 2 | ||||
-rw-r--r-- | korganizer/koprefs.h | 1 |
8 files changed, 56 insertions, 36 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp index 3c38f34..4751d40 100644 --- a/korganizer/journalentry.cpp +++ b/korganizer/journalentry.cpp @@ -30,96 +30,102 @@ #include <qfile.h> #include <qdir.h> #include <qtextstream.h> #include <qtextcodec.h> #include <qpixmap.h> #include <qpushbutton.h> #include <qapplication.h> #include <kdebug.h> #include <kglobal.h> #include <klocale.h> #include <ktextedit.h> #include <kfiledialog.h> #include <kmessagebox.h> #include "koprefs.h" #include <klineedit.h> +#include <kdialog.h> +#include "kolocationbox.h" #include <libkcal/journal.h> #include <libkcal/calendarresources.h> #include <libkcal/resourcecalendar.h> #include <kresources/resourceselectdialog.h> #include "journalentry.h" //#include "journalentry.moc" #ifndef DESKTOP_VERSION #include <qpe/qpeapplication.h> #endif JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : QFrame(parent) { int fac = 5; heiHint = QApplication::desktop()->height(); if ( heiHint > 800 ) fac += 2; heiHint = heiHint / fac; showOnlyMode = false; mCalendar = calendar; mJournal = 0; visibleMode = true; QHBox * vb = new QHBox ( this ); 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 KLineEdit ( 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); 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(); if ( QApplication::desktop()->width() < 321 ) 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); 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); mEditor->installEventFilter(this); connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) ); + mTitle->load( KOLocationBox::SUMMARYJOURNAL ); + mTitle->lineEdit ()->setText(""); } JournalEntry::~JournalEntry() { //qDebug("JournalEntry::~JournalEntry() "); } QSize JournalEntry::sizeHint() const { return QSize ( 240, heiHint ); } void JournalEntry::slotSaveTemplate() { QString fileName =locateLocal( "templates", "journals" ); QDir t_dir; if ( !t_dir.exists(fileName) ) t_dir.mkdir ( fileName ); @@ -164,126 +170,130 @@ void JournalEntry::slotLoadTemplate() mEditor->getCursorPosition (& line, & col ); 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 +")"); } void JournalEntry::toggleShowJournal() { - if (!mEditor->text().isEmpty() || !mTitle->text().isEmpty()) + if (!mEditor->text().isEmpty() || !mTitle->currentText ().isEmpty()) flushEntry(); if ( showOnlyMode ) emit showJournalOnly( 0 ); else { // we have to protect mJournal from deleting if mJournal has empty text visibleMode = false; // set to true via :setShowOnly() emit showJournalOnly( mJournal ); //QTimer::singleShot( 0, this, SLOT( setVisibleOn() ) ); } } void JournalEntry::setVisibleOn() { visibleMode = true; } void JournalEntry::setShowOnly() { showOnlyMode = true; - if ( mTitle->text().isEmpty() ) + if ( mTitle->currentText().isEmpty() ) mTitle->setFocus(); else mEditor->setFocus(); } void JournalEntry::setJournal(Journal *journal) { writeJournal(); + mTitle->load( KOLocationBox::SUMMARYJOURNAL ); mJournal = journal; if ( journal->isReadOnly() ) - mTitle->setText(mJournal->summary()+" ("+i18n("readonly")+")"); + mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")"); else - mTitle->setText(mJournal->summary()); + mTitle->lineEdit ()->setText(mJournal->summary()); mEditor->setText(mJournal->description()); - mTitle->setReadOnly (journal->isReadOnly() ); + mTitle->setEnabled (!journal->isReadOnly() ); mEditor->setReadOnly ( journal->isReadOnly() ); int id = mJournal->calID(); QString calname = KOPrefs::instance()->getCalendar( id )->mName; mTitleLabel->setText( " (" + calname +")"); - } Journal *JournalEntry::journal() const { return mJournal; } void JournalEntry::clear() { mJournal = 0; mEditor->setText(""); - mTitle->setText(""); + mTitle->load( KOLocationBox::SUMMARYJOURNAL ); + mTitle->lineEdit ()->setText(""); } bool JournalEntry::eventFilter( QObject *o, QEvent *e ) { // kdDebug() << "JournalEntry::event received " << e->type() << endl; if ( e->type() == QEvent::FocusOut ) { writeJournal(); } if ( e->type() == QEvent::KeyPress ) { QKeyEvent * k = (QKeyEvent *) e; if ( k->state() == Qt::ControlButton ) { k->ignore(); //return true; } } return QFrame::eventFilter( o, e ); // standard event processing } void JournalEntry::writeJournal() { if ( !visibleMode ) return; - if (mEditor->text().isEmpty() && mTitle->text().isEmpty()) { + 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; } return; } // kdDebug() << "JournalEntry::writeJournal()..." << endl; if (!mJournal) { mJournal = new Journal; mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); mCalendar->addJournal(mJournal); } - if ( mJournal->description() != mEditor->text() ) + if ( mJournal->description() != mEditor->text() ) { mJournal->setDescription(mEditor->text()); - if ( mJournal->summary() != mTitle->text() ) - mJournal->setSummary(mTitle->text()); + } + if ( mJournal->summary() != mTitle->currentText() ) { + mJournal->setSummary(mTitle->currentText()); + mTitle->save(KOLocationBox::SUMMARYJOURNAL); + } } void JournalEntry::flushEntry() { writeJournal(); } void JournalEntry::keyPressEvent ( QKeyEvent * e ) { e->ignore(); } diff --git a/korganizer/journalentry.h b/korganizer/journalentry.h index cc9b5ef..fb19fb1 100644 --- a/korganizer/journalentry.h +++ b/korganizer/journalentry.h @@ -19,32 +19,33 @@ As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #ifndef JOURNALENTRY_H #define JOURNALENTRY_H // // Widget showing one Journal entry #include <qframe.h> #include <libkcal/calendar.h> class QLabel; class KTextEdit; class KLineEdit; +class KOLocationBox; using namespace KCal; class JournalEntry : public QFrame { Q_OBJECT public: JournalEntry(Calendar *,QWidget *parent); virtual ~JournalEntry(); void setJournal(Journal *); Journal *journal() const; void setDate(const QDate &); void clear(); @@ -63,22 +64,22 @@ class JournalEntry : public QFrame { void newJournal(); void showJournalOnly( Journal * ); protected: bool eventFilter( QObject *o, QEvent *e ); void writeJournal(); private: bool visibleMode; bool showOnlyMode; Calendar *mCalendar; Journal *mJournal; QDate mDate; void keyPressEvent ( QKeyEvent * ) ; QLabel *mTitleLabel; - KLineEdit * mTitle; + KOLocationBox * mTitle; KTextEdit *mEditor; int heiHint; }; #endif diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp index 407a5d5..fd50b05 100644 --- a/korganizer/koeditorgeneral.cpp +++ b/korganizer/koeditorgeneral.cpp @@ -70,55 +70,55 @@ KOEditorGeneral::~KOEditorGeneral() } void KOEditorGeneral::initHeader(QWidget *parent,QBoxLayout *topLayout) { QGridLayout *headerLayout = new QGridLayout(topLayout); #if 0 mOwnerLabel = new QLabel(i18n("Owner:"),parent); headerLayout->addMultiCellWidget(mOwnerLabel,0,0,0,1); #endif // 1 on pda // 11 on desktop headerLayout->setSpacing( (KDialog::spacingHint()-3)*2+1 ); QLabel *summaryLabel = new QLabel(i18n("Summary:"),parent); headerLayout->addWidget(summaryLabel,0,0); - mSummaryEdit = new KOLocationBox(TRUE,parent, 10); + mSummaryEdit = new KOLocationBox(TRUE,parent, 50); mSummaryEdit->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); //mSummaryEdit->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5 ,(QSizePolicy::SizeType)3 ,FALSE) ); //qDebug("h %d %d ", summaryLabel->sizeHint().height(),mSummaryEdit->sizeHint().height() ); int hei = (summaryLabel->sizeHint().height() + mSummaryEdit->sizeHint().height())/2; if ( QApplication::desktop()->width() > 320 ) mSummaryEdit->setMaximumHeight( hei +6 ); //qDebug("%d %d %d %d %d %d ", QSizePolicy::Fixed , QSizePolicy::Minimum , QSizePolicy:: Maximum , QSizePolicy:: Preferred , QSizePolicy:: MinimumExpanding , QSizePolicy::Expanding ); // SizeType { Fixed = 0, Minimum = MayGrow, Maximum = MayShrink, Preferred = MayGrow|MayShrink, MinimumExpanding = Minimum|ExpMask, Expanding = MinimumExpanding|MayShrink } // mSummaryEdit = new QLineEdit(parent); if ( QApplication::desktop()->height() < 320 ) headerLayout->addWidget(mSummaryEdit,0,1); else headerLayout->addMultiCellWidget(mSummaryEdit,0,0,1,2); connect ( mSummaryEdit->lineEdit(), SIGNAL ( returnPressed() ), this, SIGNAL (allAccepted () ) ); QLabel *locationLabel = new QLabel(i18n("Location:"),parent); if ( QApplication::desktop()->height() < 320 ) headerLayout->addWidget(locationLabel,0,2); else headerLayout->addWidget(locationLabel,1,0); - mLocationEdit = new KOLocationBox(TRUE,parent,10); + mLocationEdit = new KOLocationBox(TRUE,parent,30); mLocationEdit->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); if ( QApplication::desktop()->width() > 320 && QApplication::desktop()->height() > 240 ) mLocationEdit->setMaximumHeight( hei + 6); // mLocationEdit = new QLineEdit(parent); connect ( mLocationEdit->lineEdit(), SIGNAL ( returnPressed() ), this, SIGNAL (allAccepted () ) ); mCalendarBox = new QComboBox ( parent ); mCalendarBox->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); if ( QApplication::desktop()->height() < 320 ) { headerLayout->addWidget(mLocationEdit,0,3); headerLayout->addWidget(mCalendarBox,0,4); headerLayout->setColStretch( 1, 10); headerLayout->setColStretch( 3, 10); mCalendarBox->setMaximumWidth( 64 ); } diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp index 6fa9b23..9b0e748 100644 --- a/korganizer/kojournalview.cpp +++ b/korganizer/kojournalview.cpp @@ -37,55 +37,55 @@ #include <kdebug.h> #include "koprefs.h" #include <kglobal.h> #include <libkcal/calendar.h> #include "journalentry.h" #include "kojournalview.h" using namespace KOrg; KOJournalView::KOJournalView(Calendar *calendar, QWidget *parent, const char *name) : KOrg::BaseView(calendar, parent, name) { mCalendar = calendar; + QHBox * vb = new QHBox ( this ); + QPushButton * newJournal = new QPushButton( vb ); + QPixmap icon; + if ( QApplication::desktop()->width() < 321 ) + icon = SmallIcon("ko16old"); + else + icon = SmallIcon("ko24old"); + newJournal->setPixmap (icon ) ; + int size = newJournal->sizeHint().height(); + newJournal->setFixedSize( size, size ); + mDateLabel = new QLabel ( vb ); + mDateLabel->setMargin(1); + mDateLabel->setAlignment(AlignCenter); QScrollView * sv = new QScrollView( this ); - QHBoxLayout * hbl = new QHBoxLayout( this ); + QVBoxLayout * hbl = new QVBoxLayout( this ); + hbl->addWidget( vb ); hbl->addWidget( sv ); parWid = new QWidget( sv->viewport() ); sv->addChild(parWid); sv->setResizePolicy( QScrollView:: AutoOneFit ); - mTopLayout = new QVBoxLayout(parWid); - QHBox * vb = new QHBox ( parWid ); - QPushButton * newJournal = new QPushButton( vb ); - QPixmap icon; - if ( QApplication::desktop()->width() < 321 ) - icon = SmallIcon("ko16old"); - else - icon = SmallIcon("ko24old"); - newJournal->setPixmap (icon ) ; - int size = newJournal->sizeHint().height(); - newJournal->setFixedSize( size, size ); - mDateLabel = new QLabel ( vb ); - mTopLayout->addWidget( vb ); - mDateLabel->setMargin(1); - mDateLabel->setAlignment(AlignCenter); - connect( newJournal, SIGNAL( clicked() ), this , SLOT( newJournal() ) ); - getNewEntry(); + mTopLayout = new QVBoxLayout(parWid); + connect( newJournal, SIGNAL( clicked() ), this , SLOT( newJournal() ) ); + getNewEntry(); } KOJournalView::~KOJournalView() { } int KOJournalView::currentDateCount() { return 0; } JournalEntry* KOJournalView::getNewEntry() { JournalEntry* Entry = new JournalEntry(mCalendar,parWid); jEntries.append( Entry ); mTopLayout->addWidget(Entry); Entry->setFont ( KOPrefs::instance()->mJornalViewFont ); diff --git a/korganizer/kolocationbox.cpp b/korganizer/kolocationbox.cpp index 35a8123..9d5aafc 100644 --- a/korganizer/kolocationbox.cpp +++ b/korganizer/kolocationbox.cpp @@ -21,76 +21,82 @@ As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include "kolocationbox.h" #include <qstring.h> #include <qlineedit.h> #include <qapplication.h> KOLocationBox::KOLocationBox( bool rw , QWidget *parent , int _maxItems) : QComboBox( rw , parent ) { maxItems = _maxItems; - maxItems = 50; // sorry - hack from me to set maxitems globally to 30 + //maxItems = 50; // sorry - hack from me to set maxitems globally to 30 setInsertionPolicy(AtTop); setDuplicatesEnabled( FALSE ); setMaxCount( maxItems ); setAutoCompletion( TRUE ); } KOLocationBox::~KOLocationBox() { } void KOLocationBox::load(int what) { clear(); // qDebug("load %d ",what ); switch(what) { case LOCATION: insertStringList( KOPrefs::instance()->mLocationDefaults, 0 ); // insertStringList( KOPrefs::instance()->mLocationUserDefaults, 0 ); break; // don't disable case SUMMARYEVENT: insertStringList( KOPrefs::instance()->mEventSummaryUser, 0 ); break; // don't disable case SUMMARYTODO: insertStringList( KOPrefs::instance()->mTodoSummaryUser, 0 ); break; // don't disable + case SUMMARYJOURNAL: + insertStringList( KOPrefs::instance()->mJournalSummaryUser, 0 ); + break; // don't disable } } void KOLocationBox::save(int what) { strlist.clear(); for( int l = 0; l < count() ; l++ ) { strlist << text( l ); } // strlist.sort(); QString currentLine = lineEdit()->text(); if ( !strlist.contains( currentLine ) ) strlist.prepend( currentLine ); // qDebug("save %d ", what); switch(what) { case LOCATION: KOPrefs::instance()->mLocationDefaults = strlist; // KOPrefs::instance()->mLocationUserDefaults = strlist; break; // don't disable case SUMMARYEVENT: KOPrefs::instance()->mEventSummaryUser = strlist; break; // don't disable case SUMMARYTODO: KOPrefs::instance()->mTodoSummaryUser = strlist; break; // don't disable + case SUMMARYJOURNAL: + KOPrefs::instance()->mJournalSummaryUser = strlist; + break; // don't disable } } void KOLocationBox::clearItems(int what) { clear(); save(what); } diff --git a/korganizer/kolocationbox.h b/korganizer/kolocationbox.h index b604d33..6a42de6 100644 --- a/korganizer/kolocationbox.h +++ b/korganizer/kolocationbox.h @@ -23,33 +23,33 @@ with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #ifndef KOLOCATIONBOX_H #define KOLOCATIONBOX_H #include <qcombobox.h> #include "koprefs.h" class KOLocationBox : public QComboBox { public: KOLocationBox( bool rw , QWidget *parent , int _maxItems ); virtual ~KOLocationBox(); - enum {LOCATION, SUMMARYEVENT, SUMMARYTODO}; + enum {LOCATION, SUMMARYEVENT, SUMMARYTODO,SUMMARYJOURNAL}; public slots: void load(int); void save(int); void clearItems(int); // clear listbox and config rc items protected: // void focusOutEvent( QFocusEvent * ); // void timerEvent( QTimerEvent * ); private: int maxItems; // maximal listbox items QStringList strlist; // temporary stringlist }; #endif diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 6337ca5..bb3d720 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp @@ -118,32 +118,33 @@ KOPrefs::KOPrefs() : addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false ); addItemInt("Whats Next Days",&mWhatsNextDays,3); addItemInt("Whats Next Prios",&mWhatsNextPrios,1); addItemBool("ShowTodoInAgenda",&mShowTodoInAgenda,true); addItemBool("ShowCompletedTodoInAgenda",&mShowCompletedTodoInAgenda,true); addItemBool("ShowTimeInAgenda",&mShowTimeInAgenda,true); addItemBool("HideNonStartedTodos",&mHideNonStartedTodos,false); addItemBool("ShowCompletedTodo",&mShowCompletedTodo,true); addItemInt("AllDay Size",&mAllDaySize,28); QString defAlarm = KGlobal::iconLoader()->iconPath()+"koalarm.wav"; addItemString("DefaultAlarmFile",&mDefaultAlarmFile,defAlarm ); addItemStringList("LocationDefaults",&mLocationDefaults ); addItemStringList("EventSummary User",&mEventSummaryUser); addItemStringList("TodoSummary User",&mTodoSummaryUser); + addItemStringList("JournalSummary User",&mJournalSummaryUser); addItemBool("Enable Group Scheduling",&mEnableGroupScheduling,false); addItemBool("Enable Project View",&mEnableProjectView,false); addItemBool("Auto Save",&mAutoSave,false); addItemInt("Auto Save Interval",&mAutoSaveInterval,3); addItemBool("Confirm Deletes",&mConfirm,true); addItemString("Archive File",&mArchiveFile); addItemString("Html Export File",&mHtmlExportFile, QDir::homeDirPath() + "/" + i18n("Default export file", "calendar.html")); addItemBool("Html With Save",&mHtmlWithSave,false); KPrefs::setCurrentGroup("Personal Settings"); addItemInt("Mail Client",&mMailClient,MailClientKMail); addItemBool("Use Control Center Email",&mEmailControlCenter,false); addItemBool("Bcc",&mBcc,false); @@ -350,32 +351,33 @@ void KOPrefs::usrSetDefaults() void KOPrefs::fillMailDefaults() { if (mName.isEmpty()) mName = i18n("Anonymous"); if (mEmail.isEmpty()) mEmail = i18n("nobody@nowhere"); } void KOPrefs::setTimeZoneIdDefault() { ; } void KOPrefs::setAllDefaults() { setCategoryDefaults(); mEventSummaryUser = getDefaultList() ; mTodoSummaryUser = getDefaultList() ; + mJournalSummaryUser = getDefaultList() ; mLocationDefaults = getLocationDefaultList(); } void KOPrefs::setCategoryDefaults() { mCustomCategories.clear(); mCustomCategories = getDefaultList(); QStringList::Iterator it; for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { setCategoryColor(*it,mDefaultCategoryColor); } } QStringList KOPrefs::getLocationDefaultList() { QStringList retval ; diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 5cc9bfa..53d193b 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h @@ -302,32 +302,33 @@ class KOPrefs : public KPimPrefs bool mWNViewShowLocation; bool mTodoViewShowsPercentage; bool mTodoViewUsesCatColors; bool mMonthViewUsesBigFont; bool mTodoViewUsesSmallFont; bool mTodoViewUsesForegroundColor; bool mMonthViewUsesForegroundColor; bool mHightlightDateTimeEdit; bool mShortDateInViewer; bool mShowDateNavigator; QStringList mLocationDefaults; QStringList mEventSummaryUser; QStringList mTodoSummaryUser; + QStringList mJournalSummaryUser; bool mUseInternalAlarmNotification; int mAlarmPlayBeeps; int mAlarmSuspendTime; int mAlarmSuspendCount; int mAlarmBeepInterval; int mOldLanguage; int mOldLoadedLanguage; QString mActiveSyncPort; QString mActiveSyncIP; // settings for eventviewer bool mEVshowDetails; bool mEVshowCreated; |