summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Side-by-side diff
Diffstat (limited to 'kaddressbook') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/addresseeeditorwidget.cpp26
-rw-r--r--kaddressbook/phoneeditwidget.h79
2 files changed, 99 insertions, 6 deletions
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp
index 310d628..9814cd5 100644
--- a/kaddressbook/addresseeeditorwidget.cpp
+++ b/kaddressbook/addresseeeditorwidget.cpp
@@ -149,17 +149,24 @@ void AddresseeEditorWidget::initGUI()
}
void AddresseeEditorWidget::setupTab1()
{
// This is the General tab
QWidget *tab1 = new QWidget( mTabWidget );
//US QGridLayout *layout = new QGridLayout( tab1, 11, 7 );
- QGridLayout *layout = new QGridLayout( tab1, 7, 1 );
+ bool horLayout = false;
+ int maxCol = 1;
+ if ( QApplication::desktop()->width() == 640 || QApplication::desktop()->width() == 320 ) {
+ horLayout = true;
+ maxCol = 3;
+ }
+ QGridLayout *layout = new QGridLayout( tab1, 8-maxCol, maxCol );
+
layout->setMargin( KDialogBase::marginHintSmall() );
layout->setSpacing( KDialogBase::spacingHintSmall() );
QLabel *label;
KSeparator* bar;
QPushButton *button;
//////////////////////////////////
@@ -201,24 +208,35 @@ void AddresseeEditorWidget::setupTab1()
// Organization
button = new QPushButton( i18n( "Organization:" ), tab1 );
connect( button, SIGNAL( clicked() ), SLOT( setCompany2FN() ) );
//label = new QLabel( i18n( "Organization:" ), tab1 );
mOrgEdit = new KLineEdit( tab1 );
//label->setBuddy( mOrgEdit );
connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ),
SLOT( textChanged( const QString& ) ) );
+ if ( horLayout ) {
+ layout->addWidget( button, 1, 2 );
+ layout->addWidget( mOrgEdit, 1, 3 );
+
+ } else {
layout->addWidget( button, 2, 0 );
layout->addWidget( mOrgEdit, 2, 1 );
+ }
// File as (formatted name)
- label = new QLabel( i18n( "Formatted name:" ), tab1 );
+ label = new QLabel( i18n( "Format.n.:" ), tab1 );
mFormattedNameLabel = new KSqueezedTextLabel( tab1 );
+ if ( horLayout ) {
+ layout->addWidget( label, 0,2 );
+ layout->addWidget( mFormattedNameLabel, 0, 3 );
+ } else {
layout->addWidget( label, 3, 0 );
layout->addWidget( mFormattedNameLabel, 3, 1 );
+ }
/* LR
// Left hand separator. This separator doesn't go all the way
// across so the dialog still flows from top to bottom
bar = new KSeparator( KSeparator::HLine, tab1 );
layout->addMultiCellWidget( bar, 4, 4, 0, 2 );
*/
//////////////////////////////////////
@@ -235,17 +253,17 @@ void AddresseeEditorWidget::setupTab1()
connect( mPhoneEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) );
//US layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 );
int iii;
#ifndef DESKTOP_VERSION
iii = 7;
#else
iii = 8;
#endif
- layout->addMultiCellWidget( mPhoneEditWidget, 4, iii, 0, 1 );
+ layout->addMultiCellWidget( mPhoneEditWidget, 4, iii, 0, maxCol );
++iii;
/* LR
bar = new KSeparator( KSeparator::HLine, tab1 );
//US layout->addMultiCellWidget( bar, 4, 4, 3, 6 );
layout->addMultiCellWidget( bar, 9, 9, 0, 2 );
*/
/*US
//////////////////////////////////////
@@ -316,17 +334,17 @@ void AddresseeEditorWidget::setupTab1()
mCategoryEdit->setReadOnly( true );
connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ),
SLOT( textChanged( const QString& ) ) );
mSecrecyWidget = new SecrecyWidget( categoryBox );
connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) );
//US layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 );
- layout->addMultiCellWidget( categoryBox, iii, iii, 0, 1 );
+ layout->addMultiCellWidget( categoryBox, iii, iii, 0, maxCol );
// Build the layout and add to the tab widget
layout->activate(); // required
mTabWidget->addTab( tab1, i18n( "&General" ) );
}
void AddresseeEditorWidget::setRole2FN()
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index 7fe4bc0..0241cf0 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -19,26 +19,30 @@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
#include <kdialogbase.h>
+#include <kiconloader.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+
#include "addresseeconfig.h"
#include "typecombo.h"
class QButtonGroup;
class QCheckBox;
+#include <klineedit.h>
+#include <kcombobox.h>
class KListView;
-class KLineEdit;
-class KComboBox;
typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo;
/**
Widget for editing phone numbers.
*/
class PhoneEditWidget : public QWidget
{
@@ -138,10 +142,81 @@ public:
private:
KABC::PhoneNumber mPhoneNumber;
KABC::PhoneNumber::TypeList mTypeList;
QButtonGroup *mGroup;
QCheckBox *mPreferredBox;
KLineEdit *mNumber;
};
+class PhoneTypeNumberEdit : public QWidget
+{
+ Q_OBJECT
+public:
+ PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 )
+ {
+ QHBoxLayout * lay = new QHBoxLayout( this );
+ lay->setSpacing( KDialogBase::spacingHintSmall() );
+ lay->setMargin( KDialogBase::marginHintSmall() );
+ mMinusButton = new QPushButton ( this );
+ mMinusButton->setPixmap ( SmallIcon("minus"));
+ mCombo = new KComboBox( this );
+ mNumber = new KLineEdit( this );
+ lay->addWidget( mMinusButton );
+ lay->addWidget( mCombo );
+ lay->addWidget( mNumber );
+ connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) );
+ connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) );
+ mCombo->insertStringList( PhoneNumber::supportedTypeListNames() );
+ }
+
+ void setPhoneNumber( const KABC::PhoneNumber &phoneNumber )
+ {
+ mPhoneNumber = phoneNumber;
+ int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
+ mCombo->setCurrentItem( index );
+ mNumber->setText( mPhoneNumber.number() );
+ show();
+
+ }
+ KABC::PhoneNumber phoneNumber()
+ {
+ mPhoneNumber.setNumber( mNumber->text() );
+ int index = mCombo->currentItem();
+ mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] );
+ return mPhoneNumber;
+
+ }
+ private slots:
+ void typeExternalChanged( int oldType, int newType )
+ {
+ if ( mPhoneNumber.type() == newType ) {
+ mPhoneNumber.setType(oldType);
+ int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
+ mCombo->setCurrentItem( index );
+ }
+
+ }
+ void deleteNumber()
+ {
+ hide();
+ }
+ void comboTypeChange( int index )
+ {
+ int old = mPhoneNumber.type();
+ int newT = PhoneNumber::supportedTypeList()[index];
+ if ( old != newT ) {
+ mPhoneNumber.setType(newT );
+ emit typeChange ( old, newT );
+ }
+
+ }
+ signals:
+void typeChange( int oldType, int newType );
+
+private:
+ KABC::PhoneNumber mPhoneNumber;
+ QPushButton* mMinusButton;
+ KComboBox *mCombo;
+ KLineEdit *mNumber;
+};
#endif