[PATCH] Replacing email selection dialog in kmail

Tobias Koenig tokoe at kde.org
Wed Dec 3 18:01:55 GMT 2003


On Mon, Dec 01, 2003 at 11:15:59AM +0100, Tobias König wrote:
> On Mon, Dec 01, 2003 at 01:48:02AM +0100, Ingo Klöcker wrote:
Hi,

here is the new patch...

> > > whee! yes, putting them in a group is good. the only thing i'd change
> > > there is hiding that item when there are no distribution lists. a
> > > quick check for (distLists.begin() == distLists.end()) should work
> > > ...
> Yepp, possible
Implemented

> > Also the members of the distribution lists should still be listed below 
> > the distribution list names to make it easy for the user to check who's 
> > in the list.
> Hmm, but shall they be selectable as well?
Are selectable now, so you can select the whole dist list or the single
entries now.

Furthermore I added icons, so you can see at one glance which item is a
contact and which a distlist.

Ok for commit?

/*
 Please no new flamewar, I know this dialog may sucks in some terms of
 'usability', but it works, and that's quite important for the release
 IMHO.
*/

Ciao,
Tobias
-- 
Can a government that shoots at reporters be democratic?
Separate politics from religion and economy!
-------------- next part --------------
Index: addressesdialog.cpp
===================================================================
RCS file: /home/kde/kdepim/libkdepim/addressesdialog.cpp,v
retrieving revision 1.19
diff -p -u -b -r1.19 addressesdialog.cpp
--- addressesdialog.cpp	17 Nov 2003 19:24:18 -0000	1.19
+++ addressesdialog.cpp	3 Dec 2003 17:55:56 -0000
@@ -22,20 +22,23 @@
  */
 #include <kabc/stdaddressbook.h>
 #include <kabc/distributionlist.h>
-
+#include <kapplication.h>
+#include <kdebug.h>
+#include <kglobal.h>
+#include <kiconloader.h>
+#include <kinputdialog.h>
+#include <klineedit.h>
+#include <klocale.h>
 #include <kmessagebox.h>
+#include <kprocess.h>
 #include <kpushbutton.h>
-#include <klineedit.h>
 #include <krun.h>
 #include <kstandarddirs.h>
-#include <kprocess.h>
-#include <klocale.h>
-#include <kdebug.h>
-#include <kinputdialog.h>
+
+#include <qdict.h>
 #include <qlayout.h>
 #include <qvbox.h>
 #include <qwidget.h>
-#include <qdict.h>
 
 #include "addressesdialog.h"
 #include "addresspicker.h"
@@ -75,6 +78,8 @@ AddresseeViewItem::AddresseeViewItem( Ad
 
   if ( text(0).stripWhiteSpace().isEmpty() )
     setText( 0, addr.preferredEmail() );
+
+  setPixmap( 0, KGlobal::iconLoader()->loadIcon( "personal", KIcon::Small ) );
 }
 
 AddresseeViewItem::AddresseeViewItem( KListView *lv, const QString& name, Category cat )
@@ -93,6 +98,15 @@ AddresseeViewItem::AddresseeViewItem(  A
   d->addresses = lst;
 }
 
+AddresseeViewItem::AddresseeViewItem(  AddresseeViewItem *parent, const QString& name )
+  : QObject(0), KListViewItem( parent, name, i18n("<group>") )
+{
+  d = new AddresseeViewItemPrivate;
+  d->category = DistList;
+
+  setPixmap( 0, KGlobal::iconLoader()->loadIcon( "kdmconfig", KIcon::Small ) );
+}
+
 AddresseeViewItem::~AddresseeViewItem()
 {
   delete d;
@@ -140,6 +154,7 @@ void AddresseeViewItem::setSelected(bool
     {
         return;
     }
+
     emit addressSelected( this, selected );
     QListViewItem::setSelected(selected);
 }
@@ -180,6 +195,8 @@ AddressesDialog::AddressesDialog( QWidge
 
 AddressesDialog::~AddressesDialog()
 {
+  delete d;
+  d = 0;
 }
 
 AddresseeViewItem* AddressesDialog::selectedToItem()
@@ -292,22 +309,32 @@ AddressesDialog::setShowBCC( bool b )
 QStringList
 AddressesDialog::to() const
 {
+  QStringList emails = allDistributionLists( d->toItem );
   KABC::Addressee::List l = toAddresses();
-  return entryToString( l );
+  emails += entryToString( l );
+
+  return emails;
 }
 
 QStringList
 AddressesDialog::cc() const
 {
+  QStringList emails = allDistributionLists( d->ccItem );
   KABC::Addressee::List l = ccAddresses();
-  return entryToString( l );
+  emails += entryToString( l );
+
+  return emails;
 }
 
 QStringList
 AddressesDialog::bcc() const
 {
+  QStringList emails = allDistributionLists( d->bccItem );
+
   KABC::Addressee::List l = bccAddresses();
-  return entryToString( l );
+  emails += entryToString( l );
+
+  return emails;
 }
 
 KABC::Addressee::List
@@ -383,8 +410,6 @@ void
 AddressesDialog::availableSelectionChanged()
 {
   bool selection = !selectedAvailableAddresses.isEmpty();
-  d->ui->mEditButton->setEnabled(selection);
-  d->ui->mDeleteButton->setEnabled(selection);
   d->ui->mToButton->setEnabled(selection);
   d->ui->mCCButton->setEnabled(selection);
   d->ui->mBCCButton->setEnabled(selection);
@@ -426,38 +451,36 @@ AddressesDialog::selectedAddressSelected
 void
 AddressesDialog::initConnections()
 {
-  QObject::connect( d->ui->mDeleteButton, SIGNAL(clicked()),
-                    SLOT(deleteEntry()) );
-  QObject::connect( d->ui->mNewButton, SIGNAL(clicked()),
-                    SLOT(newEntry()) );
-  QObject::connect( d->ui->mEditButton, SIGNAL(clicked()),
-                    SLOT(editEntry()) );
-  QObject::connect( d->ui->mFilterEdit, SIGNAL(textChanged(const QString &)),
+  connect( d->ui->mFilterEdit, SIGNAL(textChanged(const QString &)),
                     SLOT(filterChanged(const QString &)) );
-  QObject::connect( d->ui->mToButton, SIGNAL(clicked()),
+  connect( d->ui->mToButton, SIGNAL(clicked()),
                     SLOT(addSelectedTo()) );
-  QObject::connect( d->ui->mCCButton, SIGNAL(clicked()),
+  connect( d->ui->mCCButton, SIGNAL(clicked()),
                     SLOT(addSelectedCC()) );
-  QObject::connect( d->ui->mBCCButton, SIGNAL(clicked()),
+  connect( d->ui->mBCCButton, SIGNAL(clicked()),
                     SLOT(addSelectedBCC())  );
-  QObject::connect( d->ui->mSaveAs, SIGNAL(clicked()),
+  connect( d->ui->mSaveAs, SIGNAL(clicked()),
                     SLOT(saveAs())  );
-  QObject::connect( d->ui->mRemoveButton, SIGNAL(clicked()),
+  connect( d->ui->mAddressBook, SIGNAL(clicked()),
+           SLOT(launchAddressBook())  );
+  connect( d->ui->mRemoveButton, SIGNAL(clicked()),
                     SLOT(removeEntry()) );
-  QObject::connect( d->ui->mAvailableView, SIGNAL(selectionChanged()),
+  connect( d->ui->mAvailableView, SIGNAL(selectionChanged()),
                     SLOT(availableSelectionChanged())  );
-  QObject::connect( d->ui->mAvailableView, SIGNAL(doubleClicked(QListViewItem*)),
+  connect( d->ui->mAvailableView, SIGNAL(doubleClicked(QListViewItem*)),
                     SLOT(addSelectedTo()) );
-  QObject::connect( d->ui->mSelectedView, SIGNAL(selectionChanged()),
+  connect( d->ui->mSelectedView, SIGNAL(selectionChanged()),
                     SLOT(selectedSelectionChanged()) );
-  QObject::connect( d->ui->mSelectedView, SIGNAL(doubleClicked(QListViewItem*)),
+  connect( d->ui->mSelectedView, SIGNAL(doubleClicked(QListViewItem*)),
                     SLOT(removeEntry()) );
-
+/* FIXME: I'm not sure what's going on here, but this code suddenly crashes :/
+          Did somebody changed the KDirWatcher stuff during the last weeks?
   connect( KABC::DistributionListWatcher::self(), SIGNAL( changed() ),
            this, SLOT( updateAvailableAddressees() ) );
 
   connect( KABC::StdAddressBook::self(), SIGNAL( addressBookChanged(AddressBook*) ),
            this, SLOT( updateAvailableAddressees() ) );
+*/
 }
 
 void
@@ -503,6 +526,7 @@ AddressesDialog::addAddresseeToSelected(
             this, SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
     defaultParent->setOpen( true );
   }
+
   d->ui->mSaveAs->setEnabled(true);
 }
 
@@ -533,6 +557,10 @@ AddressesDialog::addAddresseesToSelected
     {
       newItem = new AddresseeViewItem( parent, address->addressee() );
     }
+    else if (address->category() == AddresseeViewItem::DistList)
+    {
+      newItem = new AddresseeViewItem( parent, address->name() );
+    }
     else
     {
       newItem = new AddresseeViewItem( parent, address->name(), allAddressee( address ) );
@@ -739,39 +767,9 @@ AddressesDialog::saveAs()
 }
 
 void
-AddressesDialog::editEntry()
-{
-  AddresseeViewItem *item = static_cast<AddresseeViewItem*>( d->ui->mAvailableView->currentItem() );
-
-#if defined( Q_CC_GNU )
-#warning "This is rather crappy"
-#endif
-  if ( item ) {
-    if ( ! KStandardDirs::findExe( "kaddressbook" ).isEmpty()  ) {
-      KRun::runCommand( "kaddressbook -a " + KProcess::quote( item->addressee().fullEmail() ) );
-    } else {
-      KMessageBox::information( 0,
-                                i18n("No external address book application found. You might want to "
-                                     "install KAddressBook from the kdepim module.") );
-    }
-  } else {
-    KMessageBox::information( 0,
-                              i18n("Please select the entry which you want to edit.") );
-  }
-}
-
-void
-AddressesDialog::newEntry()
-{
-#if defined( Q_CC_GNU )
-#warning "FIXME: do not call kaddressbook"
-#endif
-  KRun::runCommand( "kaddressbook --editor-only --new-contact" );
-}
-
-void
-AddressesDialog::deleteEntry()
+AddressesDialog::launchAddressBook()
 {
+  kapp->startServiceByDesktopName( "kaddressbook", QString() );
 }
 
 void
@@ -822,6 +820,7 @@ AddressesDialog::allAddressee( KListView
     }
     ++it;
   }
+
   return lst;
 }
 
@@ -850,6 +849,26 @@ AddressesDialog::allAddressee( Addressee
   return lst;
 }
 
+QStringList
+AddressesDialog::allDistributionLists( AddresseeViewItem* parent ) const
+{
+  QStringList lists;
+
+  if ( !parent )
+    return QStringList();
+
+  QListViewItemIterator it( parent );
+  while ( it.current() ) {
+    AddresseeViewItem *item = static_cast<AddresseeViewItem*>( it.current() );
+    if ( item && item->category() == AddresseeViewItem::DistList && !item->name().isEmpty() )
+      lists.append( item->name() );
+
+    ++it;
+  }
+
+  return lists;
+}
+
 void
 AddressesDialog::addDistributionLists()
 {
@@ -858,21 +877,27 @@ AddressesDialog::addDistributionLists()
   manager->load();
 
   QStringList distLists = manager->listNames();
+  if ( distLists.begin() == distLists.end() )
+    return;
 
-  for( QStringList::iterator itr = distLists.begin(); itr != distLists.end(); ++itr ) {
-    KABC::DistributionList* dlist = manager->list( *itr );
-    KABC::DistributionList::Entry::List elist = dlist->entries();
-    AddresseeViewItem *parent = new AddresseeViewItem( d->ui->mAvailableView, dlist->name() );
-    connect(parent, SIGNAL(addressSelected(AddresseeViewItem*, bool)),
-            this, SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+  AddresseeViewItem *topItem = new AddresseeViewItem( d->ui->mAvailableView, 
+                                                      i18n( "Distribution Lists" ) );
 
-    for( KABC::DistributionList::Entry::List::iterator itr = elist.begin();
-         itr != elist.end(); ++itr ) {
-      addAddresseeToAvailable( (*itr).addressee, parent );
-    }
+  QStringList::Iterator listIt;
+  for ( listIt = distLists.begin(); listIt != distLists.end(); ++listIt ) {
+    KABC::DistributionList* dlist = manager->list( *listIt );
+    KABC::DistributionList::Entry::List entries = dlist->entries();
+
+    AddresseeViewItem *item = new AddresseeViewItem( topItem, dlist->name() );
+    connect( item, SIGNAL( addressSelected( AddresseeViewItem*, bool ) ),
+             this, SLOT( availableAddressSelected( AddresseeViewItem*, bool ) ) );
+
+    KABC::DistributionList::Entry::List::Iterator itemIt;
+    for ( itemIt = entries.begin(); itemIt != entries.end(); ++itemIt )
+      addAddresseeToAvailable( (*itemIt).addressee, item );
   }
 }
 
-}//end namespace KPIM
+}
 
 #include "addressesdialog.moc"
Index: addressesdialog.h
===================================================================
RCS file: /home/kde/kdepim/libkdepim/addressesdialog.h,v
retrieving revision 1.8
diff -p -u -b -r1.8 addressesdialog.h
--- addressesdialog.h	11 Aug 2003 11:52:30 -0000	1.8
+++ addressesdialog.h	3 Dec 2003 17:55:57 -0000
@@ -44,13 +44,13 @@ namespace KPIM {
       BCC         =2,
       Group       =3,
       Entry       =4,
-      FilledGroup =5
+      FilledGroup =5,
+      DistList    =6
     };
     AddresseeViewItem( AddresseeViewItem *parent, const KABC::Addressee& addr );
     AddresseeViewItem( KListView *lv, const QString& name, Category cat=Group );
     AddresseeViewItem( AddresseeViewItem *parent, const QString& name, const KABC::Addressee::List &lst );
-    //AddresseeViewItem( AddresseeViewItem *parent, const QString& name,
-    //                       const QString& email = QString::null );
+    AddresseeViewItem( AddresseeViewItem *parent, const QString& name );
     ~AddresseeViewItem();
 
     KABC::Addressee       addressee() const;
@@ -142,10 +142,7 @@ namespace KPIM {
 
     void removeEntry();
     void saveAs();
-
-    void editEntry();
-    void newEntry();
-    void deleteEntry();
+    void launchAddressBook();
 
     void filterChanged( const QString & );
 
@@ -171,6 +168,7 @@ namespace KPIM {
     QStringList entryToString( const KABC::Addressee::List& l ) const;
     KABC::Addressee::List allAddressee( AddresseeViewItem* parent ) const;
     KABC::Addressee::List allAddressee( KListView* view, bool onlySelected = true ) const;
+    QStringList allDistributionLists( AddresseeViewItem* parent ) const;
 
   private:
     // if there's only one group in the available list, open it
Index: addresspicker.ui
===================================================================
RCS file: /home/kde/kdepim/libkdepim/addresspicker.ui,v
retrieving revision 1.6
diff -p -u -b -r1.6 addresspicker.ui
--- addresspicker.ui	6 Oct 2003 13:26:44 -0000	1.6
+++ addresspicker.ui	3 Dec 2003 17:55:58 -0000
@@ -8,91 +8,18 @@
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>676</width>
-            <height>328</height>
+            <width>591</width>
+            <height>348</height>
         </rect>
     </property>
     <property name="caption">
         <string>Address Selection</string>
     </property>
-    <hbox>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <widget class="QSplitter">
-            <property name="name">
-                <cstring>splitter3</cstring>
-            </property>
-            <property name="orientation">
-                <enum>Horizontal</enum>
-            </property>
-            <widget class="QGroupBox">
-                <property name="name">
-                    <cstring>GroupBox3</cstring>
-                </property>
-                <property name="sizePolicy">
-                    <sizepolicy>
-                        <hsizetype>5</hsizetype>
-                        <vsizetype>5</vsizetype>
-                        <horstretch>1</horstretch>
-                        <verstretch>0</verstretch>
-                    </sizepolicy>
-                </property>
-                <property name="frameShape">
-                    <enum>NoFrame</enum>
-                </property>
-                <property name="title">
-                    <string></string>
-                </property>
-                <hbox>
-                    <property name="name">
-                        <cstring>unnamed</cstring>
-                    </property>
-                    <property name="margin">
-                        <number>0</number>
-                    </property>
-                    <widget class="QLayoutWidget">
-                        <property name="name">
-                            <cstring>layout7</cstring>
-                        </property>
                         <grid>
                             <property name="name">
                                 <cstring>unnamed</cstring>
                             </property>
-                            <property name="margin">
-                                <number>0</number>
-                            </property>
-                            <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
-                                <property name="name">
-                                    <cstring>textLabel1</cstring>
-                                </property>
-                                <property name="font">
-                                    <font>
-                                        <bold>1</bold>
-                                    </font>
-                                </property>
-                                <property name="text">
-                                    <string>&Address Book</string>
-                                </property>
-                                <property name="alignment">
-                                    <set>WordBreak|AlignCenter</set>
-                                </property>
-                                <property name="buddy" stdset="0">
-                                    <cstring>mAvailableView</cstring>
-                                </property>
-                            </widget>
-                            <widget class="KPushButton" row="3" column="2">
-                                <property name="name">
-                                    <cstring>mDeleteButton</cstring>
-                                </property>
-                                <property name="enabled">
-                                    <bool>false</bool>
-                                </property>
-                                <property name="text">
-                                    <string>De&lete</string>
-                                </property>
-                            </widget>
-                            <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+        <widget class="KListView" row="1" column="0">
                                 <column>
                                     <property name="text">
                                         <string>Name</string>
@@ -137,86 +64,9 @@
                                     <bool>true</bool>
                                 </property>
                             </widget>
-                            <widget class="KPushButton" row="3" column="0">
-                                <property name="name">
-                                    <cstring>mNewButton</cstring>
-                                </property>
-                                <property name="text">
-                                    <string>&New...</string>
-                                </property>
-                            </widget>
-                            <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="3">
-                                <property name="name">
-                                    <cstring>layout1</cstring>
-                                </property>
-                                <hbox>
-                                    <property name="name">
-                                        <cstring>unnamed</cstring>
-                                    </property>
-                                    <widget class="QLabel">
-                                        <property name="name">
-                                            <cstring>TextLabel2</cstring>
-                                        </property>
-                                        <property name="text">
-                                            <string>&Filter on:</string>
-                                        </property>
-                                        <property name="buddy" stdset="0">
-                                            <cstring>mFilterEdit</cstring>
-                                        </property>
-                                    </widget>
-                                    <widget class="QLineEdit">
-                                        <property name="name">
-                                            <cstring>mFilterEdit</cstring>
-                                        </property>
-                                        <property name="sizePolicy">
-                                            <sizepolicy>
-                                                <hsizetype>7</hsizetype>
-                                                <vsizetype>0</vsizetype>
-                                                <horstretch>1</horstretch>
-                                                <verstretch>0</verstretch>
-                                            </sizepolicy>
-                                        </property>
-                                        <property name="text">
-                                            <string></string>
-                                        </property>
-                                    </widget>
-                                </hbox>
-                            </widget>
-                            <widget class="KPushButton" row="3" column="1">
-                                <property name="name">
-                                    <cstring>mEditButton</cstring>
-                                </property>
-                                <property name="enabled">
-                                    <bool>false</bool>
-                                </property>
-                                <property name="text">
-                                    <string>&Edit...</string>
-                                </property>
-                            </widget>
-                        </grid>
-                    </widget>
-                    <spacer>
-                        <property name="name">
-                            <cstring>spacer4</cstring>
-                        </property>
-                        <property name="orientation">
-                            <enum>Horizontal</enum>
-                        </property>
-                        <property name="sizeType">
-                            <enum>Fixed</enum>
-                        </property>
-                        <property name="sizeHint">
-                            <size>
-                                <width>6</width>
-                                <height>20</height>
-                            </size>
-                        </property>
-                    </spacer>
-                </hbox>
-            </widget>
-            <widget class="QLayoutWidget">
+        <widget class="QLayoutWidget" row="1" column="1">
                 <property name="name">
-                    <cstring>layout3</cstring>
+                <cstring>layout10</cstring>
                 </property>
                 <vbox>
                     <property name="name">
@@ -235,7 +85,7 @@
                         <property name="sizeHint">
                             <size>
                                 <width>20</width>
-                                <height>25</height>
+                            <height>16</height>
                             </size>
                         </property>
                     </spacer>
@@ -249,6 +99,9 @@
                         <property name="text">
                             <string>&To >></string>
                         </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
                     </widget>
                     <widget class="KPushButton">
                         <property name="name">
@@ -258,7 +111,10 @@
                             <bool>false</bool>
                         </property>
                         <property name="text">
-                            <string>CC &>></string>
+                        <string>&CC >></string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+C</string>
                         </property>
                     </widget>
                     <widget class="KPushButton">
@@ -271,6 +127,9 @@
                         <property name="text">
                             <string>&BCC >></string>
                         </property>
+                    <property name="accel">
+                        <string>Alt+B</string>
+                    </property>
                     </widget>
                     <spacer>
                         <property name="name">
@@ -285,7 +144,7 @@
                         <property name="sizeHint">
                             <size>
                                 <width>20</width>
-                                <height>18</height>
+                            <height>16</height>
                             </size>
                         </property>
                     </spacer>
@@ -299,6 +158,9 @@
                         <property name="text">
                             <string><< &Remove</string>
                         </property>
+                    <property name="accel">
+                        <string>Alt+R</string>
+                    </property>
                     </widget>
                     <spacer>
                         <property name="name">
@@ -313,65 +175,48 @@
                         <property name="sizeHint">
                             <size>
                                 <width>20</width>
-                                <height>105</height>
+                            <height>20</height>
                             </size>
                         </property>
                     </spacer>
                 </vbox>
             </widget>
-            <widget class="QGroupBox">
+        <widget class="QPushButton" row="2" column="2">
                 <property name="name">
-                    <cstring>GroupBox2</cstring>
-                </property>
-                <property name="sizePolicy">
-                    <sizepolicy>
-                        <hsizetype>5</hsizetype>
-                        <vsizetype>5</vsizetype>
-                        <horstretch>1</horstretch>
-                        <verstretch>0</verstretch>
-                    </sizepolicy>
-                </property>
-                <property name="frameShape">
-                    <enum>NoFrame</enum>
+                <cstring>mSaveAs</cstring>
                 </property>
-                <property name="title">
-                    <string></string>
+            <property name="enabled">
+                <bool>false</bool>
                 </property>
-                <hbox>
-                    <property name="name">
-                        <cstring>unnamed</cstring>
+            <property name="text">
+                <string>Save as &Distribution List...</string>
                     </property>
-                    <property name="margin">
-                        <number>0</number>
+            <property name="accel">
+                <string>Alt+D</string>
                     </property>
-                    <spacer>
+        </widget>
+        <widget class="QLabel" row="0" column="2">
                         <property name="name">
-                            <cstring>spacer5</cstring>
-                        </property>
-                        <property name="orientation">
-                            <enum>Horizontal</enum>
+                <cstring>textLabel2</cstring>
                         </property>
-                        <property name="sizeType">
-                            <enum>Fixed</enum>
+            <property name="font">
+                <font>
+                    <bold>1</bold>
+                </font>
                         </property>
-                        <property name="sizeHint">
-                            <size>
-                                <width>6</width>
-                                <height>20</height>
-                            </size>
+            <property name="text">
+                <string>&Selected Addresses</string>
                         </property>
-                    </spacer>
-                    <widget class="QLayoutWidget">
-                        <property name="name">
-                            <cstring>layout5</cstring>
+            <property name="alignment">
+                <set>WordBreak|AlignCenter</set>
                         </property>
-                        <vbox>
-                            <property name="name">
-                                <cstring>unnamed</cstring>
+            <property name="buddy" stdset="0">
+                <cstring>mSelectedView</cstring>
                             </property>
-                            <widget class="QLabel">
+        </widget>
+        <widget class="QLabel" row="0" column="0">
                                 <property name="name">
-                                    <cstring>textLabel2</cstring>
+                <cstring>textLabel1</cstring>
                                 </property>
                                 <property name="font">
                                     <font>
@@ -379,16 +224,53 @@
                                     </font>
                                 </property>
                                 <property name="text">
-                                    <string>&Selected Addresses</string>
+                <string>&Address Book</string>
                                 </property>
                                 <property name="alignment">
                                     <set>WordBreak|AlignCenter</set>
                                 </property>
                                 <property name="buddy" stdset="0">
-                                    <cstring>mSelectedView</cstring>
+                <cstring>mAvailableView</cstring>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="2" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>TextLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&Filter on:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>mFilterEdit</cstring>
+                    </property>
+                </widget>
+                <widget class="QLineEdit">
+                    <property name="name">
+                        <cstring>mFilterEdit</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>7</hsizetype>
+                            <vsizetype>0</vsizetype>
+                            <horstretch>1</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
                                 </property>
+                    <property name="text">
+                        <string></string>
+                    </property>
+                </widget>
+            </hbox>
                             </widget>
-                            <widget class="KListView">
+        <widget class="KListView" row="1" column="2">
                                 <column>
                                     <property name="text">
                                         <string>Name</string>
@@ -436,36 +318,26 @@
                                     <bool>true</bool>
                                 </property>
                             </widget>
-                            <widget class="KPushButton">
+        <widget class="QPushButton" row="2" column="1">
                                 <property name="name">
-                                    <cstring>mSaveAs</cstring>
-                                </property>
-                                <property name="enabled">
-                                    <bool>false</bool>
+                <cstring>mAddressBook</cstring>
                                 </property>
                                 <property name="text">
-                                    <string>Save as &Distribution List...</string>
+                <string>Address B&ook...</string>
+            </property>
+            <property name="accel">
+                <string>Alt+O</string>
                                 </property>
                             </widget>
-                        </vbox>
-                    </widget>
-                </hbox>
-            </widget>
-        </widget>
-    </hbox>
+    </grid>
 </widget>
-<tabstops>
-    <tabstop>mAvailableView</tabstop>
-    <tabstop>mFilterEdit</tabstop>
-    <tabstop>mNewButton</tabstop>
-    <tabstop>mEditButton</tabstop>
-    <tabstop>mDeleteButton</tabstop>
-    <tabstop>mToButton</tabstop>
-    <tabstop>mCCButton</tabstop>
-    <tabstop>mBCCButton</tabstop>
-    <tabstop>mRemoveButton</tabstop>
-    <tabstop>mSelectedView</tabstop>
-    <tabstop>mSaveAs</tabstop>
-</tabstops>
 <layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistview.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klistview.h</includehint>
+</includehints>
 </UI>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031203/3c53a21e/attachment.sig>


More information about the kde-core-devel mailing list