diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /kabc/frontend | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kabc/frontend')
-rw-r--r-- | kabc/frontend/Makefile.am | 10 | ||||
-rw-r--r-- | kabc/frontend/main.cpp | 20 | ||||
-rw-r--r-- | kabc/frontend/mainWindow.ui | 1409 | ||||
-rw-r--r-- | kabc/frontend/mainWindow.ui.h | 658 |
4 files changed, 2097 insertions, 0 deletions
diff --git a/kabc/frontend/Makefile.am b/kabc/frontend/Makefile.am new file mode 100644 index 000000000..c7a413fcc --- /dev/null +++ b/kabc/frontend/Makefile.am @@ -0,0 +1,10 @@ +INCLUDES = -I$(includedir)/kabc $(all_includes) + +METASOURCES = AUTO + +bin_PROGRAMS = kabcfrontend + +kabcfrontend_LDFLAGS = $(all_libraries) $(KDE_RPATH) +kabcfrontend_LDADD = -lkabc $(LIB_KDECORE) +kabcfrontend_SOURCES = main.cpp mainWindow.ui + diff --git a/kabc/frontend/main.cpp b/kabc/frontend/main.cpp new file mode 100644 index 000000000..797c9198a --- /dev/null +++ b/kabc/frontend/main.cpp @@ -0,0 +1,20 @@ +#include <kaboutdata.h> +#include <kapplication.h> +#include <kdebug.h> +#include <klocale.h> +#include <kcmdlineargs.h> + +#include "mainWindow.h" + +int main( int argc, char ** argv ) +{ + KAboutData aboutData("testkabc",I18N_NOOP("TestKabc"),"0.1"); + KCmdLineArgs::init(argc,argv,&aboutData); + + KApplication app; + + MainWindow *w = new MainWindow; + w->show(); + app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) ); + return app.exec(); +} diff --git a/kabc/frontend/mainWindow.ui b/kabc/frontend/mainWindow.ui new file mode 100644 index 000000000..be9996c55 --- /dev/null +++ b/kabc/frontend/mainWindow.ui @@ -0,0 +1,1409 @@ +<!DOCTYPE UI><UI version="3.1" stdsetdef="1"> +<class>MainWindow</class> +<widget class="QMainWindow"> + <property name="name"> + <cstring>MainWindow</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>570</width> + <height>534</height> + </rect> + </property> + <property name="caption"> + <string>KABC Frontend</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QListView" row="0" column="0"> + <column> + <property name="text"> + <string>Name</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <column> + <property name="text"> + <string>UID</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <property name="name"> + <cstring>mAddresseeList</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>7</vsizetype> + <horstretch>1</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="frameShape"> + <enum>StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>Sunken</enum> + </property> + <property name="resizeMode"> + <enum>AllColumns</enum> + </property> + </widget> + <widget class="QTabWidget" row="0" column="1"> + <property name="name"> + <cstring>TabWidget2</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>7</vsizetype> + <horstretch>2</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="tabPosition"> + <enum>Top</enum> + </property> + <property name="tabShape"> + <enum>Rounded</enum> + </property> + <widget class="QWidget"> + <property name="name"> + <cstring>tab</cstring> + </property> + <attribute name="title"> + <string>&General</string> + </attribute> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QLineEdit" row="0" column="1"> + <property name="name"> + <cstring>mNameEdit</cstring> + </property> + </widget> + <widget class="QLabel" row="0" column="0"> + <property name="name"> + <cstring>TextLabel1</cstring> + </property> + <property name="text"> + <string>Name:</string> + </property> + </widget> + <widget class="QLabel" row="1" column="0"> + <property name="name"> + <cstring>TextLabel1_2</cstring> + </property> + <property name="text"> + <string>URL:</string> + </property> + </widget> + <widget class="QLineEdit" row="1" column="1"> + <property name="name"> + <cstring>mUrlEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="5" column="1"> + <property name="name"> + <cstring>mAdditionalNameEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="7" column="1"> + <property name="name"> + <cstring>mSuffixEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="4" column="1"> + <property name="name"> + <cstring>mGivenNameEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="3" column="1"> + <property name="name"> + <cstring>mPrefixEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="6" column="1"> + <property name="name"> + <cstring>mFamilyNameEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="2" column="1"> + <property name="name"> + <cstring>mFormattedNameEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="8" column="1"> + <property name="name"> + <cstring>mNickNameEdit</cstring> + </property> + </widget> + <widget class="QLabel" row="8" column="0"> + <property name="name"> + <cstring>TextLabel7</cstring> + </property> + <property name="text"> + <string>Nickname:</string> + </property> + </widget> + <widget class="QLabel" row="7" column="0"> + <property name="name"> + <cstring>TextLabel5</cstring> + </property> + <property name="text"> + <string>Honorific suffixes:</string> + </property> + </widget> + <widget class="QLabel" row="6" column="0"> + <property name="name"> + <cstring>TextLabel3_2</cstring> + </property> + <property name="text"> + <string>Family name:</string> + </property> + </widget> + <widget class="QLabel" row="5" column="0"> + <property name="name"> + <cstring>TextLabel4</cstring> + </property> + <property name="text"> + <string>Additional names:</string> + </property> + </widget> + <widget class="QLabel" row="4" column="0"> + <property name="name"> + <cstring>TextLabel6</cstring> + </property> + <property name="text"> + <string>Given name:</string> + </property> + </widget> + <widget class="QLabel" row="3" column="0"> + <property name="name"> + <cstring>TextLabel1_3</cstring> + </property> + <property name="text"> + <string>Honorific prefixes:</string> + </property> + </widget> + <widget class="QLabel" row="2" column="0"> + <property name="name"> + <cstring>TextLabel8</cstring> + </property> + <property name="text"> + <string>Formatted name:</string> + </property> + </widget> + <widget class="QLabel" row="9" column="0"> + <property name="name"> + <cstring>TextLabel15</cstring> + </property> + <property name="text"> + <string>Sort string:</string> + </property> + </widget> + <widget class="QLineEdit" row="9" column="1"> + <property name="name"> + <cstring>mSortStringEdit</cstring> + </property> + </widget> + <widget class="QLabel" row="11" column="0"> + <property name="name"> + <cstring>TextLabel11</cstring> + </property> + <property name="text"> + <string>Role:</string> + </property> + </widget> + <widget class="QLabel" row="12" column="0"> + <property name="name"> + <cstring>TextLabel12</cstring> + </property> + <property name="text"> + <string>Organization:</string> + </property> + </widget> + <widget class="QLabel" row="10" column="0"> + <property name="name"> + <cstring>TextLabel10</cstring> + </property> + <property name="text"> + <string>Title:</string> + </property> + </widget> + <widget class="QLineEdit" row="10" column="1"> + <property name="name"> + <cstring>mTitleEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="11" column="1"> + <property name="name"> + <cstring>mRoleEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="12" column="1"> + <property name="name"> + <cstring>mOrganizationEdit</cstring> + </property> + </widget> + <spacer row="13" column="1"> + <property name="name"> + <cstring>Spacer1</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </grid> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>tab</cstring> + </property> + <attribute name="title"> + <string>Phone && &Mail</string> + </attribute> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QGroupBox" row="1" column="0"> + <property name="name"> + <cstring>GroupBox1</cstring> + </property> + <property name="title"> + <string>&Phone</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QLabel" row="0" column="0"> + <property name="name"> + <cstring>TextLabel2_3</cstring> + </property> + <property name="text"> + <string>Id:</string> + </property> + </widget> + <widget class="QComboBox" row="0" column="1" rowspan="1" colspan="2"> + <property name="name"> + <cstring>mPhoneIdCombo</cstring> + </property> + </widget> + <widget class="QPushButton" row="0" column="3"> + <property name="name"> + <cstring>PushButton3</cstring> + </property> + <property name="text"> + <string>Remove</string> + </property> + </widget> + <widget class="QPushButton" row="0" column="4"> + <property name="name"> + <cstring>PushButton4</cstring> + </property> + <property name="text"> + <string>New</string> + </property> + </widget> + <widget class="QLineEdit" row="1" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mPhoneNumberEdit</cstring> + </property> + </widget> + <widget class="QLabel" row="1" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel1_5</cstring> + </property> + <property name="text"> + <string>Number:</string> + </property> + </widget> + <widget class="QButtonGroup" row="2" column="0" rowspan="1" colspan="5"> + <property name="name"> + <cstring>ButtonGroup2</cstring> + </property> + <property name="title"> + <string>Type</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QCheckBox" row="2" column="0"> + <property name="name"> + <cstring>mPhoneWorkCheck</cstring> + </property> + <property name="text"> + <string>Work</string> + </property> + </widget> + <widget class="QCheckBox" row="3" column="0"> + <property name="name"> + <cstring>mPhonePrefCheck</cstring> + </property> + <property name="text"> + <string>Pref</string> + </property> + </widget> + <widget class="QCheckBox" row="1" column="0"> + <property name="name"> + <cstring>mPhoneHomeCheck</cstring> + </property> + <property name="text"> + <string>Home</string> + </property> + </widget> + <widget class="QCheckBox" row="1" column="1"> + <property name="name"> + <cstring>mPhoneCellCheck</cstring> + </property> + <property name="text"> + <string>Cell</string> + </property> + </widget> + <widget class="QCheckBox" row="0" column="0"> + <property name="name"> + <cstring>mPhoneFaxCheck</cstring> + </property> + <property name="text"> + <string>Fax</string> + </property> + </widget> + <widget class="QCheckBox" row="3" column="1" rowspan="1" colspan="2"> + <property name="name"> + <cstring>mPhoneBbsCheck</cstring> + </property> + <property name="text"> + <string>BBS</string> + </property> + </widget> + <widget class="QCheckBox" row="0" column="1"> + <property name="name"> + <cstring>mPhoneCarCheck</cstring> + </property> + <property name="text"> + <string>Car</string> + </property> + </widget> + <widget class="QCheckBox" row="2" column="1"> + <property name="name"> + <cstring>mPhoneVideoCheck</cstring> + </property> + <property name="text"> + <string>Video</string> + </property> + </widget> + <widget class="QCheckBox" row="0" column="2"> + <property name="name"> + <cstring>mPhoneIsdnCheck</cstring> + </property> + <property name="text"> + <string>ISDN</string> + </property> + </widget> + <widget class="QCheckBox" row="0" column="3"> + <property name="name"> + <cstring>mPhoneVoiceCheck</cstring> + </property> + <property name="text"> + <string>Voice</string> + </property> + </widget> + <widget class="QCheckBox" row="1" column="2"> + <property name="name"> + <cstring>mPhonePcsCheck</cstring> + </property> + <property name="text"> + <string>PCS</string> + </property> + </widget> + <widget class="QCheckBox" row="1" column="3"> + <property name="name"> + <cstring>mPhoneModemCheck</cstring> + </property> + <property name="text"> + <string>Modem</string> + </property> + </widget> + <widget class="QCheckBox" row="2" column="2"> + <property name="name"> + <cstring>mPhonePagerCheck</cstring> + </property> + <property name="text"> + <string>Pager</string> + </property> + </widget> + <widget class="QCheckBox" row="2" column="3"> + <property name="name"> + <cstring>mPhoneMsgCheck</cstring> + </property> + <property name="text"> + <string>Msg</string> + </property> + </widget> + </grid> + </widget> + </grid> + </widget> + <widget class="QGroupBox" row="0" column="0"> + <property name="name"> + <cstring>GroupBox2</cstring> + </property> + <property name="title"> + <string>Ema&il</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QPushButton" row="0" column="1"> + <property name="name"> + <cstring>PushButton7</cstring> + </property> + <property name="text"> + <string>&New</string> + </property> + </widget> + <widget class="QPushButton" row="1" column="1"> + <property name="name"> + <cstring>PushButton5</cstring> + </property> + <property name="text"> + <string>&Edit</string> + </property> + </widget> + <widget class="QPushButton" row="2" column="1"> + <property name="name"> + <cstring>PushButton6</cstring> + </property> + <property name="text"> + <string>&Remove</string> + </property> + </widget> + <spacer row="3" column="1"> + <property name="name"> + <cstring>Spacer2</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QListView" row="0" column="0" rowspan="4" colspan="1"> + <column> + <property name="text"> + <string>Address</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <property name="name"> + <cstring>mEmailListView</cstring> + </property> + <property name="resizeMode"> + <enum>AllColumns</enum> + </property> + </widget> + </grid> + </widget> + </grid> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>tab</cstring> + </property> + <attribute name="title"> + <string>A&ddress</string> + </attribute> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel" row="0" column="0"> + <property name="name"> + <cstring>TextLabel16</cstring> + </property> + <property name="text"> + <string>Id:</string> + </property> + </widget> + <widget class="QLabel" row="2" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel1_4</cstring> + </property> + <property name="text"> + <string>Post office box:</string> + </property> + </widget> + <widget class="QLabel" row="3" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel2_2</cstring> + </property> + <property name="text"> + <string>Extended:</string> + </property> + </widget> + <widget class="QLabel" row="4" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel3_3</cstring> + </property> + <property name="text"> + <string>Street:</string> + </property> + </widget> + <widget class="QLabel" row="5" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel4_2</cstring> + </property> + <property name="text"> + <string>Locality:</string> + </property> + </widget> + <widget class="QLineEdit" row="2" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mAddressPostOfficeBoxEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="3" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mAddressExtendedEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="4" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mAddressStreetEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="5" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mAddressLocalityEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="6" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mAddressRegionEdit</cstring> + </property> + </widget> + <widget class="QLabel" row="6" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel5_2</cstring> + </property> + <property name="text"> + <string>Region:</string> + </property> + </widget> + <widget class="QLabel" row="8" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel7_2</cstring> + </property> + <property name="text"> + <string>Country:</string> + </property> + </widget> + <widget class="QLabel" row="7" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel6_2</cstring> + </property> + <property name="text"> + <string>Postal code:</string> + </property> + </widget> + <widget class="QTextEdit" row="10" column="0" rowspan="1" colspan="5"> + <property name="name"> + <cstring>mAddressLabelEdit</cstring> + </property> + </widget> + <widget class="QLabel" row="9" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>TextLabel13</cstring> + </property> + <property name="text"> + <string>Label:</string> + </property> + </widget> + <widget class="QLineEdit" row="7" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mAddressPostalCodeEdit</cstring> + </property> + </widget> + <widget class="QLineEdit" row="8" column="2" rowspan="1" colspan="3"> + <property name="name"> + <cstring>mAddressCountryEdit</cstring> + </property> + </widget> + <widget class="QButtonGroup" row="1" column="0" rowspan="1" colspan="5"> + <property name="name"> + <cstring>ButtonGroup1</cstring> + </property> + <property name="title"> + <string>Type</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QCheckBox" row="0" column="3"> + <property name="name"> + <cstring>mAddressDomCheck</cstring> + </property> + <property name="text"> + <string>Dom</string> + </property> + </widget> + <widget class="QCheckBox" row="1" column="3"> + <property name="name"> + <cstring>mAddressIntlCheck</cstring> + </property> + <property name="text"> + <string>Intl</string> + </property> + </widget> + <widget class="QCheckBox" row="0" column="2"> + <property name="name"> + <cstring>mAddressParcelCheck</cstring> + </property> + <property name="text"> + <string>Parcel</string> + </property> + </widget> + <widget class="QCheckBox" row="1" column="2"> + <property name="name"> + <cstring>mAddressPostalCheck</cstring> + </property> + <property name="text"> + <string>Postal</string> + </property> + </widget> + <widget class="QCheckBox" row="0" column="1"> + <property name="name"> + <cstring>mAddressHomeCheck</cstring> + </property> + <property name="text"> + <string>Home</string> + </property> + </widget> + <widget class="QCheckBox" row="0" column="0"> + <property name="name"> + <cstring>mAddressPrefCheck</cstring> + </property> + <property name="text"> + <string>Pref</string> + </property> + </widget> + <widget class="QCheckBox" row="1" column="1"> + <property name="name"> + <cstring>mAddressWorkCheck</cstring> + </property> + <property name="text"> + <string>Work</string> + </property> + </widget> + </grid> + </widget> + <widget class="QPushButton" row="0" column="4"> + <property name="name"> + <cstring>PushButton1</cstring> + </property> + <property name="text"> + <string>&New</string> + </property> + </widget> + <widget class="QPushButton" row="0" column="3"> + <property name="name"> + <cstring>PushButton2</cstring> + </property> + <property name="text"> + <string>&Remove</string> + </property> + </widget> + <widget class="QComboBox" row="0" column="1" rowspan="1" colspan="2"> + <property name="name"> + <cstring>mAddressIdCombo</cstring> + </property> + </widget> + </grid> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>tab</cstring> + </property> + <attribute name="title"> + <string>&Special</string> + </attribute> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QTextEdit" row="2" column="0"> + <property name="name"> + <cstring>mNoteEdit</cstring> + </property> + </widget> + <widget class="QLabel" row="1" column="0"> + <property name="name"> + <cstring>TextLabel14</cstring> + </property> + <property name="text"> + <string>Note:</string> + </property> + </widget> + <widget class="QGroupBox" row="0" column="0"> + <property name="name"> + <cstring>GroupBox2_2</cstring> + </property> + <property name="title"> + <string>Categories</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QListView" row="0" column="0" rowspan="4" colspan="1"> + <column> + <property name="text"> + <string>Name</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <property name="name"> + <cstring>mCategoryListView</cstring> + </property> + <property name="resizeMode"> + <enum>AllColumns</enum> + </property> + </widget> + <spacer row="3" column="1"> + <property name="name"> + <cstring>Spacer2_2</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QPushButton" row="2" column="1"> + <property name="name"> + <cstring>PushButton6_2</cstring> + </property> + <property name="text"> + <string>&Remove</string> + </property> + </widget> + <widget class="QPushButton" row="1" column="1"> + <property name="name"> + <cstring>PushButton5_2</cstring> + </property> + <property name="text"> + <string>&Edit</string> + </property> + </widget> + <widget class="QPushButton" row="0" column="1"> + <property name="name"> + <cstring>PushButton7_2</cstring> + </property> + <property name="text"> + <string>&New</string> + </property> + </widget> + </grid> + </widget> + </grid> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>tab</cstring> + </property> + <attribute name="title"> + <string>&Custom</string> + </attribute> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QGroupBox" row="0" column="0"> + <property name="name"> + <cstring>GroupBox2_2_2</cstring> + </property> + <property name="title"> + <string>Custom Entries</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>11</number> + </property> + <property name="spacing"> + <number>6</number> + </property> + <widget class="QListView" row="0" column="0" rowspan="4" colspan="1"> + <column> + <property name="text"> + <string>App</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <column> + <property name="text"> + <string>Name</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <column> + <property name="text"> + <string>Value</string> + </property> + <property name="clickable"> + <bool>true</bool> + </property> + <property name="resizable"> + <bool>true</bool> + </property> + </column> + <property name="name"> + <cstring>mCustomListView</cstring> + </property> + <property name="resizeMode"> + <enum>AllColumns</enum> + </property> + </widget> + <widget class="QPushButton" row="0" column="1"> + <property name="name"> + <cstring>PushButton7_2_2</cstring> + </property> + <property name="text"> + <string>&New</string> + </property> + </widget> + <widget class="QPushButton" row="1" column="1"> + <property name="name"> + <cstring>PushButton5_2_2</cstring> + </property> + <property name="text"> + <string>&Edit</string> + </property> + </widget> + <widget class="QPushButton" row="2" column="1"> + <property name="name"> + <cstring>PushButton6_2_2</cstring> + </property> + <property name="text"> + <string>&Remove</string> + </property> + </widget> + <spacer row="3" column="1"> + <property name="name"> + <cstring>Spacer2_2_2</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </grid> + </widget> + </grid> + </widget> + </widget> + </grid> +</widget> +<menubar> + <property name="name"> + <cstring>menubar</cstring> + </property> + <item text="&File" name="PopupMenu"> + <action name="open"/> + <action name="open_std"/> + <action name="save"/> + <separator/> + <action name="dump"/> + </item> + <item text="&Addressee" name="PopupMenu_2"> + <action name="addressee_new"/> + <action name="addressee_remove"/> + </item> +</menubar> +<toolbars> + <toolbar dock="2"> + <property name="name"> + <cstring>Toolbar_3</cstring> + </property> + <property name="label"> + <string>Toolbar_3</string> + </property> + <action name="open"/> + <action name="save"/> + </toolbar> +</toolbars> +<actions> + <action> + <property name="name"> + <cstring>open</cstring> + </property> + <property name="iconSet"> + <iconset>image0</iconset> + </property> + <property name="text"> + <string>Action</string> + </property> + <property name="menuText"> + <string>&Open</string> + </property> + <property name="statusTip"> + <string>Open Address Book</string> + </property> + </action> + <action> + <property name="name"> + <cstring>save</cstring> + </property> + <property name="iconSet"> + <iconset>image1</iconset> + </property> + <property name="text"> + <string>Action</string> + </property> + <property name="menuText"> + <string>&Save</string> + </property> + <property name="statusTip"> + <string>Save Address Book</string> + </property> + </action> + <action> + <property name="name"> + <cstring>addressee_new</cstring> + </property> + <property name="text"> + <string>Action</string> + </property> + <property name="menuText"> + <string>&New</string> + </property> + <property name="statusTip"> + <string>New Addressee</string> + </property> + </action> + <action> + <property name="name"> + <cstring>addressee_remove</cstring> + </property> + <property name="text"> + <string>Action</string> + </property> + <property name="menuText"> + <string>&Remove</string> + </property> + <property name="statusTip"> + <string>Remove Addressee</string> + </property> + </action> + <action> + <property name="name"> + <cstring>dump</cstring> + </property> + <property name="text"> + <string>Dump</string> + </property> + <property name="menuText"> + <string>&Dump</string> + </property> + <property name="toolTip"> + <string>Dump Addressbook</string> + </property> + </action> + <action> + <property name="name"> + <cstring>open_std</cstring> + </property> + <property name="text"> + <string>Open Standard Addressbook</string> + </property> + <property name="menuText"> + <string>Open Standard &Addressbook</string> + </property> + </action> +</actions> +<images> + <image name="image0"> + <data format="XPM.GZ" length="706">789cad92cf0ac2300cc6ef7d8ab0dc866c6eb231101f41f12888873673e8610a3a0f22bebbfdb3d6ced583e09742f3f54792429bc6b0592f214ed9b5e3dd91800efc02717d6bdbfb76b778b028cf41ae12b268c2a2040856e7d35ee528739c6a294bca56b32a33b656960a2aa950962bdb48192aac6d1add36a87f1094d2fb2731a7a856b81b7e23e8886dee0143900b2ed0c9bb1b0aeec580f880ff548343bd6b10c9534f42c0cd19013b670cfa9a003024047a1200b6463d898b5a87fe4e4928a2e79cbd00444d9e3f</data> + </image> + <image name="image1"> + <data format="XPM.GZ" length="706">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022330543251d2e253d856405bffcbc54105b19c856360003103711c4b530b63084709340dc64d364a36453103705ca35837093c1dc9424b31430570f2b00cb2863015099c444e5242400e49026930c1446372d3919a607c8275206610fed641291fd9f8822830688925146350e9b0c6e17d0500614dd7aa830052c93a2870d2ad55a7301002caeaa93</data> + </image> +</images> +<connections> + <connection> + <sender>mAddresseeList</sender> + <signal>selectionChanged(QListViewItem*)</signal> + <receiver>MainWindow</receiver> + <slot>updateAddressee(QListViewItem*)</slot> + </connection> + <connection> + <sender>save</sender> + <signal>activated()</signal> + <receiver>MainWindow</receiver> + <slot>fileSave()</slot> + </connection> + <connection> + <sender>open</sender> + <signal>activated()</signal> + <receiver>MainWindow</receiver> + <slot>fileOpen()</slot> + </connection> + <connection> + <sender>addressee_remove</sender> + <signal>activated()</signal> + <receiver>MainWindow</receiver> + <slot>removeEntry()</slot> + </connection> + <connection> + <sender>addressee_new</sender> + <signal>activated()</signal> + <receiver>MainWindow</receiver> + <slot>newEntry()</slot> + </connection> + <connection> + <sender>PushButton1</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>newAddress()</slot> + </connection> + <connection> + <sender>PushButton2</sender> + <signal>pressed()</signal> + <receiver>MainWindow</receiver> + <slot>removeAddress()</slot> + </connection> + <connection> + <sender>mAddressIdCombo</sender> + <signal>activated(int)</signal> + <receiver>MainWindow</receiver> + <slot>updateAddress(int)</slot> + </connection> + <connection> + <sender>dump</sender> + <signal>activated()</signal> + <receiver>MainWindow</receiver> + <slot>dumpAddressBook()</slot> + </connection> + <connection> + <sender>PushButton3</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>removePhoneNumber()</slot> + </connection> + <connection> + <sender>PushButton4</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>newPhoneNumber()</slot> + </connection> + <connection> + <sender>PushButton5</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>editEmail()</slot> + </connection> + <connection> + <sender>PushButton7</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>newEmail()</slot> + </connection> + <connection> + <sender>PushButton6</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>removeEmail()</slot> + </connection> + <connection> + <sender>mPhoneIdCombo</sender> + <signal>activated(int)</signal> + <receiver>MainWindow</receiver> + <slot>updatePhone(int)</slot> + </connection> + <connection> + <sender>PushButton7_2</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>newCategory()</slot> + </connection> + <connection> + <sender>PushButton5_2</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>editCategory()</slot> + </connection> + <connection> + <sender>PushButton6_2</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>removeCategory()</slot> + </connection> + <connection> + <sender>PushButton7_2_2</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>newCustom()</slot> + </connection> + <connection> + <sender>PushButton5_2_2</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>editCustom()</slot> + </connection> + <connection> + <sender>PushButton6_2_2</sender> + <signal>clicked()</signal> + <receiver>MainWindow</receiver> + <slot>removeCustom()</slot> + </connection> + <connection> + <sender>open_std</sender> + <signal>activated()</signal> + <receiver>MainWindow</receiver> + <slot>fileOpenStd()</slot> + </connection> +</connections> +<tabstops> + <tabstop>mAddresseeList</tabstop> + <tabstop>TabWidget2</tabstop> + <tabstop>mNameEdit</tabstop> + <tabstop>mUrlEdit</tabstop> + <tabstop>mFormattedNameEdit</tabstop> + <tabstop>mPrefixEdit</tabstop> + <tabstop>mGivenNameEdit</tabstop> + <tabstop>mAdditionalNameEdit</tabstop> + <tabstop>mFamilyNameEdit</tabstop> + <tabstop>mSuffixEdit</tabstop> + <tabstop>mNickNameEdit</tabstop> + <tabstop>mSortStringEdit</tabstop> + <tabstop>mTitleEdit</tabstop> + <tabstop>mRoleEdit</tabstop> + <tabstop>mOrganizationEdit</tabstop> + <tabstop>mEmailListView</tabstop> + <tabstop>PushButton7</tabstop> + <tabstop>PushButton5</tabstop> + <tabstop>PushButton6</tabstop> + <tabstop>mPhoneIdCombo</tabstop> + <tabstop>PushButton3</tabstop> + <tabstop>PushButton4</tabstop> + <tabstop>mPhoneNumberEdit</tabstop> + <tabstop>mPhoneFaxCheck</tabstop> + <tabstop>mPhoneCarCheck</tabstop> + <tabstop>mPhoneIsdnCheck</tabstop> + <tabstop>mPhoneVoiceCheck</tabstop> + <tabstop>mPhoneHomeCheck</tabstop> + <tabstop>mPhoneCellCheck</tabstop> + <tabstop>mPhonePcsCheck</tabstop> + <tabstop>mPhoneModemCheck</tabstop> + <tabstop>mPhoneWorkCheck</tabstop> + <tabstop>mPhoneVideoCheck</tabstop> + <tabstop>mPhonePagerCheck</tabstop> + <tabstop>mPhoneMsgCheck</tabstop> + <tabstop>mPhonePrefCheck</tabstop> + <tabstop>mPhoneBbsCheck</tabstop> + <tabstop>mAddressIdCombo</tabstop> + <tabstop>PushButton2</tabstop> + <tabstop>PushButton1</tabstop> + <tabstop>mAddressPrefCheck</tabstop> + <tabstop>mAddressHomeCheck</tabstop> + <tabstop>mAddressParcelCheck</tabstop> + <tabstop>mAddressDomCheck</tabstop> + <tabstop>mAddressWorkCheck</tabstop> + <tabstop>mAddressPostalCheck</tabstop> + <tabstop>mAddressIntlCheck</tabstop> + <tabstop>mAddressPostOfficeBoxEdit</tabstop> + <tabstop>mAddressExtendedEdit</tabstop> + <tabstop>mAddressStreetEdit</tabstop> + <tabstop>mAddressLocalityEdit</tabstop> + <tabstop>mAddressRegionEdit</tabstop> + <tabstop>mAddressPostalCodeEdit</tabstop> + <tabstop>mAddressCountryEdit</tabstop> + <tabstop>mAddressLabelEdit</tabstop> + <tabstop>mCategoryListView</tabstop> + <tabstop>PushButton7_2</tabstop> + <tabstop>PushButton5_2</tabstop> + <tabstop>PushButton6_2</tabstop> + <tabstop>mNoteEdit</tabstop> + <tabstop>mCustomListView</tabstop> + <tabstop>PushButton7_2_2</tabstop> + <tabstop>PushButton5_2_2</tabstop> + <tabstop>PushButton6_2_2</tabstop> +</tabstops> +<includes> + <include location="global" impldecl="in declaration">resourcefile.h</include> + <include location="global" impldecl="in declaration">addressbook.h</include> + <include location="local" impldecl="in implementation">mainWindow.ui.h</include> +</includes> +<forwards> + <forward>class AddresseeItem</forward> +</forwards> +<variables> + <variable>KABC::ResourceFile *mResourceFile</variable> + <variable>AddresseeItem *mCurrentItem</variable> + <variable>KABC::AddressBook *mAddressBook</variable> + <variable>QString mCurrentAddress</variable> + <variable>QString mCurrentPhone</variable> +</variables> +<slots> + <slot>init()</slot> + <slot>destroy()</slot> + <slot>fileSave()</slot> + <slot>fileOpen()</slot> + <slot>loadAddressBook( const QString & fileName )</slot> + <slot>updateAddressee( QListViewItem * item )</slot> + <slot>readAddressee( const KABC::Addressee & a )</slot> + <slot returnType="KABC::Addressee">writeAddressee( const KABC::Addressee & addressee )</slot> + <slot>newEntry()</slot> + <slot>removeEntry()</slot> + <slot>updateAddress( int id )</slot> + <slot returnType="KABC::Address">writeAddress( const KABC::Address & address )</slot> + <slot>writeAddress( const QString & id )</slot> + <slot>readAddress( const KABC::Address & a )</slot> + <slot>readAddress( const QString & id )</slot> + <slot>updatePhone( int id )</slot> + <slot returnType="KABC::PhoneNumber">writePhone( const KABC::PhoneNumber & phoneNumber )</slot> + <slot>writePhone( const QString & id )</slot> + <slot>readPhone( const KABC::PhoneNumber & p )</slot> + <slot>readPhone( const QString & id )</slot> + <slot>newAddress()</slot> + <slot>removeAddress()</slot> + <slot>dumpAddressBook()</slot> + <slot>newEmail()</slot> + <slot>editEmail()</slot> + <slot>removeEmail()</slot> + <slot>newPhoneNumber()</slot> + <slot>removePhoneNumber()</slot> + <slot>newCategory()</slot> + <slot>editCategory()</slot> + <slot>removeCategory()</slot> + <slot>editCustom()</slot> + <slot>newCustom()</slot> + <slot>removeCustom()</slot> + <slot>addressBookChanged()</slot> + <slot>addressBookLocked()</slot> + <slot>addressBookUnlocked()</slot> + <slot>fileOpenStd()</slot> +</slots> +<layoutdefaults spacing="6" margin="11"/> +</UI> diff --git a/kabc/frontend/mainWindow.ui.h b/kabc/frontend/mainWindow.ui.h new file mode 100644 index 000000000..e6a024743 --- /dev/null +++ b/kabc/frontend/mainWindow.ui.h @@ -0,0 +1,658 @@ +/**************************************************************************** +** ui.h extension file, included from the uic-generated form implementation. +** +** If you wish to add, delete or rename slots use Qt Designer which will +** update this file, preserving your code. Create an init() slot in place of +** a constructor, and a destroy() slot in place of a destructor. +*****************************************************************************/ + +#include <qfiledialog.h> +#include <kinputdialog.h> +#include <qmessagebox.h> + +#include <klocale.h> +#include <kdebug.h> + +#include <kabc/stdaddressbook.h> + +using namespace KABC; + +class AddresseeItem : public QListViewItem +{ + public: + AddresseeItem( QListView *parent, const Addressee &a ) : + QListViewItem( parent, a.realName(), a.uid() ), mAddressee( a ) {} + + void setAddressee( const Addressee &a ) { mAddressee = a; } + Addressee &addressee() { return mAddressee; } + + private: + Addressee mAddressee; +}; + +void MainWindow::init() +{ + mAddressBook = KABC::StdAddressBook::self( true ); + + mCurrentItem = 0; + + mEmailListView->header()->hide(); + mCategoryListView->header()->hide(); + + connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), + SLOT( addressBookChanged() ) ); + connect( mAddressBook, SIGNAL( addressBookLocked( AddressBook * ) ), + SLOT( addressBookLocked() ) ); + connect( mAddressBook, SIGNAL( addressBookUnlocked( AddressBook * ) ), + SLOT( addressBookUnlocked() ) ); +} + +void MainWindow::destroy() +{ + delete mAddressBook; +} + +void MainWindow::fileSave() +{ + updateAddressee( mAddresseeList->selectedItem() ); + + StdAddressBook::save(); +} + +void MainWindow::fileOpen() +{ + QString fileName = QFileDialog::getOpenFileName(); + + loadAddressBook( fileName ); +} + +void MainWindow::loadAddressBook( const QString &fileName ) +{ + kdDebug() << "loadAddressBook(): '" << fileName << "'" << endl; + + mAddresseeList->clear(); + mCurrentItem = 0; + mCurrentAddress = QString::null; + readAddressee( Addressee() ); + + KABC::AddressBook::Iterator it; + for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { + new AddresseeItem( mAddresseeList, (*it) ); + } +} + +void MainWindow::updateAddressee( QListViewItem *item ) +{ + AddresseeItem *addresseeItem = dynamic_cast<AddresseeItem *>( item ); + if ( !addresseeItem ) return; + + if (mCurrentItem ) { + writeAddress( mCurrentAddress ); + writePhone( mCurrentPhone ); + Addressee a = writeAddressee( mCurrentItem->addressee() ); + mCurrentItem->setAddressee( a ); + mAddressBook->insertAddressee( a ); + } + mCurrentItem = addresseeItem; + + readAddressee( addresseeItem->addressee() ); + updateAddress( mAddressIdCombo->currentItem() ); + updatePhone( mPhoneIdCombo->currentItem() ); +} + + +void MainWindow::readAddressee( const KABC::Addressee &a ) +{ + kdDebug() << "MainWindow::readAddressee(): " << a.name() << endl; + + mNameEdit->setText( a.name() ); + mUrlEdit->setText( a.url().url() ); + mAdditionalNameEdit->setText( a.additionalName() ); + mSuffixEdit->setText( a.suffix() ); + mGivenNameEdit->setText( a.givenName() ); + mPrefixEdit->setText( a.prefix() ); + mFamilyNameEdit->setText( a.familyName() ); + mFormattedNameEdit->setText( a.formattedName() ); + mNickNameEdit->setText( a.nickName() ); + mSortStringEdit->setText( a.sortString() ); + mTitleEdit->setText( a.title() ); + mRoleEdit->setText( a.role() ); + mOrganizationEdit->setText( a.organization() ); + mNoteEdit->setText( a.note() ); +// mLabelEdit->setText( a.label() ); + + mEmailListView->clear(); + QStringList emails = a.emails(); + QStringList::ConstIterator it3; + for( it3 = emails.begin(); it3 != emails.end(); ++it3 ) { + new QListViewItem( mEmailListView, *it3 ); + } + + mCategoryListView->clear(); + QStringList categories = a.categories(); + QStringList::ConstIterator it4; + for( it4 = categories.begin(); it4 != categories.end(); ++it4 ) { + new QListViewItem( mCategoryListView, *it4 ); + } + + mCustomListView->clear(); + QStringList customs = a.customs(); + QStringList::ConstIterator it5; + for( it5 = customs.begin(); it5 != customs.end(); ++it5 ) { + int posDash = (*it5).find( "-" ); + int posColon = (*it5).find( ":" ); + + QString app = (*it5).left( posDash ); + QString cname = (*it5).mid( posDash + 1, posColon - posDash - 1 ); + QString value = (*it5).mid( posColon + 1 ); + + new QListViewItem( mCustomListView, app, cname, value ); + } + + Address::List addresses = a.addresses(); + mAddressIdCombo->clear(); + Address::List::ConstIterator it; + for( it = addresses.begin(); it != addresses.end(); ++it ) { + mAddressIdCombo->insertItem( (*it).id() ); + } + if ( mAddressIdCombo->count() > 0 ) mCurrentAddress = mAddressIdCombo->currentText(); + else mCurrentAddress = QString::null; + readAddress( mCurrentAddress ); + + mPhoneIdCombo->clear(); + PhoneNumber::List pl = a.phoneNumbers(); + PhoneNumber::List::ConstIterator it2; + for( it2 = pl.begin(); it2 != pl.end(); ++it2) { + mPhoneIdCombo->insertItem( (*it2).id() ); + } + if ( mPhoneIdCombo->count() > 0 ) mCurrentPhone = mPhoneIdCombo->currentText(); + readPhone( mCurrentPhone ); +} + +KABC::Addressee MainWindow::writeAddressee( const KABC::Addressee &addressee ) +{ + Addressee a( addressee ); + a.setName( mNameEdit->text() ); + if ( !mUrlEdit->text().isEmpty() ) { + a.setUrl( KURL( mUrlEdit->text() ) ); + } + + a.setAdditionalName( mAdditionalNameEdit->text() ); + a.setSuffix( mSuffixEdit->text() ); + a.setGivenName( mGivenNameEdit->text() ); + a.setPrefix( mPrefixEdit->text() ); + a.setFamilyName( mFamilyNameEdit->text() ); + a.setFormattedName( mFormattedNameEdit->text() ); + a.setNickName( mNickNameEdit->text() ); + a.setSortString( mSortStringEdit->text() ); + a.setTitle( mTitleEdit->text() ); + a.setRole( mRoleEdit->text() ); + a.setOrganization( mOrganizationEdit->text() ); + a.setNote( mNoteEdit->text() ); +// a.setLabel( mLabelEdit->text() ); + + kdDebug() << "MainWindow::writeAddressee()" << endl; + a.dump(); + + return a; +} + +void MainWindow::newEntry() +{ + bool ok = false; + QString name = KInputDialog::getText( i18n("New Address Book Entry"), + i18n("Please enter name:"), + QString::null, &ok, + this ); + if ( !ok || name.isEmpty() ) return; + + Addressee a; + a.setName( name ); + mAddressBook->insertAddressee( a ); + + new AddresseeItem( mAddresseeList, a ); +} + +void MainWindow::removeEntry() +{ + AddresseeItem *item = dynamic_cast<AddresseeItem *>(mAddresseeList->selectedItem()); + if ( item ) { + mAddressBook->removeAddressee( item->addressee() ); + delete item; + mCurrentItem = 0; + } +} + + +void MainWindow::updateAddress( int id ) +{ + if( !mCurrentItem ) return; + + writeAddress( mCurrentAddress ); + if ( mAddressIdCombo->count() > 0 ) { + mCurrentAddress = mAddressIdCombo->text( id ); + } else { + mCurrentAddress = QString::null; + } + readAddress( mCurrentAddress ); +} + +KABC::Address MainWindow::writeAddress( const KABC::Address &address ) +{ + Address a( address ); + + a.setPostOfficeBox( mAddressPostOfficeBoxEdit->text() ); + a.setExtended( mAddressExtendedEdit->text() ); + a.setStreet( mAddressStreetEdit->text() ); + a.setLocality( mAddressLocalityEdit->text() ); + a.setRegion( mAddressRegionEdit->text() ); + a.setLabel( mAddressLabelEdit->text() ); + a.setPostalCode( mAddressPostalCodeEdit->text() ); + a.setCountry( mAddressCountryEdit->text() ); + + int type = 0; + if ( mAddressDomCheck->isChecked() ) type |= Address::Dom; + if ( mAddressIntlCheck->isChecked() ) type |= Address::Intl; + if ( mAddressParcelCheck->isChecked() ) type |= Address::Parcel; + if ( mAddressPostalCheck->isChecked() ) type |= Address::Postal; + if ( mAddressHomeCheck->isChecked() ) type |= Address::Home; + if ( mAddressPrefCheck->isChecked() ) type |= Address::Pref; + if ( mAddressWorkCheck->isChecked() ) type |= Address::Work; + a.setType( type ); + + return a; +} + +void MainWindow::writeAddress( const QString &id ) +{ + if ( !mCurrentItem ) return; + + if ( id.isEmpty() ) return; + + Address address; + address.setId( id ); + address = writeAddress( address ); + + mCurrentItem->addressee().insertAddress( address ); +} + +void MainWindow::readAddress( const KABC::Address &a ) +{ + mAddressPostOfficeBoxEdit->setText( a.postOfficeBox() ); + mAddressExtendedEdit->setText( a.extended() ); + mAddressStreetEdit->setText( a.street() ); + mAddressLocalityEdit->setText( a.locality() ); + mAddressRegionEdit->setText( a.region() ); + mAddressLabelEdit->setText( a.label() ); + mAddressPostalCodeEdit->setText( a.postalCode() ); + mAddressCountryEdit->setText( a.country() ); + + int type = a.type(); + if ( type & Address::Dom ) mAddressDomCheck->setChecked( true ); + else mAddressDomCheck->setChecked( false ); + if ( type & Address::Intl ) mAddressIntlCheck->setChecked( true ); + else mAddressIntlCheck->setChecked( false ); + if ( type & Address::Parcel ) mAddressParcelCheck->setChecked( true ); + else mAddressParcelCheck->setChecked( false ); + if ( type & Address::Postal ) mAddressPostalCheck->setChecked( true ); + else mAddressPostalCheck->setChecked( false ); + if ( type & Address::Home ) mAddressHomeCheck->setChecked( true ); + else mAddressHomeCheck->setChecked( false ); + if ( type & Address::Pref ) mAddressPrefCheck->setChecked( true ); + else mAddressPrefCheck->setChecked( false ); + if ( type & Address::Work ) mAddressWorkCheck->setChecked( true ); + else mAddressWorkCheck->setChecked( false ); +} + +void MainWindow::readAddress( const QString &id ) +{ + if ( !mCurrentItem || id.isEmpty() ) { + readAddress( Address() ); + return; + } + + Address address = mCurrentItem->addressee().findAddress( id ); + readAddress( address ); +} + +void MainWindow::updatePhone( int id ) +{ + if( !mCurrentItem ) return; + + writePhone( mCurrentPhone ); + if ( mPhoneIdCombo->count() > 0 ) { + mCurrentPhone = mPhoneIdCombo->text( id ); + } else { + mCurrentPhone = QString::null; + } + readPhone( mCurrentPhone ); +} + +KABC::PhoneNumber MainWindow::writePhone( const KABC::PhoneNumber &phoneNumber ) +{ + PhoneNumber p( phoneNumber ); + + p.setNumber( mPhoneNumberEdit->text() ); + + int type = 0; + if ( mPhoneMsgCheck->isChecked() ) type |= PhoneNumber::Msg; + if ( mPhoneVoiceCheck->isChecked() ) type |= PhoneNumber::Voice; + if ( mPhoneFaxCheck->isChecked() ) type |= PhoneNumber::Fax; + if ( mPhoneCellCheck->isChecked() ) type |= PhoneNumber::Cell; + if ( mPhoneHomeCheck->isChecked() ) type |= PhoneNumber::Home; + if ( mPhonePrefCheck->isChecked() ) type |= PhoneNumber::Pref; + if ( mPhoneWorkCheck->isChecked() ) type |= PhoneNumber::Work; + if ( mPhoneVideoCheck->isChecked() ) type |= PhoneNumber::Video; + if ( mPhoneBbsCheck->isChecked() ) type |= PhoneNumber::Bbs; + if ( mPhoneModemCheck->isChecked() ) type |= PhoneNumber::Modem; + if ( mPhoneCarCheck->isChecked() ) type |= PhoneNumber::Car; + if ( mPhoneIsdnCheck->isChecked() ) type |= PhoneNumber::Isdn; + if ( mPhonePcsCheck->isChecked() ) type |= PhoneNumber::Pcs; + if ( mPhonePagerCheck->isChecked() ) type |= PhoneNumber::Pager; + p.setType( type ); + + return p; +} + +void MainWindow::writePhone( const QString &id ) +{ + if ( !mCurrentItem ) return; + + if ( id.isEmpty() ) return; + + PhoneNumber p; + p.setId( id ); + p = writePhone( p ); + + mCurrentItem->addressee().insertPhoneNumber( p ); +} + +void MainWindow::readPhone( const KABC::PhoneNumber &p ) +{ + mPhoneNumberEdit->setText( p.number() ); + + int type = p.type(); + if ( type & PhoneNumber::Msg ) mPhoneMsgCheck->setChecked( true ); + else mPhoneMsgCheck->setChecked( false ); + if ( type & PhoneNumber::Voice ) mPhoneVoiceCheck->setChecked( true ); + else mPhoneVoiceCheck->setChecked( false ); + if ( type & PhoneNumber::Fax ) mPhoneFaxCheck->setChecked( true ); + else mPhoneFaxCheck->setChecked( false ); + if ( type & PhoneNumber::Cell ) mPhoneCellCheck->setChecked( true ); + else mPhoneCellCheck->setChecked( false ); + if ( type & PhoneNumber::Home ) mPhoneHomeCheck->setChecked( true ); + else mPhoneHomeCheck->setChecked( false ); + if ( type & PhoneNumber::Pref ) mPhonePrefCheck->setChecked( true ); + else mPhonePrefCheck->setChecked( false ); + if ( type & PhoneNumber::Work ) mPhoneWorkCheck->setChecked( true ); + else mPhoneWorkCheck->setChecked( false ); + if ( type & PhoneNumber::Video ) mPhoneVideoCheck->setChecked( true ); + else mPhoneVideoCheck->setChecked( false ); + if ( type & PhoneNumber::Bbs ) mPhoneBbsCheck->setChecked( true ); + else mPhoneBbsCheck->setChecked( false ); + if ( type & PhoneNumber::Modem ) mPhoneModemCheck->setChecked( true ); + else mPhoneModemCheck->setChecked( false ); + if ( type & PhoneNumber::Car ) mPhoneCarCheck->setChecked( true ); + else mPhoneCarCheck->setChecked( false ); + if ( type & PhoneNumber::Isdn ) mPhoneIsdnCheck->setChecked( true ); + else mPhoneIsdnCheck->setChecked( false ); + if ( type & PhoneNumber::Pcs ) mPhonePcsCheck->setChecked( true ); + else mPhonePcsCheck->setChecked( false ); + if ( type & PhoneNumber::Pager ) mPhonePagerCheck->setChecked( true ); + else mPhonePagerCheck->setChecked( false ); +} + +void MainWindow::readPhone( const QString &id ) +{ + if ( !mCurrentItem || id.isEmpty() ) { + readPhone( PhoneNumber() ); + return; + } + + PhoneNumber p = mCurrentItem->addressee().findPhoneNumber( id ); + readPhone( p ); +} + + +void MainWindow::newAddress() +{ + if( !mCurrentItem ) return; + + Address address; + mCurrentItem->addressee().insertAddress( address ); + + mAddressIdCombo->insertItem( address.id() ); +} + +void MainWindow::removeAddress() +{ + if ( !mCurrentItem ) return; + + QString id = mAddressIdCombo->currentText(); + if ( id.isEmpty() ) return; + + Address address; + address.setId( id ); + mCurrentItem->addressee().removeAddress( address ); + + readAddressee( mCurrentItem->addressee() ); +} + + +void MainWindow::dumpAddressBook() +{ + mAddressBook->dump(); +} + + +void MainWindow::newEmail() +{ + if ( !mCurrentItem ) return; + + bool ok = false; + QString name = KInputDialog::getText( i18n("New Email Address"), + i18n("Please enter email address:"), + QString::null, &ok, + this ); + if ( !ok || name.isEmpty() ) return; + + new QListViewItem( mEmailListView, name ); + mCurrentItem->addressee().insertEmail( name ); +} + +void MainWindow::editEmail() +{ + if ( !mCurrentItem ) return; + + QListViewItem *item = mEmailListView->selectedItem(); + if( !item ) return; + + QString oldName = item->text( 0 ); + + bool ok = false; + QString name = KInputDialog::getText( i18n("Edit Email Address"), + i18n("Please enter new email address:"), + oldName, &ok, + this ); + if ( !ok || name.isEmpty() ) return; + + item->setText( 0, name ); + mCurrentItem->addressee().removeEmail( oldName ); + mCurrentItem->addressee().insertEmail( name ); +} + +void MainWindow::removeEmail() +{ + if ( !mCurrentItem ) return; + + QListViewItem *item = mEmailListView->selectedItem(); + if( !item ) return; + + mCurrentItem->addressee().removeEmail( item->text( 0 ) ); + delete item; +} + +void MainWindow::newPhoneNumber() +{ + if ( !mCurrentItem ) return; + + PhoneNumber p; + mCurrentItem->addressee().insertPhoneNumber( p ); + + mPhoneIdCombo->insertItem( p.id() ); +} + +void MainWindow::removePhoneNumber() +{ + if ( !mCurrentItem ) return; + + QString id = mPhoneIdCombo->currentText(); + if ( id.isEmpty() ) return; + + PhoneNumber p; + p.setId( id ); + mCurrentItem->addressee().removePhoneNumber( p ); + + readAddressee( mCurrentItem->addressee() ); +} + + +void MainWindow::newCategory() +{ + if ( !mCurrentItem ) return; + + bool ok = false; + QString name = KInputDialog::getText( i18n("New Category"), + i18n("Please enter category name:"), + QString::null, &ok, + this ); + if ( !ok || name.isEmpty() ) return; + + new QListViewItem( mCategoryListView, name ); + mCurrentItem->addressee().insertCategory( name ); +} + +void MainWindow::editCategory() +{ + if ( !mCurrentItem ) return; + + QListViewItem *item = mCategoryListView->selectedItem(); + if( !item ) return; + + QString oldName = item->text( 0 ); + + bool ok = false; + QString name = KInputDialog::getText( i18n("Edit Category"), + i18n("Please enter new category name:"), + oldName, &ok, + this ); + if ( !ok || name.isEmpty() ) return; + + item->setText( 0, name ); + mCurrentItem->addressee().removeCategory( oldName ); + mCurrentItem->addressee().insertCategory( name ); +} + +void MainWindow::removeCategory() +{ + if ( !mCurrentItem ) return; + + QListViewItem *item = mCategoryListView->selectedItem(); + if( !item ) return; + + mCurrentItem->addressee().removeCategory( item->text( 0 ) ); + delete item; +} + + +void MainWindow::editCustom() +{ + if ( !mCurrentItem ) return; + + QListViewItem *item = mCustomListView->selectedItem(); + if( !item ) return; + + QString oldName = item->text( 0 ) + "-" + item->text( 1 ) + ":" + + item->text( 2 ); + + bool ok = false; + QString name = KInputDialog::getText( i18n("New Custom Entry"), + i18n("Please enter custom entry.\n" + "Format: APP-NAME:VALUE"), + oldName, &ok, + this ); + if ( !ok || name.isEmpty() ) return; + + int posDash = name.find( "-" ); + int posColon = name.find( ":" ); + + QString app = name.left( posDash ); + QString cname = name.mid( posDash + 1, posColon - posDash - 1 ); + QString value = name.mid( posColon + 1 ); + + item->setText( 0, app ); + item->setText( 1, cname ); + item->setText( 2, value ); + + mCurrentItem->addressee().removeCustom( app, cname ); + mCurrentItem->addressee().insertCustom( app, cname, value ); +} + +void MainWindow::newCustom() +{ + if ( !mCurrentItem ) return; + + bool ok = false; + QString name = KInputDialog::getText( i18n("New Custom Entry"), + i18n("Please enter custom entry.\n" + "Format: APP-NAME:VALUE"), + QString::null, &ok, + this ); + if ( !ok || name.isEmpty() ) return; + + int posDash = name.find( "-" ); + int posColon = name.find( ":" ); + + QString app = name.left( posDash ); + QString cname = name.mid( posDash + 1, posColon - posDash - 1 ); + QString value = name.mid( posColon + 1 ); + + new QListViewItem( mCustomListView, app, cname, value ); + + mCurrentItem->addressee().insertCustom( app, cname, value ); +} + +void MainWindow::removeCustom() +{ + if ( !mCurrentItem ) return; + + QListViewItem *item = mCustomListView->selectedItem(); + if( !item ) return; + + mCurrentItem->addressee().removeCustom( item->text( 0 ), item->text( 1 ) ); + delete item; +} + +void MainWindow::addressBookChanged() +{ + QMessageBox::warning( this, i18n("Address Book Changed"), + i18n("The address book has changed on disk."), + i18n("Reload") ); + loadAddressBook( "dummy" ); +} + +void MainWindow::addressBookLocked() +{ + kdDebug() << "AddressBook locked()" << endl; +} + +void MainWindow::addressBookUnlocked() +{ + kdDebug() << "AddressBook unlocked()" << endl; +} + + +void MainWindow::fileOpenStd() +{ + loadAddressBook( StdAddressBook::fileName() ); +} |