summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp9
-rw-r--r--libkdepim/categoryeditdialog_base.cpp5
2 files changed, 8 insertions, 6 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 3b1a0c1..3f7a7da 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1437,1543 +1437,1544 @@ void KABCore::setJumpButtonBarVisible( bool visible )
1437 mJumpButtonBar->show(); 1437 mJumpButtonBar->show();
1438 else 1438 else
1439 mJumpButtonBar->hide(); 1439 mJumpButtonBar->hide();
1440 } 1440 }
1441 else 1441 else
1442 { 1442 {
1443 mJumpButtonBar->hide(); 1443 mJumpButtonBar->hide();
1444 } 1444 }
1445 } 1445 }
1446} 1446}
1447 1447
1448 1448
1449void KABCore::setDetailsToState() 1449void KABCore::setDetailsToState()
1450{ 1450{
1451 setDetailsVisible( mActionDetails->isChecked() ); 1451 setDetailsVisible( mActionDetails->isChecked() );
1452} 1452}
1453void KABCore::setDetailsToggle() 1453void KABCore::setDetailsToggle()
1454{ 1454{
1455 mActionDetails->setChecked( !mActionDetails->isChecked() ); 1455 mActionDetails->setChecked( !mActionDetails->isChecked() );
1456 setDetailsToState(); 1456 setDetailsToState();
1457} 1457}
1458 1458
1459 1459
1460 1460
1461void KABCore::setDetailsVisible( bool visible ) 1461void KABCore::setDetailsVisible( bool visible )
1462{ 1462{
1463 if (visible && mDetails->isHidden()) 1463 if (visible && mDetails->isHidden())
1464 { 1464 {
1465 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1465 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1466 if ( addrList.count() > 0 ) 1466 if ( addrList.count() > 0 )
1467 mDetails->setAddressee( addrList[ 0 ] ); 1467 mDetails->setAddressee( addrList[ 0 ] );
1468 } 1468 }
1469 1469
1470 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between 1470 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between
1471 // the listview and the detailview. We do that by changing the splitbar size. 1471 // the listview and the detailview. We do that by changing the splitbar size.
1472 if (mMultipleViewsAtOnce) 1472 if (mMultipleViewsAtOnce)
1473 { 1473 {
1474 if ( visible ) 1474 if ( visible )
1475 mDetails->show(); 1475 mDetails->show();
1476 else 1476 else
1477 mDetails->hide(); 1477 mDetails->hide();
1478 } 1478 }
1479 else 1479 else
1480 { 1480 {
1481 if ( visible ) { 1481 if ( visible ) {
1482 mViewManager->hide(); 1482 mViewManager->hide();
1483 mDetails->show(); 1483 mDetails->show();
1484 mIncSearchWidget->setFocus(); 1484 mIncSearchWidget->setFocus();
1485 } 1485 }
1486 else { 1486 else {
1487 mViewManager->show(); 1487 mViewManager->show();
1488 mDetails->hide(); 1488 mDetails->hide();
1489 mViewManager->setFocusAV(); 1489 mViewManager->setFocusAV();
1490 } 1490 }
1491 setJumpButtonBarVisible( !visible ); 1491 setJumpButtonBarVisible( !visible );
1492 } 1492 }
1493 1493
1494} 1494}
1495 1495
1496void KABCore::extensionChanged( int id ) 1496void KABCore::extensionChanged( int id )
1497{ 1497{
1498 //change the details view only for non desktop systems 1498 //change the details view only for non desktop systems
1499#ifndef DESKTOP_VERSION 1499#ifndef DESKTOP_VERSION
1500 1500
1501 if (id == 0) 1501 if (id == 0)
1502 { 1502 {
1503 //the user disabled the extension. 1503 //the user disabled the extension.
1504 1504
1505 if (mMultipleViewsAtOnce) 1505 if (mMultipleViewsAtOnce)
1506 { // enable detailsview again 1506 { // enable detailsview again
1507 setDetailsVisible( true ); 1507 setDetailsVisible( true );
1508 mActionDetails->setChecked( true ); 1508 mActionDetails->setChecked( true );
1509 } 1509 }
1510 else 1510 else
1511 { //go back to the listview 1511 { //go back to the listview
1512 setDetailsVisible( false ); 1512 setDetailsVisible( false );
1513 mActionDetails->setChecked( false ); 1513 mActionDetails->setChecked( false );
1514 mActionDetails->setEnabled(true); 1514 mActionDetails->setEnabled(true);
1515 } 1515 }
1516 1516
1517 } 1517 }
1518 else 1518 else
1519 { 1519 {
1520 //the user enabled the extension. 1520 //the user enabled the extension.
1521 setDetailsVisible( false ); 1521 setDetailsVisible( false );
1522 mActionDetails->setChecked( false ); 1522 mActionDetails->setChecked( false );
1523 1523
1524 if (!mMultipleViewsAtOnce) 1524 if (!mMultipleViewsAtOnce)
1525 { 1525 {
1526 mActionDetails->setEnabled(false); 1526 mActionDetails->setEnabled(false);
1527 } 1527 }
1528 1528
1529 mExtensionManager->setSelectionChanged(); 1529 mExtensionManager->setSelectionChanged();
1530 1530
1531 } 1531 }
1532 1532
1533#endif// DESKTOP_VERSION 1533#endif// DESKTOP_VERSION
1534 1534
1535} 1535}
1536 1536
1537 1537
1538void KABCore::extensionModified( const KABC::Addressee::List &list ) 1538void KABCore::extensionModified( const KABC::Addressee::List &list )
1539{ 1539{
1540 1540
1541 if ( list.count() != 0 ) { 1541 if ( list.count() != 0 ) {
1542 KABC::Addressee::List::ConstIterator it; 1542 KABC::Addressee::List::ConstIterator it;
1543 for ( it = list.begin(); it != list.end(); ++it ) 1543 for ( it = list.begin(); it != list.end(); ++it )
1544 mAddressBook->insertAddressee( *it ); 1544 mAddressBook->insertAddressee( *it );
1545 if ( list.count() > 1 ) 1545 if ( list.count() > 1 )
1546 setModified(); 1546 setModified();
1547 else 1547 else
1548 setModifiedWOrefresh(); 1548 setModifiedWOrefresh();
1549 } 1549 }
1550 if ( list.count() == 0 ) 1550 if ( list.count() == 0 )
1551 mViewManager->refreshView(); 1551 mViewManager->refreshView();
1552 else 1552 else
1553 mViewManager->refreshView( list[ 0 ].uid() ); 1553 mViewManager->refreshView( list[ 0 ].uid() );
1554 1554
1555 1555
1556 1556
1557} 1557}
1558 1558
1559QString KABCore::getNameByPhone( const QString &phone ) 1559QString KABCore::getNameByPhone( const QString &phone )
1560{ 1560{
1561#ifndef KAB_EMBEDDED 1561#ifndef KAB_EMBEDDED
1562 QRegExp r( "[/*/-/ ]" ); 1562 QRegExp r( "[/*/-/ ]" );
1563 QString localPhone( phone ); 1563 QString localPhone( phone );
1564 1564
1565 bool found = false; 1565 bool found = false;
1566 QString ownerName = ""; 1566 QString ownerName = "";
1567 KABC::AddressBook::Iterator iter; 1567 KABC::AddressBook::Iterator iter;
1568 KABC::PhoneNumber::List::Iterator phoneIter; 1568 KABC::PhoneNumber::List::Iterator phoneIter;
1569 KABC::PhoneNumber::List phoneList; 1569 KABC::PhoneNumber::List phoneList;
1570 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) { 1570 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) {
1571 phoneList = (*iter).phoneNumbers(); 1571 phoneList = (*iter).phoneNumbers();
1572 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() ); 1572 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() );
1573 ++phoneIter) { 1573 ++phoneIter) {
1574 // Get rid of separator chars so just the numbers are compared. 1574 // Get rid of separator chars so just the numbers are compared.
1575 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) { 1575 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) {
1576 ownerName = (*iter).formattedName(); 1576 ownerName = (*iter).formattedName();
1577 found = true; 1577 found = true;
1578 } 1578 }
1579 } 1579 }
1580 } 1580 }
1581 1581
1582 return ownerName; 1582 return ownerName;
1583#else //KAB_EMBEDDED 1583#else //KAB_EMBEDDED
1584 qDebug("KABCore::getNameByPhone finsih method"); 1584 qDebug("KABCore::getNameByPhone finsih method");
1585 return ""; 1585 return "";
1586#endif //KAB_EMBEDDED 1586#endif //KAB_EMBEDDED
1587 1587
1588} 1588}
1589 1589
1590void KABCore::openConfigDialog() 1590void KABCore::openConfigDialog()
1591{ 1591{
1592 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true ); 1592 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true );
1593 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); 1593 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" );
1594 ConfigureDialog->addModule(kabcfg ); 1594 ConfigureDialog->addModule(kabcfg );
1595 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" ); 1595 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" );
1596 ConfigureDialog->addModule(kdelibcfg ); 1596 ConfigureDialog->addModule(kdelibcfg );
1597 1597
1598 connect( ConfigureDialog, SIGNAL( applyClicked() ), 1598 connect( ConfigureDialog, SIGNAL( applyClicked() ),
1599 this, SLOT( configurationChanged() ) ); 1599 this, SLOT( configurationChanged() ) );
1600 connect( ConfigureDialog, SIGNAL( okClicked() ), 1600 connect( ConfigureDialog, SIGNAL( okClicked() ),
1601 this, SLOT( configurationChanged() ) ); 1601 this, SLOT( configurationChanged() ) );
1602 saveSettings(); 1602 saveSettings();
1603#ifndef DESKTOP_VERSION 1603#ifndef DESKTOP_VERSION
1604 ConfigureDialog->showMaximized(); 1604 ConfigureDialog->showMaximized();
1605#endif 1605#endif
1606 if ( ConfigureDialog->exec() ) 1606 if ( ConfigureDialog->exec() )
1607 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") ); 1607 KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") );
1608 delete ConfigureDialog; 1608 delete ConfigureDialog;
1609} 1609}
1610 1610
1611void KABCore::openLDAPDialog() 1611void KABCore::openLDAPDialog()
1612{ 1612{
1613#ifndef KAB_EMBEDDED 1613#ifndef KAB_EMBEDDED
1614 if ( !mLdapSearchDialog ) { 1614 if ( !mLdapSearchDialog ) {
1615 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this ); 1615 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this );
1616 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager, 1616 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager,
1617 SLOT( refreshView() ) ); 1617 SLOT( refreshView() ) );
1618 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this, 1618 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this,
1619 SLOT( setModified() ) ); 1619 SLOT( setModified() ) );
1620 } else 1620 } else
1621 mLdapSearchDialog->restoreSettings(); 1621 mLdapSearchDialog->restoreSettings();
1622 1622
1623 if ( mLdapSearchDialog->isOK() ) 1623 if ( mLdapSearchDialog->isOK() )
1624 mLdapSearchDialog->exec(); 1624 mLdapSearchDialog->exec();
1625#else //KAB_EMBEDDED 1625#else //KAB_EMBEDDED
1626 qDebug("KABCore::openLDAPDialog() finsih method"); 1626 qDebug("KABCore::openLDAPDialog() finsih method");
1627#endif //KAB_EMBEDDED 1627#endif //KAB_EMBEDDED
1628} 1628}
1629 1629
1630void KABCore::print() 1630void KABCore::print()
1631{ 1631{
1632#ifndef KAB_EMBEDDED 1632#ifndef KAB_EMBEDDED
1633 KPrinter printer; 1633 KPrinter printer;
1634 if ( !printer.setup( this ) ) 1634 if ( !printer.setup( this ) )
1635 return; 1635 return;
1636 1636
1637 KABPrinting::PrintingWizard wizard( &printer, mAddressBook, 1637 KABPrinting::PrintingWizard wizard( &printer, mAddressBook,
1638 mViewManager->selectedUids(), this ); 1638 mViewManager->selectedUids(), this );
1639 1639
1640 wizard.exec(); 1640 wizard.exec();
1641#else //KAB_EMBEDDED 1641#else //KAB_EMBEDDED
1642 qDebug("KABCore::print() finsih method"); 1642 qDebug("KABCore::print() finsih method");
1643#endif //KAB_EMBEDDED 1643#endif //KAB_EMBEDDED
1644 1644
1645} 1645}
1646 1646
1647 1647
1648void KABCore::addGUIClient( KXMLGUIClient *client ) 1648void KABCore::addGUIClient( KXMLGUIClient *client )
1649{ 1649{
1650 if ( mGUIClient ) 1650 if ( mGUIClient )
1651 mGUIClient->insertChildClient( client ); 1651 mGUIClient->insertChildClient( client );
1652 else 1652 else
1653 KMessageBox::error( this, "no KXMLGUICLient"); 1653 KMessageBox::error( this, "no KXMLGUICLient");
1654} 1654}
1655 1655
1656 1656
1657void KABCore::configurationChanged() 1657void KABCore::configurationChanged()
1658{ 1658{
1659 mExtensionManager->reconfigure(); 1659 mExtensionManager->reconfigure();
1660} 1660}
1661 1661
1662void KABCore::addressBookChanged() 1662void KABCore::addressBookChanged()
1663{ 1663{
1664/*US 1664/*US
1665 QDictIterator<AddresseeEditorDialog> it( mEditorDict ); 1665 QDictIterator<AddresseeEditorDialog> it( mEditorDict );
1666 while ( it.current() ) { 1666 while ( it.current() ) {
1667 if ( it.current()->dirty() ) { 1667 if ( it.current()->dirty() ) {
1668 QString text = i18n( "Data has been changed externally. Unsaved " 1668 QString text = i18n( "Data has been changed externally. Unsaved "
1669 "changes will be lost." ); 1669 "changes will be lost." );
1670 KMessageBox::information( this, text ); 1670 KMessageBox::information( this, text );
1671 } 1671 }
1672 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) ); 1672 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) );
1673 ++it; 1673 ++it;
1674 } 1674 }
1675*/ 1675*/
1676 if (mEditorDialog) 1676 if (mEditorDialog)
1677 { 1677 {
1678 if (mEditorDialog->dirty()) 1678 if (mEditorDialog->dirty())
1679 { 1679 {
1680 QString text = i18n( "Data has been changed externally. Unsaved " 1680 QString text = i18n( "Data has been changed externally. Unsaved "
1681 "changes will be lost." ); 1681 "changes will be lost." );
1682 KMessageBox::information( this, text ); 1682 KMessageBox::information( this, text );
1683 } 1683 }
1684 QString currentuid = mEditorDialog->addressee().uid(); 1684 QString currentuid = mEditorDialog->addressee().uid();
1685 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) ); 1685 mEditorDialog->setAddressee( mAddressBook->findByUid( currentuid ) );
1686 } 1686 }
1687 mViewManager->refreshView(); 1687 mViewManager->refreshView();
1688 1688
1689 1689
1690} 1690}
1691 1691
1692AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent, 1692AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent,
1693 const char *name ) 1693 const char *name )
1694{ 1694{
1695 1695
1696 if ( mEditorDialog == 0 ) { 1696 if ( mEditorDialog == 0 ) {
1697 mEditorDialog = new AddresseeEditorDialog( this, parent, 1697 mEditorDialog = new AddresseeEditorDialog( this, parent,
1698 name ? name : "editorDialog" ); 1698 name ? name : "editorDialog" );
1699 1699
1700 1700
1701 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ), 1701 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ),
1702 SLOT( contactModified( const KABC::Addressee& ) ) ); 1702 SLOT( contactModified( const KABC::Addressee& ) ) );
1703 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ), 1703 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ),
1704 // SLOT( slotEditorDestroyed( const QString& ) ) ; 1704 // SLOT( slotEditorDestroyed( const QString& ) ) ;
1705 } 1705 }
1706 1706
1707 return mEditorDialog; 1707 return mEditorDialog;
1708} 1708}
1709 1709
1710void KABCore::slotEditorDestroyed( const QString &uid ) 1710void KABCore::slotEditorDestroyed( const QString &uid )
1711{ 1711{
1712 //mEditorDict.remove( uid ); 1712 //mEditorDict.remove( uid );
1713} 1713}
1714 1714
1715void KABCore::initGUI() 1715void KABCore::initGUI()
1716{ 1716{
1717#ifndef KAB_EMBEDDED 1717#ifndef KAB_EMBEDDED
1718 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1718 QHBoxLayout *topLayout = new QHBoxLayout( this );
1719 topLayout->setSpacing( KDialogBase::spacingHint() ); 1719 topLayout->setSpacing( KDialogBase::spacingHint() );
1720 1720
1721 mExtensionBarSplitter = new QSplitter( this ); 1721 mExtensionBarSplitter = new QSplitter( this );
1722 mExtensionBarSplitter->setOrientation( Qt::Vertical ); 1722 mExtensionBarSplitter->setOrientation( Qt::Vertical );
1723 1723
1724 mDetailsSplitter = new QSplitter( mExtensionBarSplitter ); 1724 mDetailsSplitter = new QSplitter( mExtensionBarSplitter );
1725 1725
1726 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1726 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1727 mIncSearchWidget = new IncSearchWidget( viewSpace ); 1727 mIncSearchWidget = new IncSearchWidget( viewSpace );
1728 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1728 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1729 SLOT( incrementalSearch( const QString& ) ) ); 1729 SLOT( incrementalSearch( const QString& ) ) );
1730 1730
1731 mViewManager = new ViewManager( this, viewSpace ); 1731 mViewManager = new ViewManager( this, viewSpace );
1732 viewSpace->setStretchFactor( mViewManager, 1 ); 1732 viewSpace->setStretchFactor( mViewManager, 1 );
1733 1733
1734 mDetails = new ViewContainer( mDetailsSplitter ); 1734 mDetails = new ViewContainer( mDetailsSplitter );
1735 1735
1736 mJumpButtonBar = new JumpButtonBar( this, this ); 1736 mJumpButtonBar = new JumpButtonBar( this, this );
1737 1737
1738 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1738 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1739 1739
1740 topLayout->addWidget( mExtensionBarSplitter ); 1740 topLayout->addWidget( mExtensionBarSplitter );
1741 topLayout->setStretchFactor( mExtensionBarSplitter, 100 ); 1741 topLayout->setStretchFactor( mExtensionBarSplitter, 100 );
1742 topLayout->addWidget( mJumpButtonBar ); 1742 topLayout->addWidget( mJumpButtonBar );
1743 //topLayout->setStretchFactor( mJumpButtonBar, 1 ); 1743 //topLayout->setStretchFactor( mJumpButtonBar, 1 );
1744 1744
1745 mXXPortManager = new XXPortManager( this, this ); 1745 mXXPortManager = new XXPortManager( this, this );
1746 1746
1747#else //KAB_EMBEDDED 1747#else //KAB_EMBEDDED
1748 //US initialize viewMenu before settingup viewmanager. 1748 //US initialize viewMenu before settingup viewmanager.
1749 // Viewmanager needs this menu to plugin submenues. 1749 // Viewmanager needs this menu to plugin submenues.
1750 viewMenu = new QPopupMenu( this ); 1750 viewMenu = new QPopupMenu( this );
1751 settingsMenu = new QPopupMenu( this ); 1751 settingsMenu = new QPopupMenu( this );
1752 //filterMenu = new QPopupMenu( this ); 1752 //filterMenu = new QPopupMenu( this );
1753 ImportMenu = new QPopupMenu( this ); 1753 ImportMenu = new QPopupMenu( this );
1754 ExportMenu = new QPopupMenu( this ); 1754 ExportMenu = new QPopupMenu( this );
1755 syncMenu = new QPopupMenu( this ); 1755 syncMenu = new QPopupMenu( this );
1756 changeMenu= new QPopupMenu( this ); 1756 changeMenu= new QPopupMenu( this );
1757 beamMenu= new QPopupMenu( this ); 1757 beamMenu= new QPopupMenu( this );
1758 1758
1759//US since we have no splitter for the embedded system, setup 1759//US since we have no splitter for the embedded system, setup
1760// a layout with two frames. One left and one right. 1760// a layout with two frames. One left and one right.
1761 1761
1762 QBoxLayout *topLayout; 1762 QBoxLayout *topLayout;
1763 1763
1764 // = new QHBoxLayout( this ); 1764 // = new QHBoxLayout( this );
1765// QBoxLayout *topLayout = (QBoxLayout*)layout(); 1765// QBoxLayout *topLayout = (QBoxLayout*)layout();
1766 1766
1767// QWidget *mainBox = new QWidget( this ); 1767// QWidget *mainBox = new QWidget( this );
1768// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); 1768// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox);
1769 1769
1770#ifdef DESKTOP_VERSION 1770#ifdef DESKTOP_VERSION
1771 topLayout = new QHBoxLayout( this ); 1771 topLayout = new QHBoxLayout( this );
1772 1772
1773 1773
1774 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1774 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1775 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1775 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1776 1776
1777 topLayout->addWidget(mMiniSplitter ); 1777 topLayout->addWidget(mMiniSplitter );
1778 1778
1779 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); 1779 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter );
1780 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1780 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1781 mViewManager = new ViewManager( this, mExtensionBarSplitter ); 1781 mViewManager = new ViewManager( this, mExtensionBarSplitter );
1782 mDetails = new ViewContainer( mMiniSplitter ); 1782 mDetails = new ViewContainer( mMiniSplitter );
1783 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1783 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1784#else 1784#else
1785 if ( QApplication::desktop()->width() > 480 ) { 1785 if ( QApplication::desktop()->width() > 480 ) {
1786 topLayout = new QHBoxLayout( this ); 1786 topLayout = new QHBoxLayout( this );
1787 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1787 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1788 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1788 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1789 } else { 1789 } else {
1790 1790
1791 topLayout = new QHBoxLayout( this ); 1791 topLayout = new QHBoxLayout( this );
1792 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 1792 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
1793 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1793 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1794 } 1794 }
1795 1795
1796 topLayout->addWidget(mMiniSplitter ); 1796 topLayout->addWidget(mMiniSplitter );
1797 mViewManager = new ViewManager( this, mMiniSplitter ); 1797 mViewManager = new ViewManager( this, mMiniSplitter );
1798 mDetails = new ViewContainer( mMiniSplitter ); 1798 mDetails = new ViewContainer( mMiniSplitter );
1799 1799
1800 1800
1801 mExtensionManager = new ExtensionManager( this, mMiniSplitter ); 1801 mExtensionManager = new ExtensionManager( this, mMiniSplitter );
1802#endif 1802#endif
1803 //eh->hide(); 1803 //eh->hide();
1804 // topLayout->addWidget(mExtensionManager ); 1804 // topLayout->addWidget(mExtensionManager );
1805 1805
1806 1806
1807/*US 1807/*US
1808#ifndef KAB_NOSPLITTER 1808#ifndef KAB_NOSPLITTER
1809 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1809 QHBoxLayout *topLayout = new QHBoxLayout( this );
1810//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1810//US topLayout->setSpacing( KDialogBase::spacingHint() );
1811 topLayout->setSpacing( 10 ); 1811 topLayout->setSpacing( 10 );
1812 1812
1813 mDetailsSplitter = new QSplitter( this ); 1813 mDetailsSplitter = new QSplitter( this );
1814 1814
1815 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1815 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1816 1816
1817 mViewManager = new ViewManager( this, viewSpace ); 1817 mViewManager = new ViewManager( this, viewSpace );
1818 viewSpace->setStretchFactor( mViewManager, 1 ); 1818 viewSpace->setStretchFactor( mViewManager, 1 );
1819 1819
1820 mDetails = new ViewContainer( mDetailsSplitter ); 1820 mDetails = new ViewContainer( mDetailsSplitter );
1821 1821
1822 topLayout->addWidget( mDetailsSplitter ); 1822 topLayout->addWidget( mDetailsSplitter );
1823 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1823 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1824#else //KAB_NOSPLITTER 1824#else //KAB_NOSPLITTER
1825 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1825 QHBoxLayout *topLayout = new QHBoxLayout( this );
1826//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1826//US topLayout->setSpacing( KDialogBase::spacingHint() );
1827 topLayout->setSpacing( 10 ); 1827 topLayout->setSpacing( 10 );
1828 1828
1829// mDetailsSplitter = new QSplitter( this ); 1829// mDetailsSplitter = new QSplitter( this );
1830 1830
1831 QVBox *viewSpace = new QVBox( this ); 1831 QVBox *viewSpace = new QVBox( this );
1832 1832
1833 mViewManager = new ViewManager( this, viewSpace ); 1833 mViewManager = new ViewManager( this, viewSpace );
1834 viewSpace->setStretchFactor( mViewManager, 1 ); 1834 viewSpace->setStretchFactor( mViewManager, 1 );
1835 1835
1836 mDetails = new ViewContainer( this ); 1836 mDetails = new ViewContainer( this );
1837 1837
1838 topLayout->addWidget( viewSpace ); 1838 topLayout->addWidget( viewSpace );
1839// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1839// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1840 topLayout->addWidget( mDetails ); 1840 topLayout->addWidget( mDetails );
1841#endif //KAB_NOSPLITTER 1841#endif //KAB_NOSPLITTER
1842*/ 1842*/
1843 1843
1844 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 1844 syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
1845 syncManager->setBlockSave(false); 1845 syncManager->setBlockSave(false);
1846 1846
1847 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 1847 connect(syncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
1848 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 1848 connect(syncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
1849 QString sync_file = sentSyncFile(); 1849 QString sync_file = sentSyncFile();
1850 //qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1()); 1850 //qDebug("KABCore::initGUI()::setting tmp sync file to:%s ",sync_file.latin1());
1851 syncManager->setDefaultFileName( sync_file ); 1851 syncManager->setDefaultFileName( sync_file );
1852 //connect(syncManager , SIGNAL( ), this, SLOT( ) ); 1852 //connect(syncManager , SIGNAL( ), this, SLOT( ) );
1853 1853
1854#endif //KAB_EMBEDDED 1854#endif //KAB_EMBEDDED
1855 initActions(); 1855 initActions();
1856 1856
1857#ifdef KAB_EMBEDDED 1857#ifdef KAB_EMBEDDED
1858 addActionsManually(); 1858 addActionsManually();
1859 //US make sure the export and import menues are initialized before creating the xxPortManager. 1859 //US make sure the export and import menues are initialized before creating the xxPortManager.
1860 mXXPortManager = new XXPortManager( this, this ); 1860 mXXPortManager = new XXPortManager( this, this );
1861 1861
1862 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1862 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1863 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1863 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1864 // mActionQuit->plug ( mMainWindow->toolBar()); 1864 // mActionQuit->plug ( mMainWindow->toolBar());
1865 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1865 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1866 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1866 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1867 // mIncSearchWidget->hide(); 1867 // mIncSearchWidget->hide();
1868 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1868 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1869 SLOT( incrementalSearch( const QString& ) ) ); 1869 SLOT( incrementalSearch( const QString& ) ) );
1870 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) ); 1870 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) );
1871 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) ); 1871 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) );
1872 1872
1873 mJumpButtonBar = new JumpButtonBar( this, this ); 1873 mJumpButtonBar = new JumpButtonBar( this, this );
1874 1874
1875 topLayout->addWidget( mJumpButtonBar ); 1875 topLayout->addWidget( mJumpButtonBar );
1876//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1876//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1877 1877
1878// mMainWindow->getIconToolBar()->raise(); 1878// mMainWindow->getIconToolBar()->raise();
1879 1879
1880#endif //KAB_EMBEDDED 1880#endif //KAB_EMBEDDED
1881 1881
1882} 1882}
1883void KABCore::initActions() 1883void KABCore::initActions()
1884{ 1884{
1885//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1885//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1886 1886
1887#ifndef KAB_EMBEDDED 1887#ifndef KAB_EMBEDDED
1888 connect( QApplication::clipboard(), SIGNAL( dataChanged() ), 1888 connect( QApplication::clipboard(), SIGNAL( dataChanged() ),
1889 SLOT( clipboardDataChanged() ) ); 1889 SLOT( clipboardDataChanged() ) );
1890#endif //KAB_EMBEDDED 1890#endif //KAB_EMBEDDED
1891 1891
1892 // file menu 1892 // file menu
1893 1893
1894 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); 1894 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() );
1895 //mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); 1895 //mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() );
1896 mActionPrint = new KAction( i18n( "&Print View" ), "fileprint", CTRL + Key_P, mViewManager, 1896 mActionPrint = new KAction( i18n( "&Print View" ), "fileprint", CTRL + Key_P, mViewManager,
1897 SLOT( printView() ), actionCollection(), "kaddressbook_print" ); 1897 SLOT( printView() ), actionCollection(), "kaddressbook_print" );
1898 1898
1899 1899
1900 mActionPrintDetails = new KAction( i18n( "&Print Details" ), "fileprint", 0, mDetails, 1900 mActionPrintDetails = new KAction( i18n( "&Print Details" ), "fileprint", 0, mDetails,
1901 SLOT( printView() ), actionCollection(), "kaddressbook_print2" ); 1901 SLOT( printView() ), actionCollection(), "kaddressbook_print2" );
1902 1902
1903 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1903 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1904 SLOT( save() ), actionCollection(), "file_sync" ); 1904 SLOT( save() ), actionCollection(), "file_sync" );
1905 1905
1906 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1906 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1907 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1907 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1908 1908
1909 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1909 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1910 this, SLOT( mailVCard() ), 1910 this, SLOT( mailVCard() ),
1911 actionCollection(), "file_mail_vcard"); 1911 actionCollection(), "file_mail_vcard");
1912 1912
1913 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this, 1913 mActionExport2phone = new KAction( i18n( "Export to phone" ), "ex2phone", 0, this,
1914 SLOT( export2phone() ), actionCollection(), 1914 SLOT( export2phone() ), actionCollection(),
1915 "kaddressbook_ex2phone" ); 1915 "kaddressbook_ex2phone" );
1916 1916
1917 mActionBeamVCard = 0; 1917 mActionBeamVCard = 0;
1918 mActionBeam = 0; 1918 mActionBeam = 0;
1919 1919
1920#ifndef DESKTOP_VERSION 1920#ifndef DESKTOP_VERSION
1921 if ( Ir::supported() ) { 1921 if ( Ir::supported() ) {
1922 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this, 1922 mActionBeamVCard = new KAction( i18n( "Beam v&Card(s)..." ), "beam", 0, this,
1923 SLOT( beamVCard() ), actionCollection(), 1923 SLOT( beamVCard() ), actionCollection(),
1924 "kaddressbook_beam_vcard" ); 1924 "kaddressbook_beam_vcard" );
1925 1925
1926 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this, 1926 mActionBeam = new KAction( i18n( "&Beam personal vCard" ), "beam", 0, this,
1927 SLOT( beamMySelf() ), actionCollection(), 1927 SLOT( beamMySelf() ), actionCollection(),
1928 "kaddressbook_beam_myself" ); 1928 "kaddressbook_beam_myself" );
1929 } 1929 }
1930#endif 1930#endif
1931 1931
1932 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, 1932 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0,
1933 this, SLOT( editContact2() ), 1933 this, SLOT( editContact2() ),
1934 actionCollection(), "file_properties" ); 1934 actionCollection(), "file_properties" );
1935 1935
1936#ifdef KAB_EMBEDDED 1936#ifdef KAB_EMBEDDED
1937 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() ); 1937 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() );
1938 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0, 1938 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0,
1939 mMainWindow, SLOT( exit() ), 1939 mMainWindow, SLOT( exit() ),
1940 actionCollection(), "quit" ); 1940 actionCollection(), "quit" );
1941#endif //KAB_EMBEDDED 1941#endif //KAB_EMBEDDED
1942 1942
1943 // edit menu 1943 // edit menu
1944 if ( mIsPart ) { 1944 if ( mIsPart ) {
1945 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this, 1945 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this,
1946 SLOT( copyContacts() ), actionCollection(), 1946 SLOT( copyContacts() ), actionCollection(),
1947 "kaddressbook_copy" ); 1947 "kaddressbook_copy" );
1948 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this, 1948 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this,
1949 SLOT( cutContacts() ), actionCollection(), 1949 SLOT( cutContacts() ), actionCollection(),
1950 "kaddressbook_cut" ); 1950 "kaddressbook_cut" );
1951 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this, 1951 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this,
1952 SLOT( pasteContacts() ), actionCollection(), 1952 SLOT( pasteContacts() ), actionCollection(),
1953 "kaddressbook_paste" ); 1953 "kaddressbook_paste" );
1954 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this, 1954 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this,
1955 SLOT( selectAllContacts() ), actionCollection(), 1955 SLOT( selectAllContacts() ), actionCollection(),
1956 "kaddressbook_select_all" ); 1956 "kaddressbook_select_all" );
1957 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this, 1957 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this,
1958 SLOT( undo() ), actionCollection(), 1958 SLOT( undo() ), actionCollection(),
1959 "kaddressbook_undo" ); 1959 "kaddressbook_undo" );
1960 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z, 1960 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z,
1961 this, SLOT( redo() ), actionCollection(), 1961 this, SLOT( redo() ), actionCollection(),
1962 "kaddressbook_redo" ); 1962 "kaddressbook_redo" );
1963 } else { 1963 } else {
1964 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() ); 1964 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() );
1965 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() ); 1965 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() );
1966 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() ); 1966 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() );
1967 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() ); 1967 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() );
1968 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() ); 1968 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() );
1969 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() ); 1969 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() );
1970 } 1970 }
1971 1971
1972 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete", 1972 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete",
1973 Key_Delete, this, SLOT( deleteContacts() ), 1973 Key_Delete, this, SLOT( deleteContacts() ),
1974 actionCollection(), "edit_delete" ); 1974 actionCollection(), "edit_delete" );
1975 1975
1976 mActionUndo->setEnabled( false ); 1976 mActionUndo->setEnabled( false );
1977 mActionRedo->setEnabled( false ); 1977 mActionRedo->setEnabled( false );
1978 1978
1979 // settings menu 1979 // settings menu
1980#ifdef KAB_EMBEDDED 1980#ifdef KAB_EMBEDDED
1981//US special menuentry to configure the addressbook resources. On KDE 1981//US special menuentry to configure the addressbook resources. On KDE
1982// you do that through the control center !!! 1982// you do that through the control center !!!
1983 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this, 1983 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this,
1984 SLOT( configureResources() ), actionCollection(), 1984 SLOT( configureResources() ), actionCollection(),
1985 "kaddressbook_configure_resources" ); 1985 "kaddressbook_configure_resources" );
1986#endif //KAB_EMBEDDED 1986#endif //KAB_EMBEDDED
1987 1987
1988 if ( mIsPart ) { 1988 if ( mIsPart ) {
1989 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this, 1989 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this,
1990 SLOT( openConfigDialog() ), actionCollection(), 1990 SLOT( openConfigDialog() ), actionCollection(),
1991 "kaddressbook_configure" ); 1991 "kaddressbook_configure" );
1992 1992
1993 //US not implemented yet 1993 //US not implemented yet
1994 //mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0, 1994 //mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0,
1995 // this, SLOT( configureKeyBindings() ), actionCollection(), 1995 // this, SLOT( configureKeyBindings() ), actionCollection(),
1996 // "kaddressbook_configure_shortcuts" ); 1996 // "kaddressbook_configure_shortcuts" );
1997#ifdef KAB_EMBEDDED 1997#ifdef KAB_EMBEDDED
1998 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() ); 1998 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() );
1999 mActionConfigureToolbars->setEnabled( false ); 1999 mActionConfigureToolbars->setEnabled( false );
2000#endif //KAB_EMBEDDED 2000#endif //KAB_EMBEDDED
2001 2001
2002 } else { 2002 } else {
2003 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() ); 2003 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() );
2004 2004
2005 //US not implemented yet 2005 //US not implemented yet
2006 //mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() ); 2006 //mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() );
2007 } 2007 }
2008 2008
2009 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0, 2009 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0,
2010 actionCollection(), "options_show_jump_bar" ); 2010 actionCollection(), "options_show_jump_bar" );
2011 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBar( bool ) ) ); 2011 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBar( bool ) ) );
2012 2012
2013 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0, 2013 mActionDetails = new KToggleAction( i18n( "Show Details" ), "listview", 0,
2014 actionCollection(), "options_show_details" ); 2014 actionCollection(), "options_show_details" );
2015 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) ); 2015 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) );
2016 2016
2017 2017
2018 mActionBR = new KToggleAction( i18n( "Beam receive enabled" ), "beam", 0, this, 2018 mActionBR = new KToggleAction( i18n( "Beam receive enabled" ), "beam", 0, this,
2019 SLOT( toggleBeamReceive() ), actionCollection(), 2019 SLOT( toggleBeamReceive() ), actionCollection(),
2020 "kaddressbook_beam_rec" ); 2020 "kaddressbook_beam_rec" );
2021 2021
2022 2022
2023 // misc 2023 // misc
2024 // only enable LDAP lookup if we can handle the protocol 2024 // only enable LDAP lookup if we can handle the protocol
2025#ifndef KAB_EMBEDDED 2025#ifndef KAB_EMBEDDED
2026 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) { 2026 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) {
2027 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0, 2027 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0,
2028 this, SLOT( openLDAPDialog() ), actionCollection(), 2028 this, SLOT( openLDAPDialog() ), actionCollection(),
2029 "ldap_lookup" ); 2029 "ldap_lookup" );
2030 } 2030 }
2031#else //KAB_EMBEDDED 2031#else //KAB_EMBEDDED
2032 //qDebug("KABCore::initActions() LDAP has to be implemented"); 2032 //qDebug("KABCore::initActions() LDAP has to be implemented");
2033#endif //KAB_EMBEDDED 2033#endif //KAB_EMBEDDED
2034 2034
2035 2035
2036 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, 2036 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this,
2037 SLOT( setWhoAmI() ), actionCollection(), 2037 SLOT( setWhoAmI() ), actionCollection(),
2038 "set_personal" ); 2038 "set_personal" );
2039 2039
2040 2040
2041 mActionCategories = new KAction( i18n( "Set Categories for Contacts..." ), 0, this, 2041 mActionCategories = new KAction( i18n( "Set Categories for Contacts..." ), 0, this,
2042 SLOT( setCategories() ), actionCollection(), 2042 SLOT( setCategories() ), actionCollection(),
2043 "edit_set_categories" ); 2043 "edit_set_categories" );
2044 mActionEditCategories = new KAction( i18n( "Edit Category List..." ), 0, this, 2044 mActionEditCategories = new KAction( i18n( "Edit Category List..." ), 0, this,
2045 SLOT( editCategories() ), actionCollection(), 2045 SLOT( editCategories() ), actionCollection(),
2046 "edit__categories" ); 2046 "edit__categories" );
2047 2047
2048 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, 2048 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this,
2049 SLOT( removeVoice() ), actionCollection(), 2049 SLOT( removeVoice() ), actionCollection(),
2050 "remove_voice" ); 2050 "remove_voice" );
2051 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this, 2051 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this,
2052 SLOT( setFormattedName() ), actionCollection(), 2052 SLOT( setFormattedName() ), actionCollection(),
2053 "set_formatted" ); 2053 "set_formatted" );
2054 2054
2055 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this, 2055 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this,
2056 SLOT( manageCategories() ), actionCollection(), 2056 SLOT( manageCategories() ), actionCollection(),
2057 "remove_voice" ); 2057 "remove_voice" );
2058 2058
2059 2059
2060 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this, 2060 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this,
2061 SLOT( importFromOL() ), actionCollection(), 2061 SLOT( importFromOL() ), actionCollection(),
2062 "import_OL" ); 2062 "import_OL" );
2063#ifdef KAB_EMBEDDED 2063#ifdef KAB_EMBEDDED
2064 mActionLicence = new KAction( i18n( "Licence" ), 0, 2064 mActionLicence = new KAction( i18n( "Licence" ), 0,
2065 this, SLOT( showLicence() ), actionCollection(), 2065 this, SLOT( showLicence() ), actionCollection(),
2066 "licence_about_data" ); 2066 "licence_about_data" );
2067 mActionFaq = new KAction( i18n( "Faq" ), 0, 2067 mActionFaq = new KAction( i18n( "Faq" ), 0,
2068 this, SLOT( faq() ), actionCollection(), 2068 this, SLOT( faq() ), actionCollection(),
2069 "faq_about_data" ); 2069 "faq_about_data" );
2070 mActionWN = new KAction( i18n( "What's New?" ), 0, 2070 mActionWN = new KAction( i18n( "What's New?" ), 0,
2071 this, SLOT( whatsnew() ), actionCollection(), 2071 this, SLOT( whatsnew() ), actionCollection(),
2072 "wn" ); 2072 "wn" );
2073 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0, 2073 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0,
2074 this, SLOT( synchowto() ), actionCollection(), 2074 this, SLOT( synchowto() ), actionCollection(),
2075 "sync" ); 2075 "sync" );
2076 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0, 2076 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0,
2077 this, SLOT( kdesynchowto() ), actionCollection(), 2077 this, SLOT( kdesynchowto() ), actionCollection(),
2078 "kdesync" ); 2078 "kdesync" );
2079 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0, 2079 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0,
2080 this, SLOT( multisynchowto() ), actionCollection(), 2080 this, SLOT( multisynchowto() ), actionCollection(),
2081 "multisync" ); 2081 "multisync" );
2082 2082
2083 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, 2083 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0,
2084 this, SLOT( createAboutData() ), actionCollection(), 2084 this, SLOT( createAboutData() ), actionCollection(),
2085 "kaddressbook_about_data" ); 2085 "kaddressbook_about_data" );
2086#endif //KAB_EMBEDDED 2086#endif //KAB_EMBEDDED
2087 2087
2088 clipboardDataChanged(); 2088 clipboardDataChanged();
2089 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2089 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2090 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2090 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2091} 2091}
2092 2092
2093//US we need this function, to plug all actions into the correct menues. 2093//US we need this function, to plug all actions into the correct menues.
2094// KDE uses a XML format to plug the actions, but we work her without this overhead. 2094// KDE uses a XML format to plug the actions, but we work her without this overhead.
2095void KABCore::addActionsManually() 2095void KABCore::addActionsManually()
2096{ 2096{
2097//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 2097//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
2098 2098
2099#ifdef KAB_EMBEDDED 2099#ifdef KAB_EMBEDDED
2100 QPopupMenu *fileMenu = new QPopupMenu( this ); 2100 QPopupMenu *fileMenu = new QPopupMenu( this );
2101 QPopupMenu *editMenu = new QPopupMenu( this ); 2101 QPopupMenu *editMenu = new QPopupMenu( this );
2102 QPopupMenu *helpMenu = new QPopupMenu( this ); 2102 QPopupMenu *helpMenu = new QPopupMenu( this );
2103 2103
2104 KToolBar* tb = mMainWindow->toolBar(); 2104 KToolBar* tb = mMainWindow->toolBar();
2105 2105
2106#ifndef DESKTOP_VERSION 2106#ifndef DESKTOP_VERSION
2107 if ( KABPrefs::instance()->mFullMenuBarVisible ) { 2107 if ( KABPrefs::instance()->mFullMenuBarVisible ) {
2108#endif 2108#endif
2109 QMenuBar* mb = mMainWindow->menuBar(); 2109 QMenuBar* mb = mMainWindow->menuBar();
2110 2110
2111 //US setup menubar. 2111 //US setup menubar.
2112 //Disable the following block if you do not want to have a menubar. 2112 //Disable the following block if you do not want to have a menubar.
2113 mb->insertItem( i18n("&File"), fileMenu ); 2113 mb->insertItem( i18n("&File"), fileMenu );
2114 mb->insertItem( i18n("&Edit"), editMenu ); 2114 mb->insertItem( i18n("&Edit"), editMenu );
2115 mb->insertItem( i18n("&View"), viewMenu ); 2115 mb->insertItem( i18n("&View"), viewMenu );
2116 mb->insertItem( i18n("&Settings"), settingsMenu ); 2116 mb->insertItem( i18n("&Settings"), settingsMenu );
2117#ifdef DESKTOP_VERSION 2117#ifdef DESKTOP_VERSION
2118 mb->insertItem( i18n("Synchronize"), syncMenu ); 2118 mb->insertItem( i18n("Synchronize"), syncMenu );
2119#else 2119#else
2120 mb->insertItem( i18n("Sync"), syncMenu ); 2120 mb->insertItem( i18n("Sync"), syncMenu );
2121#endif 2121#endif
2122 //mb->insertItem( i18n("&Change"), changeMenu ); 2122 //mb->insertItem( i18n("&Change"), changeMenu );
2123 mb->insertItem( i18n("&Help"), helpMenu ); 2123 mb->insertItem( i18n("&Help"), helpMenu );
2124 mIncSearchWidget = new IncSearchWidget( tb ); 2124 mIncSearchWidget = new IncSearchWidget( tb );
2125 // tb->insertWidget(-1, 0, mIncSearchWidget); 2125 // tb->insertWidget(-1, 0, mIncSearchWidget);
2126#ifndef DESKTOP_VERSION 2126#ifndef DESKTOP_VERSION
2127 } else { 2127 } else {
2128 //US setup toolbar 2128 //US setup toolbar
2129 QPEMenuBar *menuBarTB = new QPEMenuBar( tb ); 2129 QPEMenuBar *menuBarTB = new QPEMenuBar( tb );
2130 QPopupMenu *popupBarTB = new QPopupMenu( this ); 2130 QPopupMenu *popupBarTB = new QPopupMenu( this );
2131 menuBarTB->insertItem( SmallIcon( "z_menu" ) , popupBarTB); 2131 menuBarTB->insertItem( SmallIcon( "z_menu" ) , popupBarTB);
2132 tb->insertWidget(-1, 0, menuBarTB); 2132 tb->insertWidget(-1, 0, menuBarTB);
2133 mIncSearchWidget = new IncSearchWidget( tb ); 2133 mIncSearchWidget = new IncSearchWidget( tb );
2134 tb->enableMoving(false); 2134 tb->enableMoving(false);
2135 popupBarTB->insertItem( i18n("&File"), fileMenu ); 2135 popupBarTB->insertItem( i18n("&File"), fileMenu );
2136 popupBarTB->insertItem( i18n("&Edit"), editMenu ); 2136 popupBarTB->insertItem( i18n("&Edit"), editMenu );
2137 popupBarTB->insertItem( i18n("&View"), viewMenu ); 2137 popupBarTB->insertItem( i18n("&View"), viewMenu );
2138 popupBarTB->insertItem( i18n("&Settings"), settingsMenu ); 2138 popupBarTB->insertItem( i18n("&Settings"), settingsMenu );
2139 popupBarTB->insertItem( i18n("Synchronize"), syncMenu ); 2139 popupBarTB->insertItem( i18n("Synchronize"), syncMenu );
2140 mViewManager->getFilterAction()->plug ( popupBarTB); 2140 mViewManager->getFilterAction()->plug ( popupBarTB);
2141 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu ); 2141 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu );
2142 popupBarTB->insertItem( i18n("&Help"), helpMenu ); 2142 popupBarTB->insertItem( i18n("&Help"), helpMenu );
2143 if (QApplication::desktop()->width() > 320 ) { 2143 if (QApplication::desktop()->width() > 320 ) {
2144 // mViewManager->getFilterAction()->plug ( tb); 2144 // mViewManager->getFilterAction()->plug ( tb);
2145 } 2145 }
2146 } 2146 }
2147#endif 2147#endif
2148 // mActionQuit->plug ( mMainWindow->toolBar()); 2148 // mActionQuit->plug ( mMainWindow->toolBar());
2149 2149
2150 2150
2151 2151
2152 //US Now connect the actions with the menue entries. 2152 //US Now connect the actions with the menue entries.
2153#ifdef DESKTOP_VERSION 2153#ifdef DESKTOP_VERSION
2154 mActionPrint->plug( fileMenu ); 2154 mActionPrint->plug( fileMenu );
2155 mActionPrintDetails->plug( fileMenu ); 2155 mActionPrintDetails->plug( fileMenu );
2156 fileMenu->insertSeparator(); 2156 fileMenu->insertSeparator();
2157#endif 2157#endif
2158 mActionMail->plug( fileMenu ); 2158 mActionMail->plug( fileMenu );
2159 fileMenu->insertSeparator(); 2159 fileMenu->insertSeparator();
2160 2160
2161 mActionNewContact->plug( fileMenu ); 2161 mActionNewContact->plug( fileMenu );
2162 mActionNewContact->plug( tb ); 2162 mActionNewContact->plug( tb );
2163 2163
2164 mActionEditAddressee->plug( fileMenu ); 2164 mActionEditAddressee->plug( fileMenu );
2165 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) || 2165 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
2166 // (!KABPrefs::instance()->mMultipleViewsAtOnce )) 2166 // (!KABPrefs::instance()->mMultipleViewsAtOnce ))
2167 mActionEditAddressee->plug( tb ); 2167 mActionEditAddressee->plug( tb );
2168 2168
2169 fileMenu->insertSeparator(); 2169 fileMenu->insertSeparator();
2170 mActionSave->plug( fileMenu ); 2170 mActionSave->plug( fileMenu );
2171 fileMenu->insertItem( "&Import", ImportMenu ); 2171 fileMenu->insertItem( "&Import", ImportMenu );
2172 fileMenu->insertItem( "&Export", ExportMenu ); 2172 fileMenu->insertItem( "&Export", ExportMenu );
2173 fileMenu->insertItem( i18n("&Change"), changeMenu ); 2173 fileMenu->insertItem( i18n("&Change"), changeMenu );
2174#ifndef DESKTOP_VERSION 2174#ifndef DESKTOP_VERSION
2175 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu ); 2175 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu );
2176#endif 2176#endif
2177#if 0 2177#if 0
2178 // PENDING fix MailVCard 2178 // PENDING fix MailVCard
2179 fileMenu->insertSeparator(); 2179 fileMenu->insertSeparator();
2180 mActionMailVCard->plug( fileMenu ); 2180 mActionMailVCard->plug( fileMenu );
2181#endif 2181#endif
2182#ifndef DESKTOP_VERSION 2182#ifndef DESKTOP_VERSION
2183 if ( Ir::supported() ) mActionBR->plug( beamMenu ); 2183 if ( Ir::supported() ) mActionBR->plug( beamMenu );
2184 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu ); 2184 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu );
2185 if ( Ir::supported() ) mActionBeam->plug( beamMenu ); 2185 if ( Ir::supported() ) mActionBeam->plug( beamMenu );
2186#endif 2186#endif
2187 fileMenu->insertSeparator(); 2187 fileMenu->insertSeparator();
2188 mActionQuit->plug( fileMenu ); 2188 mActionQuit->plug( fileMenu );
2189#ifdef _OL_IMPORT_ 2189#ifdef _OL_IMPORT_
2190 mActionImportOL->plug( ImportMenu ); 2190 mActionImportOL->plug( ImportMenu );
2191#endif 2191#endif
2192 // edit menu 2192 // edit menu
2193 mActionUndo->plug( editMenu ); 2193 mActionUndo->plug( editMenu );
2194 mActionRedo->plug( editMenu ); 2194 mActionRedo->plug( editMenu );
2195 editMenu->insertSeparator(); 2195 editMenu->insertSeparator();
2196 mActionCut->plug( editMenu ); 2196 mActionCut->plug( editMenu );
2197 mActionCopy->plug( editMenu ); 2197 mActionCopy->plug( editMenu );
2198 mActionPaste->plug( editMenu ); 2198 mActionPaste->plug( editMenu );
2199 mActionDelete->plug( editMenu ); 2199 mActionDelete->plug( editMenu );
2200 editMenu->insertSeparator(); 2200 editMenu->insertSeparator();
2201 mActionSelectAll->plug( editMenu ); 2201 mActionSelectAll->plug( editMenu );
2202 2202
2203 mActionSetFormattedName->plug( changeMenu ); 2203 mActionSetFormattedName->plug( changeMenu );
2204 mActionRemoveVoice->plug( changeMenu ); 2204 mActionRemoveVoice->plug( changeMenu );
2205 // settings menu 2205 // settingsmings menu
2206//US special menuentry to configure the addressbook resources. On KDE 2206//US special menuentry to configure the addressbook resources. On KDE
2207// you do that through the control center !!! 2207// you do that through the control center !!!
2208 mActionConfigResources->plug( settingsMenu ); 2208 // settingsMenu->insertSeparator();
2209 settingsMenu->insertSeparator();
2210 2209
2211 mActionConfigKAddressbook->plug( settingsMenu ); 2210 mActionConfigKAddressbook->plug( settingsMenu, 0 );
2211 mActionConfigResources->plug( settingsMenu,1 );
2212 settingsMenu->insertSeparator(2);
2212 2213
2213 if ( mIsPart ) { 2214 if ( mIsPart ) {
2214 //US not implemented yet 2215 //US not implemented yet
2215 //mActionConfigShortcuts->plug( settingsMenu ); 2216 //mActionConfigShortcuts->plug( settingsMenu );
2216 //mActionConfigureToolbars->plug( settingsMenu ); 2217 //mActionConfigureToolbars->plug( settingsMenu );
2217 2218
2218 } else { 2219 } else {
2219 //US not implemented yet 2220 //US not implemented yet
2220 //mActionKeyBindings->plug( settingsMenu ); 2221 //mActionKeyBindings->plug( settingsMenu );
2221 } 2222 }
2222 2223
2223 settingsMenu->insertSeparator(); 2224 settingsMenu->insertSeparator();
2224 2225
2225 mActionJumpBar->plug( settingsMenu ); 2226 mActionJumpBar->plug( settingsMenu );
2226 mActionDetails->plug( settingsMenu ); 2227 mActionDetails->plug( settingsMenu );
2227 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop ) 2228 //if (!KABPrefs::instance()->mMultipleViewsAtOnce || KGlobal::getDesktopSize() == KGlobal::Desktop )
2228 mActionDetails->plug( tb ); 2229 mActionDetails->plug( tb );
2229 settingsMenu->insertSeparator(); 2230 settingsMenu->insertSeparator();
2230#ifndef DESKTOP_VERSION 2231#ifndef DESKTOP_VERSION
2231 if ( Ir::supported() ) mActionBR->plug(settingsMenu ); 2232 if ( Ir::supported() ) mActionBR->plug(settingsMenu );
2232 settingsMenu->insertSeparator(); 2233 settingsMenu->insertSeparator();
2233#endif 2234#endif
2234 2235
2235 mActionWhoAmI->plug( settingsMenu ); 2236 mActionWhoAmI->plug( settingsMenu );
2236 mActionEditCategories->plug( settingsMenu ); 2237 mActionEditCategories->plug( settingsMenu );
2237 mActionEditCategories->plug( changeMenu ); 2238 mActionEditCategories->plug( changeMenu );
2238 mActionCategories->plug( changeMenu ); 2239 mActionCategories->plug( changeMenu );
2239 mActionManageCategories->plug( changeMenu ); 2240 mActionManageCategories->plug( changeMenu );
2240 2241
2241 mActionCategories->plug( settingsMenu ); 2242 mActionCategories->plug( settingsMenu );
2242 mActionManageCategories->plug( settingsMenu ); 2243 mActionManageCategories->plug( settingsMenu );
2243 2244
2244 2245
2245 mActionWN->plug( helpMenu ); 2246 mActionWN->plug( helpMenu );
2246 mActionSyncHowto->plug( helpMenu ); 2247 mActionSyncHowto->plug( helpMenu );
2247 mActionKdeSyncHowto->plug( helpMenu ); 2248 mActionKdeSyncHowto->plug( helpMenu );
2248 mActionMultiSyncHowto->plug( helpMenu ); 2249 mActionMultiSyncHowto->plug( helpMenu );
2249 mActionFaq->plug( helpMenu ); 2250 mActionFaq->plug( helpMenu );
2250 mActionLicence->plug( helpMenu ); 2251 mActionLicence->plug( helpMenu );
2251 mActionAboutKAddressbook->plug( helpMenu ); 2252 mActionAboutKAddressbook->plug( helpMenu );
2252 2253
2253 if (KGlobal::getDesktopSize() > KGlobal::Small ) { 2254 if (KGlobal::getDesktopSize() > KGlobal::Small ) {
2254 2255
2255 mActionSave->plug( tb ); 2256 mActionSave->plug( tb );
2256 mViewManager->getFilterAction()->plug ( tb); 2257 mViewManager->getFilterAction()->plug ( tb);
2257 //LR hide filteraction on started in 480x640 2258 //LR hide filteraction on started in 480x640
2258 if (QApplication::desktop()->width() == 480 ) { 2259 if (QApplication::desktop()->width() == 480 ) {
2259 mViewManager->getFilterAction()->setComboWidth( 0 ); 2260 mViewManager->getFilterAction()->setComboWidth( 0 );
2260 } 2261 }
2261 mActionUndo->plug( tb ); 2262 mActionUndo->plug( tb );
2262 mActionDelete->plug( tb ); 2263 mActionDelete->plug( tb );
2263 mActionRedo->plug( tb ); 2264 mActionRedo->plug( tb );
2264 } else { 2265 } else {
2265 mActionSave->plug( tb ); 2266 mActionSave->plug( tb );
2266 tb->enableMoving(false); 2267 tb->enableMoving(false);
2267 } 2268 }
2268 //mActionQuit->plug ( tb ); 2269 //mActionQuit->plug ( tb );
2269 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 2270 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
2270 2271
2271 //US link the searchwidget first to this. 2272 //US link the searchwidget first to this.
2272 // The real linkage to the toolbar happens later. 2273 // The real linkage to the toolbar happens later.
2273//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 2274//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
2274//US tb->insertItem( mIncSearchWidget ); 2275//US tb->insertItem( mIncSearchWidget );
2275/*US 2276/*US
2276 mIncSearchWidget = new IncSearchWidget( tb ); 2277 mIncSearchWidget = new IncSearchWidget( tb );
2277 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 2278 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
2278 SLOT( incrementalSearch( const QString& ) ) ); 2279 SLOT( incrementalSearch( const QString& ) ) );
2279 2280
2280 mJumpButtonBar = new JumpButtonBar( this, this ); 2281 mJumpButtonBar = new JumpButtonBar( this, this );
2281 2282
2282//US topLayout->addWidget( mJumpButtonBar ); 2283//US topLayout->addWidget( mJumpButtonBar );
2283 this->layout()->add( mJumpButtonBar ); 2284 this->layout()->add( mJumpButtonBar );
2284*/ 2285*/
2285 2286
2286#endif //KAB_EMBEDDED 2287#endif //KAB_EMBEDDED
2287 2288
2288 mActionExport2phone->plug( ExportMenu ); 2289 mActionExport2phone->plug( ExportMenu );
2289 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) ); 2290 connect ( syncMenu, SIGNAL( activated ( int ) ), syncManager, SLOT (slotSyncMenu( int ) ) );
2290 syncManager->fillSyncMenu(); 2291 syncManager->fillSyncMenu();
2291 2292
2292} 2293}
2293void KABCore::showLicence() 2294void KABCore::showLicence()
2294{ 2295{
2295 KApplication::showLicence(); 2296 KApplication::showLicence();
2296} 2297}
2297 2298
2298void KABCore::manageCategories( ) 2299void KABCore::manageCategories( )
2299{ 2300{
2300 KABCatPrefs* cp = new KABCatPrefs(); 2301 KABCatPrefs* cp = new KABCatPrefs();
2301 cp->show(); 2302 cp->show();
2302 int w =cp->sizeHint().width() ; 2303 int w =cp->sizeHint().width() ;
2303 int h = cp->sizeHint().height() ; 2304 int h = cp->sizeHint().height() ;
2304 int dw = QApplication::desktop()->width(); 2305 int dw = QApplication::desktop()->width();
2305 int dh = QApplication::desktop()->height(); 2306 int dh = QApplication::desktop()->height();
2306 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2307 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2307 if ( !cp->exec() ) { 2308 if ( !cp->exec() ) {
2308 delete cp; 2309 delete cp;
2309 return; 2310 return;
2310 } 2311 }
2311 int count = 0; 2312 int count = 0;
2312 int cc = 0; 2313 int cc = 0;
2313 message( i18n("Please wait, processing categories...")); 2314 message( i18n("Please wait, processing categories..."));
2314 if ( cp->addCat() ) { 2315 if ( cp->addCat() ) {
2315 KABC::AddressBook::Iterator it; 2316 KABC::AddressBook::Iterator it;
2316 QStringList catList = KABPrefs::instance()->mCustomCategories; 2317 QStringList catList = KABPrefs::instance()->mCustomCategories;
2317 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2318 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2318 ++cc; 2319 ++cc;
2319 if ( cc %10 == 0) 2320 if ( cc %10 == 0)
2320 message(i18n("Processing contact #%1").arg(cc)); 2321 message(i18n("Processing contact #%1").arg(cc));
2321 QStringList catIncList = (*it).categories(); 2322 QStringList catIncList = (*it).categories();
2322 int i; 2323 int i;
2323 for( i = 0; i< catIncList.count(); ++i ) { 2324 for( i = 0; i< catIncList.count(); ++i ) {
2324 if ( !catList.contains (catIncList[i])) { 2325 if ( !catList.contains (catIncList[i])) {
2325 catList.append( catIncList[i] ); 2326 catList.append( catIncList[i] );
2326 //qDebug("add cat %s ", catIncList[i].latin1()); 2327 //qDebug("add cat %s ", catIncList[i].latin1());
2327 ++count; 2328 ++count;
2328 } 2329 }
2329 } 2330 }
2330 } 2331 }
2331 catList.sort(); 2332 catList.sort();
2332 KABPrefs::instance()->mCustomCategories = catList; 2333 KABPrefs::instance()->mCustomCategories = catList;
2333 KABPrefs::instance()->writeConfig(); 2334 KABPrefs::instance()->writeConfig();
2334 message(QString::number( count )+ i18n(" categories added to list! ")); 2335 message(QString::number( count )+ i18n(" categories added to list! "));
2335 } else { 2336 } else {
2336 QStringList catList = KABPrefs::instance()->mCustomCategories; 2337 QStringList catList = KABPrefs::instance()->mCustomCategories;
2337 QStringList catIncList; 2338 QStringList catIncList;
2338 QStringList newCatList; 2339 QStringList newCatList;
2339 KABC::AddressBook::Iterator it; 2340 KABC::AddressBook::Iterator it;
2340 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2341 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2341 ++cc; 2342 ++cc;
2342 if ( cc %10 == 0) 2343 if ( cc %10 == 0)
2343 message(i18n("Processing contact #%1").arg(cc)); 2344 message(i18n("Processing contact #%1").arg(cc));
2344 QStringList catIncList = (*it).categories(); 2345 QStringList catIncList = (*it).categories();
2345 int i; 2346 int i;
2346 if ( catIncList.count() ) { 2347 if ( catIncList.count() ) {
2347 newCatList.clear(); 2348 newCatList.clear();
2348 for( i = 0; i< catIncList.count(); ++i ) { 2349 for( i = 0; i< catIncList.count(); ++i ) {
2349 if ( catList.contains (catIncList[i])) { 2350 if ( catList.contains (catIncList[i])) {
2350 newCatList.append( catIncList[i] ); 2351 newCatList.append( catIncList[i] );
2351 } 2352 }
2352 } 2353 }
2353 newCatList.sort(); 2354 newCatList.sort();
2354 (*it).setCategories( newCatList ); 2355 (*it).setCategories( newCatList );
2355 mAddressBook->insertAddressee( (*it) ); 2356 mAddressBook->insertAddressee( (*it) );
2356 } 2357 }
2357 } 2358 }
2358 setModified( true ); 2359 setModified( true );
2359 mViewManager->refreshView(); 2360 mViewManager->refreshView();
2360 message( i18n("Removing categories done!")); 2361 message( i18n("Removing categories done!"));
2361 } 2362 }
2362 delete cp; 2363 delete cp;
2363} 2364}
2364void KABCore::removeVoice() 2365void KABCore::removeVoice()
2365{ 2366{
2366 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No ) 2367 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No )
2367 return; 2368 return;
2368 XXPortSelectDialog dlg( this, false, this ); 2369 XXPortSelectDialog dlg( this, false, this );
2369 if ( !dlg.exec() ) 2370 if ( !dlg.exec() )
2370 return; 2371 return;
2371 mAddressBook->setUntagged(); 2372 mAddressBook->setUntagged();
2372 dlg.tagSelected(); 2373 dlg.tagSelected();
2373 message(i18n("Removing voice..."), false ); 2374 message(i18n("Removing voice..."), false );
2374 KABC::AddressBook::Iterator it; 2375 KABC::AddressBook::Iterator it;
2375 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2376 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2376 if ( (*it).tagged() ) { 2377 if ( (*it).tagged() ) {
2377 (*it).removeVoice(); 2378 (*it).removeVoice();
2378 } 2379 }
2379 } 2380 }
2380 message(i18n("Refreshing view...") ); 2381 message(i18n("Refreshing view...") );
2381 qApp->processEvents(); 2382 qApp->processEvents();
2382 mViewManager->refreshView( "" ); 2383 mViewManager->refreshView( "" );
2383 Addressee add; 2384 Addressee add;
2384 mDetails->setAddressee( add ); 2385 mDetails->setAddressee( add );
2385 message(i18n("Remove voice completed!") ); 2386 message(i18n("Remove voice completed!") );
2386 2387
2387 2388
2388 2389
2389} 2390}
2390 2391
2391void KABCore::setFormattedName() 2392void KABCore::setFormattedName()
2392{ 2393{
2393 KABFormatPrefs setpref; 2394 KABFormatPrefs setpref;
2394 if ( !setpref.exec() ) { 2395 if ( !setpref.exec() ) {
2395 return; 2396 return;
2396 } 2397 }
2397 XXPortSelectDialog dlg( this, false, this ); 2398 XXPortSelectDialog dlg( this, false, this );
2398 if ( !dlg.exec() ) 2399 if ( !dlg.exec() )
2399 return; 2400 return;
2400 mAddressBook->setUntagged(); 2401 mAddressBook->setUntagged();
2401 dlg.tagSelected(); 2402 dlg.tagSelected();
2402 int count = 0; 2403 int count = 0;
2403 KABC::AddressBook::Iterator it; 2404 KABC::AddressBook::Iterator it;
2404 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2405 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2405 if ( (*it).tagged() ) { 2406 if ( (*it).tagged() ) {
2406 ++count; 2407 ++count;
2407 if ( count %10 == 0 ) 2408 if ( count %10 == 0 )
2408 message(i18n("Changing contact #%1").arg( count ) ); 2409 message(i18n("Changing contact #%1").arg( count ) );
2409 qApp->processEvents(); 2410 qApp->processEvents();
2410 QString fName; 2411 QString fName;
2411 if ( setpref.simple->isChecked() ) 2412 if ( setpref.simple->isChecked() )
2412 fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); 2413 fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName );
2413 else if ( setpref.full->isChecked() ) 2414 else if ( setpref.full->isChecked() )
2414 fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); 2415 fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName );
2415 else if ( setpref.reverse->isChecked() ) 2416 else if ( setpref.reverse->isChecked() )
2416 fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); 2417 fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName );
2417 else 2418 else
2418 fName = (*it).organization(); 2419 fName = (*it).organization();
2419 if ( setpref.setCompany->isChecked() ) 2420 if ( setpref.setCompany->isChecked() )
2420 if ( fName.isEmpty() || fName =="," ) 2421 if ( fName.isEmpty() || fName =="," )
2421 fName = (*it).organization(); 2422 fName = (*it).organization();
2422 (*it).setFormattedName( fName ); 2423 (*it).setFormattedName( fName );
2423 } 2424 }
2424 } 2425 }
2425 message(i18n("Refreshing view...") ); 2426 message(i18n("Refreshing view...") );
2426 qApp->processEvents(); 2427 qApp->processEvents();
2427 mViewManager->refreshView( "" ); 2428 mViewManager->refreshView( "" );
2428 Addressee add; 2429 Addressee add;
2429 mDetails->setAddressee( add ); 2430 mDetails->setAddressee( add );
2430 message(i18n("Setting formatted name completed!") ); 2431 message(i18n("Setting formatted name completed!") );
2431} 2432}
2432 2433
2433void KABCore::clipboardDataChanged() 2434void KABCore::clipboardDataChanged()
2434{ 2435{
2435 2436
2436 if ( mReadWrite ) 2437 if ( mReadWrite )
2437 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 2438 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
2438 2439
2439} 2440}
2440 2441
2441void KABCore::updateActionMenu() 2442void KABCore::updateActionMenu()
2442{ 2443{
2443 UndoStack *undo = UndoStack::instance(); 2444 UndoStack *undo = UndoStack::instance();
2444 RedoStack *redo = RedoStack::instance(); 2445 RedoStack *redo = RedoStack::instance();
2445 2446
2446 if ( undo->isEmpty() ) 2447 if ( undo->isEmpty() )
2447 mActionUndo->setText( i18n( "Undo" ) ); 2448 mActionUndo->setText( i18n( "Undo" ) );
2448 else 2449 else
2449 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 2450 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
2450 2451
2451 mActionUndo->setEnabled( !undo->isEmpty() ); 2452 mActionUndo->setEnabled( !undo->isEmpty() );
2452 2453
2453 if ( !redo->top() ) 2454 if ( !redo->top() )
2454 mActionRedo->setText( i18n( "Redo" ) ); 2455 mActionRedo->setText( i18n( "Redo" ) );
2455 else 2456 else
2456 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 2457 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
2457 2458
2458 mActionRedo->setEnabled( !redo->isEmpty() ); 2459 mActionRedo->setEnabled( !redo->isEmpty() );
2459} 2460}
2460 2461
2461void KABCore::configureKeyBindings() 2462void KABCore::configureKeyBindings()
2462{ 2463{
2463#ifndef KAB_EMBEDDED 2464#ifndef KAB_EMBEDDED
2464 KKeyDialog::configure( actionCollection(), true ); 2465 KKeyDialog::configure( actionCollection(), true );
2465#else //KAB_EMBEDDED 2466#else //KAB_EMBEDDED
2466 qDebug("KABCore::configureKeyBindings() not implemented"); 2467 qDebug("KABCore::configureKeyBindings() not implemented");
2467#endif //KAB_EMBEDDED 2468#endif //KAB_EMBEDDED
2468} 2469}
2469 2470
2470#ifdef KAB_EMBEDDED 2471#ifdef KAB_EMBEDDED
2471void KABCore::configureResources() 2472void KABCore::configureResources()
2472{ 2473{
2473 KRES::KCMKResources dlg( this, "" , 0 ); 2474 KRES::KCMKResources dlg( this, "" , 0 );
2474 2475
2475 if ( !dlg.exec() ) 2476 if ( !dlg.exec() )
2476 return; 2477 return;
2477 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 2478 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
2478} 2479}
2479#endif //KAB_EMBEDDED 2480#endif //KAB_EMBEDDED
2480 2481
2481 2482
2482/* this method will be called through the QCop interface from Ko/Pi to select addresses 2483/* this method will be called through the QCop interface from Ko/Pi to select addresses
2483 * for the attendees list of an event. 2484 * for the attendees list of an event.
2484 */ 2485 */
2485void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) 2486void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid)
2486{ 2487{
2487 QStringList nameList; 2488 QStringList nameList;
2488 QStringList emailList; 2489 QStringList emailList;
2489 QStringList uidList; 2490 QStringList uidList;
2490 2491
2491 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 2492 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
2492 uint i=0; 2493 uint i=0;
2493 for (i=0; i < list.count(); i++) 2494 for (i=0; i < list.count(); i++)
2494 { 2495 {
2495 nameList.append(list[i].realName()); 2496 nameList.append(list[i].realName());
2496 emailList.append(list[i].preferredEmail()); 2497 emailList.append(list[i].preferredEmail());
2497 uidList.append(list[i].uid()); 2498 uidList.append(list[i].uid());
2498 } 2499 }
2499 //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1()); 2500 //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1());
2500 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); 2501 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList);
2501 2502
2502} 2503}
2503 2504
2504/* this method will be called through the QCop interface from Ko/Pi to select birthdays 2505/* this method will be called through the QCop interface from Ko/Pi to select birthdays
2505 * to put them into the calendar. 2506 * to put them into the calendar.
2506 */ 2507 */
2507void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) 2508void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid)
2508{ 2509{
2509 // qDebug("KABCore::requestForBirthdayList"); 2510 // qDebug("KABCore::requestForBirthdayList");
2510 QStringList birthdayList; 2511 QStringList birthdayList;
2511 QStringList anniversaryList; 2512 QStringList anniversaryList;
2512 QStringList realNameList; 2513 QStringList realNameList;
2513 QStringList preferredEmailList; 2514 QStringList preferredEmailList;
2514 QStringList assembledNameList; 2515 QStringList assembledNameList;
2515 QStringList uidList; 2516 QStringList uidList;
2516 2517
2517 KABC::AddressBook::Iterator it; 2518 KABC::AddressBook::Iterator it;
2518 2519
2519 int count = 0; 2520 int count = 0;
2520 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2521 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2521 ++count; 2522 ++count;
2522 } 2523 }
2523 QProgressBar bar(count,0 ); 2524 QProgressBar bar(count,0 );
2524 int w = 300; 2525 int w = 300;
2525 if ( QApplication::desktop()->width() < 320 ) 2526 if ( QApplication::desktop()->width() < 320 )
2526 w = 220; 2527 w = 220;
2527 int h = bar.sizeHint().height() ; 2528 int h = bar.sizeHint().height() ;
2528 int dw = QApplication::desktop()->width(); 2529 int dw = QApplication::desktop()->width();
2529 int dh = QApplication::desktop()->height(); 2530 int dh = QApplication::desktop()->height();
2530 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2531 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2531 bar.show(); 2532 bar.show();
2532 bar.setCaption (i18n("Collecting birthdays - close to abort!") ); 2533 bar.setCaption (i18n("Collecting birthdays - close to abort!") );
2533 qApp->processEvents(); 2534 qApp->processEvents();
2534 2535
2535 QDate bday; 2536 QDate bday;
2536 QString anni; 2537 QString anni;
2537 QString formattedbday; 2538 QString formattedbday;
2538 2539
2539 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) 2540 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it )
2540 { 2541 {
2541 if ( ! bar.isVisible() ) 2542 if ( ! bar.isVisible() )
2542 return; 2543 return;
2543 bar.setProgress( count++ ); 2544 bar.setProgress( count++ );
2544 qApp->processEvents(); 2545 qApp->processEvents();
2545 bday = (*it).birthday().date(); 2546 bday = (*it).birthday().date();
2546 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" ); 2547 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" );
2547 2548
2548 if ( bday.isValid() || !anni.isEmpty()) 2549 if ( bday.isValid() || !anni.isEmpty())
2549 { 2550 {
2550 if (bday.isValid()) 2551 if (bday.isValid())
2551 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate); 2552 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate);
2552 else 2553 else
2553 formattedbday = "NOTVALID"; 2554 formattedbday = "NOTVALID";
2554 if (anni.isEmpty()) 2555 if (anni.isEmpty())
2555 anni = "INVALID"; 2556 anni = "INVALID";
2556 2557
2557 birthdayList.append(formattedbday); 2558 birthdayList.append(formattedbday);
2558 anniversaryList.append(anni); //should be ISODate 2559 anniversaryList.append(anni); //should be ISODate
2559 realNameList.append((*it).realName()); 2560 realNameList.append((*it).realName());
2560 preferredEmailList.append((*it).preferredEmail()); 2561 preferredEmailList.append((*it).preferredEmail());
2561 assembledNameList.append((*it).assembledName()); 2562 assembledNameList.append((*it).assembledName());
2562 uidList.append((*it).uid()); 2563 uidList.append((*it).uid());
2563 2564
2564 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() ); 2565 //qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() );
2565 } 2566 }
2566 } 2567 }
2567 2568
2568 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList); 2569 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList);
2569 2570
2570} 2571}
2571 2572
2572/* this method will be called through the QCop interface from other apps to show details of a contact. 2573/* this method will be called through the QCop interface from other apps to show details of a contact.
2573 */ 2574 */
2574void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 2575void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid)
2575{ 2576{
2576 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); 2577 //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1());
2577 2578
2578 QString foundUid = QString::null; 2579 QString foundUid = QString::null;
2579 if ( ! uid.isEmpty() ) { 2580 if ( ! uid.isEmpty() ) {
2580 Addressee adrr = mAddressBook->findByUid( uid ); 2581 Addressee adrr = mAddressBook->findByUid( uid );
2581 if ( !adrr.isEmpty() ) { 2582 if ( !adrr.isEmpty() ) {
2582 foundUid = uid; 2583 foundUid = uid;
2583 } 2584 }
2584 if ( email == "sendbacklist" ) { 2585 if ( email == "sendbacklist" ) {
2585 //qDebug("ssssssssssssssssssssssend "); 2586 //qDebug("ssssssssssssssssssssssend ");
2586 QStringList nameList; 2587 QStringList nameList;
2587 QStringList emailList; 2588 QStringList emailList;
2588 QStringList uidList; 2589 QStringList uidList;
2589 nameList.append(adrr.realName()); 2590 nameList.append(adrr.realName());
2590 emailList = adrr.emails(); 2591 emailList = adrr.emails();
2591 uidList.append( adrr.preferredEmail()); 2592 uidList.append( adrr.preferredEmail());
2592 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 2593 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
2593 return; 2594 return;
2594 } 2595 }
2595 2596
2596 } 2597 }
2597 2598
2598 if ( email == "sendbacklist" ) 2599 if ( email == "sendbacklist" )
2599 return; 2600 return;
2600 if (foundUid.isEmpty()) 2601 if (foundUid.isEmpty())
2601 { 2602 {
2602 //find the uid of the person first 2603 //find the uid of the person first
2603 Addressee::List namelist; 2604 Addressee::List namelist;
2604 Addressee::List emaillist; 2605 Addressee::List emaillist;
2605 2606
2606 if (!name.isEmpty()) 2607 if (!name.isEmpty())
2607 namelist = mAddressBook->findByName( name ); 2608 namelist = mAddressBook->findByName( name );
2608 2609
2609 if (!email.isEmpty()) 2610 if (!email.isEmpty())
2610 emaillist = mAddressBook->findByEmail( email ); 2611 emaillist = mAddressBook->findByEmail( email );
2611 //qDebug("count %d %d ", namelist.count(),emaillist.count() ); 2612 //qDebug("count %d %d ", namelist.count(),emaillist.count() );
2612 //check if we have a match in Namelist and Emaillist 2613 //check if we have a match in Namelist and Emaillist
2613 if ((namelist.count() == 0) && (emaillist.count() > 0)) { 2614 if ((namelist.count() == 0) && (emaillist.count() > 0)) {
2614 foundUid = emaillist[0].uid(); 2615 foundUid = emaillist[0].uid();
2615 } 2616 }
2616 else if ((namelist.count() > 0) && (emaillist.count() == 0)) 2617 else if ((namelist.count() > 0) && (emaillist.count() == 0))
2617 foundUid = namelist[0].uid(); 2618 foundUid = namelist[0].uid();
2618 else 2619 else
2619 { 2620 {
2620 for (int i = 0; i < namelist.count(); i++) 2621 for (int i = 0; i < namelist.count(); i++)
2621 { 2622 {
2622 for (int j = 0; j < emaillist.count(); j++) 2623 for (int j = 0; j < emaillist.count(); j++)
2623 { 2624 {
2624 if (namelist[i] == emaillist[j]) 2625 if (namelist[i] == emaillist[j])
2625 { 2626 {
2626 foundUid = namelist[i].uid(); 2627 foundUid = namelist[i].uid();
2627 } 2628 }
2628 } 2629 }
2629 } 2630 }
2630 } 2631 }
2631 } 2632 }
2632 else 2633 else
2633 { 2634 {
2634 foundUid = uid; 2635 foundUid = uid;
2635 } 2636 }
2636 2637
2637 if (!foundUid.isEmpty()) 2638 if (!foundUid.isEmpty())
2638 { 2639 {
2639 2640
2640 // raise Ka/Pi if it is in the background 2641 // raise Ka/Pi if it is in the background
2641#ifndef DESKTOP_VERSION 2642#ifndef DESKTOP_VERSION
2642#ifndef KORG_NODCOP 2643#ifndef KORG_NODCOP
2643 //QCopEnvelope e("QPE/Application/kapi", "raise()"); 2644 //QCopEnvelope e("QPE/Application/kapi", "raise()");
2644#endif 2645#endif
2645#endif 2646#endif
2646 2647
2647 mMainWindow->showMaximized(); 2648 mMainWindow->showMaximized();
2648 mMainWindow-> raise(); 2649 mMainWindow-> raise();
2649 2650
2650 mViewManager->setSelected( "", false); 2651 mViewManager->setSelected( "", false);
2651 mViewManager->refreshView( "" ); 2652 mViewManager->refreshView( "" );
2652 mViewManager->setSelected( foundUid, true ); 2653 mViewManager->setSelected( foundUid, true );
2653 mViewManager->refreshView( foundUid ); 2654 mViewManager->refreshView( foundUid );
2654 2655
2655 if ( !mMultipleViewsAtOnce ) 2656 if ( !mMultipleViewsAtOnce )
2656 { 2657 {
2657 setDetailsVisible( true ); 2658 setDetailsVisible( true );
2658 mActionDetails->setChecked(true); 2659 mActionDetails->setChecked(true);
2659 } 2660 }
2660 } 2661 }
2661} 2662}
2662 2663
2663void KABCore::whatsnew() 2664void KABCore::whatsnew()
2664{ 2665{
2665 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 2666 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
2666} 2667}
2667void KABCore::synchowto() 2668void KABCore::synchowto()
2668{ 2669{
2669 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 2670 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
2670} 2671}
2671void KABCore::kdesynchowto() 2672void KABCore::kdesynchowto()
2672{ 2673{
2673 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 2674 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
2674} 2675}
2675void KABCore::multisynchowto() 2676void KABCore::multisynchowto()
2676{ 2677{
2677 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 2678 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
2678} 2679}
2679void KABCore::faq() 2680void KABCore::faq()
2680{ 2681{
2681 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" ); 2682 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" );
2682} 2683}
2683 2684
2684#include <libkcal/syncdefines.h> 2685#include <libkcal/syncdefines.h>
2685 2686
2686KABC::Addressee KABCore::getLastSyncAddressee() 2687KABC::Addressee KABCore::getLastSyncAddressee()
2687{ 2688{
2688 Addressee lse; 2689 Addressee lse;
2689 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2690 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2690 2691
2691 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 2692 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
2692 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); 2693 lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice );
2693 if (lse.isEmpty()) { 2694 if (lse.isEmpty()) {
2694 qDebug("KA: Creating new last-syncAddressee "); 2695 qDebug("KA: Creating new last-syncAddressee ");
2695 lse.setUid( "last-syncAddressee-"+mCurrentSyncDevice ); 2696 lse.setUid( "last-syncAddressee-"+mCurrentSyncDevice );
2696 QString sum = ""; 2697 QString sum = "";
2697 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 2698 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
2698 sum = "E: "; 2699 sum = "E: ";
2699 lse.setFamilyName("!"+sum+mCurrentSyncDevice + i18n(" - sync event")); 2700 lse.setFamilyName("!"+sum+mCurrentSyncDevice + i18n(" - sync event"));
2700 lse.setRevision( mLastAddressbookSync ); 2701 lse.setRevision( mLastAddressbookSync );
2701 lse.setCategories( i18n("SyncEvent") ); 2702 lse.setCategories( i18n("SyncEvent") );
2702 mAddressBook->insertAddressee( lse ); 2703 mAddressBook->insertAddressee( lse );
2703 } 2704 }
2704 return lse; 2705 return lse;
2705} 2706}
2706int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ) 2707int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full )
2707{ 2708{
2708 2709
2709 //void setZaurusId(int id); 2710 //void setZaurusId(int id);
2710 // int zaurusId() const; 2711 // int zaurusId() const;
2711 // void setZaurusUid(int id); 2712 // void setZaurusUid(int id);
2712 // int zaurusUid() const; 2713 // int zaurusUid() const;
2713 // void setZaurusStat(int id); 2714 // void setZaurusStat(int id);
2714 // int zaurusStat() const; 2715 // int zaurusStat() const;
2715 // 0 equal 2716 // 0 equal
2716 // 1 take local 2717 // 1 take local
2717 // 2 take remote 2718 // 2 take remote
2718 // 3 cancel 2719 // 3 cancel
2719 QDateTime lastSync = mLastAddressbookSync; 2720 QDateTime lastSync = mLastAddressbookSync;
2720 QDateTime localMod = local->revision(); 2721 QDateTime localMod = local->revision();
2721 QDateTime remoteMod = remote->revision(); 2722 QDateTime remoteMod = remote->revision();
2722 2723
2723 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2724 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2724 2725
2725 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2726 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2726 bool remCh, locCh; 2727 bool remCh, locCh;
2727 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); 2728 remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
2728 //if ( remCh ) 2729 //if ( remCh )
2729 // qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() ); 2730 // qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
2730 locCh = ( localMod > mLastAddressbookSync ); 2731 locCh = ( localMod > mLastAddressbookSync );
2731 //qDebug("cahnged rem %d loc %d",remCh, locCh ); 2732 //qDebug("cahnged rem %d loc %d",remCh, locCh );
2732 if ( !remCh && ! locCh ) { 2733 if ( !remCh && ! locCh ) {
2733 //qDebug("both not changed "); 2734 //qDebug("both not changed ");
2734 lastSync = localMod.addDays(1); 2735 lastSync = localMod.addDays(1);
2735 if ( mode <= SYNC_PREF_ASK ) 2736 if ( mode <= SYNC_PREF_ASK )
2736 return 0; 2737 return 0;
2737 } else { 2738 } else {
2738 if ( locCh ) { 2739 if ( locCh ) {
2739 //qDebug("loc changed %s %s", localMod.toString().latin1(), mLastAddressbookSync.toString().latin1()); 2740 //qDebug("loc changed %s %s", localMod.toString().latin1(), mLastAddressbookSync.toString().latin1());
2740 lastSync = localMod.addDays( -1 ); 2741 lastSync = localMod.addDays( -1 );
2741 if ( !remCh ) 2742 if ( !remCh )
2742 remoteMod =( lastSync.addDays( -1 ) ); 2743 remoteMod =( lastSync.addDays( -1 ) );
2743 } else { 2744 } else {
2744 //qDebug(" not loc changed "); 2745 //qDebug(" not loc changed ");
2745 lastSync = localMod.addDays( 1 ); 2746 lastSync = localMod.addDays( 1 );
2746 if ( remCh ) { 2747 if ( remCh ) {
2747 //qDebug("rem changed "); 2748 //qDebug("rem changed ");
2748 remoteMod =( lastSync.addDays( 1 ) ); 2749 remoteMod =( lastSync.addDays( 1 ) );
2749 } 2750 }
2750 2751
2751 } 2752 }
2752 } 2753 }
2753 full = true; 2754 full = true;
2754 if ( mode < SYNC_PREF_ASK ) 2755 if ( mode < SYNC_PREF_ASK )
2755 mode = SYNC_PREF_ASK; 2756 mode = SYNC_PREF_ASK;
2756 } else { 2757 } else {
2757 if ( localMod == remoteMod ) 2758 if ( localMod == remoteMod )
2758 return 0; 2759 return 0;
2759 2760
2760 } 2761 }
2761 //qDebug("%s %s --- %d %d", localMod.toString().latin1() , remoteMod.toString().latin1(), localMod.time().msec(), remoteMod.time().msec()); 2762 //qDebug("%s %s --- %d %d", localMod.toString().latin1() , remoteMod.toString().latin1(), localMod.time().msec(), remoteMod.time().msec());
2762 //qDebug("lastsync %s ", lastSync.toString().latin1() ); 2763 //qDebug("lastsync %s ", lastSync.toString().latin1() );
2763 //full = true; //debug only 2764 //full = true; //debug only
2764 if ( full ) { 2765 if ( full ) {
2765 bool equ = ( (*local) == (*remote) ); 2766 bool equ = ( (*local) == (*remote) );
2766 if ( equ ) { 2767 if ( equ ) {
2767 //qDebug("equal "); 2768 //qDebug("equal ");
2768 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2769 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2769 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); 2770 local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) );
2770 } 2771 }
2771 if ( mode < SYNC_PREF_FORCE_LOCAL ) 2772 if ( mode < SYNC_PREF_FORCE_LOCAL )
2772 return 0; 2773 return 0;
2773 2774
2774 }//else //debug only 2775 }//else //debug only
2775 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1()); 2776 //qDebug("not equal %s %s ", local->summary().latin1(), remote->summary().latin1());
2776 } 2777 }
2777 int result; 2778 int result;
2778 bool localIsNew; 2779 bool localIsNew;
2779 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() ); 2780 //qDebug("%s -- %s mLastCalendarSync %s lastsync %s --- local %s remote %s ",local->summary().latin1(), remote->summary().latin1(),mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() );
2780 2781
2781 if ( full && mode < SYNC_PREF_NEWEST ) 2782 if ( full && mode < SYNC_PREF_NEWEST )
2782 mode = SYNC_PREF_ASK; 2783 mode = SYNC_PREF_ASK;
2783 2784
2784 switch( mode ) { 2785 switch( mode ) {
2785 case SYNC_PREF_LOCAL: 2786 case SYNC_PREF_LOCAL:
2786 if ( lastSync > remoteMod ) 2787 if ( lastSync > remoteMod )
2787 return 1; 2788 return 1;
2788 if ( lastSync > localMod ) 2789 if ( lastSync > localMod )
2789 return 2; 2790 return 2;
2790 return 1; 2791 return 1;
2791 break; 2792 break;
2792 case SYNC_PREF_REMOTE: 2793 case SYNC_PREF_REMOTE:
2793 if ( lastSync > remoteMod ) 2794 if ( lastSync > remoteMod )
2794 return 1; 2795 return 1;
2795 if ( lastSync > localMod ) 2796 if ( lastSync > localMod )
2796 return 2; 2797 return 2;
2797 return 2; 2798 return 2;
2798 break; 2799 break;
2799 case SYNC_PREF_NEWEST: 2800 case SYNC_PREF_NEWEST:
2800 if ( localMod > remoteMod ) 2801 if ( localMod > remoteMod )
2801 return 1; 2802 return 1;
2802 else 2803 else
2803 return 2; 2804 return 2;
2804 break; 2805 break;
2805 case SYNC_PREF_ASK: 2806 case SYNC_PREF_ASK:
2806 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() ); 2807 //qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), localMod.toString().latin1(), remoteMod.toString().latin1() );
2807 if ( lastSync > remoteMod ) 2808 if ( lastSync > remoteMod )
2808 return 1; 2809 return 1;
2809 if ( lastSync > localMod ) { 2810 if ( lastSync > localMod ) {
2810 return 2; 2811 return 2;
2811 } 2812 }
2812 localIsNew = localMod >= remoteMod; 2813 localIsNew = localMod >= remoteMod;
2813 //qDebug("conflict! ************************************** "); 2814 //qDebug("conflict! ************************************** ");
2814 { 2815 {
2815 KABC::AddresseeChooser acd ( *local,*remote, localIsNew , this ); 2816 KABC::AddresseeChooser acd ( *local,*remote, localIsNew , this );
2816 result = acd.executeD(localIsNew); 2817 result = acd.executeD(localIsNew);
2817 return result; 2818 return result;
2818 } 2819 }
2819 break; 2820 break;
2820 case SYNC_PREF_FORCE_LOCAL: 2821 case SYNC_PREF_FORCE_LOCAL:
2821 return 1; 2822 return 1;
2822 break; 2823 break;
2823 case SYNC_PREF_FORCE_REMOTE: 2824 case SYNC_PREF_FORCE_REMOTE:
2824 return 2; 2825 return 2;
2825 break; 2826 break;
2826 2827
2827 default: 2828 default:
2828 // SYNC_PREF_TAKE_BOTH not implemented 2829 // SYNC_PREF_TAKE_BOTH not implemented
2829 break; 2830 break;
2830 } 2831 }
2831 return 0; 2832 return 0;
2832} 2833}
2833 2834
2834 2835
2835bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode) 2836bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode)
2836{ 2837{
2837 bool syncOK = true; 2838 bool syncOK = true;
2838 int addedAddressee = 0; 2839 int addedAddressee = 0;
2839 int addedAddresseeR = 0; 2840 int addedAddresseeR = 0;
2840 int deletedAddresseeR = 0; 2841 int deletedAddresseeR = 0;
2841 int deletedAddresseeL = 0; 2842 int deletedAddresseeL = 0;
2842 int changedLocal = 0; 2843 int changedLocal = 0;
2843 int changedRemote = 0; 2844 int changedRemote = 0;
2844 int filteredIN = 0; 2845 int filteredIN = 0;
2845 int filteredOUT = 0; 2846 int filteredOUT = 0;
2846 2847
2847 QString mCurrentSyncName = syncManager->getCurrentSyncName(); 2848 QString mCurrentSyncName = syncManager->getCurrentSyncName();
2848 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); 2849 QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice();
2849 2850
2850 //QPtrList<Addressee> el = local->rawAddressees(); 2851 //QPtrList<Addressee> el = local->rawAddressees();
2851 Addressee addresseeR; 2852 Addressee addresseeR;
2852 QString uid; 2853 QString uid;
2853 int take; 2854 int take;
2854 Addressee addresseeL; 2855 Addressee addresseeL;
2855 Addressee addresseeRSync; 2856 Addressee addresseeRSync;
2856 Addressee addresseeLSync; 2857 Addressee addresseeLSync;
2857 // KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees(); 2858 // KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees();
2858 //KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees(); 2859 //KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees();
2859 bool fullDateRange = false; 2860 bool fullDateRange = false;
2860 local->resetTempSyncStat(); 2861 local->resetTempSyncStat();
2861 mLastAddressbookSync = QDateTime::currentDateTime(); 2862 mLastAddressbookSync = QDateTime::currentDateTime();
2862 if ( syncManager->syncWithDesktop() ) { 2863 if ( syncManager->syncWithDesktop() ) {
2863 // remote->removeSyncInfo( QString());//remove all info 2864 // remote->removeSyncInfo( QString());//remove all info
2864 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 2865 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
2865 mLastAddressbookSync = KSyncManager::mRequestedSyncEvent; 2866 mLastAddressbookSync = KSyncManager::mRequestedSyncEvent;
2866 qDebug("KA: using extern time for calendar sync: %s ", mLastAddressbookSync.toString().latin1() ); 2867 qDebug("KA: using extern time for calendar sync: %s ", mLastAddressbookSync.toString().latin1() );
2867 } else { 2868 } else {
2868 qDebug("KA: KSyncManager::mRequestedSyncEvent has invalid datatime "); 2869 qDebug("KA: KSyncManager::mRequestedSyncEvent has invalid datatime ");
2869 } 2870 }
2870 } 2871 }
2871 QDateTime modifiedCalendar = mLastAddressbookSync; 2872 QDateTime modifiedCalendar = mLastAddressbookSync;
2872 addresseeLSync = getLastSyncAddressee(); 2873 addresseeLSync = getLastSyncAddressee();
2873 qDebug("KA: Last Sync %s ", addresseeLSync.revision().toString().latin1()); 2874 qDebug("KA: Last Sync %s ", addresseeLSync.revision().toString().latin1());
2874 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName ); 2875 addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName );
2875 if ( !addresseeR.isEmpty() ) { 2876 if ( !addresseeR.isEmpty() ) {
2876 addresseeRSync = addresseeR; 2877 addresseeRSync = addresseeR;
2877 remote->removeAddressee(addresseeR ); 2878 remote->removeAddressee(addresseeR );
2878 2879
2879 } else { 2880 } else {
2880 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2881 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2881 addresseeRSync = addresseeLSync ; 2882 addresseeRSync = addresseeLSync ;
2882 } else { 2883 } else {
2883 //qDebug("FULLDATE 1"); 2884 //qDebug("FULLDATE 1");
2884 fullDateRange = true; 2885 fullDateRange = true;
2885 Addressee newAdd; 2886 Addressee newAdd;
2886 addresseeRSync = newAdd; 2887 addresseeRSync = newAdd;
2887 addresseeRSync.setFamilyName(mCurrentSyncName + i18n(" - sync addressee")); 2888 addresseeRSync.setFamilyName(mCurrentSyncName + i18n(" - sync addressee"));
2888 addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName ); 2889 addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName );
2889 addresseeRSync.setRevision( mLastAddressbookSync ); 2890 addresseeRSync.setRevision( mLastAddressbookSync );
2890 addresseeRSync.setCategories( i18n("SyncAddressee") ); 2891 addresseeRSync.setCategories( i18n("SyncAddressee") );
2891 } 2892 }
2892 } 2893 }
2893 if ( addresseeLSync.revision() == mLastAddressbookSync ) { 2894 if ( addresseeLSync.revision() == mLastAddressbookSync ) {
2894 // qDebug("FULLDATE 2"); 2895 // qDebug("FULLDATE 2");
2895 fullDateRange = true; 2896 fullDateRange = true;
2896 } 2897 }
2897 if ( ! fullDateRange ) { 2898 if ( ! fullDateRange ) {
2898 if ( addresseeLSync.revision() != addresseeRSync.revision() ) { 2899 if ( addresseeLSync.revision() != addresseeRSync.revision() ) {
2899 2900
2900 // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() ); 2901 // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() );
2901 //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec()); 2902 //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec());
2902 fullDateRange = true; 2903 fullDateRange = true;
2903 //qDebug("FULLDATE 3 %s %s", addresseeLSync.revision().toString().latin1() , addresseeRSync.revision().toString().latin1() ); 2904 //qDebug("FULLDATE 3 %s %s", addresseeLSync.revision().toString().latin1() , addresseeRSync.revision().toString().latin1() );
2904 } 2905 }
2905 } 2906 }
2906 // fullDateRange = true; // debug only! 2907 // fullDateRange = true; // debug only!
2907 if ( fullDateRange ) 2908 if ( fullDateRange )
2908 mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365); 2909 mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365);
2909 else 2910 else
2910 mLastAddressbookSync = addresseeLSync.revision(); 2911 mLastAddressbookSync = addresseeLSync.revision();
2911 // for resyncing if own file has changed 2912 // for resyncing if own file has changed
2912 // PENDING fixme later when implemented 2913 // PENDING fixme later when implemented
2913#if 0 2914#if 0
2914 if ( mCurrentSyncDevice == "deleteaftersync" ) { 2915 if ( mCurrentSyncDevice == "deleteaftersync" ) {
2915 mLastAddressbookSync = loadedFileVersion; 2916 mLastAddressbookSync = loadedFileVersion;
2916 qDebug("setting mLastAddressbookSync "); 2917 qDebug("setting mLastAddressbookSync ");
2917 } 2918 }
2918#endif 2919#endif
2919 2920
2920 2921
2921 // ********** setting filters **************** 2922 // ********** setting filters ****************
2922 Filter filterIN = mViewManager->getFilterByName( syncManager->mFilterInAB ); 2923 Filter filterIN = mViewManager->getFilterByName( syncManager->mFilterInAB );
2923 Filter filterOUT = mViewManager->getFilterByName( syncManager->mFilterOutAB ); 2924 Filter filterOUT = mViewManager->getFilterByName( syncManager->mFilterOutAB );
2924 2925
2925 //qDebug("*************************** "); 2926 //qDebug("*************************** ");
2926 // qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() ); 2927 // qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() );
2927 QStringList er = remote->uidList(); 2928 QStringList er = remote->uidList();
2928 Addressee inR ;//= er.first(); 2929 Addressee inR ;//= er.first();
2929 Addressee inL; 2930 Addressee inL;
2930 2931
2931 syncManager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count()); 2932 syncManager->showProgressBar(0, i18n("Syncing - close to abort!"), er.count());
2932 2933
2933 int modulo = (er.count()/10)+1; 2934 int modulo = (er.count()/10)+1;
2934 int incCounter = 0; 2935 int incCounter = 0;
2935 while ( incCounter < er.count()) { 2936 while ( incCounter < er.count()) {
2936 if (syncManager->isProgressBarCanceled()) 2937 if (syncManager->isProgressBarCanceled())
2937 return false; 2938 return false;
2938 if ( incCounter % modulo == 0 ) 2939 if ( incCounter % modulo == 0 )
2939 syncManager->showProgressBar(incCounter); 2940 syncManager->showProgressBar(incCounter);
2940 2941
2941 uid = er[ incCounter ]; 2942 uid = er[ incCounter ];
2942 bool skipIncidence = false; 2943 bool skipIncidence = false;
2943 if ( uid.left(19) == QString("last-syncAddressee-") ) 2944 if ( uid.left(19) == QString("last-syncAddressee-") )
2944 skipIncidence = true; 2945 skipIncidence = true;
2945 QString idS,OidS; 2946 QString idS,OidS;
2946 qApp->processEvents(); 2947 qApp->processEvents();
2947 if ( !skipIncidence ) { 2948 if ( !skipIncidence ) {
2948 inL = local->findByUid( uid ); 2949 inL = local->findByUid( uid );
2949 inR = remote->findByUid( uid ); 2950 inR = remote->findByUid( uid );
2950 //inL.setResource( 0 ); 2951 //inL.setResource( 0 );
2951 //inR.setResource( 0 ); 2952 //inR.setResource( 0 );
2952 if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars 2953 if ( !inL.isEmpty() ) { // maybe conflict - same uid in both calendars
2953 if ( !inL.resource() || inL.resource()->includeInSync() ) { 2954 if ( !inL.resource() || inL.resource()->includeInSync() ) {
2954 if ( (take = takeAddressee( &inL, &inR, mode, fullDateRange )) ) { 2955 if ( (take = takeAddressee( &inL, &inR, mode, fullDateRange )) ) {
2955 //qDebug("take %d %s ", take, inL.summary().latin1()); 2956 //qDebug("take %d %s ", take, inL.summary().latin1());
2956 if ( take == 3 ) 2957 if ( take == 3 )
2957 return false; 2958 return false;
2958 if ( take == 1 ) {// take local ********************** 2959 if ( take == 1 ) {// take local **********************
2959 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2960 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2960 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) ); 2961 inL.setCsum( mCurrentSyncDevice, inR.getCsum(mCurrentSyncDevice) );
2961 inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) ); 2962 inL.setID( mCurrentSyncDevice, inR.getID(mCurrentSyncDevice) );
2962 local->insertAddressee( inL, false ); 2963 local->insertAddressee( inL, false );
2963 idS = inR.externalUID(); 2964 idS = inR.externalUID();
2964 OidS = inR.originalExternalUID(); 2965 OidS = inR.originalExternalUID();
2965 } 2966 }
2966 else 2967 else
2967 idS = inR.IDStr(); 2968 idS = inR.IDStr();
2968 remote->removeAddressee( inR ); 2969 remote->removeAddressee( inR );
2969 inR = inL; 2970 inR = inL;
2970 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 2971 inR.setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
2971 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2972 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2972 inR.setOriginalExternalUID( OidS ); 2973 inR.setOriginalExternalUID( OidS );
2973 inR.setExternalUID( idS ); 2974 inR.setExternalUID( idS );
2974 if ( syncManager->syncWithDesktop() ) { 2975 if ( syncManager->syncWithDesktop() ) {
2975 inR.setIDStr("changed" ); 2976 inR.setIDStr("changed" );
2976 } 2977 }
2977 //inR.insertCustom( "KADDRESSBOOK", "X-KDESYNC","changed" ); 2978 //inR.insertCustom( "KADDRESSBOOK", "X-KDESYNC","changed" );
2978 } else { 2979 } else {
2979 inR.setIDStr( idS ); 2980 inR.setIDStr( idS );
diff --git a/libkdepim/categoryeditdialog_base.cpp b/libkdepim/categoryeditdialog_base.cpp
index 2390bbd..1908576 100644
--- a/libkdepim/categoryeditdialog_base.cpp
+++ b/libkdepim/categoryeditdialog_base.cpp
@@ -1,154 +1,155 @@
1#include <klocale.h> 1#include <klocale.h>
2/**************************************************************************** 2/****************************************************************************
3** Form implementation generated from reading ui file '/build/kde/cvs/korge/kdepim/libkdepim/categoryeditdialog_base.ui' 3** Form implementation generated from reading ui file '/build/kde/cvs/korge/kdepim/libkdepim/categoryeditdialog_base.ui'
4** 4**
5** Created: Sat Mar 29 21:46:09 2003 5** Created: Sat Mar 29 21:46:09 2003
6** by: The User Interface Compiler () 6** by: The User Interface Compiler ()
7** 7**
8** WARNING! All changes made in this file will be lost! 8** WARNING! All changes made in this file will be lost!
9****************************************************************************/ 9****************************************************************************/
10 10
11#include "categoryeditdialog_base.h" 11#include "categoryeditdialog_base.h"
12 12
13#include <qvariant.h> 13#include <qvariant.h>
14#include <qheader.h> 14#include <qheader.h>
15#include <qlineedit.h> 15#include <qlineedit.h>
16#include <qlistview.h> 16#include <qlistview.h>
17#include <qpushbutton.h> 17#include <qpushbutton.h>
18#include <qlayout.h> 18#include <qlayout.h>
19#include <qtooltip.h> 19#include <qtooltip.h>
20#include <qwhatsthis.h> 20#include <qwhatsthis.h>
21 21
22/* 22/*
23 * Constructs a CategoryEditDialog_base as a child of 'parent', with the 23 * Constructs a CategoryEditDialog_base as a child of 'parent', with the
24 * name 'name' and widget flags set to 'f'. 24 * name 'name' and widget flags set to 'f'.
25 * 25 *
26 * The dialog will by default be modeless, unless you set 'modal' to 26 * The dialog will by default be modeless, unless you set 'modal' to
27 * TRUE to construct a modal dialog. 27 * TRUE to construct a modal dialog.
28 */ 28 */
29CategoryEditDialog_base::CategoryEditDialog_base( QWidget* parent, const char* name, bool modal, WFlags fl ) 29CategoryEditDialog_base::CategoryEditDialog_base( QWidget* parent, const char* name, bool modal, WFlags fl )
30 : QDialog( parent, name, true, fl ) 30 : QDialog( parent, name, true, fl )
31 31
32{ 32{
33 if ( !name ) 33 if ( !name )
34 setName( "CategoryEditDialog_base" ); 34 setName( "CategoryEditDialog_base" );
35 CategoryEditDialog_baseLayout = new QGridLayout( this, 1, 1, 11, 6, "CategoryEditDialog_baseLayout"); 35 CategoryEditDialog_baseLayout = new QGridLayout( this, 1, 1, 11, 6, "CategoryEditDialog_baseLayout");
36 36
37 mEdit = new QLineEdit( this, "mEdit" ); 37 mEdit = new QLineEdit( this, "mEdit" );
38 38
39 CategoryEditDialog_baseLayout->addMultiCellWidget( mEdit, 1, 1, 0, 1 ); 39 CategoryEditDialog_baseLayout->addMultiCellWidget( mEdit, 1, 1, 0, 0 );
40 40
41 Layout13 = new QHBoxLayout( 0, 0, 6, "Layout13"); 41 Layout13 = new QHBoxLayout( 0, 0, 6, "Layout13");
42 42
43 // mButtonHelp = new QPushButton( this, "mButtonHelp" ); 43 // mButtonHelp = new QPushButton( this, "mButtonHelp" );
44 //mButtonHelp->setAutoDefault( TRUE ); 44 //mButtonHelp->setAutoDefault( TRUE );
45 //Layout13->addWidget( mButtonHelp ); 45 //Layout13->addWidget( mButtonHelp );
46 //QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); 46 //QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
47 //Layout13->addItem( spacer ); 47 //Layout13->addItem( spacer );
48 48
49 //mApply = new QPushButton( this, "mApply" ); 49 //mApply = new QPushButton( this, "mApply" );
50 // Layout13->addWidget( mApply ); 50 // Layout13->addWidget( mApply );
51 51
52 mButtonOk = new QPushButton( this, "mButtonOk" ); 52 mButtonOk = new QPushButton( this, "mButtonOk" );
53 mButtonOk->setAutoDefault( TRUE ); 53 mButtonOk->setAutoDefault( TRUE );
54 mButtonOk->setDefault( TRUE ); 54 mButtonOk->setDefault( TRUE );
55 Layout13->addWidget( mButtonOk ); 55 Layout13->addWidget( mButtonOk );
56 56
57 mButtonCancel = new QPushButton( this, "mButtonCancel" ); 57 mButtonCancel = new QPushButton( this, "mButtonCancel" );
58 mButtonCancel->setAutoDefault( TRUE ); 58 mButtonCancel->setAutoDefault( TRUE );
59 Layout13->addWidget( mButtonCancel ); 59 Layout13->addWidget( mButtonCancel );
60 60
61 CategoryEditDialog_baseLayout->addMultiCellLayout( Layout13, 2, 2, 0, 1 ); 61 CategoryEditDialog_baseLayout->addMultiCellLayout( Layout13, 2, 2, 0, 1 );
62 62
63 mCategories = new QListView( this, "mCategories" ); 63 mCategories = new QListView( this, "mCategories" );
64 mCategories->addColumn( tr2i18n( "Category" ) ); 64 mCategories->addColumn( tr2i18n( "Category" ) );
65 65
66 CategoryEditDialog_baseLayout->addWidget( mCategories, 0, 0 ); 66 CategoryEditDialog_baseLayout->addWidget( mCategories, 0, 0 );
67 67
68 layout103 = new QVBoxLayout( 0, 0, 6, "layout103"); 68 layout103 = new QVBoxLayout( 0, 0, 6, "layout103");
69 69
70 mButtonAdd = new QPushButton( this, "mButtonAdd" ); 70 mButtonAdd = new QPushButton( this, "mButtonAdd" );
71 layout103->addWidget( mButtonAdd ); 71 CategoryEditDialog_baseLayout->addMultiCellWidget(mButtonAdd , 1, 1, 1, 1 );
72 //layout103->addWidget( mButtonAdd );
72 73
73 mButtonModify = new QPushButton( this, "mButtonModify" ); 74 mButtonModify = new QPushButton( this, "mButtonModify" );
74 layout103->addWidget( mButtonModify ); 75 layout103->addWidget( mButtonModify );
75 76
76 mButtonRemove = new QPushButton( this, "mButtonRemove" ); 77 mButtonRemove = new QPushButton( this, "mButtonRemove" );
77 layout103->addWidget( mButtonRemove ); 78 layout103->addWidget( mButtonRemove );
78 QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); 79 QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
79 layout103->addItem( spacer_2 ); 80 layout103->addItem( spacer_2 );
80 81
81 CategoryEditDialog_baseLayout->addLayout( layout103, 0, 1 ); 82 CategoryEditDialog_baseLayout->addLayout( layout103, 0, 1 );
82 languageChange(); 83 languageChange();
83 resize( sizeHint() ); 84 resize( sizeHint() );
84 85
85 // signals and slots connections 86 // signals and slots connections
86 connect( mButtonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); 87 connect( mButtonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
87 connect( mButtonAdd, SIGNAL( clicked() ), this, SLOT( add() ) ); 88 connect( mButtonAdd, SIGNAL( clicked() ), this, SLOT( add() ) );
88 connect( mButtonModify, SIGNAL( clicked() ), this, SLOT( modify() ) ); 89 connect( mButtonModify, SIGNAL( clicked() ), this, SLOT( modify() ) );
89 connect( mButtonRemove, SIGNAL( clicked() ), this, SLOT( remove() ) ); 90 connect( mButtonRemove, SIGNAL( clicked() ), this, SLOT( remove() ) );
90 connect( mButtonOk, SIGNAL( clicked() ), this, SLOT( slotOk() ) ); 91 connect( mButtonOk, SIGNAL( clicked() ), this, SLOT( slotOk() ) );
91 //connect( mApply, SIGNAL( clicked() ), this, SLOT( slotApply() ) ); 92 //connect( mApply, SIGNAL( clicked() ), this, SLOT( slotApply() ) );
92 93
93 // tab order 94 // tab order
94 // setTabOrder( mCategories, mEdit ); 95 // setTabOrder( mCategories, mEdit );
95// setTabOrder( mEdit, mButtonAdd ); 96// setTabOrder( mEdit, mButtonAdd );
96// setTabOrder( mButtonAdd, mButtonModify ); 97// setTabOrder( mButtonAdd, mButtonModify );
97// setTabOrder( mButtonModify, mButtonRemove ); 98// setTabOrder( mButtonModify, mButtonRemove );
98// setTabOrder( mButtonRemove, mButtonHelp ); 99// setTabOrder( mButtonRemove, mButtonHelp );
99// setTabOrder( mButtonHelp, mApply ); 100// setTabOrder( mButtonHelp, mApply );
100// setTabOrder( mApply, mButtonOk ); 101// setTabOrder( mApply, mButtonOk );
101// setTabOrder( mButtonOk, mButtonCancel ); 102// setTabOrder( mButtonOk, mButtonCancel );
102} 103}
103 104
104/* 105/*
105 * Destroys the object and frees any allocated resources 106 * Destroys the object and frees any allocated resources
106 */ 107 */
107CategoryEditDialog_base::~CategoryEditDialog_base() 108CategoryEditDialog_base::~CategoryEditDialog_base()
108{ 109{
109 // no need to delete child widgets, Qt does it all for us 110 // no need to delete child widgets, Qt does it all for us
110} 111}
111 112
112/* 113/*
113 * Sets the strings of the subwidgets using the current 114 * Sets the strings of the subwidgets using the current
114 * language. 115 * language.
115 */ 116 */
116void CategoryEditDialog_base::languageChange() 117void CategoryEditDialog_base::languageChange()
117{ 118{
118 setCaption( tr2i18n( "Edit Categories" ) ); 119 setCaption( tr2i18n( "Edit Categories" ) );
119 // mButtonHelp->setText( tr2i18n( "&Help" ) ); 120 // mButtonHelp->setText( tr2i18n( "&Help" ) );
120 // mApply->setText( tr2i18n( "&Apply" ) ); 121 // mApply->setText( tr2i18n( "&Apply" ) );
121 mButtonOk->setText( tr2i18n( "&OK" ) ); 122 mButtonOk->setText( tr2i18n( "&OK" ) );
122 mButtonCancel->setText( tr2i18n( "&Cancel" ) ); 123 mButtonCancel->setText( tr2i18n( "&Cancel" ) );
123 mCategories->header()->setLabel( 0, tr2i18n( "Category" ) ); 124 mCategories->header()->setLabel( 0, tr2i18n( "Category" ) );
124 mButtonAdd->setText( tr2i18n( "A&dd" ) ); 125 mButtonAdd->setText( tr2i18n( "A&dd" ) );
125 mButtonModify->setText( tr2i18n( "&Modify" ) ); 126 mButtonModify->setText( tr2i18n( "&Modify" ) );
126 mButtonRemove->setText( tr2i18n( "&Remove" ) ); 127 mButtonRemove->setText( tr2i18n( "&Remove" ) );
127} 128}
128 129
129void CategoryEditDialog_base::add() 130void CategoryEditDialog_base::add()
130{ 131{
131 qWarning( "CategoryEditDialog_base::add(): Not implemented yet" ); 132 qWarning( "CategoryEditDialog_base::add(): Not implemented yet" );
132} 133}
133 134
134void CategoryEditDialog_base::modify() 135void CategoryEditDialog_base::modify()
135{ 136{
136 qWarning( "CategoryEditDialog_base::modify(): Not implemented yet" ); 137 qWarning( "CategoryEditDialog_base::modify(): Not implemented yet" );
137} 138}
138 139
139void CategoryEditDialog_base::slotApply() 140void CategoryEditDialog_base::slotApply()
140{ 141{
141 qWarning( "CategoryEditDialog_base::slotApply(): Not implemented yet" ); 142 qWarning( "CategoryEditDialog_base::slotApply(): Not implemented yet" );
142} 143}
143 144
144void CategoryEditDialog_base::remove() 145void CategoryEditDialog_base::remove()
145{ 146{
146 qWarning( "CategoryEditDialog_base::remove(): Not implemented yet" ); 147 qWarning( "CategoryEditDialog_base::remove(): Not implemented yet" );
147} 148}
148 149
149void CategoryEditDialog_base::slotOk() 150void CategoryEditDialog_base::slotOk()
150{ 151{
151 qWarning( "CategoryEditDialog_base::slotOk(): Not implemented yet" ); 152 qWarning( "CategoryEditDialog_base::slotOk(): Not implemented yet" );
152} 153}
153 154
154//US #include "categoryeditdialog_base.moc" 155//US #include "categoryeditdialog_base.moc"