summaryrefslogtreecommitdiff
path: root/core/pim/todo/taskeditoroverviewimpl.cpp
Side-by-side diff
Diffstat (limited to 'core/pim/todo/taskeditoroverviewimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/taskeditoroverviewimpl.cpp169
1 files changed, 169 insertions, 0 deletions
diff --git a/core/pim/todo/taskeditoroverviewimpl.cpp b/core/pim/todo/taskeditoroverviewimpl.cpp
new file mode 100644
index 0000000..b9b2ae6
--- a/dev/null
+++ b/core/pim/todo/taskeditoroverviewimpl.cpp
@@ -0,0 +1,169 @@
+#include <qapplication.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qpopupmenu.h>
+
+#include <qpe/datebookmonth.h>
+#include <qpe/categoryselect.h>
+#include <qpe/timestring.h>
+
+#include "taskeditoroverviewimpl.h"
+
+/*
+ * we need to hack
+ */
+
+TaskEditorOverViewImpl::TaskEditorOverViewImpl( QWidget* parent, const char* name )
+ : TaskEditorOverView( parent, name ) {
+ init();
+}
+TaskEditorOverViewImpl::~TaskEditorOverViewImpl() {
+}
+void TaskEditorOverViewImpl::load( const OTodo& todo) {
+ QDate date = QDate::currentDate();
+ QString str = TimeString::longDateString( date );
+
+ emit recurranceEnabled( FALSE );
+ ckbStart->setChecked( FALSE );
+ btnStart->setText( str );
+
+ ckbComp->setChecked( FALSE );
+ btnComp->setText( str );
+
+ cmbProgress->setCurrentItem( todo.progress()/20 );
+ cmbSum->insertItem( todo.summary(), 0 );
+ cmbSum->setCurrentItem( 0 );
+
+ ckbDue->setChecked( todo.hasDueDate() );
+ btnDue->setText( TimeString::longDateString( todo.dueDate() ) );
+
+ cmbPrio->setCurrentItem( todo.priority() -1 );
+ ckbCompleted->setChecked( todo.isCompleted() );
+
+ comboCategory->setCategories( todo.categories(), "Todo List", tr("Todo List") );
+
+}
+void TaskEditorOverViewImpl::save( OTodo& to) {
+ qWarning("save it now");
+ if ( ckbDue->isChecked() ) {
+ to.setDueDate( m_due );
+ to.setHasDueDate( true );
+ }else
+ to.setHasDueDate( false );
+ if ( comboCategory->currentCategory() != -1 ) {
+ QArray<int> arr = comboCategory->currentCategories();
+ to.setCategories( arr );
+ }
+ to.setPriority( cmbPrio->currentItem() + 1 );
+ to.setCompleted( ckbCompleted->isChecked() );
+ to.setSummary( cmbSum->currentText() );
+ to.setProgress( cmbProgress->currentItem() * 20 );
+}
+/*
+ * here we will init the basic view
+ * one Popup for each Date Button
+ * and some other signal and slots connection
+ */
+void TaskEditorOverViewImpl::init() {
+ QDate curDate = QDate::currentDate();
+ m_start = m_comp = m_due = curDate;
+ QString str = TimeString::longDateString( curDate );
+
+ /* Start Date Picker */
+ m_startPop = new QPopupMenu(this);
+ m_startBook = new DateBookMonth(m_startPop, 0, TRUE );
+ m_startPop->insertItem( m_startBook );
+ connect( m_startBook, SIGNAL( dateClicked(int, int, int) ),
+ this, SLOT(slotStartChanged(int, int, int) ) );
+
+
+ /* Due Date Picker */
+ m_duePop = new QPopupMenu(this);
+ m_dueBook = new DateBookMonth(m_duePop, 0, TRUE );
+ m_duePop->insertItem( m_dueBook );
+ connect( m_dueBook, SIGNAL( dateClicked(int, int, int) ),
+ this, SLOT(slotDueChanged(int, int, int) ) );
+
+ m_compPop = new QPopupMenu(this);
+ m_compBook = new DateBookMonth(m_compPop, 0, TRUE );
+ m_compPop->insertItem(m_compBook );
+ connect( m_compBook, SIGNAL(dateClicked(int, int, int) ),
+ this, SLOT(slotCompletedChanged(int, int, int) ) );
+
+
+ /*
+ * another part of the hack
+ * it's deprecated in Qt2 but
+ * still available in my qt-copy of Qt3.1beta2
+ */
+ btnDue->setIsMenuButton( TRUE );
+ btnStart->setIsMenuButton( TRUE );
+ btnComp->setIsMenuButton( TRUE );
+
+ /* now connect the hack */
+ connect(btnDue, SIGNAL(clicked() ),
+ this, SLOT(hackySlotHack2() ) );
+ connect(btnStart, SIGNAL(clicked() ),
+ this, SLOT(hackySlotHack1() ) );
+ connect(btnComp, SIGNAL(clicked() ),
+ this, SLOT(hackySlotHack3() ) );
+
+ /* recurrance */
+ connect(CheckBox7, SIGNAL(clicked() ),
+ this, SLOT(slotRecClicked() ) );
+}
+
+void TaskEditorOverViewImpl::slotStartChecked() {
+ qWarning("slotStartChecked");
+ btnStart->setEnabled( ckbStart->isChecked() );
+}
+void TaskEditorOverViewImpl::slotStartChanged(int y, int m, int d) {
+ m_start.setYMD( y, m, d );
+ btnStart->setText( TimeString::longDateString( m_start ) );
+}
+void TaskEditorOverViewImpl::slotDueChecked() {
+ btnDue->setEnabled( ckbDue->isChecked() );
+ qWarning("slotDueChecked");
+}
+void TaskEditorOverViewImpl::slotDueChanged(int y, int m, int d ) {
+ m_due.setYMD(y, m, d );
+ btnDue->setText( TimeString::longDateString( m_due ) );
+}
+void TaskEditorOverViewImpl::slotCompletedChecked() {
+ btnComp->setEnabled( ckbComp->isChecked() );
+ qWarning("slotCompletedChecked");
+}
+void TaskEditorOverViewImpl::slotCompletedChanged(int y, int m, int d) {
+ m_comp.setYMD( y, m, d );
+ btnComp->setText( TimeString::longDateString( m_comp ) );
+}
+/*
+ * called by a button pressed event...
+ * three slots to avoid ugly name() tests
+ * to sender()
+ */
+void TaskEditorOverViewImpl::hackySlotHack1() {
+ btnStart->setDown( FALSE );
+ popup( btnStart, m_startPop );
+}
+void TaskEditorOverViewImpl::hackySlotHack2() {
+ btnDue->setDown( FALSE );
+ popup( btnDue, m_duePop );
+}
+void TaskEditorOverViewImpl::hackySlotHack3() {
+ btnComp->setDown( FALSE );
+ popup( btnComp, m_compPop );
+}
+void TaskEditorOverViewImpl::slotRecClicked() {
+ qWarning("enabled recurrance");
+ emit recurranceEnabled( CheckBox7->isChecked() );
+}
+/*
+ * GPL from TT QPushButton code
+ */
+void TaskEditorOverViewImpl::popup( QPushButton* pu, QPopupMenu* pop) {
+ if ( pu->mapToGlobal( QPoint(0, pu->rect().bottom() ) ).y() + pop->sizeHint().height() <= qApp->desktop()->height() )
+ pop->exec( pu->mapToGlobal( pu->rect().bottomLeft() ) );
+ else
+ pop->exec( pu->mapToGlobal( pu->rect().topLeft() - QPoint(0, pu->sizeHint().height() ) ) );
+}