-rw-r--r-- | core/pim/todo/mainwindow.cpp | 70 | ||||
-rw-r--r-- | core/pim/todo/mainwindow.h | 6 | ||||
-rw-r--r-- | core/pim/todo/quickeditimpl.cpp | 56 | ||||
-rw-r--r-- | core/pim/todo/quickeditimpl.h | 9 |
4 files changed, 86 insertions, 55 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp index 0ab6230..f0aa455 100644 --- a/core/pim/todo/mainwindow.cpp +++ b/core/pim/todo/mainwindow.cpp @@ -24,12 +24,13 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <unistd.h> +#include <stdio.h> #include <qmenubar.h> #include <qmessagebox.h> #include <qtoolbar.h> #include <qpopupmenu.h> #include <qwidgetstack.h> @@ -40,12 +41,13 @@ #include <qpe/applnk.h> #include <qpe/config.h> #include <qpe/ir.h> #include <qpe/resource.h> #include <qpe/qpemessagebox.h> +#include <qpe/qpetoolbar.h> #include <opie/orecur.h> #include <opie/otodoaccessvcal.h> #include "quickeditimpl.h" #include "todotemplatemanager.h" @@ -82,12 +84,17 @@ MainWindow::MainWindow( QWidget* parent, QTimer::singleShot(0, this, SLOT(populateCategories() ) ); } void MainWindow::initTemplate() { m_curTempEd = new TemplateEditor( this, templateManager() ); } void MainWindow::initActions() { + + // Data menu + m_edit->insertItem(tr("New from template"), m_template, + -1, 0 ); + QAction* a = new QAction( tr("New Task" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); connect(a, SIGNAL( activated() ), this, SLOT( slotNew() ) ); a->addTo(m_tool ); a->addTo(m_edit ); @@ -145,77 +152,75 @@ void MainWindow::initActions() { connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) ); a->addTo( m_edit ); a->addTo( m_tool ); } + // Options menu a = new QAction( tr("Find"), Resource::loadIconSet( "mag" ), QString::null, 0, this, 0 ); - connect(a, SIGNAL( activated() ), - this, SLOT( slotFind() ) ); + connect(a, SIGNAL( activated() ), this, SLOT( slotFind() ) ); a->addTo( m_options ); m_findAction = a; m_options->insertSeparator(); - m_completedAction = new QAction( QString::null, tr("Completed tasks"), + m_completedAction = new QAction( QString::null, tr("Show completed tasks"), 0, this, 0, TRUE ); m_completedAction->addTo( m_options ); m_completedAction->setOn( showCompleted() ); - connect(m_completedAction, SIGNAL( toggled(bool) ), - this, SLOT(slotShowCompleted(bool) ) ); + connect(m_completedAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowCompleted(bool) ) ); - m_showDeadLineAction = new QAction( QString::null, tr("Show Deadline"), + a = new QAction( QString::null, tr("Show only over-due tasks"), + 0, this, 0, TRUE ); + a->addTo( m_options ); + a->setOn( showOverDue() ); + connect(a, SIGNAL(toggled(bool)), this, SLOT(slotShowDue(bool) ) ); + + m_showDeadLineAction = new QAction( QString::null, tr("Show task deadlines"), 0, this, 0, TRUE ); m_showDeadLineAction->addTo( m_options ); m_showDeadLineAction->setOn( showDeadline() ); - connect(m_showDeadLineAction, SIGNAL(toggled(bool) ), - this, SLOT( slotShowDeadLine( bool ) ) ); + connect(m_showDeadLineAction, SIGNAL(toggled(bool) ), this, SLOT( slotShowDeadLine( bool ) ) ); + + m_showQuickTaskAction = new QAction( QString::null, tr("Show quick task bar"), + 0, this, 0, TRUE ); + m_showQuickTaskAction->addTo( m_options ); + m_showQuickTaskAction->setOn( showQuickTask() ); + connect(m_showQuickTaskAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowQuickTask(bool) ) ); m_options->insertSeparator(); m_bar->insertItem( tr("Data") ,m_edit ); m_bar->insertItem( tr("Category"), m_catMenu ); m_bar->insertItem( tr("Options"), m_options ); - /* initialize the view menu */ - a = new QAction( QString::null, tr("Show only over due"), - 0, this, 0, TRUE ); - a->addTo( m_options ); - a->setOn( showOverDue() ); - connect(a, SIGNAL(toggled(bool)), - this, SLOT(slotShowDue(bool) ) ); - - /* templates */ - m_edit->insertItem(tr("New from template"), m_template, - -1, 0 ); + m_curQuick = new QuickEditImpl( this, m_quicktask ); + addToolBar( (QPEToolBar *)m_curQuick->widget(), tr( "QuickEdit" ), QMainWindow::Top, TRUE ); + m_curQuick->signal()->connect( this, SLOT(slotQuickEntered() ) ); } /* m_curCat from Config */ void MainWindow::initConfig() { Config config( "todo" ); config.setGroup( "View" ); m_completed = config.readBoolEntry( "ShowComplete", TRUE ); m_curCat = config.readEntry( "Category", QString::null ); m_deadline = config.readBoolEntry( "ShowDeadLine", TRUE); - m_overdue = config.readBoolEntry("ShowOverDue", TRUE ); + m_overdue = config.readBoolEntry("ShowOverDue", FALSE ); + m_quicktask = config.readBoolEntry("ShowQuickTask", TRUE); } void MainWindow::initUI() { m_mainBox = new QVBox(this, "main box "); - m_curQuick = new QuickEditImpl(this, m_mainBox ); - m_curQuick->signal()->connect( this, SLOT(slotQuickEntered() ) ); - m_quickEdit.append( m_curQuick ); - - m_stack = new QWidgetStack(m_mainBox, "main stack"); setCentralWidget( m_mainBox ); setToolBarsMovable( FALSE ); - m_tool = new QToolBar( this ); + m_tool = new QPEToolBar( this ); m_tool->setHorizontalStretchable( TRUE ); m_bar = new QMenuBar( m_tool ); /** QPopupMenu */ m_edit = new QPopupMenu( this ); @@ -368,13 +373,14 @@ void MainWindow::closeEvent( QCloseEvent* e ) { Config config( "todo" ); config.setGroup( "View" ); config.writeEntry( "ShowComplete", showCompleted() ); config.writeEntry( "Category", currentCategory() ); config.writeEntry( "ShowDeadLine", showDeadline()); config.writeEntry( "ShowOverDue", showOverDue() ); - /* svae templates */ + config.writeEntry( "ShowQuickTask", showQuickTask() ); + /* save templates */ templateManager()->save(); e->accept(); } } void MainWindow::populateTemplates() { m_template->clear(); @@ -512,12 +518,19 @@ void MainWindow::slotShowDeadLine( bool dead) { currentView()->setShowDeadline( dead ); } void MainWindow::slotShowCompleted( bool show) { m_completed = show; currentView()->setShowCompleted( m_completed ); } +void MainWindow::slotShowQuickTask( bool show ) { + m_quicktask = show; + if ( m_quicktask ) + m_curQuick->widget()->show(); + else + m_curQuick->widget()->hide(); +} bool MainWindow::showOverDue()const { return m_overdue; } void MainWindow::setDocument( const QString& fi) { DocLnk doc(fi); if (doc.isValid() ) @@ -588,12 +601,15 @@ void MainWindow::populateCategories() { bool MainWindow::showCompleted()const { return m_completed; } bool MainWindow::showDeadline()const { return m_deadline; } +bool MainWindow::showQuickTask()const { + return m_quicktask; +} QString MainWindow::currentCategory()const { return m_curCat; } int MainWindow::currentCatId() { return m_todoMgr.catId( m_curCat ); } diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h index 87a9133..86b9ac2 100644 --- a/core/pim/todo/mainwindow.h +++ b/core/pim/todo/mainwindow.h @@ -44,12 +44,13 @@ class QPopupMenu; class QMenuBar; class QToolBar; class QAction; class QWidgetStack; class Ir; class QVBox; +class QLineEdit; namespace Todo { typedef TodoView View; class TemplateManager; class Editor; class TodoShow; @@ -79,12 +80,13 @@ namespace Todo { OTodo event(int uid ); bool isSyncing()const; bool showCompleted()const; bool showDeadline()const; bool showOverDue()const; + bool showQuickTask()const; QString currentCategory()const; int currentCatId(); TemplateManager* templateManager(); QuickEditBase* quickEditor(); void updateTodo( const OTodo& ); @@ -128,12 +130,13 @@ private slots: *m_completedAction, *m_showDeadLineAction, *m_deleteAllAction, *m_deleteCompleteAction, *m_duplicateAction, *m_showOverDueAction, + *m_showQuickTaskAction, *m_effectiveAction; QWidgetStack *m_stack; QPopupMenu* m_catMenu, *m_edit, *m_options, *m_template; @@ -146,16 +149,16 @@ private slots: QVBox* m_mainBox; bool m_syncing:1; bool m_deadline:1; bool m_completed:1; bool m_overdue:1; + bool m_quicktask:1; TodoManager m_todoMgr; QString m_curCat; QList<ViewBase> m_views; - QList<QuickEditBase> m_quickEdit; uint m_counter; TemplateManager* m_tempManager; private slots: void slotShow(int); @@ -175,12 +178,13 @@ private slots: void slotFind(); void setCategory( int ); void slotShowDeadLine( bool ); void slotShowCompleted( bool ); + void slotShowQuickTask( bool ); void setDocument( const QString& ); void slotBeam(); void beamDone( Ir* ); diff --git a/core/pim/todo/quickeditimpl.cpp b/core/pim/todo/quickeditimpl.cpp index 2dd5b61..9b54bdc 100644 --- a/core/pim/todo/quickeditimpl.cpp +++ b/core/pim/todo/quickeditimpl.cpp @@ -1,63 +1,69 @@ +#include <qaction.h> #include <qlineedit.h> +#include <qpe/resource.h> + #include <opie/oclickablelabel.h> #include "mainwindow.h" #include "quickeditimpl.h" -QuickEditImpl::QuickEditImpl( Todo::MainWindow* win, QWidget* arent ) - : QHBox(arent), Todo::QuickEdit(win) { - m_lbl = new OClickableLabel(this ); - m_lbl->setMinimumWidth(12); - m_lbl->setText("3"); +QuickEditImpl::QuickEditImpl( QWidget* parent, bool visible ) + : QPEToolBar( (QMainWindow *)parent ), Todo::QuickEdit( (Todo::MainWindow *)parent ) { + setHorizontalStretchable( TRUE ); - m_edit = new QLineEdit(this ); + // TODO - come up with icons and replace text priority values + m_lbl = new OClickableLabel( this ); + m_lbl->setMinimumWidth(15); + m_lbl->setText("3"); + connect(m_lbl, SIGNAL(clicked() ), this, SLOT(slotPrio()) ); - m_enter = new OClickableLabel(this); - m_enter->setText("Enter"); + m_edit = new QLineEdit( this ); + setStretchableWidget( m_edit ); - m_more = new OClickableLabel(this); - m_more->setText("More"); + QAction *a = new QAction( tr( "More" ), Resource::loadPixmap( "todo/more" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( slotMore() ) ); + a->addTo( this ); + a = new QAction( tr( "Enter" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( slotEnter() ) ); + a->addTo( this ); - // connect - connect(m_lbl, SIGNAL(clicked() ), - this, SLOT(slotPrio()) ); - connect(m_enter, SIGNAL(clicked() ), - this, SLOT(slotEnter() ) ); - connect(m_more, SIGNAL(clicked() ), - this, SLOT(slotMore() ) ); + a = new QAction( tr( "Cancel" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( slotCancel() ) ); + a->addTo( this ); + m_visible = visible; + if ( !m_visible ) { + hide(); + } + m_menu = 0l; reinit(); - setMaximumHeight( m_edit->sizeHint().height() ); } QuickEditImpl::~QuickEditImpl() { } OTodo QuickEditImpl::todo()const { return m_todo; } QWidget* QuickEditImpl::widget() { return this; } -QSize QuickEditImpl::sizeHint()const{ - return m_edit->sizeHint(); -} void QuickEditImpl::slotEnter() { OTodo todo; if (!m_edit->text().isEmpty() ) { todo.setUid(1 ); // new uid todo.setPriority( m_lbl->text().toInt() ); todo.setSummary( m_edit->text() ); - if ( mainWindow()->currentCatId() != 0 ) - todo.setCategories( mainWindow()->currentCatId() ); + if ( ((Todo::MainWindow *)parent())->currentCatId() != 0 ) + todo.setCategories( ((Todo::MainWindow *)parent())->currentCatId() ); m_todo = todo; commit(); } m_todo = todo; reinit(); @@ -78,12 +84,16 @@ void QuickEditImpl::slotPrio() { default: m_lbl->setText( "3"); break; } } void QuickEditImpl::slotMore() { + // TODO - implement +} +void QuickEditImpl::slotCancel() { + reinit(); } void QuickEditImpl::reinit() { m_state = 1; m_lbl->setText("3"); m_edit->clear(); } diff --git a/core/pim/todo/quickeditimpl.h b/core/pim/todo/quickeditimpl.h index d0f6c69..c58275e 100644 --- a/core/pim/todo/quickeditimpl.h +++ b/core/pim/todo/quickeditimpl.h @@ -1,34 +1,35 @@ #ifndef OPIE_QUICK_EDIT_IMPL_H #define OPIE_QUICK_EDIT_IMPL_H -#include <qhbox.h> +#include <qpe/qpetoolbar.h> #include "quickedit.h" class QLineEdit; class QLabel; -class QuickEditImpl : public QHBox, public Todo::QuickEdit { +class QuickEditImpl : public QPEToolBar, public Todo::QuickEdit { Q_OBJECT public: - QuickEditImpl( Todo::MainWindow* win , QWidget* parent); + QuickEditImpl( QWidget* parent, bool visible); ~QuickEditImpl(); OTodo todo()const; QWidget* widget(); - QSize sizeHint()const; private slots: void slotEnter(); void slotPrio(); void slotMore(); + void slotCancel(); private: void reinit(); int m_state; QLabel* m_lbl; QLineEdit* m_edit; QLabel* m_enter; QLabel* m_more; QPopupMenu* m_menu; OTodo m_todo; + bool m_visible; }; #endif |