summaryrefslogtreecommitdiff
authordrw <drw>2002-12-20 22:45:16 (UTC)
committer drw <drw>2002-12-20 22:45:16 (UTC)
commit3e67f4998a4957420d7f890268dc5f816e142468 (patch) (side-by-side diff)
tree428a6876c2e42efedb7334c440edc51acad6dacf
parent406e02d26c0925598cbadaead11e3ee7b2c7c51c (diff)
downloadopie-3e67f4998a4957420d7f890268dc5f816e142468.zip
opie-3e67f4998a4957420d7f890268dc5f816e142468.tar.gz
opie-3e67f4998a4957420d7f890268dc5f816e142468.tar.bz2
First part of GUI clean-up. Added icons to 'quick task' entry toolbar and menu choice to show/hide the bar.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp70
-rw-r--r--core/pim/todo/mainwindow.h6
-rw-r--r--core/pim/todo/quickeditimpl.cpp56
-rw-r--r--core/pim/todo/quickeditimpl.h9
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
@@ -14,48 +14,50 @@
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
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>
#include <qaction.h>
#include <qtimer.h>
#include <qvbox.h>
#include <qlineedit.h>
#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"
#include "templateeditor.h"
#include "tableview.h"
#include "textviewshow.h"
#include "todoeditor.h"
#include "mainwindow.h"
using namespace Todo;
@@ -72,32 +74,37 @@ MainWindow::MainWindow( QWidget* parent,
initUI();
initConfig();
initViews();
initActions();
initEditor();
initShow();
initTemplate();
populateTemplates();
raiseCurrentView();
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 );
a = new QAction( tr("Edit Task"), Resource::loadIconSet( "edit" ),
QString::null, 0, this, 0 );
connect(a, SIGNAL(activated() ),
this, SLOT( slotEdit() ) );
a->addTo( m_tool );
a->addTo( m_edit );
m_editAction = a;
a = new QAction( QString::null, tr("View Task"), 0, this, 0 );
@@ -135,97 +142,95 @@ void MainWindow::initActions() {
connect(a, SIGNAL( activated() ),
this, SLOT( slotDuplicate() ) );
a->addTo(m_edit );
m_duplicateAction = a;
m_edit->insertSeparator();
if ( Ir::supported() ) {
a = new QAction( tr( "Beam" ), Resource::loadPixmap( "beam" ),
QString::null, 0, this, 0 );
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 );
m_options = new QPopupMenu( this );
m_catMenu = new QPopupMenu( this );
m_template = new QPopupMenu( this );
m_catMenu->setCheckable( TRUE );
m_template->setCheckable( TRUE );
connect(m_catMenu, SIGNAL(activated(int) ),
this, SLOT(setCategory(int) ) );
connect(m_template, SIGNAL(activated(int) ),
@@ -358,33 +363,34 @@ void MainWindow::closeEvent( QCloseEvent* e ) {
QMessageBox::No|QMessageBox::Default)
!= QMessageBox::No ) {
e->accept();
quit = true;
}else
e->ignore();
}
if (quit ) {
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();
QStringList list = templateManager()->templates();
QStringList::Iterator it;
for ( it = list.begin(); it != list.end(); ++it ) {
m_template->insertItem( (*it) );
}
}
/*
* slotNewFromTemplate
* We use the edit widget to do
* the config but we setUid(-1)
@@ -502,32 +508,39 @@ void MainWindow::setCategory( int c) {
m_curCat = m_todoMgr.categories()[c-2];
setCaption( tr("Todo") + " - " + m_curCat );
}
m_catMenu->setItemChecked( c, true );
currentView()->setShowCategory( m_curCat );
raiseCurrentView();
}
void MainWindow::slotShowDeadLine( bool dead) {
m_deadline = 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() )
receiveFile(doc.file() );
else
receiveFile(fi );
}
static const char *beamfile = "/tmp/opie-todo.vcs";
void MainWindow::slotBeam() {
beam( currentView()->current() );
}
void MainWindow::beamDone( Ir* ir) {
@@ -578,32 +591,35 @@ void MainWindow::populateCategories() {
categories.append( tr( "Unfiled" ) );
for ( QStringList::Iterator it = categories.begin();
it != categories.end(); ++it ) {
m_catMenu->insertItem( *it, id );
if ( *it == currentCategory() )
rememberId = id;
++id;
}
setCategory( rememberId );
}
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 );
}
ViewBase* MainWindow::currentView() {
return m_curView;
}
void MainWindow::raiseCurrentView() {
m_stack->raiseWidget( m_curView->widget() );
}
void MainWindow::slotShowDue(bool ov) {
m_overdue = ov;
currentView()->showOverDue( ov );
raiseCurrentView();
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
@@ -34,32 +34,33 @@
#include <opie/otodoaccess.h>
#include <opie/otodo.h>
#include <opie/opimmainwindow.h>
#include "smalltodo.h"
#include "todoview.h"
#include "quickedit.h"
#include "todomanager.h"
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;
class TemplateEditor;
struct QuickEditBase;
class MainWindow : public OPimMainWindow {
Q_OBJECT
friend class TodoView; // avoid QObject here....
public:
MainWindow( QWidget *parent = 0,
const char* name = 0 );
~MainWindow();
@@ -69,32 +70,33 @@ namespace Todo {
QPopupMenu* options();
QPopupMenu* edit();
QToolBar* toolbar();
void updateList();
OTodoAccess::List list()const;
OTodoAccess::List sorted( bool asc, int sortOrder );
OTodoAccess::List sorted( bool asc, int sortOrder, int addFilter );
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& );
void populateTemplates();
Editor* currentEditor();
void setReadAhead(uint count );
private slots:
void slotQuickEntered();
void populateCategories();
void slotReload();
void slotFlush();
protected:
@@ -118,79 +120,81 @@ private slots:
TodoShow* currentShow();
TodoShow* m_curShow;
TemplateEditor* currentTemplateEditor();
TemplateEditor* m_curTempEd;
QMenuBar* m_bar;
QToolBar* m_tool;
QAction* m_editAction,
*m_deleteAction,
*m_findAction,
*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;
/* box with two rows
* top will be the quick edit
* this will bite my ass once
* we want to have all parts
* exchangeable
*/
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);
void slotEdit(int);
void slotUpdate3( QWidget* );
void slotComplete( int uid );
void slotComplete( const OTodo& ev );
void slotNewFromTemplate(int id );
void slotNew();
void slotDuplicate();
void slotDelete();
void slotDeleteAll();
void slotDeleteCompleted();
void slotEdit();
void slotFind();
void setCategory( int );
void slotShowDeadLine( bool );
void slotShowCompleted( bool );
+ void slotShowQuickTask( bool );
void setDocument( const QString& );
void slotBeam();
void beamDone( Ir* );
void slotShowDetails();
void slotShowDue( bool );
/* reimplementation from opimmainwindow */
protected slots:
void flush();
void reload();
int create();
bool remove( int uid );
void beam(int uid, int transport = IrDa );
void show( int uid );
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,89 +1,99 @@
+#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();
}
void QuickEditImpl::slotPrio() {
m_state++;
if (m_state > 2 )
m_state = 0;
switch(m_state ) {
case 0:
m_lbl->setText( "1" );
break;
case 2:
m_lbl->setText( "5" );
break;
case 1:
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