[PATCH] Replacing email selection dialog in kmail

Tobias Koenig tokoe at kde.org
Sun Nov 30 22:26:36 GMT 2003


On Sun, Nov 30, 2003 at 08:02:59PM +0100, Ingo Klöcker wrote:
> On Sunday 30 November 2003 18:57, Zack Rusin wrote:
Hi,

> I agree that the dialog that Tobias proposed isn't the solution. Instead 
> I'd like to see the following changes in the current dialog:
> - Remove the stupid splitters.
> - Remove all functionality which doesn't belong in an address selection 
> dialog, namely the "Add", "Edit", "Delete" and "Save as distribution 
> list" buttons.
> - Put all distribution lists under the category Distribution Lists and 
> make it possible to actually select a distribution list and not only to 
> select the members of the distribution list.
> - Fix all the bugs which have been filed with regard to this dialog.
> 
> On IRC Tobias has proposed to work on a patch to improve the current 
> dialog.
And here it is...

The splitter has gone as well as the New, Edit and Remove buttons.
Instead an 'Address Book...' button is added which allows you to start
kaddressbook. Furthermore you can move distribution to the 'Selected
Addresses' listbox now.

There is still one problem left: like you can see in the code I had to
remove the 'update on address book/distribution list change'
functionality since it leads to crashes (also in the old dialog) for
whatever reason. I tried to track the bug down the last 5 hours but
didn't get it... so if you have enough time please try :}

Ok for commit?

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	30 Nov 2003 22:15:02 -0000
@@ -22,7 +22,7 @@
  */
 #include <kabc/stdaddressbook.h>
 #include <kabc/distributionlist.h>
-
+#include <kapplication.h>
 #include <kmessagebox.h>
 #include <kpushbutton.h>
 #include <klineedit.h>
@@ -93,6 +93,13 @@ 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;
+}
+
 AddresseeViewItem::~AddresseeViewItem()
 {
   delete d;
@@ -140,6 +147,7 @@ void AddresseeViewItem::setSelected(bool
     {
         return;
     }
+
     emit addressSelected( this, selected );
     QListViewItem::setSelected(selected);
 }
@@ -175,11 +183,43 @@ AddressesDialog::AddressesDialog( QWidge
   d->ui = new AddressPickerUI( page );
 
   updateAvailableAddressees();
-  initConnections();
+
+  connect( d->ui->mFilterEdit, SIGNAL(textChanged(const QString &)),
+           SLOT(filterChanged(const QString &)) );
+  connect( d->ui->mToButton, SIGNAL(clicked()),
+           SLOT(addSelectedTo()) );
+  connect( d->ui->mCCButton, SIGNAL(clicked()),
+           SLOT(addSelectedCC()) );
+  connect( d->ui->mBCCButton, SIGNAL(clicked()),
+           SLOT(addSelectedBCC())  );
+  connect( d->ui->mSaveAs, SIGNAL(clicked()),
+           SLOT(saveAs())  );
+  connect( d->ui->mAddressBook, SIGNAL(clicked()),
+           SLOT(launchAddressBook())  );
+  connect( d->ui->mRemoveButton, SIGNAL(clicked()),
+           SLOT(removeEntry()) );
+  connect( d->ui->mAvailableView, SIGNAL(selectionChanged()),
+           SLOT(availableSelectionChanged())  );
+  connect( d->ui->mAvailableView, SIGNAL(doubleClicked(QListViewItem*)),
+           SLOT(addSelectedTo()) );
+  connect( d->ui->mSelectedView, SIGNAL(selectionChanged()),
+           SLOT(selectedSelectionChanged()) );
+  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() ) );
+*/
 }
 
 AddressesDialog::~AddressesDialog()
 {
+  delete d;
+  d = 0;
 }
 
 AddresseeViewItem* AddressesDialog::selectedToItem()
@@ -292,22 +332,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 +433,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);
@@ -424,43 +472,6 @@ 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 &)),
-                    SLOT(filterChanged(const QString &)) );
-  QObject::connect( d->ui->mToButton, SIGNAL(clicked()),
-                    SLOT(addSelectedTo()) );
-  QObject::connect( d->ui->mCCButton, SIGNAL(clicked()),
-                    SLOT(addSelectedCC()) );
-  QObject::connect( d->ui->mBCCButton, SIGNAL(clicked()),
-                    SLOT(addSelectedBCC())  );
-  QObject::connect( d->ui->mSaveAs, SIGNAL(clicked()),
-                    SLOT(saveAs())  );
-  QObject::connect( d->ui->mRemoveButton, SIGNAL(clicked()),
-                    SLOT(removeEntry()) );
-  QObject::connect( d->ui->mAvailableView, SIGNAL(selectionChanged()),
-                    SLOT(availableSelectionChanged())  );
-  QObject::connect( d->ui->mAvailableView, SIGNAL(doubleClicked(QListViewItem*)),
-                    SLOT(addSelectedTo()) );
-  QObject::connect( d->ui->mSelectedView, SIGNAL(selectionChanged()),
-                    SLOT(selectedSelectionChanged()) );
-  QObject::connect( d->ui->mSelectedView, SIGNAL(doubleClicked(QListViewItem*)),
-                    SLOT(removeEntry()) );
-
-  connect( KABC::DistributionListWatcher::self(), SIGNAL( changed() ),
-           this, SLOT( updateAvailableAddressees() ) );
-
-  connect( KABC::StdAddressBook::self(), SIGNAL( addressBookChanged(AddressBook*) ),
-           this, SLOT( updateAvailableAddressees() ) );
-}
-
-void
 AddressesDialog::addAddresseeToAvailable( const KABC::Addressee& addr, AddresseeViewItem* defaultParent )
 {
   if ( addr.preferredEmail().isEmpty() )
@@ -503,6 +514,7 @@ AddressesDialog::addAddresseeToSelected(
             this, SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
     defaultParent->setOpen( true );
   }
+
   d->ui->mSaveAs->setEnabled(true);
 }
 
@@ -533,6 +545,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 +755,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 +808,7 @@ AddressesDialog::allAddressee( KListView
     }
     ++it;
   }
+
   return lst;
 }
 
@@ -850,6 +837,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()
 {
@@ -857,19 +864,18 @@ AddressesDialog::addDistributionLists()
     new KABC::DistributionListManager( KABC::StdAddressBook::self() );
   manager->load();
 
+  AddresseeViewItem *parent = new AddresseeViewItem( d->ui->mAvailableView, 
+                                                     i18n( "Distribution Lists" ) );
   QStringList distLists = manager->listNames();
 
-  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)));
-
-    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( parent, dlist->name() );
+    connect( item, SIGNAL( addressSelected( AddresseeViewItem*, bool ) ),
+             this, SLOT( availableAddressSelected( AddresseeViewItem*, bool ) ) );
   }
 }
 
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	30 Nov 2003 22:15:02 -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 & );
 
@@ -160,7 +157,6 @@ namespace KPIM {
     AddresseeViewItem* selectedCcItem();
     AddresseeViewItem* selectedBccItem();
 
-    void initConnections();
     void addDistributionLists();
     void addAddresseeToAvailable( const KABC::Addressee& addr,
                                   AddresseeViewItem* defaultParent=0 );
@@ -171,6 +167,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	30 Nov 2003 22:15:03 -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/20031130/4d79a66d/attachment.sig>


More information about the kde-core-devel mailing list