summaryrefslogtreecommitdiffabout
path: root/kaddressbook/phoneeditwidget.h
Side-by-side diff
Diffstat (limited to 'kaddressbook/phoneeditwidget.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.h112
1 files changed, 0 insertions, 112 deletions
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index 0477b6c..fbf9fe7 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -1,295 +1,183 @@
#ifndef PHONEEDITWIDGET_H
#define PHONEEDITWIDGET_H
/*
This file is part of KAddressBook.
Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
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 <qpopupmenu.h>
#include <qptrlist.h>
#include <qscrollview.h>
#include "addresseeconfig.h"
#include "typecombo.h"
class QButtonGroup;
class QCheckBox;
class PhoneTypeNumberEdit;
#include <klineedit.h>
#include <kcombobox.h>
#include <kabc/phonenumber.h>
typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo;
/**
Widget for editing phone numbers.
*/
class PhoneEditWidget : public QWidget
{
Q_OBJECT
public:
PhoneEditWidget( QWidget *parent, const char *name = 0 );
~PhoneEditWidget();
void setPhoneNumbers( const KABC::PhoneNumber::List &list );
KABC::PhoneNumber::List phoneNumbers();
// void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* );
//KABC::PhoneNumber currentPhoneNumber( KComboBox*, int );
signals:
void modified();
void typeChange( int oldType, int newType );
private slots:
void bottomVisible();
void addNumberInt( int );
void deleteEdit( PhoneTypeNumberEdit* ew );
void addNumber();
void pendingDelete();
protected:
private:
QScrollView* sv;
QPopupMenu *mPopup;
int mPopupCount;
PhoneTypeNumberEdit* mPendingDelete;
void setDefaults();
PhoneTypeNumberEdit* appendEditCombo();
QWidget* mw;
QVBoxLayout* mainLayout;
QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList;
- KABC::PhoneNumber::List mPhoneList;
};
-
-
-
-#if 0
-class PhoneEditWidget : public QWidget
-{
- Q___OBJECT
-
- public:
- PhoneEditWidget( QWidget *parent, const char *name = 0 );
- ~PhoneEditWidget();
-
- void setPhoneNumbers( const KABC::PhoneNumber::List &list );
- KABC::PhoneNumber::List phoneNumbers();
-
- void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* );
- KABC::PhoneNumber currentPhoneNumber( KComboBox*, int );
-
- sig_nals:
- void modified();
- void typeChange( int oldType, int newType );
-
- private sl_ots:
- void edit();
-
- void updatePrefEdit();
- void updateSecondEdit();
- void updateThirdEdit();
- void updateFourthEdit();
-
- void slotPrefEditChanged();
- void slotSecondEditChanged();
- void slotThirdEditChanged();
- void slotFourthEditChanged();
-
- protected:
- void updateLineEdits();
- void updateCombos();
-
- private:
- QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList;
- void updateEdit( PhoneTypeCombo *combo );
- void updatePhoneNumber( PhoneTypeCombo *combo );
- void updateOtherEdit( PhoneTypeCombo *combo, PhoneTypeCombo *otherCombo );
-
- PhoneTypeCombo *mPrefCombo;
- PhoneTypeCombo *mSecondCombo;
- PhoneTypeCombo *mThirdCombo;
- PhoneTypeCombo *mFourthCombo;
-
- KLineEdit *mPrefEdit;
- KLineEdit *mSecondEdit;
- KLineEdit *mThirdEdit;
- KLineEdit *mFourthEdit;
-
- KABC::PhoneNumber::List mPhoneList;
-};
-
-/**
- Dialog for editing lists of phonenumbers.
-*/
-class PhoneEditDialog : public KDialogBase
-{
- Q___OBJECT
-
- public:
- PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *parent, const char *name = 0 );
- ~PhoneEditDialog();
-
- const KABC::PhoneNumber::List &phoneNumbers();
- bool changed() const;
-
- protected s__lots:
- void slotAddPhoneNumber();
- void slotRemovePhoneNumber();
- void slotEditPhoneNumber();
- void slotSelectionChanged();
-
- private:
- KABC::PhoneNumber::List mPhoneNumberList;
- KABC::PhoneNumber::TypeList mTypeList;
- KComboBox *mTypeBox;
- KListView *mListView;
-
- QPushButton *mRemoveButton;
- QPushButton *mEditButton;
-
- bool mChanged;
-};
-
-/**
- Dialog for editing phone number types.
-*/
-class PhoneTypeDialog : public KDialogBase
-{
- Q___OBJECT
-public:
- PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, QWidget *parent, const char *name = 0 );
-
- KABC::PhoneNumber phoneNumber();
-
-private:
- KABC::PhoneNumber mPhoneNumber;
- KABC::PhoneNumber::TypeList mTypeList;
-
- QButtonGroup *mGroup;
- QCheckBox *mPreferredBox;
- KLineEdit *mNumber;
-};
-#endif
-
class PhoneTypeNumberEdit : public QWidget
{
Q_OBJECT
public:
PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 ) :QWidget( parent )
{
QHBoxLayout * lay = new QHBoxLayout( this );
lay->setSpacing( 2 );
lay->setMargin( 0 );
mMinusButton = new QPushButton ( this );
mMinusButton->setPixmap ( SmallIcon("minus"));
mCombo = new KComboBox( this );
mNumber = new KLineEdit( this );
mMinusButton->setMaximumHeight( mNumber->sizeHint().height() + 6);
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 ) ) );
connect( mNumber , SIGNAL ( textChanged ( const QString & ) ),
this, SLOT ( textChanged ( const QString & ) ) );
mCombo->insertStringList( PhoneNumber::supportedTypeListNames() );
}
~PhoneTypeNumberEdit() {
// qDebug("~PhoneTypeNumberEdit() ");
}
void setPhoneNumber( const KABC::PhoneNumber &phoneNumber )
{
mPhoneNumber = phoneNumber;
int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() );
mCombo->setCurrentItem( index );
mNumber->setText( mPhoneNumber.number() );
show();
mNumber->setFocus();
}
KABC::PhoneNumber phoneNumber()
{
mPhoneNumber.setNumber( mNumber->text() );
int index = mCombo->currentItem();
mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] );
return mPhoneNumber;
}
bool isValid()
{
if ( mNumber->text().isEmpty() )return false;
return true;
}
int currentType()
{
return mCombo->currentItem();
}
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()
{
emit deleteMe( this );
}
void comboTypeChange( int index )
{
int old = mPhoneNumber.type();
int newT = PhoneNumber::supportedTypeList()[index];
if ( old != newT ) {
emit modified();
if ( newT != PhoneNumber::Voice )
emit typeChange ( old, newT );
mPhoneNumber.setType(newT );
}
}
void textChanged ( const QString & )
{
emit modified();
}
signals:
void typeChange( int oldType, int newType );
void modified();
void deleteMe( PhoneTypeNumberEdit* );
private:
KABC::PhoneNumber mPhoneNumber;
QPushButton* mMinusButton;
KComboBox *mCombo;
KLineEdit *mNumber;
};
#endif