diff options
Diffstat (limited to 'korganizer/koeditorgeneraljournal.cpp')
-rw-r--r-- | korganizer/koeditorgeneraljournal.cpp | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/korganizer/koeditorgeneraljournal.cpp b/korganizer/koeditorgeneraljournal.cpp new file mode 100644 index 000000000..500c389bd --- /dev/null +++ b/korganizer/koeditorgeneraljournal.cpp @@ -0,0 +1,205 @@ +/* + This file is part of KOrganizer. + + Copyright (c) 2004 Reinhold Kainhofer <reinhold@kainhofer.com> + large parts of code taken from KOEditorGeneralJournal.cpp: + Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + 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 "koeditorgeneraljournal.h" +#include "koeditorgeneral.h" + +#include <libkcal/journal.h> + +#include <ktextedit.h> +#include <kdateedit.h> +#include <ktimeedit.h> +//#include <klineedit.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kdebug.h> + +#include <qgroupbox.h> +#include <qdatetime.h> +#include <qcheckbox.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qwhatsthis.h> + + +KOEditorGeneralJournal::KOEditorGeneralJournal( QObject *parent, + const char *name ) + : QObject( parent, name ) +{ +} + +KOEditorGeneralJournal::~KOEditorGeneralJournal() +{ +} + +void KOEditorGeneralJournal::initTitle( QWidget *parent, QBoxLayout *topLayout ) +{ + QHBoxLayout *hbox = new QHBoxLayout( topLayout ); + + QString whatsThis = i18n("Sets the title of this journal."); + QLabel *summaryLabel = new QLabel( i18n("T&itle:"), parent ); + QWhatsThis::add( summaryLabel, whatsThis ); + QFont f = summaryLabel->font(); + f.setBold( true ); + summaryLabel->setFont( f ); + hbox->addWidget( summaryLabel ); + + mSummaryEdit = new FocusLineEdit( parent ); + QWhatsThis::add( mSummaryEdit, whatsThis ); + summaryLabel->setBuddy( mSummaryEdit ); + hbox->addWidget( mSummaryEdit ); +} + + +void KOEditorGeneralJournal::initDate( QWidget *parent, QBoxLayout *topLayout ) +{ +// QBoxLayout *dateLayout = new QVBoxLayout(topLayout); + QBoxLayout *dateLayout = new QHBoxLayout( topLayout ); + + mDateLabel = new QLabel( i18n("&Date:"), parent); + dateLayout->addWidget( mDateLabel ); + + mDateEdit = new KDateEdit( parent ); + dateLayout->addWidget( mDateEdit ); + mDateLabel->setBuddy( mDateEdit ); + + dateLayout->addStretch(); + + mTimeCheckBox = new QCheckBox( i18n("&Time: "), parent ); + dateLayout->addWidget( mTimeCheckBox ); + + mTimeEdit = new KTimeEdit( parent ); + dateLayout->addWidget( mTimeEdit ); + connect( mTimeCheckBox, SIGNAL(toggled(bool)), + mTimeEdit, SLOT(setEnabled(bool)) ); + + dateLayout->addStretch(); + setTime( QTime( -1, -1, -1 ) ); +} + +void KOEditorGeneralJournal::setDate( const QDate &date ) +{ +// kdDebug(5850) << "KOEditorGeneralJournal::setDate(): Date: " << date.toString() << endl; + + mDateEdit->setDate( date ); +} + +void KOEditorGeneralJournal::setTime( const QTime &time ) +{ +kdDebug()<<"KOEditorGeneralJournal::setTime, time="<<time.toString()<<endl; + bool validTime = time.isValid(); + mTimeCheckBox->setChecked( validTime ); + mTimeEdit->setEnabled( validTime ); + if ( validTime ) { +kdDebug()<<"KOEditorGeneralJournal::setTime, time is valid"<<endl; + mTimeEdit->setTime( time ); + } +} + +void KOEditorGeneralJournal::initDescription( QWidget *parent, QBoxLayout *topLayout ) +{ + mDescriptionEdit = new KTextEdit( parent ); + mDescriptionEdit->append(""); + mDescriptionEdit->setReadOnly( false ); + mDescriptionEdit->setOverwriteMode( false ); + mDescriptionEdit->setWordWrap( KTextEdit::WidgetWidth ); + mDescriptionEdit->setTabChangesFocus( true ); + topLayout->addWidget( mDescriptionEdit ); +} + +void KOEditorGeneralJournal::setDefaults( const QDate &date ) +{ + setDate( date ); +} + +void KOEditorGeneralJournal::readJournal( Journal *journal, bool tmpl ) +{ + setSummary( journal->summary() ); + if ( !tmpl ) { + setDate( journal->dtStart().date() ); + if ( !journal->doesFloat() ) { +kdDebug()<<"KOEditorGeneralJournal::readJournal, does not float, time="<<(journal->dtStart().time().toString())<<endl; + setTime( journal->dtStart().time() ); + } else { +kdDebug()<<"KOEditorGeneralJournal::readJournal, does float"<<endl; + setTime( QTime( -1, -1, -1 ) ); + } + } + setDescription( journal->description() ); +} + +void KOEditorGeneralJournal::writeJournal( Journal *journal ) +{ +// kdDebug(5850) << "KOEditorGeneralJournal::writeIncidence()" << endl; + journal->setSummary( mSummaryEdit->text() ); + journal->setDescription( mDescriptionEdit->text() ); + + QDateTime tmpDT( mDateEdit->date(), QTime(0,0,0) ); + bool hasTime = mTimeCheckBox->isChecked(); + journal->setFloats( !hasTime ); + if ( hasTime ) { + tmpDT.setTime( mTimeEdit->getTime() ); + } + journal->setDtStart(tmpDT); + +// kdDebug(5850) << "KOEditorGeneralJournal::writeJournal() done" << endl; +} + + +void KOEditorGeneralJournal::setDescription( const QString &text ) +{ + mDescriptionEdit->setText( text ); +} + +void KOEditorGeneralJournal::setSummary( const QString &text ) +{ + mSummaryEdit->setText( text ); +} + +void KOEditorGeneralJournal::finishSetup() +{ + QWidget::setTabOrder( mSummaryEdit, mDateEdit ); + QWidget::setTabOrder( mDateEdit, mTimeCheckBox ); + QWidget::setTabOrder( mTimeCheckBox, mTimeEdit ); + QWidget::setTabOrder( mTimeEdit, mDescriptionEdit ); + mSummaryEdit->setFocus(); +} + +bool KOEditorGeneralJournal::validateInput() +{ +// kdDebug(5850) << "KOEditorGeneralJournal::validateInput()" << endl; + + if (!mDateEdit->date().isValid()) { + KMessageBox::sorry( 0, + i18n("Please specify a valid date, for example '%1'.") + .arg( KGlobal::locale()->formatDate( QDate::currentDate() ) ) ); + return false; + } + + return true; +} + +#include "koeditorgeneraljournal.moc" |