-rw-r--r-- | kaddressbook/kabcore.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 2a2f904..bbf8e1b 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -32,131 +32,133 @@ $Id$ | |||
32 | 32 | ||
33 | #include <stdaddressbook.h> | 33 | #include <stdaddressbook.h> |
34 | #include <klocale.h> | 34 | #include <klocale.h> |
35 | 35 | ||
36 | #ifndef KAB_EMBEDDED | 36 | #ifndef KAB_EMBEDDED |
37 | #include <qclipboard.h> | 37 | #include <qclipboard.h> |
38 | #include <qdir.h> | 38 | #include <qdir.h> |
39 | #include <qfile.h> | 39 | #include <qfile.h> |
40 | #include <qapplicaton.h> | 40 | #include <qapplicaton.h> |
41 | #include <qlayout.h> | 41 | #include <qlayout.h> |
42 | #include <qregexp.h> | 42 | #include <qregexp.h> |
43 | #include <qvbox.h> | 43 | #include <qvbox.h> |
44 | #include <kabc/addresseelist.h> | 44 | #include <kabc/addresseelist.h> |
45 | #include <kabc/errorhandler.h> | 45 | #include <kabc/errorhandler.h> |
46 | #include <kabc/resource.h> | 46 | #include <kabc/resource.h> |
47 | #include <kabc/vcardconverter.h> | 47 | #include <kabc/vcardconverter.h> |
48 | #include <kapplication.h> | 48 | #include <kapplication.h> |
49 | #include <kactionclasses.h> | 49 | #include <kactionclasses.h> |
50 | #include <kcmultidialog.h> | 50 | #include <kcmultidialog.h> |
51 | #include <kdebug.h> | 51 | #include <kdebug.h> |
52 | #include <kdeversion.h> | 52 | #include <kdeversion.h> |
53 | #include <kkeydialog.h> | 53 | #include <kkeydialog.h> |
54 | #include <kmessagebox.h> | 54 | #include <kmessagebox.h> |
55 | #include <kprinter.h> | 55 | #include <kprinter.h> |
56 | #include <kprotocolinfo.h> | 56 | #include <kprotocolinfo.h> |
57 | #include <kresources/selectdialog.h> | 57 | #include <kresources/selectdialog.h> |
58 | #include <kstandarddirs.h> | 58 | #include <kstandarddirs.h> |
59 | #include <ktempfile.h> | 59 | #include <ktempfile.h> |
60 | #include <kxmlguiclient.h> | 60 | #include <kxmlguiclient.h> |
61 | #include <kaboutdata.h> | 61 | #include <kaboutdata.h> |
62 | #include <libkdepim/categoryselectdialog.h> | 62 | #include <libkdepim/categoryselectdialog.h> |
63 | 63 | ||
64 | #include "addresseeutil.h" | 64 | #include "addresseeutil.h" |
65 | #include "addresseeeditordialog.h" | 65 | #include "addresseeeditordialog.h" |
66 | #include "extensionmanager.h" | 66 | #include "extensionmanager.h" |
67 | #include "kstdaction.h" | 67 | #include "kstdaction.h" |
68 | #include "kaddressbookservice.h" | 68 | #include "kaddressbookservice.h" |
69 | #include "ldapsearchdialog.h" | 69 | #include "ldapsearchdialog.h" |
70 | #include "printing/printingwizard.h" | 70 | #include "printing/printingwizard.h" |
71 | #else // KAB_EMBEDDED | 71 | #else // KAB_EMBEDDED |
72 | 72 | ||
73 | #include <kapplication.h> | 73 | #include <kapplication.h> |
74 | #include "KDGanttMinimizeSplitter.h" | 74 | #include "KDGanttMinimizeSplitter.h" |
75 | #include "kaddressbookmain.h" | 75 | #include "kaddressbookmain.h" |
76 | #include "kactioncollection.h" | 76 | #include "kactioncollection.h" |
77 | #include "addresseedialog.h" | 77 | #include "addresseedialog.h" |
78 | //US | 78 | //US |
79 | #include <libkdepim/addresseeview.h> | 79 | #include <libkdepim/addresseeview.h> |
80 | 80 | ||
81 | #include <qapp.h> | 81 | #include <qapp.h> |
82 | #include <qmenubar.h> | 82 | #include <qmenubar.h> |
83 | //#include <qtoolbar.h> | 83 | //#include <qtoolbar.h> |
84 | #include <qmessagebox.h> | 84 | #include <qmessagebox.h> |
85 | #include <kdebug.h> | 85 | #include <kdebug.h> |
86 | #include <kiconloader.h> // needed for SmallIcon | 86 | #include <kiconloader.h> // needed for SmallIcon |
87 | #include <kresources/kcmkresources.h> | 87 | #include <kresources/kcmkresources.h> |
88 | #include <ktoolbar.h> | 88 | #include <ktoolbar.h> |
89 | 89 | ||
90 | 90 | ||
91 | //#include <qlabel.h> | 91 | //#include <qlabel.h> |
92 | 92 | ||
93 | 93 | ||
94 | #ifndef DESKTOP_VERSION | 94 | #ifndef DESKTOP_VERSION |
95 | #include <qpe/ir.h> | 95 | #include <qpe/ir.h> |
96 | #include <qpe/qpemenubar.h> | ||
96 | #include <qtopia/qcopenvelope_qws.h> | 97 | #include <qtopia/qcopenvelope_qws.h> |
97 | #else | 98 | #else |
98 | 99 | ||
100 | #include <qmenubar.h> | ||
99 | #endif | 101 | #endif |
100 | 102 | ||
101 | #endif // KAB_EMBEDDED | 103 | #endif // KAB_EMBEDDED |
102 | #include "kcmconfigs/kcmkabconfig.h" | 104 | #include "kcmconfigs/kcmkabconfig.h" |
103 | #include "kcmconfigs/kcmkdepimconfig.h" | 105 | #include "kcmconfigs/kcmkdepimconfig.h" |
104 | #include "kpimglobalprefs.h" | 106 | #include "kpimglobalprefs.h" |
105 | #include "externalapphandler.h" | 107 | #include "externalapphandler.h" |
106 | 108 | ||
107 | 109 | ||
108 | #include <kresources/selectdialog.h> | 110 | #include <kresources/selectdialog.h> |
109 | #include <kmessagebox.h> | 111 | #include <kmessagebox.h> |
110 | 112 | ||
111 | #include <picture.h> | 113 | #include <picture.h> |
112 | #include <resource.h> | 114 | #include <resource.h> |
113 | 115 | ||
114 | //US#include <qsplitter.h> | 116 | //US#include <qsplitter.h> |
115 | #include <qmap.h> | 117 | #include <qmap.h> |
116 | #include <qdir.h> | 118 | #include <qdir.h> |
117 | #include <qfile.h> | 119 | #include <qfile.h> |
118 | #include <qvbox.h> | 120 | #include <qvbox.h> |
119 | #include <qlayout.h> | 121 | #include <qlayout.h> |
120 | #include <qclipboard.h> | 122 | #include <qclipboard.h> |
121 | #include <qtextstream.h> | 123 | #include <qtextstream.h> |
122 | 124 | ||
123 | #include <libkdepim/categoryselectdialog.h> | 125 | #include <libkdepim/categoryselectdialog.h> |
124 | #include <kabc/vcardconverter.h> | 126 | #include <kabc/vcardconverter.h> |
125 | 127 | ||
126 | 128 | ||
127 | #include "addresseeutil.h" | 129 | #include "addresseeutil.h" |
128 | #include "undocmds.h" | 130 | #include "undocmds.h" |
129 | #include "addresseeeditordialog.h" | 131 | #include "addresseeeditordialog.h" |
130 | #include "viewmanager.h" | 132 | #include "viewmanager.h" |
131 | #include "details/detailsviewcontainer.h" | 133 | #include "details/detailsviewcontainer.h" |
132 | #include "kabprefs.h" | 134 | #include "kabprefs.h" |
133 | #include "xxportmanager.h" | 135 | #include "xxportmanager.h" |
134 | #include "incsearchwidget.h" | 136 | #include "incsearchwidget.h" |
135 | #include "jumpbuttonbar.h" | 137 | #include "jumpbuttonbar.h" |
136 | #include "extensionmanager.h" | 138 | #include "extensionmanager.h" |
137 | #include "addresseeconfig.h" | 139 | #include "addresseeconfig.h" |
138 | #include <kcmultidialog.h> | 140 | #include <kcmultidialog.h> |
139 | 141 | ||
140 | #ifdef _WIN32_ | 142 | #ifdef _WIN32_ |
141 | 143 | ||
142 | #include "kaimportoldialog.h" | 144 | #include "kaimportoldialog.h" |
143 | #endif | 145 | #endif |
144 | 146 | ||
145 | bool pasteWithNewUid = true; | 147 | bool pasteWithNewUid = true; |
146 | 148 | ||
147 | #ifdef KAB_EMBEDDED | 149 | #ifdef KAB_EMBEDDED |
148 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) | 150 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) |
149 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), | 151 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), |
150 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ | 152 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ |
151 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) | 153 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) |
152 | #else //KAB_EMBEDDED | 154 | #else //KAB_EMBEDDED |
153 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) | 155 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) |
154 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), | 156 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), |
155 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), | 157 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), |
156 | mReadWrite( readWrite ), mModified( false ) | 158 | mReadWrite( readWrite ), mModified( false ) |
157 | #endif //KAB_EMBEDDED | 159 | #endif //KAB_EMBEDDED |
158 | { | 160 | { |
159 | 161 | ||
160 | mExtensionBarSplitter = 0; | 162 | mExtensionBarSplitter = 0; |
161 | mIsPart = !parent->inherits( "KAddressBookMain" ); | 163 | mIsPart = !parent->inherits( "KAddressBookMain" ); |
162 | 164 | ||
@@ -1698,129 +1700,129 @@ void KABCore::initActions() | |||
1698 | mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, | 1700 | mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, |
1699 | SLOT( setWhoAmI() ), actionCollection(), | 1701 | SLOT( setWhoAmI() ), actionCollection(), |
1700 | "set_personal" ); | 1702 | "set_personal" ); |
1701 | 1703 | ||
1702 | 1704 | ||
1703 | 1705 | ||
1704 | 1706 | ||
1705 | mActionCategories = new KAction( i18n( "Set Categories" ), 0, this, | 1707 | mActionCategories = new KAction( i18n( "Set Categories" ), 0, this, |
1706 | SLOT( setCategories() ), actionCollection(), | 1708 | SLOT( setCategories() ), actionCollection(), |
1707 | "edit_set_categories" ); | 1709 | "edit_set_categories" ); |
1708 | 1710 | ||
1709 | mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, | 1711 | mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, |
1710 | SLOT( removeVoice() ), actionCollection(), | 1712 | SLOT( removeVoice() ), actionCollection(), |
1711 | "remove_voice" ); | 1713 | "remove_voice" ); |
1712 | mActionImportOL = new KAction( i18n( "Import from OL..." ), 0, this, | 1714 | mActionImportOL = new KAction( i18n( "Import from OL..." ), 0, this, |
1713 | SLOT( importFromOL() ), actionCollection(), | 1715 | SLOT( importFromOL() ), actionCollection(), |
1714 | "import_OL" ); | 1716 | "import_OL" ); |
1715 | #ifdef KAB_EMBEDDED | 1717 | #ifdef KAB_EMBEDDED |
1716 | mActionLicence = new KAction( i18n( "Licence" ), 0, | 1718 | mActionLicence = new KAction( i18n( "Licence" ), 0, |
1717 | this, SLOT( showLicence() ), actionCollection(), | 1719 | this, SLOT( showLicence() ), actionCollection(), |
1718 | "licence_about_data" ); | 1720 | "licence_about_data" ); |
1719 | mActionFaq = new KAction( i18n( "Faq" ), 0, | 1721 | mActionFaq = new KAction( i18n( "Faq" ), 0, |
1720 | this, SLOT( faq() ), actionCollection(), | 1722 | this, SLOT( faq() ), actionCollection(), |
1721 | "faq_about_data" ); | 1723 | "faq_about_data" ); |
1722 | 1724 | ||
1723 | mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, | 1725 | mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, |
1724 | this, SLOT( createAboutData() ), actionCollection(), | 1726 | this, SLOT( createAboutData() ), actionCollection(), |
1725 | "kaddressbook_about_data" ); | 1727 | "kaddressbook_about_data" ); |
1726 | #endif //KAB_EMBEDDED | 1728 | #endif //KAB_EMBEDDED |
1727 | 1729 | ||
1728 | clipboardDataChanged(); | 1730 | clipboardDataChanged(); |
1729 | connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); | 1731 | connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); |
1730 | connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); | 1732 | connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); |
1731 | } | 1733 | } |
1732 | 1734 | ||
1733 | //US we need this function, to plug all actions into the correct menues. | 1735 | //US we need this function, to plug all actions into the correct menues. |
1734 | // KDE uses a XML format to plug the actions, but we work her without this overhead. | 1736 | // KDE uses a XML format to plug the actions, but we work her without this overhead. |
1735 | void KABCore::addActionsManually() | 1737 | void KABCore::addActionsManually() |
1736 | { | 1738 | { |
1737 | //US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); | 1739 | //US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); |
1738 | 1740 | ||
1739 | #ifdef KAB_EMBEDDED | 1741 | #ifdef KAB_EMBEDDED |
1740 | QPopupMenu *fileMenu = new QPopupMenu( this ); | 1742 | QPopupMenu *fileMenu = new QPopupMenu( this ); |
1741 | QPopupMenu *editMenu = new QPopupMenu( this ); | 1743 | QPopupMenu *editMenu = new QPopupMenu( this ); |
1742 | QPopupMenu *helpMenu = new QPopupMenu( this ); | 1744 | QPopupMenu *helpMenu = new QPopupMenu( this ); |
1743 | 1745 | ||
1744 | KToolBar* tb = mMainWindow->toolBar(); | 1746 | KToolBar* tb = mMainWindow->toolBar(); |
1745 | 1747 | ||
1746 | #ifdef DESKTOP_VERSION | 1748 | #ifdef DESKTOP_VERSION |
1747 | QMenuBar* mb = mMainWindow->menuBar(); | 1749 | QMenuBar* mb = mMainWindow->menuBar(); |
1748 | 1750 | ||
1749 | //US setup menubar. | 1751 | //US setup menubar. |
1750 | //Disable the following block if you do not want to have a menubar. | 1752 | //Disable the following block if you do not want to have a menubar. |
1751 | mb->insertItem( "&File", fileMenu ); | 1753 | mb->insertItem( "&File", fileMenu ); |
1752 | mb->insertItem( "&Edit", editMenu ); | 1754 | mb->insertItem( "&Edit", editMenu ); |
1753 | mb->insertItem( "&View", viewMenu ); | 1755 | mb->insertItem( "&View", viewMenu ); |
1754 | mb->insertItem( "&Settings", settingsMenu ); | 1756 | mb->insertItem( "&Settings", settingsMenu ); |
1755 | mb->insertItem( "&Change selected", changeMenu ); | 1757 | mb->insertItem( "&Change selected", changeMenu ); |
1756 | mb->insertItem( "&Help", helpMenu ); | 1758 | mb->insertItem( "&Help", helpMenu ); |
1757 | mIncSearchWidget = new IncSearchWidget( tb ); | 1759 | mIncSearchWidget = new IncSearchWidget( tb ); |
1758 | // tb->insertWidget(-1, 0, mIncSearchWidget); | 1760 | // tb->insertWidget(-1, 0, mIncSearchWidget); |
1759 | 1761 | ||
1760 | #else | 1762 | #else |
1761 | //US setup toolbar | 1763 | //US setup toolbar |
1762 | QMenuBar *menuBarTB = new QMenuBar( tb ); | 1764 | QPEMenuBar *menuBarTB = new QPEMenuBar( tb ); |
1763 | QPopupMenu *popupBarTB = new QPopupMenu( this ); | 1765 | QPopupMenu *popupBarTB = new QPopupMenu( this ); |
1764 | menuBarTB->insertItem( "ME", popupBarTB); | 1766 | menuBarTB->insertItem( "ME", popupBarTB); |
1765 | tb->insertWidget(-1, 0, menuBarTB); | 1767 | tb->insertWidget(-1, 0, menuBarTB); |
1766 | mIncSearchWidget = new IncSearchWidget( tb ); | 1768 | mIncSearchWidget = new IncSearchWidget( tb ); |
1767 | 1769 | ||
1768 | tb->enableMoving(false); | 1770 | tb->enableMoving(false); |
1769 | popupBarTB->insertItem( "&File", fileMenu ); | 1771 | popupBarTB->insertItem( "&File", fileMenu ); |
1770 | popupBarTB->insertItem( "&Edit", editMenu ); | 1772 | popupBarTB->insertItem( "&Edit", editMenu ); |
1771 | popupBarTB->insertItem( "&View", viewMenu ); | 1773 | popupBarTB->insertItem( "&View", viewMenu ); |
1772 | popupBarTB->insertItem( "&Settings", settingsMenu ); | 1774 | popupBarTB->insertItem( "&Settings", settingsMenu ); |
1773 | mViewManager->getFilterAction()->plug ( popupBarTB); | 1775 | mViewManager->getFilterAction()->plug ( popupBarTB); |
1774 | popupBarTB->insertItem( "&Change selected", changeMenu ); | 1776 | popupBarTB->insertItem( "&Change selected", changeMenu ); |
1775 | popupBarTB->insertItem( "&Help", helpMenu ); | 1777 | popupBarTB->insertItem( "&Help", helpMenu ); |
1776 | if (QApplication::desktop()->width() > 320 ) { | 1778 | if (QApplication::desktop()->width() > 320 ) { |
1777 | // mViewManager->getFilterAction()->plug ( tb); | 1779 | // mViewManager->getFilterAction()->plug ( tb); |
1778 | } | 1780 | } |
1779 | #endif | 1781 | #endif |
1780 | // mActionQuit->plug ( mMainWindow->toolBar()); | 1782 | // mActionQuit->plug ( mMainWindow->toolBar()); |
1781 | 1783 | ||
1782 | 1784 | ||
1783 | 1785 | ||
1784 | //US Now connect the actions with the menue entries. | 1786 | //US Now connect the actions with the menue entries. |
1785 | mActionPrint->plug( fileMenu ); | 1787 | mActionPrint->plug( fileMenu ); |
1786 | mActionMail->plug( fileMenu ); | 1788 | mActionMail->plug( fileMenu ); |
1787 | fileMenu->insertSeparator(); | 1789 | fileMenu->insertSeparator(); |
1788 | 1790 | ||
1789 | mActionNewContact->plug( fileMenu ); | 1791 | mActionNewContact->plug( fileMenu ); |
1790 | mActionNewContact->plug( tb ); | 1792 | mActionNewContact->plug( tb ); |
1791 | 1793 | ||
1792 | mActionEditAddressee->plug( fileMenu ); | 1794 | mActionEditAddressee->plug( fileMenu ); |
1793 | if ((KGlobal::getDesktopSize() > KGlobal::Small ) || | 1795 | if ((KGlobal::getDesktopSize() > KGlobal::Small ) || |
1794 | (!KABPrefs::instance()->mMultipleViewsAtOnce )) | 1796 | (!KABPrefs::instance()->mMultipleViewsAtOnce )) |
1795 | mActionEditAddressee->plug( tb ); | 1797 | mActionEditAddressee->plug( tb ); |
1796 | 1798 | ||
1797 | fileMenu->insertSeparator(); | 1799 | fileMenu->insertSeparator(); |
1798 | mActionSave->plug( fileMenu ); | 1800 | mActionSave->plug( fileMenu ); |
1799 | fileMenu->insertItem( "&Import", ImportMenu ); | 1801 | fileMenu->insertItem( "&Import", ImportMenu ); |
1800 | fileMenu->insertItem( "&Emport", ExportMenu ); | 1802 | fileMenu->insertItem( "&Emport", ExportMenu ); |
1801 | fileMenu->insertSeparator(); | 1803 | fileMenu->insertSeparator(); |
1802 | mActionMailVCard->plug( fileMenu ); | 1804 | mActionMailVCard->plug( fileMenu ); |
1803 | #ifndef DESKTOP_VERSION | 1805 | #ifndef DESKTOP_VERSION |
1804 | if ( Ir::supported() ) mActionBeamVCard->plug( fileMenu ); | 1806 | if ( Ir::supported() ) mActionBeamVCard->plug( fileMenu ); |
1805 | if ( Ir::supported() ) mActionBeam->plug(fileMenu ); | 1807 | if ( Ir::supported() ) mActionBeam->plug(fileMenu ); |
1806 | #endif | 1808 | #endif |
1807 | fileMenu->insertSeparator(); | 1809 | fileMenu->insertSeparator(); |
1808 | mActionQuit->plug( fileMenu ); | 1810 | mActionQuit->plug( fileMenu ); |
1809 | #ifdef _WIN32_ | 1811 | #ifdef _WIN32_ |
1810 | mActionImportOL->plug( ImportMenu ); | 1812 | mActionImportOL->plug( ImportMenu ); |
1811 | #endif | 1813 | #endif |
1812 | // edit menu | 1814 | // edit menu |
1813 | mActionUndo->plug( editMenu ); | 1815 | mActionUndo->plug( editMenu ); |
1814 | mActionRedo->plug( editMenu ); | 1816 | mActionRedo->plug( editMenu ); |
1815 | editMenu->insertSeparator(); | 1817 | editMenu->insertSeparator(); |
1816 | mActionCut->plug( editMenu ); | 1818 | mActionCut->plug( editMenu ); |
1817 | mActionCopy->plug( editMenu ); | 1819 | mActionCopy->plug( editMenu ); |
1818 | mActionPaste->plug( editMenu ); | 1820 | mActionPaste->plug( editMenu ); |
1819 | mActionDelete->plug( editMenu ); | 1821 | mActionDelete->plug( editMenu ); |
1820 | editMenu->insertSeparator(); | 1822 | editMenu->insertSeparator(); |
1821 | mActionSelectAll->plug( editMenu ); | 1823 | mActionSelectAll->plug( editMenu ); |
1822 | 1824 | ||
1823 | mActionRemoveVoice->plug( changeMenu ); | 1825 | mActionRemoveVoice->plug( changeMenu ); |
1824 | // settings menu | 1826 | // settings menu |
1825 | //US special menuentry to configure the addressbook resources. On KDE | 1827 | //US special menuentry to configure the addressbook resources. On KDE |
1826 | // you do that through the control center !!! | 1828 | // you do that through the control center !!! |