Diffstat (limited to 'core/pim/datebook/datebook.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/datebook/datebook.cpp | 108 |
1 files changed, 73 insertions, 35 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp index 6dd8918..cf1eeca 100644 --- a/core/pim/datebook/datebook.cpp +++ b/core/pim/datebook/datebook.cpp | |||
@@ -233,37 +233,53 @@ DateBook::~DateBook() | |||
233 | } | 233 | } |
234 | 234 | ||
235 | void DateBook::slotSettings() | 235 | void DateBook::slotSettings() |
236 | { | 236 | { |
237 | DateBookSettings frmSettings( ampm, this ); | 237 | DateBookSettings frmSettings( ampm, this ); |
238 | frmSettings.setStartTime( startTime ); | 238 | frmSettings.setStartTime( startTime ); |
239 | frmSettings.setAlarmPreset( aPreset, presetTime ); | 239 | frmSettings.setAlarmPreset( aPreset, presetTime ); |
240 | frmSettings.setJumpToCurTime( bJumpToCurTime ); | 240 | frmSettings.setJumpToCurTime( bJumpToCurTime ); |
241 | frmSettings.setRowStyle( rowStyle ); | 241 | frmSettings.setRowStyle( rowStyle ); |
242 | frmSettings.comboDefaultView->setCurrentItem(defaultView-1); | 242 | frmSettings.comboDefaultView->setCurrentItem(defaultView-1); |
243 | frmSettings.comboWeekListView->setCurrentItem(weeklistviewconfig); | 243 | frmSettings.comboWeekListView->setCurrentItem(weeklistviewconfig); |
244 | 244 | ||
245 | bool found=false; | ||
246 | for (int i=0; i<(frmSettings.comboLocation->count()); i++) { | ||
247 | if ( frmSettings.comboLocation->text(i) == defaultLocation ) { | ||
248 | frmSettings.comboLocation->setCurrentItem(i); | ||
249 | found=true; | ||
250 | break; | ||
251 | } | ||
252 | } | ||
253 | if(!found) { | ||
254 | frmSettings.comboLocation->insertItem(defaultLocation); | ||
255 | frmSettings.comboLocation->setCurrentItem(frmSettings.comboLocation->count()-1); | ||
256 | } | ||
257 | frmSettings.comboCategory->setCategories(defaultCategories,"Calendar", tr("Calendar")); | ||
258 | |||
245 | #if defined (Q_WS_QWS) || defined(_WS_QWS_) | 259 | #if defined (Q_WS_QWS) || defined(_WS_QWS_) |
246 | frmSettings.showMaximized(); | 260 | frmSettings.showMaximized(); |
247 | #endif | 261 | #endif |
248 | 262 | ||
249 | if ( frmSettings.exec() ) { | 263 | if ( frmSettings.exec() ) { |
250 | 264 | ||
251 | aPreset = frmSettings.alarmPreset(); | 265 | aPreset = frmSettings.alarmPreset(); |
252 | presetTime = frmSettings.presetTime(); | 266 | presetTime = frmSettings.presetTime(); |
253 | startTime = frmSettings.startTime(); | 267 | startTime = frmSettings.startTime(); |
254 | bJumpToCurTime = frmSettings.jumpToCurTime(); | 268 | bJumpToCurTime = frmSettings.jumpToCurTime(); |
255 | rowStyle = frmSettings.rowStyle(); | 269 | rowStyle = frmSettings.rowStyle(); |
256 | defaultView=frmSettings.comboDefaultView->currentItem()+1; | 270 | defaultView=frmSettings.comboDefaultView->currentItem()+1; |
257 | weeklistviewconfig=frmSettings.comboWeekListView->currentItem(); | 271 | weeklistviewconfig=frmSettings.comboWeekListView->currentItem(); |
272 | defaultLocation=frmSettings.comboLocation->currentText(); | ||
273 | defaultCategories=frmSettings.comboCategory->currentCategories(); | ||
258 | 274 | ||
259 | if ( dayView ) { | 275 | if ( dayView ) { |
260 | dayView->setStartViewTime( startTime ); | 276 | dayView->setStartViewTime( startTime ); |
261 | dayView->setJumpToCurTime( bJumpToCurTime ); | 277 | dayView->setJumpToCurTime( bJumpToCurTime ); |
262 | dayView->setRowStyle( rowStyle ); | 278 | dayView->setRowStyle( rowStyle ); |
263 | } | 279 | } |
264 | if ( weekView ) { | 280 | if ( weekView ) { |
265 | weekView->setStartViewTime( startTime ); | 281 | weekView->setStartViewTime( startTime ); |
266 | } | 282 | } |
267 | saveSettings(); | 283 | saveSettings(); |
268 | 284 | ||
269 | // make the change obvious | 285 | // make the change obvious |
@@ -376,26 +392,28 @@ void DateBook::viewWeek() { | |||
376 | } | 392 | } |
377 | 393 | ||
378 | void DateBook::viewWeekLst() { | 394 | void DateBook::viewWeekLst() { |
379 | view(WEEKLST,currentDate()); | 395 | view(WEEKLST,currentDate()); |
380 | } | 396 | } |
381 | 397 | ||
382 | void DateBook::viewMonth() { | 398 | void DateBook::viewMonth() { |
383 | view(MONTH,currentDate()); | 399 | view(MONTH,currentDate()); |
384 | } | 400 | } |
385 | 401 | ||
386 | void DateBook::insertEvent( const Event &e ) | 402 | void DateBook::insertEvent( const Event &e ) |
387 | { | 403 | { |
388 | qWarning("Adding Event!"); | 404 | Event dupEvent=e; |
389 | db->addEvent(e); | 405 | dupEvent.setLocation(defaultLocation); |
406 | dupEvent.setCategories(defaultCategories); | ||
407 | db->addEvent(dupEvent); | ||
390 | emit newEvent(); | 408 | emit newEvent(); |
391 | } | 409 | } |
392 | 410 | ||
393 | void DateBook::duplicateEvent( const Event &e ) | 411 | void DateBook::duplicateEvent( const Event &e ) |
394 | { | 412 | { |
395 | qWarning("Hmmm..."); | 413 | qWarning("Hmmm..."); |
396 | // Alot of code duplication, as this is almost like editEvent(); | 414 | // Alot of code duplication, as this is almost like editEvent(); |
397 | if (syncing) { | 415 | if (syncing) { |
398 | QMessageBox::warning( this, tr("Calendar"), tr( "Can not edit data, currently syncing") ); | 416 | QMessageBox::warning( this, tr("Calendar"), tr( "Can not edit data, currently syncing") ); |
399 | return; | 417 | return; |
400 | } | 418 | } |
401 | 419 | ||
@@ -597,38 +615,54 @@ void DateBook::loadSettings() | |||
597 | ampm = qpeconfig.readBoolEntry( "AMPM", TRUE ); | 615 | ampm = qpeconfig.readBoolEntry( "AMPM", TRUE ); |
598 | onMonday = qpeconfig.readBoolEntry( "MONDAY" ); | 616 | onMonday = qpeconfig.readBoolEntry( "MONDAY" ); |
599 | 617 | ||
600 | Config config("DateBook"); | 618 | Config config("DateBook"); |
601 | config.setGroup("Main"); | 619 | config.setGroup("Main"); |
602 | startTime = config.readNumEntry("startviewtime", 8); | 620 | startTime = config.readNumEntry("startviewtime", 8); |
603 | aPreset = config.readBoolEntry("alarmpreset"); | 621 | aPreset = config.readBoolEntry("alarmpreset"); |
604 | presetTime = config.readNumEntry("presettime"); | 622 | presetTime = config.readNumEntry("presettime"); |
605 | bJumpToCurTime = config.readBoolEntry("jumptocurtime"); | 623 | bJumpToCurTime = config.readBoolEntry("jumptocurtime"); |
606 | rowStyle = config.readNumEntry("rowstyle"); | 624 | rowStyle = config.readNumEntry("rowstyle"); |
607 | defaultView = config.readNumEntry("defaultview",DAY); | 625 | defaultView = config.readNumEntry("defaultview",DAY); |
608 | weeklistviewconfig = config.readNumEntry("weeklistviewconfig",NORMAL); | 626 | weeklistviewconfig = config.readNumEntry("weeklistviewconfig",NORMAL); |
627 | |||
628 | defaultLocation=config.readEntry("defaultLocation"); | ||
629 | QString tmpString=config.readEntry("defaultCategories"); | ||
630 | QStringList tmpStringList=QStringList::split(",",tmpString); | ||
631 | defaultCategories.truncate(0); | ||
632 | for( QStringList::Iterator i=tmpStringList.begin(); i!=tmpStringList.end(); i++) { | ||
633 | defaultCategories.resize(defaultCategories.count()+1); | ||
634 | defaultCategories[defaultCategories.count()-1]=(*i).toInt(); | ||
635 | } | ||
609 | } | 636 | } |
610 | 637 | ||
611 | void DateBook::saveSettings() | 638 | void DateBook::saveSettings() |
612 | { | 639 | { |
613 | Config config( "qpe" ); | 640 | Config config( "qpe" ); |
614 | Config configDB( "DateBook" ); | 641 | Config configDB( "DateBook" ); |
615 | configDB.setGroup( "Main" ); | 642 | configDB.setGroup( "Main" ); |
616 | configDB.writeEntry("startviewtime",startTime); | 643 | configDB.writeEntry("startviewtime",startTime); |
617 | configDB.writeEntry("alarmpreset",aPreset); | 644 | configDB.writeEntry("alarmpreset",aPreset); |
618 | configDB.writeEntry("presettime",presetTime); | 645 | configDB.writeEntry("presettime",presetTime); |
619 | configDB.writeEntry("jumptocurtime", bJumpToCurTime); | 646 | configDB.writeEntry("jumptocurtime", bJumpToCurTime); |
620 | configDB.writeEntry("rowstyle", rowStyle); | 647 | configDB.writeEntry("rowstyle", rowStyle); |
621 | configDB.writeEntry("defaultview",defaultView); | 648 | configDB.writeEntry("defaultview",defaultView); |
622 | configDB.writeEntry("weeklistviewconfig",weeklistviewconfig); | 649 | configDB.writeEntry("weeklistviewconfig",weeklistviewconfig); |
650 | |||
651 | configDB.writeEntry("defaultLocation",defaultLocation); | ||
652 | QStringList tmpStringList; | ||
653 | for( uint i=0; i<defaultCategories.count(); i++) { | ||
654 | tmpStringList << QString::number(defaultCategories[i]); | ||
655 | } | ||
656 | configDB.writeEntry("defaultCategories",tmpStringList.join(",")); | ||
623 | } | 657 | } |
624 | 658 | ||
625 | void DateBook::appMessage(const QCString& msg, const QByteArray& data) | 659 | void DateBook::appMessage(const QCString& msg, const QByteArray& data) |
626 | { | 660 | { |
627 | bool needShow = FALSE; | 661 | bool needShow = FALSE; |
628 | if ( msg == "alarm(QDateTime,int)" ) { | 662 | if ( msg == "alarm(QDateTime,int)" ) { |
629 | QDataStream ds(data,IO_ReadOnly); | 663 | QDataStream ds(data,IO_ReadOnly); |
630 | QDateTime when; int warn; | 664 | QDateTime when; int warn; |
631 | ds >> when >> warn; | 665 | ds >> when >> warn; |
632 | 666 | ||
633 | // check to make it's okay to continue, | 667 | // check to make it's okay to continue, |
634 | // this is the case that the time was set ahead, and | 668 | // this is the case that the time was set ahead, and |
@@ -816,66 +850,70 @@ void DateBook::slotNewEventFromKey( const QString &str ) | |||
816 | start = end = d; | 850 | start = end = d; |
817 | start.setTime( QTime( 10, 0 ) ); | 851 | start.setTime( QTime( 10, 0 ) ); |
818 | end.setTime( QTime( 12, 0 ) ); | 852 | end.setTime( QTime( 12, 0 ) ); |
819 | } else if ( views->visibleWidget() == weekLstView ) { | 853 | } else if ( views->visibleWidget() == weekLstView ) { |
820 | QDate d = weekLstView->date(); | 854 | QDate d = weekLstView->date(); |
821 | start = end = d; | 855 | start = end = d; |
822 | start.setTime( QTime( 10, 0 ) ); | 856 | start.setTime( QTime( 10, 0 ) ); |
823 | end.setTime( QTime( 12, 0 ) ); | 857 | end.setTime( QTime( 12, 0 ) ); |
824 | } | 858 | } |
825 | slotNewEntry(start, end, str); | 859 | slotNewEntry(start, end, str); |
826 | } | 860 | } |
827 | void DateBook::slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str, const QString &location) { | 861 | void DateBook::slotNewEntry(const QDateTime &start, const QDateTime &end, const QString &str, const QString &location) { |
828 | // argh! This really needs to be encapsulated in a class | 862 | // argh! This really needs to be encapsulated in a class |
829 | // or function. | 863 | // or function. |
830 | QDialog newDlg( this, 0, TRUE ); | 864 | QDialog newDlg( this, 0, TRUE ); |
831 | newDlg.setCaption( DateEntryBase::tr("New Event") ); | 865 | newDlg.setCaption( DateEntryBase::tr("New Event") ); |
832 | DateEntry *e; | 866 | DateEntry *e; |
833 | QVBoxLayout *vb = new QVBoxLayout( &newDlg ); | 867 | QVBoxLayout *vb = new QVBoxLayout( &newDlg ); |
834 | QScrollView *sv = new QScrollView( &newDlg ); | 868 | QScrollView *sv = new QScrollView( &newDlg ); |
835 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 869 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
836 | sv->setFrameStyle( QFrame::NoFrame ); | 870 | sv->setFrameStyle( QFrame::NoFrame ); |
837 | sv->setHScrollBarMode( QScrollView::AlwaysOff ); | 871 | sv->setHScrollBarMode( QScrollView::AlwaysOff ); |
838 | vb->addWidget( sv ); | 872 | vb->addWidget( sv ); |
839 | 873 | ||
840 | Event ev; | 874 | Event ev; |
841 | ev.setDescription( str ); | 875 | ev.setDescription( str ); |
842 | // When the new gui comes in, change this... | 876 | // When the new gui comes in, change this... |
843 | if(location==0) { | 877 | if(location==0) { |
844 | ev.setLocation( tr("(Unknown)") ); | 878 | if(defaultLocation.isEmpty()) { |
879 | ev.setLocation(tr("(Unknown)")); | ||
880 | } else { | ||
881 | ev.setLocation( defaultLocation ); | ||
882 | } | ||
845 | } else { | 883 | } else { |
846 | ev.setLocation(location); | 884 | ev.setLocation(location); |
847 | } | 885 | } |
848 | ev.setStart( start ); | 886 | ev.setCategories(defaultCategories); |
849 | ev.setEnd( end ); | 887 | ev.setStart( start ); |
888 | ev.setEnd( end ); | ||
850 | 889 | ||
851 | e = new DateEntry( onMonday, ev, ampm, &newDlg ); | 890 | e = new DateEntry( onMonday, ev, ampm, &newDlg ); |
852 | e->setAlarmEnabled( aPreset, presetTime, Event::Loud ); | 891 | e->setAlarmEnabled( aPreset, presetTime, Event::Loud ); |
853 | sv->addChild( e ); | 892 | sv->addChild( e ); |
854 | #if defined(Q_WS_QWS) || defined(_WS_QWS_) | 893 | #if defined(Q_WS_QWS) || defined(_WS_QWS_) |
855 | newDlg.showMaximized(); | 894 | newDlg.showMaximized(); |
856 | #endif | 895 | #endif |
857 | while (newDlg.exec()) { | 896 | while (newDlg.exec()) { |
858 | ev = e->event(); | 897 | ev = e->event(); |
859 | ev.assignUid(); | 898 | ev.assignUid(); |
860 | QString error = checkEvent( ev ); | 899 | QString error = checkEvent( ev ); |
861 | if ( !error.isNull() ) { | 900 | if ( !error.isNull() ) { |
862 | if ( QMessageBox::warning( this, tr("Error!"), | 901 | if ( QMessageBox::warning( this, tr("Error!"), error, tr("Fix it"), tr("Continue"), 0, 0, 1 ) == 0 ) |
863 | error, tr("Fix it"), tr("Continue"), 0, 0, 1 ) == 0 ) | 902 | continue; |
864 | continue; | 903 | } |
904 | db->addEvent( ev ); | ||
905 | emit newEvent(); | ||
906 | break; | ||
865 | } | 907 | } |
866 | db->addEvent( ev ); | ||
867 | emit newEvent(); | ||
868 | break; | ||
869 | } | ||
870 | } | 908 | } |
871 | 909 | ||
872 | void DateBook::setDocument( const QString &filename ) | 910 | void DateBook::setDocument( const QString &filename ) |
873 | { | 911 | { |
874 | if ( filename.find(".vcs") != int(filename.length()) - 4 ) return; | 912 | if ( filename.find(".vcs") != int(filename.length()) - 4 ) return; |
875 | 913 | ||
876 | QValueList<Event> tl = Event::readVCalendar( filename ); | 914 | QValueList<Event> tl = Event::readVCalendar( filename ); |
877 | for( QValueList<Event>::Iterator it = tl.begin(); it != tl.end(); ++it ) { | 915 | for( QValueList<Event>::Iterator it = tl.begin(); it != tl.end(); ++it ) { |
878 | db->addEvent( *it ); | 916 | db->addEvent( *it ); |
879 | } | 917 | } |
880 | } | 918 | } |
881 | 919 | ||