-rw-r--r-- | korganizer/calprintbase.cpp | 2 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 23 |
2 files changed, 17 insertions, 8 deletions
diff --git a/korganizer/calprintbase.cpp b/korganizer/calprintbase.cpp index af32ebc..6bb407d 100644 --- a/korganizer/calprintbase.cpp +++ b/korganizer/calprintbase.cpp | |||
@@ -888,65 +888,65 @@ void CalPrintBase::drawMonth(QPainter &p, const QDate &qd, bool weeknumbers, | |||
888 | 888 | ||
889 | void CalPrintBase::drawTodo( bool completed, int &count, Todo * item, QPainter &p, bool connectSubTodos, | 889 | void CalPrintBase::drawTodo( bool completed, int &count, Todo * item, QPainter &p, bool connectSubTodos, |
890 | bool desc, int pospriority, int possummary, int posDueDt, int level, | 890 | bool desc, int pospriority, int possummary, int posDueDt, int level, |
891 | int x, int &y, int width, int &height, int pageHeight, | 891 | int x, int &y, int width, int &height, int pageHeight, |
892 | TodoParentStart *r ) | 892 | TodoParentStart *r ) |
893 | { | 893 | { |
894 | if ( !completed && item->isCompleted() ) | 894 | if ( !completed && item->isCompleted() ) |
895 | return; | 895 | return; |
896 | QString outStr; | 896 | QString outStr; |
897 | // int fontHeight = 10; | 897 | // int fontHeight = 10; |
898 | const KLocale *local = KGlobal::locale(); | 898 | const KLocale *local = KGlobal::locale(); |
899 | int priority=item->priority(); | 899 | int priority=item->priority(); |
900 | int posdue=posDueDt; | 900 | int posdue=posDueDt; |
901 | if (posdue<0) posdue=x+width; | 901 | if (posdue<0) posdue=x+width; |
902 | QRect rect; | 902 | QRect rect; |
903 | TodoParentStart startpt; | 903 | TodoParentStart startpt; |
904 | // This list keeps all starting points of the parent todos so the connection | 904 | // This list keeps all starting points of the parent todos so the connection |
905 | // lines of the tree can easily be drawn (needed if a new page is started) | 905 | // lines of the tree can easily be drawn (needed if a new page is started) |
906 | static QPtrList<TodoParentStart> startPoints; | 906 | static QPtrList<TodoParentStart> startPoints; |
907 | if (level<1) { | 907 | if (level<1) { |
908 | startPoints.clear(); | 908 | startPoints.clear(); |
909 | } | 909 | } |
910 | 910 | ||
911 | // size of item | 911 | // size of item |
912 | outStr=item->summary(); | 912 | outStr=item->summary(); |
913 | if ( ! item->location().isEmpty() ) | 913 | if ( ! item->location().isEmpty() ) |
914 | outStr += " ("+item->location()+")"; | 914 | outStr += " ("+item->location()+")"; |
915 | if ( item->hasDueDate() && posDueDt>=0 ) { | 915 | if ( item->hasDueDate() && posDueDt>=0 ) { |
916 | outStr += " [" +local->formatDate(item->dtDue().date(),true)+"]"; | 916 | outStr += " [" +local->formatDate(item->dtDue().date(),true)+"]"; |
917 | } | 917 | } |
918 | int left = possummary+(level*10); | 918 | int left = possummary+(level*10); |
919 | rect = p.boundingRect(left, y, (posdue-left-5),-1, WordBreak, outStr); | 919 | rect = p.boundingRect(left, y, (posdue-left-5),-1, WordBreak, outStr); |
920 | if ( !item->description().isEmpty() && !desc ) { | 920 | if ( !item->description().isEmpty() && desc ) { |
921 | outStr = item->description(); | 921 | outStr = item->description(); |
922 | rect = p.boundingRect( left+20, rect.bottom()+5, width-(left+10-x), -1, | 922 | rect = p.boundingRect( left+20, rect.bottom()+5, width-(left+10-x), -1, |
923 | WordBreak, outStr ); | 923 | WordBreak, outStr ); |
924 | } | 924 | } |
925 | // if too big make new page | 925 | // if too big make new page |
926 | if ( rect.bottom() > y+height) { | 926 | if ( rect.bottom() > y+height) { |
927 | // first draw the connection lines from parent todos: | 927 | // first draw the connection lines from parent todos: |
928 | if (level > 0 && connectSubTodos) { | 928 | if (level > 0 && connectSubTodos) { |
929 | TodoParentStart *rct; | 929 | TodoParentStart *rct; |
930 | for ( rct = startPoints.first(); rct; rct = startPoints.next() ) { | 930 | for ( rct = startPoints.first(); rct; rct = startPoints.next() ) { |
931 | int start; | 931 | int start; |
932 | int center = rct->mRect.left() + (rct->mRect.width()/2); | 932 | int center = rct->mRect.left() + (rct->mRect.width()/2); |
933 | int to = p.viewport().bottom(); | 933 | int to = p.viewport().bottom(); |
934 | 934 | ||
935 | // draw either from start point of parent or from top of the page | 935 | // draw either from start point of parent or from top of the page |
936 | if (rct->mSamePage) | 936 | if (rct->mSamePage) |
937 | start = rct->mRect.bottom() + 1; | 937 | start = rct->mRect.bottom() + 1; |
938 | else | 938 | else |
939 | start = p.viewport().top(); | 939 | start = p.viewport().top(); |
940 | p.moveTo( center, start ); | 940 | p.moveTo( center, start ); |
941 | p.lineTo( center, to ); | 941 | p.lineTo( center, to ); |
942 | rct->mSamePage=false; | 942 | rct->mSamePage=false; |
943 | } | 943 | } |
944 | } | 944 | } |
945 | y=0; | 945 | y=0; |
946 | height=pageHeight-y; | 946 | height=pageHeight-y; |
947 | mPrinter->newPage(); | 947 | mPrinter->newPage(); |
948 | } | 948 | } |
949 | 949 | ||
950 | // If this is a sub-item, r will not be 0, and we want the LH side of the priority line up | 950 | // If this is a sub-item, r will not be 0, and we want the LH side of the priority line up |
951 | //to the RH side of the parent item's priority | 951 | //to the RH side of the parent item's priority |
952 | if (r && pospriority >= 0 ) { | 952 | if (r && pospriority >= 0 ) { |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 2de7f28..006a8dd 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -804,79 +804,79 @@ void MainWindow::initActions() | |||
804 | this ); | 804 | this ); |
805 | action->addTo( actionMenu ); | 805 | action->addTo( actionMenu ); |
806 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); | 806 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); |
807 | 807 | ||
808 | icon = loadPixmap( pathString + "search" ); | 808 | icon = loadPixmap( pathString + "search" ); |
809 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); | 809 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); |
810 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); | 810 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); |
811 | search_action->addTo( actionMenu ); | 811 | search_action->addTo( actionMenu ); |
812 | connect( search_action, SIGNAL( activated() ), | 812 | connect( search_action, SIGNAL( activated() ), |
813 | mView->dialogManager(), SLOT( showSearchDialog() ) ); | 813 | mView->dialogManager(), SLOT( showSearchDialog() ) ); |
814 | 814 | ||
815 | 815 | ||
816 | 816 | ||
817 | if ( KOPrefs::instance()->mShowFullMenu ) { | 817 | if ( KOPrefs::instance()->mShowFullMenu ) { |
818 | actionMenu->insertSeparator(); | 818 | actionMenu->insertSeparator(); |
819 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); | 819 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); |
820 | 820 | ||
821 | } | 821 | } |
822 | // actionMenu->insertSeparator(); | 822 | // actionMenu->insertSeparator(); |
823 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, | 823 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, |
824 | this ); | 824 | this ); |
825 | action->addTo( importMenu ); | 825 | action->addTo( importMenu ); |
826 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); | 826 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); |
827 | action = new QAction( "import_quick", i18n("Import last file"), 0, | 827 | action = new QAction( "import_quick", i18n("Import last file"), 0, |
828 | this ); | 828 | this ); |
829 | action->addTo( importMenu ); | 829 | action->addTo( importMenu ); |
830 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); | 830 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); |
831 | importMenu->insertSeparator(); | 831 | importMenu->insertSeparator(); |
832 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, | 832 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, |
833 | this ); | 833 | this ); |
834 | action->addTo( importMenu ); | 834 | action->addTo( importMenu ); |
835 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); | 835 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); |
836 | #ifndef DESKTOP_VERSION | 836 | //#ifndef DESKTOP_VERSION |
837 | importMenu->insertSeparator(); | 837 | importMenu->insertSeparator(); |
838 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, | 838 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, |
839 | this ); | 839 | this ); |
840 | action->addTo( importMenu ); | 840 | action->addTo( importMenu ); |
841 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); | 841 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); |
842 | #else | 842 | //#else |
843 | #ifdef _OL_IMPORT_ | 843 | #ifdef _OL_IMPORT_ |
844 | importMenu->insertSeparator(); | 844 | importMenu->insertSeparator(); |
845 | action = new QAction( "import_ol", i18n("Import from OL"), 0, | 845 | action = new QAction( "import_ol", i18n("Import from OL"), 0, |
846 | this ); | 846 | this ); |
847 | action->addTo( importMenu ); | 847 | action->addTo( importMenu ); |
848 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); | 848 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); |
849 | #endif | 849 | #endif |
850 | #endif | 850 | //#endif |
851 | 851 | ||
852 | importMenu->insertSeparator(); | 852 | importMenu->insertSeparator(); |
853 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, | 853 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, |
854 | this ); | 854 | this ); |
855 | action->addTo( importMenu ); | 855 | action->addTo( importMenu ); |
856 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); | 856 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); |
857 | 857 | ||
858 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, | 858 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, |
859 | this ); | 859 | this ); |
860 | action->addTo( importMenu ); | 860 | action->addTo( importMenu ); |
861 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); | 861 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); |
862 | 862 | ||
863 | importMenu->insertSeparator(); | 863 | importMenu->insertSeparator(); |
864 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, | 864 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, |
865 | this ); | 865 | this ); |
866 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); | 866 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); |
867 | 867 | ||
868 | 868 | ||
869 | //LR | 869 | //LR |
870 | QPopupMenu *ex2phone = new QPopupMenu( this ); | 870 | QPopupMenu *ex2phone = new QPopupMenu( this ); |
871 | ex2phone->insertItem(i18n("Complete calendar..."), 1 ); | 871 | ex2phone->insertItem(i18n("Complete calendar..."), 1 ); |
872 | ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); | 872 | ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); |
873 | connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); | 873 | connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); |
874 | importMenu->insertItem( i18n("Export to phone"), ex2phone ); | 874 | importMenu->insertItem( i18n("Export to phone"), ex2phone ); |
875 | 875 | ||
876 | importMenu->insertSeparator(); | 876 | importMenu->insertSeparator(); |
877 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, | 877 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, |
878 | this ); | 878 | this ); |
879 | action->addTo( importMenu ); | 879 | action->addTo( importMenu ); |
880 | connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); | 880 | connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); |
881 | #ifndef DESKTOP_VERSION | 881 | #ifndef DESKTOP_VERSION |
882 | importMenu->insertSeparator(); | 882 | importMenu->insertSeparator(); |
@@ -1480,76 +1480,85 @@ void MainWindow::enableIncidenceActions( bool enabled ) | |||
1480 | mDeleteAction->setEnabled( enabled ); | 1480 | mDeleteAction->setEnabled( enabled ); |
1481 | 1481 | ||
1482 | mCloneAction->setEnabled( enabled ); | 1482 | mCloneAction->setEnabled( enabled ); |
1483 | mMoveAction->setEnabled( enabled ); | 1483 | mMoveAction->setEnabled( enabled ); |
1484 | mBeamAction->setEnabled( enabled ); | 1484 | mBeamAction->setEnabled( enabled ); |
1485 | mCancelAction->setEnabled( enabled ); | 1485 | mCancelAction->setEnabled( enabled ); |
1486 | } | 1486 | } |
1487 | 1487 | ||
1488 | void MainWindow::importOL() | 1488 | void MainWindow::importOL() |
1489 | { | 1489 | { |
1490 | #ifdef _OL_IMPORT_ | 1490 | #ifdef _OL_IMPORT_ |
1491 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); | 1491 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); |
1492 | id->exec(); | 1492 | id->exec(); |
1493 | delete id; | 1493 | delete id; |
1494 | mView->updateView(); | 1494 | mView->updateView(); |
1495 | #endif | 1495 | #endif |
1496 | } | 1496 | } |
1497 | void MainWindow::importBday() | 1497 | void MainWindow::importBday() |
1498 | { | 1498 | { |
1499 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1499 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1500 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), | 1500 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), |
1501 | i18n("Import!"), i18n("Cancel"), 0, | 1501 | i18n("Import!"), i18n("Cancel"), 0, |
1502 | 0, 1 ); | 1502 | 0, 1 ); |
1503 | if ( result == 0 ) { | 1503 | if ( result == 0 ) { |
1504 | mView->importBday(); | 1504 | mView->importBday(); |
1505 | 1505 | ||
1506 | } | 1506 | } |
1507 | 1507 | ||
1508 | 1508 | ||
1509 | } | 1509 | } |
1510 | void MainWindow::importQtopia() | 1510 | void MainWindow::importQtopia() |
1511 | { | 1511 | { |
1512 | #ifndef DESKTOP_VERSION | 1512 | //#ifndef DESKTOP_VERSION |
1513 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1513 | QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); |
1514 | i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"), | 1514 | #ifdef DESKTOP_VERSION |
1515 | mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); | ||
1516 | #endif | ||
1517 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, | ||
1515 | i18n("Import!"), i18n("Cancel"), 0, | 1518 | i18n("Import!"), i18n("Cancel"), 0, |
1516 | 0, 1 ); | 1519 | 0, 1 ); |
1517 | if ( result == 0 ) { | 1520 | if ( result == 0 ) { |
1521 | #ifndef DESKTOP_VERSION | ||
1518 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); | 1522 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); |
1519 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); | 1523 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); |
1520 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; | 1524 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; |
1525 | #else | ||
1526 | QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; | ||
1527 | QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; | ||
1528 | QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; | ||
1529 | #endif | ||
1521 | mView->importQtopia( categories, datebook, todolist ); | 1530 | mView->importQtopia( categories, datebook, todolist ); |
1522 | } | 1531 | } |
1523 | #else | 1532 | #if 0 |
1524 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1533 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1525 | i18n("Not supported \non desktop!\n"), | 1534 | i18n("Not supported \non desktop!\n"), |
1526 | i18n("Ok"), i18n("Cancel"), 0, | 1535 | i18n("Ok"), i18n("Cancel"), 0, |
1527 | 0, 1 ); | 1536 | 0, 1 ); |
1528 | 1537 | ||
1529 | #endif | 1538 | #endif |
1530 | } | 1539 | } |
1531 | 1540 | ||
1532 | void MainWindow::saveOnClose() | 1541 | void MainWindow::saveOnClose() |
1533 | { | 1542 | { |
1534 | KOPrefs *p = KOPrefs::instance(); | 1543 | KOPrefs *p = KOPrefs::instance(); |
1535 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); | 1544 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); |
1536 | p->mToolBarUp = iconToolBar->x() > width()/2 || | 1545 | p->mToolBarUp = iconToolBar->x() > width()/2 || |
1537 | iconToolBar->y() > height()/2; | 1546 | iconToolBar->y() > height()/2; |
1538 | mView->writeSettings(); | 1547 | mView->writeSettings(); |
1539 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) | 1548 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) |
1540 | save(); | 1549 | save(); |
1541 | } | 1550 | } |
1542 | void MainWindow::slotModifiedChanged( bool changed ) | 1551 | void MainWindow::slotModifiedChanged( bool changed ) |
1543 | { | 1552 | { |
1544 | if ( mBlockAtStartup ) | 1553 | if ( mBlockAtStartup ) |
1545 | return; | 1554 | return; |
1546 | 1555 | ||
1547 | int msec; | 1556 | int msec; |
1548 | // we store the changes after 1 minute, | 1557 | // we store the changes after 1 minute, |
1549 | // and for safety reasons after 10 minutes again | 1558 | // and for safety reasons after 10 minutes again |
1550 | if ( !mSyncManager->blockSave() ) | 1559 | if ( !mSyncManager->blockSave() ) |
1551 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; | 1560 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; |
1552 | else | 1561 | else |
1553 | msec = 1000 * 600; | 1562 | msec = 1000 * 600; |
1554 | mSaveTimer.start( msec, true ); // 1 minute | 1563 | mSaveTimer.start( msec, true ); // 1 minute |
1555 | qDebug("KO: Saving File in %d secs!", msec/1000); | 1564 | qDebug("KO: Saving File in %d secs!", msec/1000); |