-rw-r--r-- | korganizer/journalentry.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp index 7f6f221..5269af7 100644 --- a/korganizer/journalentry.cpp +++ b/korganizer/journalentry.cpp @@ -112,48 +112,52 @@ JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : widwid = size/2+1; toggleJournal->setFixedSize( widwid , size ); mTitle->setFixedHeight( size+4); mCalendarBox->setFixedHeight( size+4); mEditor = new KTextEdit(this); #ifndef DESKTOP_VERSION QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); #endif mMaxWidDiff = 3*size - 2*frameWidth() - textLabel->sizeHint().width(); mDeskWid = QApplication::desktop()->width(); int maxwid = mDeskWid - mMaxWidDiff; if ( QApplication::desktop()->width() < 640 ) { mTitle->setMaximumWidth( maxwid/2 +20 ); mCalendarBox->setMaximumWidth( maxwid/2 -20); } else { mTitle->setMaximumWidth( (maxwid/4)*3); mCalendarBox->setMaximumWidth( maxwid/2 ); } //mCalendarBox->setMaximumWidth( maxwid/2 -20 ); mEditor->setWordWrap( KTextEdit::WidgetWidth ); QBoxLayout *topLayout = new QVBoxLayout(this); topLayout->addWidget(vb); topLayout->addWidget(mEditor); mEditor->installEventFilter(this); + installEventFilter(this); + mTitle->installEventFilter(this); + setFocusPolicy (QWidget::NoFocus); + 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() "); } void JournalEntry::resizeEvent(QResizeEvent* e ) { #ifndef DESKTOP_VERSION if ( mDeskWid != QApplication::desktop()->width() ) { mDeskWid == QApplication::desktop()->width(); int maxwid = mDeskWid - mMaxWidDiff; if ( QApplication::desktop()->width() < 640 ) { mTitle->setMaximumWidth( maxwid/2 +20 ); mCalendarBox->setMaximumWidth( maxwid/2 -20); } else { mTitle->setMaximumWidth( (maxwid/4)*3); @@ -290,54 +294,62 @@ void JournalEntry::setJournal(Journal *journal, bool saveJournal ) mEditor->setText(mJournal->description()); mTitle->setEnabled (!journal->isReadOnly() ); mEditor->setReadOnly ( journal->isReadOnly() ); mCalendarBox->setEnabled (!journal->isReadOnly() ); fillCalendar( mJournal->calID() ); } Journal *JournalEntry::journal() const { return mJournal; } void JournalEntry::clear() { mJournal = 0; mEditor->setText(""); mTitle->load( KOLocationBox::SUMMARYJOURNAL ); mTitle->lineEdit ()->setText(""); } bool JournalEntry::eventFilter( QObject *o, QEvent *e ) { // kdDebug() << "JournalEntry::event received " << e->type() << endl; - + if ( isVisible() ) { + mEditor->setFocusPolicy (QWidget::StrongFocus); + mTitle->setFocusPolicy (QWidget::StrongFocus); + } else { + mEditor->setFocusPolicy (QWidget::NoFocus); + mTitle->setFocusPolicy (QWidget::NoFocus); + } if ( e->type() == QEvent::FocusOut ) { writeJournal(); } if ( e->type() == QEvent::KeyPress ) { - QKeyEvent * k = (QKeyEvent *) e; + QKeyEvent * k = (QKeyEvent *) e; + if ( !isVisible() ) + return true; if ( k->state() == Qt::ControlButton ) { k->ignore(); //return true; } } 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; } return; } |