-rw-r--r-- | korganizer/mainwindow.cpp | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index ad1c0cd..2da592b 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -1566,213 +1566,245 @@ void MainWindow::processIncidenceSelection( Incidence *incidence ) | |||
1566 | if ( !incidence->location().isEmpty() ) | 1566 | if ( !incidence->location().isEmpty() ) |
1567 | startString += " (" +incidence->location()+")"; | 1567 | startString += " (" +incidence->location()+")"; |
1568 | setCaption( incidence->summary()+startString); | 1568 | setCaption( incidence->summary()+startString); |
1569 | 1569 | ||
1570 | enableIncidenceActions( true ); | 1570 | enableIncidenceActions( true ); |
1571 | 1571 | ||
1572 | if ( incidence->type() == "Event" ) { | 1572 | if ( incidence->type() == "Event" ) { |
1573 | mShowAction->setText( i18n("Show Event...") ); | 1573 | mShowAction->setText( i18n("Show Event...") ); |
1574 | mEditAction->setText( i18n("Edit Event...") ); | 1574 | mEditAction->setText( i18n("Edit Event...") ); |
1575 | mDeleteAction->setText( i18n("Delete Event...") ); | 1575 | mDeleteAction->setText( i18n("Delete Event...") ); |
1576 | 1576 | ||
1577 | mNewSubTodoAction->setEnabled( false ); | 1577 | mNewSubTodoAction->setEnabled( false ); |
1578 | } else if ( incidence->type() == "Todo" ) { | 1578 | } else if ( incidence->type() == "Todo" ) { |
1579 | mShowAction->setText( i18n("Show Todo...") ); | 1579 | mShowAction->setText( i18n("Show Todo...") ); |
1580 | mEditAction->setText( i18n("Edit Todo...") ); | 1580 | mEditAction->setText( i18n("Edit Todo...") ); |
1581 | mDeleteAction->setText( i18n("Delete Todo...") ); | 1581 | mDeleteAction->setText( i18n("Delete Todo...") ); |
1582 | 1582 | ||
1583 | mNewSubTodoAction->setEnabled( true ); | 1583 | mNewSubTodoAction->setEnabled( true ); |
1584 | } else { | 1584 | } else { |
1585 | mShowAction->setText( i18n("Show...") ); | 1585 | mShowAction->setText( i18n("Show...") ); |
1586 | mShowAction->setText( i18n("Edit...") ); | 1586 | mShowAction->setText( i18n("Edit...") ); |
1587 | mShowAction->setText( i18n("Delete...") ); | 1587 | mShowAction->setText( i18n("Delete...") ); |
1588 | 1588 | ||
1589 | mNewSubTodoAction->setEnabled( false ); | 1589 | mNewSubTodoAction->setEnabled( false ); |
1590 | } | 1590 | } |
1591 | } | 1591 | } |
1592 | 1592 | ||
1593 | void MainWindow::enableIncidenceActions( bool enabled ) | 1593 | void MainWindow::enableIncidenceActions( bool enabled ) |
1594 | { | 1594 | { |
1595 | mShowAction->setEnabled( enabled ); | 1595 | mShowAction->setEnabled( enabled ); |
1596 | mEditAction->setEnabled( enabled ); | 1596 | mEditAction->setEnabled( enabled ); |
1597 | mDeleteAction->setEnabled( enabled ); | 1597 | mDeleteAction->setEnabled( enabled ); |
1598 | 1598 | ||
1599 | mCloneAction->setEnabled( enabled ); | 1599 | mCloneAction->setEnabled( enabled ); |
1600 | mMoveAction->setEnabled( enabled ); | 1600 | mMoveAction->setEnabled( enabled ); |
1601 | mBeamAction->setEnabled( enabled ); | 1601 | mBeamAction->setEnabled( enabled ); |
1602 | mCancelAction->setEnabled( enabled ); | 1602 | mCancelAction->setEnabled( enabled ); |
1603 | } | 1603 | } |
1604 | 1604 | ||
1605 | void MainWindow::importOL() | 1605 | void MainWindow::importOL() |
1606 | { | 1606 | { |
1607 | #ifdef _OL_IMPORT_ | 1607 | #ifdef _OL_IMPORT_ |
1608 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); | 1608 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); |
1609 | id->exec(); | 1609 | id->exec(); |
1610 | delete id; | 1610 | delete id; |
1611 | mView->updateView(); | 1611 | mView->updateView(); |
1612 | #endif | 1612 | #endif |
1613 | } | 1613 | } |
1614 | void MainWindow::importBday() | 1614 | void MainWindow::importBday() |
1615 | { | 1615 | { |
1616 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1616 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1617 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), | 1617 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), |
1618 | i18n("Import!"), i18n("Cancel"), 0, | 1618 | i18n("Import!"), i18n("Cancel"), 0, |
1619 | 0, 1 ); | 1619 | 0, 1 ); |
1620 | if ( result == 0 ) { | 1620 | if ( result == 0 ) { |
1621 | mView->importBday(); | 1621 | mView->importBday(); |
1622 | 1622 | ||
1623 | } | 1623 | } |
1624 | 1624 | ||
1625 | 1625 | ||
1626 | } | 1626 | } |
1627 | void MainWindow::importQtopia() | 1627 | void MainWindow::importQtopia() |
1628 | { | 1628 | { |
1629 | //#ifndef DESKTOP_VERSION | 1629 | //#ifndef DESKTOP_VERSION |
1630 | 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"); | 1630 | 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"); |
1631 | #ifdef DESKTOP_VERSION | 1631 | #ifdef DESKTOP_VERSION |
1632 | 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"); | 1632 | 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"); |
1633 | #endif | 1633 | #endif |
1634 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, | 1634 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, |
1635 | i18n("Import!"), i18n("Cancel"), 0, | 1635 | i18n("Import!"), i18n("Cancel"), 0, |
1636 | 0, 1 ); | 1636 | 0, 1 ); |
1637 | if ( result == 0 ) { | 1637 | if ( result == 0 ) { |
1638 | #ifndef DESKTOP_VERSION | 1638 | #ifndef DESKTOP_VERSION |
1639 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); | 1639 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); |
1640 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); | 1640 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); |
1641 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; | 1641 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; |
1642 | #else | 1642 | #else |
1643 | QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; | 1643 | QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; |
1644 | QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; | 1644 | QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; |
1645 | QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; | 1645 | QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; |
1646 | #endif | 1646 | #endif |
1647 | mView->importQtopia( categories, datebook, todolist ); | 1647 | mView->importQtopia( categories, datebook, todolist ); |
1648 | } | 1648 | } |
1649 | #if 0 | 1649 | #if 0 |
1650 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1650 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1651 | i18n("Not supported \non desktop!\n"), | 1651 | i18n("Not supported \non desktop!\n"), |
1652 | i18n("Ok"), i18n("Cancel"), 0, | 1652 | i18n("Ok"), i18n("Cancel"), 0, |
1653 | 0, 1 ); | 1653 | 0, 1 ); |
1654 | 1654 | ||
1655 | #endif | 1655 | #endif |
1656 | } | 1656 | } |
1657 | 1657 | ||
1658 | void MainWindow::saveOnClose() | 1658 | void MainWindow::saveOnClose() |
1659 | { | 1659 | { |
1660 | KOPrefs *p = KOPrefs::instance(); | 1660 | KOPrefs *p = KOPrefs::instance(); |
1661 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); | 1661 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); |
1662 | p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); | ||
1663 | p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); | ||
1664 | if ( filterToolBar ) { | ||
1665 | p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); | ||
1666 | } | ||
1667 | #ifdef DESKTOP_VERSION | ||
1668 | |||
1669 | QPoint myP; | ||
1670 | myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); | ||
1671 | if ( p->mToolBarHor ) | ||
1672 | p->mToolBarUp = myP.y() > height()/2; | ||
1673 | else | ||
1674 | p->mToolBarUp = myP.x() > width()/2; | ||
1675 | myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); | ||
1676 | if ( p->mToolBarHorV ) | ||
1677 | p->mToolBarUpV = myP.y() > height()/2; | ||
1678 | else | ||
1679 | p->mToolBarUpV = myP.x() > width()/2 ; | ||
1680 | myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); | ||
1681 | if ( p->mToolBarHorN ) | ||
1682 | p->mToolBarUpN = myP.y() > height()/2; | ||
1683 | else | ||
1684 | p->mToolBarUpN = myP.x() > width()/2 ; | ||
1685 | if ( filterToolBar ) { | ||
1686 | myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); | ||
1687 | if ( p->mToolBarHorF ) | ||
1688 | p->mToolBarUpF = myP.y() > height()/2; | ||
1689 | else | ||
1690 | p->mToolBarUpF = myP.x() > width()/2 ; | ||
1691 | } | ||
1692 | #else | ||
1662 | if ( p->mToolBarHor ) | 1693 | if ( p->mToolBarHor ) |
1663 | p->mToolBarUp = iconToolBar->y() > height()/2; | 1694 | p->mToolBarUp = iconToolBar->y() > height()/2; |
1664 | else | 1695 | else |
1665 | p->mToolBarUp = iconToolBar->x() > width()/2; | 1696 | p->mToolBarUp = iconToolBar->x() > width()/2; |
1666 | p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); | ||
1667 | if ( p->mToolBarHorV ) | 1697 | if ( p->mToolBarHorV ) |
1668 | p->mToolBarUpV = viewToolBar->y() > height()/2; | 1698 | p->mToolBarUpV = viewToolBar->y() > height()/2; |
1669 | else | 1699 | else |
1670 | p->mToolBarUpV = viewToolBar->x() > width()/2 ; | 1700 | p->mToolBarUpV = viewToolBar->x() > width()/2 ; |
1671 | p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); | 1701 | |
1672 | if ( p->mToolBarHorN ) | 1702 | if ( p->mToolBarHorN ) |
1673 | p->mToolBarUpN = navigatorToolBar->y() > height()/2; | 1703 | p->mToolBarUpN = navigatorToolBar->y() > height()/2; |
1674 | else | 1704 | else |
1675 | p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; | 1705 | p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; |
1676 | if ( filterToolBar ) { | 1706 | if ( filterToolBar ) { |
1677 | p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); | ||
1678 | if ( p->mToolBarHorF ) | 1707 | if ( p->mToolBarHorF ) |
1679 | p->mToolBarUpF = filterToolBar->y() > height()/2; | 1708 | p->mToolBarUpF = filterToolBar->y() > height()/2; |
1680 | else | 1709 | else |
1681 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; | 1710 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; |
1682 | } | 1711 | } |
1712 | #endif | ||
1713 | |||
1714 | |||
1683 | mView->writeSettings(); | 1715 | mView->writeSettings(); |
1684 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) | 1716 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) |
1685 | save(); | 1717 | save(); |
1686 | } | 1718 | } |
1687 | void MainWindow::slotModifiedChanged( bool changed ) | 1719 | void MainWindow::slotModifiedChanged( bool changed ) |
1688 | { | 1720 | { |
1689 | if ( mBlockAtStartup ) | 1721 | if ( mBlockAtStartup ) |
1690 | return; | 1722 | return; |
1691 | 1723 | ||
1692 | int msec; | 1724 | int msec; |
1693 | // we store the changes after 1 minute, | 1725 | // we store the changes after 1 minute, |
1694 | // and for safety reasons after 10 minutes again | 1726 | // and for safety reasons after 10 minutes again |
1695 | if ( !mSyncManager->blockSave() ) | 1727 | if ( !mSyncManager->blockSave() ) |
1696 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; | 1728 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; |
1697 | else | 1729 | else |
1698 | msec = 1000 * 600; | 1730 | msec = 1000 * 600; |
1699 | mSaveTimer.start( msec, true ); // 1 minute | 1731 | mSaveTimer.start( msec, true ); // 1 minute |
1700 | qDebug("KO: Saving File in %d secs!", msec/1000); | 1732 | qDebug("KO: Saving File in %d secs!", msec/1000); |
1701 | mCalendarModifiedFlag = true; | 1733 | mCalendarModifiedFlag = true; |
1702 | } | 1734 | } |
1703 | void MainWindow::saveStopTimer() | 1735 | void MainWindow::saveStopTimer() |
1704 | { | 1736 | { |
1705 | mSaveTimer.stop(); | 1737 | mSaveTimer.stop(); |
1706 | if (mSaveTimer.isActive() ) | 1738 | if (mSaveTimer.isActive() ) |
1707 | qDebug("ti active "); | 1739 | qDebug("ti active "); |
1708 | else | 1740 | else |
1709 | qDebug("KO: Save timer stopped"); | 1741 | qDebug("KO: Save timer stopped"); |
1710 | } | 1742 | } |
1711 | void MainWindow::save() | 1743 | void MainWindow::save() |
1712 | { | 1744 | { |
1713 | if ( !mCalendarModifiedFlag ) { | 1745 | if ( !mCalendarModifiedFlag ) { |
1714 | qDebug("KO: Calendar not modified. Nothing saved."); | 1746 | qDebug("KO: Calendar not modified. Nothing saved."); |
1715 | return; | 1747 | return; |
1716 | } | 1748 | } |
1717 | if ( mSyncManager->blockSave() ) | 1749 | if ( mSyncManager->blockSave() ) |
1718 | return; | 1750 | return; |
1719 | mSyncManager->setBlockSave(true); | 1751 | mSyncManager->setBlockSave(true); |
1720 | if ( mView->checkFileVersion( defaultFileName()) ) { | 1752 | if ( mView->checkFileVersion( defaultFileName()) ) { |
1721 | QTime neededSaveTime = QDateTime::currentDateTime().time(); | 1753 | QTime neededSaveTime = QDateTime::currentDateTime().time(); |
1722 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | 1754 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); |
1723 | qDebug("KO: Start saving data to file!"); | 1755 | qDebug("KO: Start saving data to file!"); |
1724 | mView->saveCalendar( defaultFileName() ); | 1756 | mView->saveCalendar( defaultFileName() ); |
1725 | mCalendarModifiedFlag = false; | 1757 | mCalendarModifiedFlag = false; |
1726 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); | 1758 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); |
1727 | qDebug("KO: Needed %d ms for saving.",msNeeded ); | 1759 | qDebug("KO: Needed %d ms for saving.",msNeeded ); |
1728 | QString savemes; | 1760 | QString savemes; |
1729 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); | 1761 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); |
1730 | setCaption(savemes); | 1762 | setCaption(savemes); |
1731 | } else | 1763 | } else |
1732 | setCaption(i18n("Saving cancelled!")); | 1764 | setCaption(i18n("Saving cancelled!")); |
1733 | mSyncManager->setBlockSave( false ); | 1765 | mSyncManager->setBlockSave( false ); |
1734 | } | 1766 | } |
1735 | 1767 | ||
1736 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) | 1768 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) |
1737 | { | 1769 | { |
1738 | if ( !e->isAutoRepeat() ) { | 1770 | if ( !e->isAutoRepeat() ) { |
1739 | mFlagKeyPressed = false; | 1771 | mFlagKeyPressed = false; |
1740 | } | 1772 | } |
1741 | } | 1773 | } |
1742 | void MainWindow::keyPressEvent ( QKeyEvent * e ) | 1774 | void MainWindow::keyPressEvent ( QKeyEvent * e ) |
1743 | { | 1775 | { |
1744 | qApp->processEvents(); | 1776 | qApp->processEvents(); |
1745 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { | 1777 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { |
1746 | e->ignore(); | 1778 | e->ignore(); |
1747 | // qDebug(" ignore %d",e->isAutoRepeat() ); | 1779 | // qDebug(" ignore %d",e->isAutoRepeat() ); |
1748 | return; | 1780 | return; |
1749 | } | 1781 | } |
1750 | if (! e->isAutoRepeat() ) | 1782 | if (! e->isAutoRepeat() ) |
1751 | mFlagKeyPressed = true; | 1783 | mFlagKeyPressed = true; |
1752 | KOPrefs *p = KOPrefs::instance(); | 1784 | KOPrefs *p = KOPrefs::instance(); |
1753 | bool showSelectedDates = false; | 1785 | bool showSelectedDates = false; |
1754 | int size; | 1786 | int size; |
1755 | int pro = 0; | 1787 | int pro = 0; |
1756 | //qDebug("MainWindow::keyPressEvent "); | 1788 | //qDebug("MainWindow::keyPressEvent "); |
1757 | switch ( e->key() ) { | 1789 | switch ( e->key() ) { |
1758 | case Qt::Key_Right: | 1790 | case Qt::Key_Right: |
1759 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) | 1791 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) |
1760 | mView->goNextMonth(); | 1792 | mView->goNextMonth(); |
1761 | else | 1793 | else |
1762 | mView->goNext(); | 1794 | mView->goNext(); |
1763 | showSelectedDates = true; | 1795 | showSelectedDates = true; |
1764 | break; | 1796 | break; |
1765 | case Qt::Key_Left: | 1797 | case Qt::Key_Left: |
1766 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) | 1798 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) |
1767 | mView->goPreviousMonth(); | 1799 | mView->goPreviousMonth(); |
1768 | else | 1800 | else |
1769 | mView->goPrevious(); | 1801 | mView->goPrevious(); |
1770 | showSelectedDates = true; | 1802 | showSelectedDates = true; |
1771 | break; | 1803 | break; |
1772 | case Qt::Key_Down: | 1804 | case Qt::Key_Down: |
1773 | mView->viewManager()->agendaView()->scrollOneHourDown(); | 1805 | mView->viewManager()->agendaView()->scrollOneHourDown(); |
1774 | break; | 1806 | break; |
1775 | case Qt::Key_Up: | 1807 | case Qt::Key_Up: |
1776 | mView->viewManager()->agendaView()->scrollOneHourUp(); | 1808 | mView->viewManager()->agendaView()->scrollOneHourUp(); |
1777 | break; | 1809 | break; |
1778 | case Qt::Key_K: | 1810 | case Qt::Key_K: |