summaryrefslogtreecommitdiff
authorleseb <leseb>2002-07-10 17:45:15 (UTC)
committer leseb <leseb>2002-07-10 17:45:15 (UTC)
commit6456ddb2be2a874e858ee25d8463e446b7af58d5 (patch) (side-by-side diff)
treec2354188cea6176ed1959dfd304f701428da1ce7
parent46110a78dd0646d972f238e295ee016f3e78fb85 (diff)
downloadopie-6456ddb2be2a874e858ee25d8463e446b7af58d5.zip
opie-6456ddb2be2a874e858ee25d8463e446b7af58d5.tar.gz
opie-6456ddb2be2a874e858ee25d8463e446b7af58d5.tar.bz2
Fix "view" menu item
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp6
-rw-r--r--core/pim/todo/mainwindow.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index d419166..27e76d9 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -113,96 +113,97 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f ) :
// qDebug("after load: t=%d", t.elapsed() );
Config config( "todo" );
config.setGroup( "View" );
bool complete = config.readBoolEntry( "ShowComplete", true );
table->setShowCompleted( complete );
bool showdeadline = config.readBoolEntry("ShowDeadLine", true);
table->setShowDeadline (showdeadline);
QString category = config.readEntry( "Category", QString::null );
table->setShowCategory( category );
QPEToolBar *bar = new QPEToolBar( this );
bar->setHorizontalStretchable( TRUE );
QPEMenuBar *mb = new QPEMenuBar( bar );
catMenu = new QPopupMenu( this );
QPopupMenu *edit = new QPopupMenu( this );
QPopupMenu *options = new QPopupMenu(this );
contextMenu = new QPopupMenu( this );
bar = new QPEToolBar( this );
QAction *a = new QAction( tr( "New Task" ), Resource::loadPixmap( "new" ),
QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ),
this, SLOT( slotNew() ) );
a->addTo( bar );
a->addTo( edit );
a = new QAction( tr( "Edit Task" ), Resource::loadIconSet( "edit" ),
QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ),
this, SLOT( slotEdit() ) );
a->addTo( bar );
a->addTo( edit );
a->addTo( contextMenu );
a->setEnabled( FALSE );
editAction = a;
a = new QAction( QString::null, tr("View Task"), 0, this, 0 );
a->addTo( edit );
a->addTo( contextMenu );
connect( a, SIGNAL( activated() ),
this, SLOT(slotShowDetails() ) );
+ viewAction = a;
edit->insertSeparator();
a = new QAction( tr( "Delete..." ), Resource::loadIconSet( "trash" ),
QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ),
this, SLOT( slotDelete() ) );
a->addTo( bar );
a->addTo( edit );
a->addTo( contextMenu );
a->setEnabled( FALSE );
deleteAction = a;
// delete All in category is missing....
// set All Done
// set All Done in category
a = new QAction( QString::null, tr( "Delete all..."), 0, this, 0 );
connect(a, SIGNAL( activated() ),
this, SLOT( slotDeleteAll() ) );
a->addTo(edit );
a->setEnabled( FALSE );
deleteAllAction = a;
edit->insertSeparator();
a = new QAction( QString::null, tr("Duplicate" ), 0, this, 0 );
connect(a, SIGNAL( activated() ),
this, SLOT( slotDuplicate() ) );
a->addTo(edit );
a->setEnabled( FALSE );
duplicateAction = a;
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( edit );
a->addTo( bar );
}
a = new QAction( tr( "Find" ), Resource::loadIconSet( "mag" ),
QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ),
this, SLOT( slotFind() ) );
@@ -391,101 +392,103 @@ void TodoWindow::slotEdit()
todo = e.todoEntry();
table->replaceCurrentEntry( todo );
table->setPaintingEnabled( true );
}
populateCategories();
mStack->raiseWidget( 1 );
}
void TodoWindow::slotDuplicate()
{
if(syncing) {
QMessageBox::warning(this, tr("Todo"),
tr("Can not edit data, currently syncing"));
return;
}
ToDoEvent ev = table->currentEntry();
ToDoEvent ev2 = ToDoEvent( ev ); // what about the uid
int uid;
{ // uid
Qtopia::UidGen *uidgen = new Qtopia::UidGen();
uid = uidgen->generate();
delete uidgen;
}
ev2.setUid( uid );
table->setPaintingEnabled( false );
table->addEntry( ev2 );
table->setPaintingEnabled( true );
mStack->raiseWidget( 1 );
}
void TodoWindow::slotShowPopup( const QPoint &p )
{
contextMenu->popup( p );
}
void TodoWindow::showCompleted( bool s )
{
if ( !table->isUpdatesEnabled() )
return;
table->setPaintingEnabled( false );
table->setShowCompleted( s );
table->setPaintingEnabled( true );
mStack->raiseWidget( 1 );
}
void TodoWindow::currentEntryChanged( int r, int )
{
if ( r != -1 && table->rowHeight( r ) > 0 ) {
editAction->setEnabled( TRUE );
+ viewAction->setEnabled( TRUE );
deleteAction->setEnabled( TRUE );
duplicateAction->setEnabled( TRUE );
deleteAllAction->setEnabled( TRUE );
} else {
editAction->setEnabled( FALSE );
+ viewAction->setEnabled( FALSE );
deleteAction->setEnabled( FALSE );
duplicateAction->setEnabled( FALSE );
deleteAllAction->setEnabled( FALSE );
}
}
void TodoWindow::setCategory( int c )
{
if ( c <= 0 ) return;
if ( !table->isUpdatesEnabled() )
return;
table->setPaintingEnabled( false );
for ( unsigned int i = 1; i < catMenu->count(); i++ )
catMenu->setItemChecked( i, c == (int)i );
if ( c == 1 ) {
table->setShowCategory( QString::null );
setCaption( tr("Todo") + " - " + tr( "All Categories" ) );
} else if ( c == (int)catMenu->count() - 1 ) {
table->setShowCategory( tr( "Unfiled" ) );
setCaption( tr("Todo") + " - " + tr( "Unfiled" ) );
} else {
QString cat = table->categories()[c - 2];
table->setShowCategory( cat );
setCaption( tr("Todo") + " - " + cat );
}
table->setPaintingEnabled( true );
mStack->raiseWidget( 1 );
}
void TodoWindow::populateCategories()
{
catMenu->clear();
int id, rememberId;
id = 1;
rememberId = 0;
catMenu->insertItem( tr( "All Categories" ), id++ );
catMenu->insertSeparator();
QStringList categories = table->categories();
categories.append( tr( "Unfiled" ) );
for ( QStringList::Iterator it = categories.begin();
it != categories.end(); ++it ) {
catMenu->insertItem( *it, id );
if ( *it == table->showCategory() )
rememberId = id;
++id;
}
if ( table->showCategory().isEmpty() )
@@ -562,67 +565,70 @@ void TodoWindow::slotFind()
table,
SLOT(slotDoFind(const QString&, bool, bool, int)) );
QObject::connect( table, SIGNAL(signalNotFound()), &dlg,
SLOT(slotNotFound()) );
QObject::connect( table, SIGNAL(signalWrapAround()), &dlg,
SLOT(slotWrapAround()) );
dlg.exec();
if ( table->numSelections() )
table->clearSelection();
table->clearFindRow();
}
void TodoWindow::setDocument( const QString &filename )
{
if ( filename.find(".vcs") != int(filename.length()) - 4 ) return;
ToDoDB todoDB(filename, new ToDoVCalResource() );
QValueList<ToDoEvent> tl = todoDB.rawToDos();
for( QValueList<ToDoEvent>::Iterator it = tl.begin(); it != tl.end(); ++it ) {
table->addEntry( *it );
}
}
static const char * beamfile = "/tmp/obex/todo.vcs";
void TodoWindow::slotBeam()
{
unlink( beamfile ); // delete if exists
ToDoEvent c = table->currentEntry();
mkdir("/tmp/obex/", 0755);
ToDoDB todoDB( beamfile, new ToDoVCalResource() );
todoDB.addEvent( c );
todoDB.save();
Ir *ir = new Ir( this );
connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
QString description = c.summary();
ir->send( beamfile, description, "text/x-vCalendar" );
}
void TodoWindow::beamDone( Ir *ir )
{
delete ir;
unlink( beamfile );
}
void TodoWindow::showDeadline( bool s )
{
+ if ( !table->isUpdatesEnabled() )
+ return;
table->setPaintingEnabled( false );
table->setShowDeadline( s );
table->setPaintingEnabled( true );
+ mStack->raiseWidget( 1 );
}
void TodoWindow::slotShowDetails()
{
ToDoEvent event = table->currentEntry();
slotShowDetails( event );
}
void TodoWindow::slotShowDetails( const ToDoEvent &event )
{
if( mView == 0l ){
mView = new TodoLabel(mStack);
mStack->addWidget( mView, 2 );
}
mView->init( event );
mView->sync();
mStack->raiseWidget( 2);
}
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index f62ec6e..7e8445c 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -34,63 +34,64 @@ class TodoLabel;
class ToDoDB;
class QWidgetStack;
class ToDoEvent;
class TodoWindow : public QMainWindow
{
Q_OBJECT
public:
TodoWindow( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
~TodoWindow();
public slots:
void flush();
void reload();
protected slots:
void slotNew();
void slotDelete();
void slotEdit();
void slotShowPopup( const QPoint & );
void showCompleted( bool );
void showDeadline( bool );
void slotShowDetails(const ToDoEvent &event );
void slotShowDetails();
void currentEntryChanged( int r, int c );
void setCategory( int );
void slotFind();
void setDocument( const QString & );
void slotBeam();
void beamDone( Ir * );
void slotDeleteAll();
void slotDuplicate();
protected:
void closeEvent( QCloseEvent *e );
private:
void populateCategories();
//inline void switchToTable(); // move back to the normal view
private:
TodoTable *table;
TodoLabel *mView;
QAction *editAction,
+ *viewAction,
*deleteAction,
*findAction,
*completedAction,
*showdeadlineAction,
*deleteAllAction,
*duplicateAction;
QPopupMenu *contextMenu, *catMenu;
QWidgetStack *mStack;
bool syncing;
};
#endif