summaryrefslogtreecommitdiff
authorzecke <zecke>2003-05-12 13:21:59 (UTC)
committer zecke <zecke>2003-05-12 13:21:59 (UTC)
commit9a4c9544a59f8395f2ec5e7c99028570f8bd8bd1 (patch) (side-by-side diff)
tree8af13b984750f743b7f9f06bbf04b531b1a10ff2
parenta4c8b8912c9e87a2fd76103193e6b4f91c2a2c5d (diff)
downloadopie-9a4c9544a59f8395f2ec5e7c99028570f8bd8bd1.zip
opie-9a4c9544a59f8395f2ec5e7c99028570f8bd8bd1.tar.gz
opie-9a4c9544a59f8395f2ec5e7c99028570f8bd8bd1.tar.bz2
Hospital Hacking Session
make more translatable fix up GUI for Opie1.0 in regards what is implemnted implement setting and removing of Alarms!!!! Show Alarms once they got fired...
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp133
-rw-r--r--core/pim/todo/mainwindow.h5
-rw-r--r--core/pim/todo/otaskeditor.cpp13
-rw-r--r--core/pim/todo/quickeditimpl.cpp16
-rw-r--r--core/pim/todo/taskeditoralarms.cpp190
-rw-r--r--core/pim/todo/taskeditoralarms.h24
-rw-r--r--core/pim/todo/taskeditorstatus.cpp11
-rw-r--r--core/pim/todo/templatedialog.cpp10
-rw-r--r--core/pim/todo/templatedialogimpl.cpp10
-rw-r--r--core/pim/todo/templateeditor.cpp5
-rw-r--r--core/pim/todo/todomanager.cpp1
11 files changed, 370 insertions, 48 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index c5cedc6..5119ae0 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -11,63 +11,68 @@
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . 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 <qmenubar.h>
#include <qmessagebox.h>
#include <qtoolbar.h>
#include <qpopupmenu.h>
+#include <qpushbutton.h>
#include <qwidgetstack.h>
#include <qaction.h>
#include <qtimer.h>
#include <qvbox.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qwhatsthis.h>
#include <qpe/applnk.h>
#include <qpe/config.h>
#include <qpe/ir.h>
#include <qpe/resource.h>
#include <qpe/qpemessagebox.h>
+#include <qpe/alarmserver.h>
+#include <qpe/timestring.h>
+#include <qpe/qpeapplication.h>
#include <opie/orecur.h>
+#include <opie/opimnotifymanager.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;
MainWindow::MainWindow( QWidget* parent,
const char* name )
: OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp )
{
m_syncing = false;
m_counter = 0;
m_tempManager = new TemplateManager();
m_tempManager->load();
initUI();
@@ -280,63 +285,70 @@ QPopupMenu* MainWindow::contextMenu( int , bool recur ) {
*/
if ( recur ) {
; // FIXME
}
return menu;
}
QPopupMenu* MainWindow::options() {
qWarning("Options");
return m_options;
}
QPopupMenu* MainWindow::edit() {
return m_edit;
}
QToolBar* MainWindow::toolbar() {
return m_tool;
}
OTodoAccess::List MainWindow::list()const {
return m_todoMgr.list();
}
OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
int cat = 0;
if ( m_curCat != QWidget::tr("All Categories") )
cat = currentCatId();
+ if ( m_curCat == QWidget::tr("Unfiled") )
+ cat = -1;
+
+ qWarning(" Category %d %s", cat, m_curCat.latin1() );
int filter = 1;
if (!m_completed )
filter |= 4;
if (m_overdue)
filter |= 2;
return m_todoMgr.sorted( asc, sortOrder, filter, cat );
}
OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) {
int cat = 0;
if ( m_curCat != QWidget::tr("All Categories") )
cat = currentCatId();
+ if ( m_curCat == QWidget::tr("Unfiled") )
+ cat = -1;
+
return m_todoMgr.sorted(asc, sortOrder, addFilter, cat );
}
OTodo MainWindow::event( int uid ) {
return m_todoMgr.event( uid );
}
bool MainWindow::isSyncing()const {
return m_syncing;
}
TemplateManager* MainWindow::templateManager() {
return m_tempManager;
}
Editor* MainWindow::currentEditor() {
return m_curEdit;
}
TodoShow* MainWindow::currentShow() {
return m_curShow;
}
void MainWindow::slotReload() {
m_todoMgr.reload();
currentView()->updateView( );
raiseCurrentView();
}
void MainWindow::closeEvent( QCloseEvent* e ) {
if (m_stack->visibleWidget() == currentShow()->widget() ) {
@@ -429,48 +441,49 @@ void MainWindow::slotDuplicate() {
QWidget::tr("Can not edit data, currently syncing"));
return;
}
OTodo ev = m_todoMgr.event( currentView()->current() );
/* let's generate a new uid */
ev.setUid(-1);
m_todoMgr.add( ev );
currentView()->addEvent( ev );
raiseCurrentView();
}
void MainWindow::slotDelete() {
if (!currentView()->current() )
return;
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Can not edit data, currently syncing"));
return;
}
QString strName = currentView()->currentRepresentation();
if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), strName ) )
return;
+ handleAlarms( OTodo(), m_todoMgr.event( currentView()->current() ) );
m_todoMgr.remove( currentView()->current() );
currentView()->removeEvent( currentView()->current() );
raiseCurrentView();
}
void MainWindow::slotDeleteAll() {
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Can not edit data, currently syncing"));
return;
}
if ( !QPEMessageBox::confirmDelete( this, QWidget::tr( "Todo" ), QWidget::tr("all tasks?") ) )
return;
m_todoMgr.removeAll();
currentView()->clear();
raiseCurrentView();
}
void MainWindow::slotDeleteCompleted() {
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Can not edit data, currently syncing"));
@@ -620,55 +633,56 @@ int MainWindow::currentCatId() {
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();
}
void MainWindow::slotShow( int uid ) {
qWarning("slotShow");
currentShow()->slotShow( event( uid ) );
m_stack->raiseWidget( currentShow()->widget() );
}
void MainWindow::slotEdit( int uid ) {
if (uid == 1 ) return;
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Can not edit data, currently syncing"));
return;
}
- OTodo todo = m_todoMgr.event( uid );
+ OTodo old_todo = m_todoMgr.event( uid );
- todo = currentEditor()->edit(this, todo );
+ OTodo todo = currentEditor()->edit(this, old_todo );
/* if completed */
if ( currentEditor()->accepted() ) {
qWarning("Replacing now" );
+ handleAlarms( old_todo, todo );
m_todoMgr.update( todo.uid(), todo );
currentView()->replaceEvent( todo );
/* a Category might have changed */
populateCategories();
}
raiseCurrentView();
}
/*
void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) {
m_todoMgr.update( uid, ev );
}
*/
void MainWindow::updateTodo( const OTodo& ev) {
m_todoMgr.update( ev.uid() , ev );
}
/* The view changed it's configuration
* update the view menu
*/
void MainWindow::slotUpdate3( QWidget* ) {
}
void MainWindow::updateList() {
m_todoMgr.updateList();
@@ -745,79 +759,194 @@ void MainWindow::slotComplete( const OTodo& todo ) {
currentView()->updateView();
raiseCurrentView();
}
void MainWindow::flush() {
slotFlush();
}
void MainWindow::reload() {
slotReload();
}
int MainWindow::create() {
int uid = 0;
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Can not edit data, currently syncing"));
return uid;
}
OTodo todo = currentEditor()->newTodo( currentCatId(),
this );
if ( currentEditor()->accepted() ) {
//todo.assignUid();
uid = todo.uid();
+ handleAlarms( OTodo(), todo );
m_todoMgr.add( todo );
currentView()->addEvent( todo );
// I'm afraid we must call this every time now, otherwise
// spend expensive time comparing all these strings...
// but only call if we changed something -zecke
populateCategories();
}
raiseCurrentView( );
return uid;
}
/* delete it silently... */
bool MainWindow::remove( int uid ) {
if (m_syncing) return false;
+ /* argh need to get the whole OEvent... to disable alarms -zecke */
+ handleAlarms( OTodo(), m_todoMgr.event( uid ) );
+
return m_todoMgr.remove( uid );
}
void MainWindow::beam( int uid) {
::unlink( beamfile );
OTodo todo = event( uid );
OTodoAccessVCal* cal = new OTodoAccessVCal(QString::fromLatin1(beamfile) );
OTodoAccess acc( cal );
acc.load();
acc.add( todo );
acc.save();
Ir* ir = new Ir(this );
connect(ir, SIGNAL(done(Ir*) ),
this, SLOT(beamDone(Ir*) ) );
ir->send(beamfile, todo.summary(), "text/x-vCalendar" );
}
void MainWindow::show( int uid ) {
slotShow( uid );
}
void MainWindow::edit( int uid ) {
slotEdit( uid );
}
void MainWindow::add( const OPimRecord& rec) {
if ( rec.rtti() != OTodo::rtti() ) return;
const OTodo& todo = static_cast<const OTodo&>(rec);
m_todoMgr.add(todo );
currentView()->addEvent( todo );
// I'm afraid we must call this every time now, otherwise
// spend expensive time comparing all these strings...
// but only call if we changed something -zecke
populateCategories();
}
void MainWindow::slotReturnFromView() {
raiseCurrentView();
}
+
+namespace {
+ OPimNotifyManager::Alarms findNonMatching( const OPimNotifyManager::Alarms& oldAls,
+ const OPimNotifyManager::Alarms& newAls ) {
+ OPimNotifyManager::Alarms nonMatching;
+ OPimNotifyManager::Alarms::ConstIterator oldIt = oldAls.begin();
+ OPimNotifyManager::Alarms::ConstIterator newIt;
+ for ( ; oldIt != oldAls.end(); ++oldIt ) {
+ bool found = false;
+ QDateTime oldDt = (*oldIt).dateTime();
+ for (newIt= newAls.begin(); newIt != newAls.end(); ++newIt ) {
+ if ( oldDt == (*newIt).dateTime() ) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ nonMatching.append( (*oldIt) );
+ }
+ return nonMatching;
+ }
+ void addAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
+ OPimNotifyManager::Alarms::ConstIterator it;
+ for ( it = als.begin(); it != als.end(); ++it ) {
+ qWarning("Adding alarm for %s", (*it).dateTime().toString().latin1() );
+ AlarmServer::addAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
+ }
+
+ }
+ void removeAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
+ OPimNotifyManager::Alarms::ConstIterator it;
+ for ( it = als.begin(); it != als.end(); ++it ) {
+ qWarning("Removinf alarm for %s", (*it).dateTime().toString().latin1() );
+ AlarmServer::deleteAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
+ }
+ }
+}
+
+void MainWindow::handleAlarms( const OTodo& oldTodo, const OTodo& newTodo) {
+ /*
+ * if oldTodo is not empty and has notifiers we need to find the deleted ones
+ */
+ if(!oldTodo.isEmpty() && oldTodo.hasNotifiers() ) {
+ OPimNotifyManager::Alarms removed;
+ OPimNotifyManager::Alarms oldAls = oldTodo.notifiers().alarms();
+ if (!newTodo.hasNotifiers() )
+ removed = oldAls;
+ else
+ removed = findNonMatching( oldAls, newTodo.notifiers().alarms() );
+
+ removeAlarms( removed, oldTodo.uid() );
+ }
+ if ( newTodo.hasNotifiers() ) {
+ OPimNotifyManager::Alarms added;
+ if ( oldTodo.isEmpty() || !oldTodo.hasNotifiers() )
+ added = newTodo.notifiers().alarms();
+ else
+ added = findNonMatching( newTodo.notifiers().alarms(), oldTodo.notifiers().alarms() );
+
+ addAlarms( added, newTodo.uid() );
+ }
+}
+/* we might have not loaded the db */
+void MainWindow::doAlarm( const QDateTime& dt, int uid ) {
+ m_todoMgr.load();
+
+ OTodo todo = m_todoMgr.event( uid );
+ if (!todo.hasNotifiers() ) return;
+
+ /*
+ * let's find the right alarm and find out if silent
+ * then show a richtext widget
+ */
+ bool loud = false;
+ OPimNotifyManager::Alarms als = todo.notifiers().alarms();
+ OPimNotifyManager::Alarms::Iterator it;
+ for ( it = als.begin(); it != als.end(); ++it ) {
+ if ( (*it).dateTime() == dt ) {
+ loud = ( (*it).sound() == OPimAlarm::Loud );
+ break;
+ }
+ }
+ if (loud)
+ startAlarm();
+
+ QDialog dlg(this, 0, TRUE );
+ QVBoxLayout* lay = new QVBoxLayout( &dlg );
+ QTextView* view = new QTextView( &dlg );
+ lay->addWidget( view );
+ QPushButton* btnOk = new QPushButton( tr("Ok"), &dlg );
+ connect( btnOk, SIGNAL(clicked() ), &dlg, SLOT(accept() ) );
+ lay->addWidget( btnOk );
+
+ QString text = tr("<h1>Alarm at %0</h1><br>").arg( TimeString::dateString( dt ) );
+ text += todo.toRichText();
+ view->setText( text );
+
+ dlg.showMaximized();
+ bool needToStay = dlg.exec();
+
+ if (loud)
+ killAlarm();
+
+ if (needToStay) {
+ showMaximized();
+ raise();
+ QPEApplication::setKeepRunning();
+ setActiveWindow();
+ }
+
+}
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index 434e969..02e2449 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -83,48 +83,50 @@ namespace Todo {
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:
void closeEvent( QCloseEvent* e );
private:
+ /* handle setting and removing alarms */
+ void handleAlarms( const OTodo& oldTodo, const OTodo& newTodo );
void receiveFile( const QString& filename );
void connectBase( ViewBase* );
void initUI();
void initActions();
void initConfig();
void initViews();
void initEditor();
void initShow();
void initTemplate();
void raiseCurrentView();
ViewBase* currentView();
ViewBase* m_curView;
QuickEditBase* m_curQuick;
Editor* m_curEdit;
TodoShow* currentShow();
TodoShow* m_curShow;
TemplateEditor* currentTemplateEditor();
TemplateEditor* m_curTempEd;
QMenuBar* m_bar;
QToolBar* m_tool;
QAction* m_editAction,
*m_deleteAction,
*m_findAction,
@@ -174,28 +176,29 @@ private slots:
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 );
void slotReturnFromView(); // for TodoShow...
/* reimplementation from opimmainwindow */
protected slots:
void flush();
void reload();
int create();
bool remove( int uid );
void beam(int uid);
void show( int uid );
void edit( int uid );
void add( const OPimRecord& );
+ void doAlarm( const QDateTime& dt, int uid );
};
-};
+}
#endif
diff --git a/core/pim/todo/otaskeditor.cpp b/core/pim/todo/otaskeditor.cpp
index e26d5e4..84f854f 100644
--- a/core/pim/todo/otaskeditor.cpp
+++ b/core/pim/todo/otaskeditor.cpp
@@ -21,73 +21,76 @@ OTaskEditor::OTaskEditor( const OTodo& to)
init();
init( to );
}
OTaskEditor::~OTaskEditor() {
}
void OTaskEditor::init( int cur ) {
OTodo to;
if ( cur != 0 )
to.setCategories( cur );
load(to);
m_uid = 1; // generate a new one
}
void OTaskEditor::init( const OTodo& to ) {
load( to );
m_uid = to.uid();
}
OTodo OTaskEditor::todo()const{
qWarning("saving!");
OTodo to;
to.setUid(m_uid );
m_overView->save( to );
m_stat->save( to );
to.setRecurrence( m_rec->recurrence() );
+ m_alarm->save( to );
return to;
}
void OTaskEditor::load(const OTodo& to) {
m_overView->load( to );
m_stat->load( to );
m_rec->setRecurrence( to.recurrence(), to.hasDueDate() ? to.dueDate() : QDate::currentDate() );
+ m_alarm->setEnabled( !to.hasRecurrence() );
+ m_alarm->load( to );
}
void OTaskEditor::init() {
setCaption("Task Editor");
QVBoxLayout* layo = new QVBoxLayout( this );
m_tab = new OTabWidget( this );
layo->addWidget( m_tab );
/*
* Add the Widgets
*/
m_overView = new TaskEditorOverView( m_tab );
m_tab->addTab( m_overView, "todo/info", tr("Information") );
m_stat = new TaskEditorStatus( m_tab );
m_tab->addTab( m_stat, "todo/TodoList", tr("Status") );
m_alarm = new TaskEditorAlarms( m_tab );
m_tab->addTab( m_alarm, "todo/alarm", tr("Alarms") );
- m_remind = new TaskEditorAlarms( m_tab );
- m_tab->addTab( m_remind, "todo/reminder", tr("Reminders") );
+// m_remind = new TaskEditorAlarms( m_tab );
+// m_tab->addTab( m_remind, "todo/reminder", tr("Reminders") );
- QLabel* lbl = new QLabel( m_tab );
- lbl->setText( tr("X-Ref") );
- m_tab->addTab( lbl, "todo/xref", tr("X-Ref") );
+// QLabel* lbl = new QLabel( m_tab );
+// lbl->setText( tr("X-Ref") );
+// m_tab->addTab( lbl, "todo/xref", tr("X-Ref") );
m_rec = new ORecurranceWidget( true, QDate::currentDate(), this );
m_tab->addTab( m_rec, "repeat", tr("Recurrence") );
/* signal and slots */
connect(m_overView, SIGNAL(recurranceEnabled(bool) ),
m_rec, SLOT(setEnabled(bool) ) );
/* connect due date changed to the recurrence tab */
connect(m_stat, SIGNAL(dueDateChanged(const QDate&) ),
m_rec, SLOT(setStartDate(const QDate& ) ) );
m_tab->setCurrentTab( m_overView );
}
diff --git a/core/pim/todo/quickeditimpl.cpp b/core/pim/todo/quickeditimpl.cpp
index 91d3131..f4c7c47 100644
--- a/core/pim/todo/quickeditimpl.cpp
+++ b/core/pim/todo/quickeditimpl.cpp
@@ -4,68 +4,68 @@
#include <qpe/resource.h>
#include <opie/oclickablelabel.h>
#include "mainwindow.h"
#include "quickeditimpl.h"
QuickEditImpl::QuickEditImpl( QWidget* parent, bool visible )
: QPEToolBar( (QMainWindow *)parent ), Todo::QuickEdit( (Todo::MainWindow *)parent ) {
setHorizontalStretchable( TRUE );
// Load priority icons
// TODO - probably should be done globally somewhere else,
// see also tableview.cpp/h, taskeditoroverview.cpp/h
priority1 = Resource::loadPixmap( "todo/priority1" );
priority3 = Resource::loadPixmap( "todo/priority3" );
priority5 = Resource::loadPixmap( "todo/priority5" );
m_lbl = new OClickableLabel( this );
m_lbl->setMinimumWidth( 15 );
m_lbl->setPixmap( priority3 );
connect(m_lbl, SIGNAL(clicked() ), this, SLOT(slotPrio()) );
- QWhatsThis::add( m_lbl, tr( "Click here to set the priority of new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
+ QWhatsThis::add( m_lbl, QWidget::tr( "Click here to set the priority of new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
m_edit = new QLineEdit( this );
setStretchableWidget( m_edit );
- QWhatsThis::add( m_edit, tr( "Enter description of new task here.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
+ QWhatsThis::add( m_edit, QWidget::tr( "Enter description of new task here.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
- QAction *a = new QAction( tr( "More" ), Resource::loadPixmap( "todo/more" ), QString::null, 0, this, 0 );
+ QAction *a = new QAction( QWidget::tr( "More" ), Resource::loadPixmap( "todo/more" ), QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( slotMore() ) );
a->addTo( this );
- a->setWhatsThis( tr( "Click here to enter additional information for new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
+ a->setWhatsThis( QWidget::tr( "Click here to enter additional information for new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
- a = new QAction( tr( "Enter" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 );
+ a = new QAction( QWidget::tr( "Enter" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( slotEnter() ) );
a->addTo( this );
- a->setWhatsThis( tr( "Click here to add new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
+ a->setWhatsThis( QWidget::tr( "Click here to add new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
- a = new QAction( tr( "Cancel" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
+ a = new QAction( QWidget::tr( "Cancel" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( slotCancel() ) );
a->addTo( this );
- a->setWhatsThis( tr( "Click here to reset new task information.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
+ a->setWhatsThis( QWidget::tr( "Click here to reset new task information.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
m_visible = visible;
if ( !m_visible ) {
hide();
}
m_menu = 0l;
reinit();
}
QuickEditImpl::~QuickEditImpl() {
}
OTodo QuickEditImpl::todo()const {
return m_todo;
}
QWidget* QuickEditImpl::widget() {
return this;
}
void QuickEditImpl::slotEnter() {
OTodo todo;
if (!m_edit->text().isEmpty() ) {
todo.setUid(1 ); // new uid
diff --git a/core/pim/todo/taskeditoralarms.cpp b/core/pim/todo/taskeditoralarms.cpp
index 3cb5576..bff3338 100644
--- a/core/pim/todo/taskeditoralarms.cpp
+++ b/core/pim/todo/taskeditoralarms.cpp
@@ -7,70 +7,232 @@
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . 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 "taskeditoralarms.h"
+#include <opie/otodo.h>
+#include <opie/opimnotifymanager.h>
+#include <opie/otimepicker.h>
+
+#include <qpe/datebookmonth.h>
#include <qpe/resource.h>
+#include <qpe/timestring.h>
+#include <qdatetime.h>
#include <qlistview.h>
#include <qpushbutton.h>
+#include <qpopupmenu.h>
#include <qlayout.h>
#include <qwhatsthis.h>
-TaskEditorAlarms::TaskEditorAlarms( QWidget* parent, const char* name, WFlags fl )
+
+class AlarmItem : public QListViewItem {
+public:
+ AlarmItem( QListView*, const OPimAlarm& );
+ ~AlarmItem();
+
+ OPimAlarm alarm()const;
+ void setAlarm( const OPimAlarm& );
+private:
+ QDateTime m_dt;
+ int m_type;
+};
+AlarmItem::AlarmItem( QListView* view, const OPimAlarm& dt)
+ : QListViewItem(view) {
+ setAlarm( dt );
+}
+void AlarmItem::setAlarm( const OPimAlarm& dt ) {
+ m_dt = dt.dateTime();
+ m_type = dt.sound();
+ setText( 0, TimeString::dateString( m_dt.date() ) );
+ setText( 1, TimeString::timeString( m_dt.time() ) );
+ setText( 2, m_type == 0 ? QObject::tr("silent") : QObject::tr("loud") );
+}
+AlarmItem::~AlarmItem() {
+}
+OPimAlarm AlarmItem::alarm()const{
+ OPimAlarm al( m_type, m_dt );
+
+ return al;
+}
+
+TaskEditorAlarms::TaskEditorAlarms( QWidget* parent, int, const char* name, WFlags fl )
: QWidget( parent, name, fl )
{
- QGridLayout *layout = new QGridLayout( this, 2, 3, 4, 4 );
+ m_date = m_type = m_time = 0;
+ QGridLayout *layout = new QGridLayout( this, 2, 2, 4, 4 );
lstAlarms = new QListView( this );
+ lstAlarms->addColumn( tr("Date") );
+ lstAlarms->addColumn( tr("Time") );
+ lstAlarms->addColumn( tr("Type") );
+
+ connect( lstAlarms, SIGNAL(clicked ( QListViewItem *, const QPoint &, int ) ),
+ this, SLOT(inlineEdit(QListViewItem*, const QPoint&, int ) ) );
+
layout->addMultiCellWidget( lstAlarms, 0, 0, 0, 2 );
QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), this );
//QWhatsThis::add( btn, tr( "Click here to add a new transaction." ) );
- //connect( btn, SIGNAL( clicked() ), this, SLOT( slotNew() ) );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( slotNew() ) );
layout->addWidget( btn, 1, 0 );
-
+/* use when we've reminders too */
+#if 0
btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), this );
//QWhatsThis::add( btn, tr( "Select a transaction and then click here to edit it." ) );
- //connect( btn, SIGNAL( clicked() ), this, SLOT( slotEdit() ) );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( slotEdit() ) );
layout->addWidget( btn, 1, 1 );
+#endif
btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), this );
//QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) );
- //connect( btn, SIGNAL( clicked() ), this, SLOT( slotDelete() ) );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( slotDelete() ) );
layout->addWidget( btn, 1, 2 );
}
-TaskEditorAlarms::~TaskEditorAlarms()
-{
+TaskEditorAlarms::~TaskEditorAlarms(){
}
-void TaskEditorAlarms::slotNew()
-{
+void TaskEditorAlarms::slotNew(){
+ (void)new AlarmItem(lstAlarms, OPimAlarm(0, QDateTime::currentDateTime() ) );
}
-void TaskEditorAlarms::slotEdit()
-{
+void TaskEditorAlarms::slotEdit(){
}
-void TaskEditorAlarms::slotDelete()
-{
+void TaskEditorAlarms::slotDelete(){
+ QListViewItem* item = lstAlarms->currentItem();
+ if (!item) return;
+
+ lstAlarms->takeItem( item ); delete item;
+
+
+}
+
+void TaskEditorAlarms::load( const OTodo& todo) {
+ lstAlarms->clear();
+ if (!todo.hasNotifiers() ) return;
+
+ OPimNotifyManager::Alarms als = todo.notifiers().alarms();
+
+ if (als.isEmpty() ) return;
+
+ OPimNotifyManager::Alarms::Iterator it = als.begin();
+ for ( ; it != als.end(); ++it )
+ (void)new AlarmItem( lstAlarms, (*it) );
+
+
+}
+void TaskEditorAlarms::save( OTodo& todo ) {
+ if (lstAlarms->childCount() <= 0 ) return;
+
+ OPimNotifyManager::Alarms alarms;
+
+ for ( QListViewItem* item = lstAlarms->firstChild(); item; item = item->nextSibling() ) {
+ AlarmItem *alItem = static_cast<AlarmItem*>(item);
+ alarms.append( alItem->alarm() );
+ }
+
+ OPimNotifyManager& manager = todo.notifiers();
+ manager.setAlarms( alarms );
+}
+void TaskEditorAlarms::inlineEdit( QListViewItem* alarm, const QPoint& p, int col ) {
+ if (!alarm) return;
+
+ AlarmItem* item = static_cast<AlarmItem*>(alarm);
+ switch( col ) {
+ // date
+ case 0:
+ return inlineSetDate( item, p );
+ // time
+ case 1:
+ return inlineSetTime( item );
+ // type
+ case 2:
+ return inlineSetType( item, p );
+ }
+}
+void TaskEditorAlarms::inlineSetDate( AlarmItem* item, const QPoint& p ) {
+ QPopupMenu* pop = popup( 0 );
+ m_dbMonth->setDate( item->alarm().dateTime().date() );
+ pop->exec(p);
+
+ OPimAlarm al = item->alarm();
+ QDateTime dt = al.dateTime();
+ dt.setDate( m_dbMonth->selectedDate() );
+ al.setDateTime( dt );
+ item->setAlarm( al );
+}
+void TaskEditorAlarms::inlineSetType( AlarmItem* item, const QPoint& p ) {
+ int type;
+ QPopupMenu* pop = popup( 2 );
+ switch( pop->exec(p) ) {
+ case 10:
+ type = 1;
+ break;
+ case 20:
+ default:
+ type = 0;
+ }
+ OPimAlarm al = item->alarm();
+ al.setSound( type );
+ item->setAlarm( al );
+}
+void TaskEditorAlarms::inlineSetTime( AlarmItem* item ) {
+ OPimAlarm al = item->alarm();
+ QDateTime dt = al.dateTime();
+
+ OTimePickerDialog dialog;
+ dialog.setTime( dt.time() );
+ if ( dialog.exec() == QDialog::Accepted ) {
+ dt.setTime( dialog.time() );
+ al.setDateTime( dt );
+ item->setAlarm( al );
+ }
+}
+QPopupMenu* TaskEditorAlarms::popup( int column ) {
+ QPopupMenu* pop = 0;
+ switch( column ) {
+ case 0:{
+ if (!m_date) {
+ m_date = new QPopupMenu(this);
+ m_dbMonth = new DateBookMonth(m_date, 0, TRUE);
+ m_date->insertItem(m_dbMonth);
+ }
+ pop = m_date;
+ }
+ break;
+ case 1:
+ break;
+ case 2:{
+ if (!m_type) {
+ m_type = new QPopupMenu(this);
+ m_type->insertItem( QObject::tr("loud"), 10 );
+ m_type->insertItem( QObject::tr("silent"), 20 );
+ }
+ pop = m_type;
+ }
+ break;
+ default:
+ break;
+ }
+ return pop;
}
diff --git a/core/pim/todo/taskeditoralarms.h b/core/pim/todo/taskeditoralarms.h
index f77ded5..0aa52cc 100644
--- a/core/pim/todo/taskeditoralarms.h
+++ b/core/pim/todo/taskeditoralarms.h
@@ -1,52 +1,72 @@
/*
               =. This file is part of the OPIE Project
-             .=l. Copyright (c) 2002 <>
+             .=l. Copyright (c) 2002,2003 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . 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.
*/
#ifndef TASKEDITORALARMS_H
#define TASKEDITORALARMS_H
#include <qwidget.h>
class QListView;
+class QListViewItem;
+class OTodo;
+class AlarmItem;
+class DateBookMonth;
class TaskEditorAlarms : public QWidget
{
Q_OBJECT
public:
- TaskEditorAlarms( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+ enum Type {
+ Alarm = 0,
+ Reminders
+ };
+ TaskEditorAlarms( QWidget* parent = 0, int type = Alarm, const char* name = 0, WFlags fl = 0 );
~TaskEditorAlarms();
+ void load( const OTodo& );
+ void save( OTodo& );
+private:
+ QPopupMenu* popup( int column );
+ void inlineSetDate( AlarmItem*, const QPoint& p );
+ void inlineSetTime( AlarmItem*);
+ void inlineSetType( AlarmItem*, const QPoint& p );
QListView* lstAlarms;
+ QPopupMenu* m_date;
+ QPopupMenu* m_time;
+ QPopupMenu* m_type;
+ DateBookMonth* m_dbMonth;
protected slots:
void slotNew();
void slotEdit();
void slotDelete();
+ void inlineEdit( QListViewItem*, const QPoint& p, int );
};
#endif // TASKEDITORALARMS_H
diff --git a/core/pim/todo/taskeditorstatus.cpp b/core/pim/todo/taskeditorstatus.cpp
index 4331877..0ab4223 100644
--- a/core/pim/todo/taskeditorstatus.cpp
+++ b/core/pim/todo/taskeditorstatus.cpp
@@ -123,71 +123,73 @@ TaskEditorStatus::TaskEditorStatus( QWidget* parent, const char* name, WFlags f
btnDue->setPopup( popup );
connect( m_dueBook, SIGNAL( dateClicked( int, int, int ) ),
this, SLOT( slotDueChanged( int, int, int ) ) );
// Completed
ckbComp = new QCheckBox( tr( "Completed:" ), container );
layout->addWidget( ckbComp, 4, 0 );
QWhatsThis::add( ckbComp, tr( "Click here to mark this task as completed." ) );
connect( ckbComp, SIGNAL( clicked() ), this, SLOT( slotCompChecked() ) );
btnComp = new QPushButton( curDateStr, container );
btnComp->setEnabled( FALSE );
layout->addMultiCellWidget( btnComp, 4, 4, 1, 2 );
QWhatsThis::add( btnComp, tr( "Click here to set the date this task was completed." ) );
popup = new QPopupMenu( this );
m_compBook = new DateBookMonth( popup, 0, TRUE );
popup->insertItem( m_compBook );
btnComp->setPopup( popup );
connect( m_compBook, SIGNAL( dateClicked( int, int, int ) ),
this, SLOT( slotCompChanged( int, int, int ) ) );
QSpacerItem *spacer = new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding );
layout->addItem( spacer, 5, 0 );
// Maintainer mode
+#if 0
label = new QLabel( tr( "Maintainer Mode:" ), container );
layout->addWidget( label, 6, 0 );
QWhatsThis::add( label, tr( "Click here to set the maintainer's role." ) );
cmbMaintMode = new QComboBox( FALSE, container );
cmbMaintMode->insertItem( tr( "Nothing" ) );
cmbMaintMode->insertItem( tr( "Responsible" ) );
cmbMaintMode->insertItem( tr( "Done By" ) );
cmbMaintMode->insertItem( tr( "Coordinating" ) );
- layout->addMultiCellWidget( cmbMaintMode, 6, 6, 1, 2 );
+// layout->addMultiCellWidget( cmbMaintMode, 6, 6, 1, 2 );
QWhatsThis::add( cmbMaintMode, tr( "Click here to set the maintainer's role." ) );
// Maintainer
label = new QLabel( tr( "Maintainer:" ), container );
layout->addWidget( label, 7, 0 );
QWhatsThis::add( label, tr( "This is the name of the current task maintainer." ) );
txtMaintainer = new QLabel( tr( "test" ), container );
txtMaintainer->setTextFormat( QLabel::RichText );
layout->addWidget( txtMaintainer, 7, 1 );
QWhatsThis::add( txtMaintainer, tr( "This is the name of the current task maintainer." ) );
tbtMaintainer = new QToolButton( container );
tbtMaintainer->setPixmap( Resource::loadPixmap( "todo/more" ) );
- layout->addWidget( tbtMaintainer, 7, 2 );
+// layout->addWidget( tbtMaintainer, 7, 2 );
QWhatsThis::add( tbtMaintainer, tr( "Click here to select the task maintainer." ) );
+#endif
}
TaskEditorStatus::~TaskEditorStatus()
{
}
void TaskEditorStatus::load( const OTodo &todo )
{
QDate date = QDate::currentDate();
QString str = TimeString::longDateString( date );
// Status
int state = todo.hasState()? todo.state().state() : OPimState::NotStarted;
if ( state == OPimState::Undefined )
state = OPimState::NotStarted;
cmbStatus->setCurrentItem( state );
// Progress
cmbProgress->setCurrentItem( todo.progress() / 20 );
// Start date
ckbStart->setChecked( todo.hasStartDate() );
btnStart->setEnabled( todo.hasStartDate() );
if ( todo.hasStartDate() )
@@ -195,97 +197,100 @@ void TaskEditorStatus::load( const OTodo &todo )
m_start = todo.startDate();
btnStart->setText( TimeString::longDateString( m_start ) );
}
else
btnStart->setText( str );
// Due date
ckbDue->setChecked( todo.hasDueDate() );
btnDue->setText( TimeString::longDateString( todo.dueDate() ) );
btnDue->setEnabled( todo.hasDueDate() );
m_due = todo.dueDate();
// Completed
ckbComp->setChecked( todo.isCompleted() );
btnComp->setEnabled( todo.hasCompletedDate() );
if ( todo.hasCompletedDate() )
{
m_comp = todo.completedDate();
btnComp->setText( TimeString::longDateString( m_comp ) );
}
else
btnComp->setText( str );
// Maintainer Mode
+#if 0
state = todo.hasMaintainer() ? todo.maintainer().mode() : OPimMaintainer::Nothing;
if ( state == OPimMaintainer::Undefined )
state = OPimMaintainer::Nothing;
cmbMaintMode->setCurrentItem( state );
-
+#endif
// Maintainer - not implemented yet
}
void TaskEditorStatus::save( OTodo &todo )
{
QDate inval;
// Status
todo.setState( OPimState( cmbStatus->currentItem() ) );
// Progress
todo.setProgress( cmbProgress->currentItem() * 20 );
// Start date
if ( ckbStart->isChecked() )
{
todo.setStartDate( m_start );
}
else
todo.setStartDate( inval );
// Due date
if ( ckbDue->isChecked() )
{
todo.setDueDate( m_due );
todo.setHasDueDate( true );
}
else
todo.setHasDueDate( false );
// Completed
todo.setCompleted( ckbComp->isChecked() );
if ( ckbComp->isChecked() )
{
todo.setCompletedDate( m_comp );
}
else
todo.setCompletedDate( inval );
+#if 0
// Maintainer mode - not implemented yet
// Maintainer
/* TODO - resolve name to uid.....*/
todo.setMaintainer( OPimMaintainer( cmbMaintMode->currentItem(), -10 ) );
+#endif
}
void TaskEditorStatus::slotStartChecked()
{
btnStart->setEnabled( ckbStart->isChecked() );
}
void TaskEditorStatus::slotCompChecked()
{
btnComp->setEnabled( ckbComp->isChecked() );
}
void TaskEditorStatus::slotDueChecked()
{
btnDue->setEnabled( ckbDue->isChecked() );
}
void TaskEditorStatus::slotStartChanged(int y, int m, int d)
{
m_start.setYMD( y, m, d );
btnStart->setText( TimeString::longDateString( m_start ) );
}
void TaskEditorStatus::slotCompChanged(int y, int m, int d)
diff --git a/core/pim/todo/templatedialog.cpp b/core/pim/todo/templatedialog.cpp
index c94f69c..8dfbd0b 100644
--- a/core/pim/todo/templatedialog.cpp
+++ b/core/pim/todo/templatedialog.cpp
@@ -1,51 +1,53 @@
#include <qpushbutton.h>
#include <qhbox.h>
#include <qlayout.h>
#include <qlistview.h>
#include <qlineedit.h>
#include "templatedialog.h"
using namespace Todo;
+/* TRANSLATOR Todo::TemplateDialog */
+
TemplateDialog::TemplateDialog( QWidget* widget )
: QDialog( widget, "TemplateDialog", TRUE )
{
- setCaption( tr("Template Editor") );
+ setCaption( QWidget::tr("Template Editor") );
m_main = new QVBoxLayout(this );
m_list = new QListView( this );
m_main->addWidget( m_list, 100 );
m_lne = new QLineEdit( this );
m_main->addWidget( m_lne );
m_btnBar = new QHBox( this );
- m_add = new QPushButton( tr("Add"), m_btnBar );
- m_edit = new QPushButton( tr("Edit"), m_btnBar );
- m_rem = new QPushButton( tr("Remove"), m_btnBar );
+ m_add = new QPushButton( QWidget::tr("Add"), m_btnBar );
+ m_edit = new QPushButton( QWidget::tr("Edit"), m_btnBar );
+ m_rem = new QPushButton( QWidget::tr("Remove"), m_btnBar );
m_main->addWidget( m_btnBar );
connect(m_add, SIGNAL(clicked() ),
this, SLOT(slotAdd() ) );
connect(m_edit, SIGNAL(clicked() ),
this, SLOT(slotEdit() ) );
connect(m_rem, SIGNAL(clicked() ),
this, SLOT(slotRemove() ) );
connect(m_lne, SIGNAL(returnPressed() ),
this, SLOT(slotReturn() ) );
}
TemplateDialog::~TemplateDialog() {
// Qt does delete our widgets
}
QListView* TemplateDialog::listView() {
return m_list;
}
QLineEdit* TemplateDialog::edit() {
return m_lne;
}
void TemplateDialog::slotAdd() {
qWarning("Not Implemented here");
}
diff --git a/core/pim/todo/templatedialogimpl.cpp b/core/pim/todo/templatedialogimpl.cpp
index 77c5363..fed92f0 100644
--- a/core/pim/todo/templatedialogimpl.cpp
+++ b/core/pim/todo/templatedialogimpl.cpp
@@ -1,35 +1,37 @@
#include <qlistview.h>
#include <qlineedit.h>
#include "mainwindow.h"
#include "todoeditor.h"
#include "todotemplatemanager.h"
#include "templatedialogimpl.h"
using namespace Todo;
+/* TRANSLATOR Todo::TemplateDialogImpl */
+
namespace {
class TemplateListItem : public QListViewItem {
public:
TemplateListItem( QListView*,
const QString& name,
const OTodo& );
~TemplateListItem();
OTodo event()const;
QString text()const;
void setText(const QString& str );
void setEvent( const OTodo& );
private:
QString m_name;
OTodo m_ev;
};
/* implementation */
TemplateListItem::TemplateListItem( QListView* view,
const QString& text,
const OTodo& ev )
: QListViewItem( view ), m_name( text ), m_ev( ev )
{
QListViewItem::setText(0, m_name );
@@ -40,80 +42,78 @@ namespace {
}
QString TemplateListItem::text()const {
return m_name;
}
void TemplateListItem::setText( const QString& str ) {
QListViewItem::setText(0, str );
m_name = str;
}
void TemplateListItem::setEvent( const OTodo& ev) {
m_ev = ev;
}
}
TemplateDialogImpl::TemplateDialogImpl( MainWindow* win,
TemplateManager* man )
: TemplateDialog( win ), m_win( win), m_man( man )
{
/* fill the listview */
/* not the fastest way.... */
QStringList list = man->templates();
for (QStringList::Iterator it = list.begin();
it != list.end(); ++it ) {
new TemplateListItem( listView(), (*it), man->templateEvent( (*it) ) );
}
- listView()->addColumn( tr("Name") );
+ listView()->addColumn( QWidget::tr("Name") );
connect( listView(), SIGNAL(clicked(QListViewItem*) ),
this, SLOT(slotClicked(QListViewItem*) ) );
}
TemplateDialogImpl::~TemplateDialogImpl() {
}
void TemplateDialogImpl::slotAdd() {
- QString str = tr("New Template %1").arg( listView()->childCount() );
+ QString str = QWidget::tr("New Template %1").arg( listView()->childCount() );
OTodo ev;
m_man->addEvent(str, ev);
new TemplateListItem( listView(), str, ev );
}
void TemplateDialogImpl::slotRemove() {
TemplateListItem* item = (TemplateListItem*) listView()->currentItem();
listView()->takeItem( item );
m_man->removeEvent( item->text() );
delete item;
}
void TemplateDialogImpl::slotEdit() {
TemplateListItem* item = (TemplateListItem*)listView()->currentItem();
OTodo ev = m_win->currentEditor()->edit( m_win, item->event() );
if ( m_win->currentEditor()->accepted() ) {
- qWarning("accepted");
item->setEvent( ev );
- qWarning("Priority %d", ev.priority() );
m_man->removeEvent( item->text() );
m_man->addEvent( item->text(), ev );
}
}
/*
* we need to update
* the text
*/
void TemplateDialogImpl::slotReturn() {
TemplateListItem* tbl = (TemplateListItem*)listView()->currentItem();
if (tbl->text() != edit()->text() ) {
m_man->removeEvent( tbl->text() );
tbl->setText( edit()->text() );
m_man->addEvent( tbl->text(), tbl->event() );
}
}
/* update the lineedit when changing */
void TemplateDialogImpl::slotClicked( QListViewItem* item) {
if (!item)
return;
- TemplateListItem* tbl = (TemplateListItem*)item;
+ TemplateListItem* tbl = static_cast<TemplateListItem*>(item);
edit()->setText( tbl->text() );
}
diff --git a/core/pim/todo/templateeditor.cpp b/core/pim/todo/templateeditor.cpp
index 3930428..ca02173 100644
--- a/core/pim/todo/templateeditor.cpp
+++ b/core/pim/todo/templateeditor.cpp
@@ -8,32 +8,31 @@
#include "templateeditor.h"
using namespace Todo;
TemplateEditor::TemplateEditor( MainWindow* main,
TemplateManager* manager )
: QObject( main ), m_main( main ), m_man( manager )
{
init();
}
TemplateEditor::~TemplateEditor() {
}
/* ok we add us to the Menubar */
void TemplateEditor::init() {
QAction* a = new QAction( QString::null, QWidget::tr("Configure Templates"),
0, this, 0, FALSE );
connect(a, SIGNAL(activated() ),
this, SLOT(setUp() ) );
a->addTo( m_main->options() );
}
void TemplateEditor::setUp() {
- qWarning("set up");
TemplateDialogImpl dlg(m_main, m_man );
int ret= dlg.exec();
- if (QDialog::Accepted != ret ) {
+ if (QDialog::Accepted != ret )
m_man->load();
- }else
+ else
m_main->populateTemplates();
}
diff --git a/core/pim/todo/todomanager.cpp b/core/pim/todo/todomanager.cpp
index b5b87de..df2e711 100644
--- a/core/pim/todo/todomanager.cpp
+++ b/core/pim/todo/todomanager.cpp
@@ -101,29 +101,28 @@ bool TodoManager::saveAll() {
return m_db->save();
}
void TodoManager::reload() {
m_db->reload();
}
QStringList TodoManager::categories() {
m_cat.load(categoryFileName() );
return m_cat.labels( "Todo List");
}
/*
* we rely on load beeing called from populateCategories
*/
int TodoManager::catId( const QString& cats ) {
return m_cat.id( "Todo List", cats );
}
void TodoManager::remove( const QArray<int>& ids) {
for (uint i=0; i < ids.size(); i++ )
remove( ids[i] );
}
bool TodoManager::isLoaded()const {
return (m_db == 0 );
}
void TodoManager::load() {
if (!m_db) {
- qWarning("loading!");
m_db = new OTodoAccess();
m_db->load();
}
}