summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Unidiff
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/phoneeditwidget.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp
index f52cedb..7e2aec1 100644
--- a/kaddressbook/phoneeditwidget.cpp
+++ b/kaddressbook/phoneeditwidget.cpp
@@ -1,176 +1,183 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com> 3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qtooltip.h> 26#include <qtooltip.h>
27#include <qpushbutton.h> 27#include <qpushbutton.h>
28#include <qcheckbox.h> 28#include <qcheckbox.h>
29#include <qstring.h> 29#include <qstring.h>
30#include <qlistbox.h> 30#include <qlistbox.h>
31#include <qlistview.h> 31#include <qlistview.h>
32#include <qbuttongroup.h> 32#include <qbuttongroup.h>
33#include <qhbox.h> 33#include <qhbox.h>
34#include <qcursor.h> 34#include <qcursor.h>
35#include <qtimer.h> 35#include <qtimer.h>
36#include <qapplication.h>
36 37
37#include <kbuttonbox.h> 38#include <kbuttonbox.h>
38#include <klistview.h> 39#include <klistview.h>
39#include <kapplication.h> 40#include <kapplication.h>
40#include <qapplication.h> 41#include <qapplication.h>
41#include <kconfig.h> 42#include <kconfig.h>
42#include <klineedit.h> 43#include <klineedit.h>
43#include <kcombobox.h> 44#include <kcombobox.h>
44#include <klocale.h> 45#include <klocale.h>
45#include <kdebug.h> 46#include <kdebug.h>
46#include <kglobal.h> 47#include <kglobal.h>
47#include <kiconloader.h> 48#include <kiconloader.h>
48 49
49#include <kabc/phonenumber.h> 50#include <kabc/phonenumber.h>
50 51
51#include "typecombo.h" 52#include "typecombo.h"
52 53
53#include "phoneeditwidget.h" 54#include "phoneeditwidget.h"
54 55
55PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) 56PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name )
56 : QWidget(parent,name) 57 : QWidget(parent,name)
57{ 58{
58 QGridLayout* gridLayout = new QGridLayout ( this, 2,2 ); 59 QGridLayout* gridLayout = new QGridLayout ( this, 2,2 );
59 60
60 QLabel *temp = new QLabel( "", this ); 61 QLabel *temp = new QLabel( "", this );
61 temp->setAlignment( Qt::AlignCenter ); 62 temp->setAlignment( Qt::AlignCenter );
62 temp->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); 63 temp->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) );
63 gridLayout->addWidget( temp, 1, 0 );
64 QPushButton *addBut = new QPushButton ( "add", this ); 64 QPushButton *addBut = new QPushButton ( "add", this );
65 addBut->setPixmap ( SmallIcon("plus")); 65 addBut->setPixmap ( SmallIcon("plus"));
66 addBut->setMaximumSize( addBut->sizeHint().height(),addBut->sizeHint().height() ); 66 addBut->setMaximumSize( addBut->sizeHint().height(),addBut->sizeHint().height() );
67 connect(addBut,SIGNAL(clicked ()),SLOT(addNumber())); 67 connect(addBut,SIGNAL(clicked ()),SLOT(addNumber()));
68 gridLayout->addWidget( addBut, 0, 0 );
69 68
70 sv = new QScrollView( this ); 69 sv = new QScrollView( this );
71 sv->setFrameStyle ( QFrame::Panel | QFrame::Plain ); 70 sv->setFrameStyle ( QFrame::Panel | QFrame::Plain );
72 sv->setLineWidth ( 1 ); 71 sv->setLineWidth ( 1 );
73 sv->setMidLineWidth ( 1 ); 72 sv->setMidLineWidth ( 1 );
74 mw = new QWidget ( sv->viewport() ); 73 mw = new QWidget ( sv->viewport() );
75 sv->addChild(mw); 74 sv->addChild(mw);
76 sv->setResizePolicy( QScrollView::AutoOneFit ); 75 sv->setResizePolicy( QScrollView::AutoOneFit );
77 mainLayout = new QVBoxLayout ( mw ); 76 mainLayout = new QVBoxLayout ( mw );
78 mainLayout->setMargin( 0 ); 77 mainLayout->setMargin( 0 );
79 mainLayout->setSpacing( 0 ); 78 mainLayout->setSpacing( 0 );
80 gridLayout->addMultiCellWidget( sv, 0, 1, 1,1 ); 79 if ( QApplication::desktop()->width() == 240 || QApplication::desktop()->width() == 480 ) {
80 gridLayout->addWidget( addBut, 0, 0 );
81 gridLayout->addWidget( temp, 0, 1 );
82 gridLayout->addMultiCellWidget( sv, 1,1 , 0,1 );
83 } else {
84 gridLayout->addWidget( temp, 1, 0 );
85 gridLayout->addWidget( addBut, 0, 0 );
86 gridLayout->addMultiCellWidget( sv, 0, 1, 1,1 );
87 }
81 setDefaults(); 88 setDefaults();
82 mTypeNumberEditList.setAutoDelete( true ); 89 mTypeNumberEditList.setAutoDelete( true );
83 mPopup = new QPopupMenu( this ); 90 mPopup = new QPopupMenu( this );
84 QStringList list = PhoneNumber::supportedTypeListNames(); 91 QStringList list = PhoneNumber::supportedTypeListNames();
85 mPopupCount = list.count(); 92 mPopupCount = list.count();
86 int i = 0; 93 int i = 0;
87 while ( i < mPopupCount ) { 94 while ( i < mPopupCount ) {
88 mPopup->insertItem( list[ i ], i ); 95 mPopup->insertItem( list[ i ], i );
89 ++i; 96 ++i;
90 } 97 }
91 connect(mPopup,SIGNAL(activated(int)),this,SLOT(addNumberInt( int))); 98 connect(mPopup,SIGNAL(activated(int)),this,SLOT(addNumberInt( int)));
92 99
93} 100}
94 101
95PhoneEditWidget::~PhoneEditWidget() 102PhoneEditWidget::~PhoneEditWidget()
96{ 103{
97} 104}
98void PhoneEditWidget::setDefaults() 105void PhoneEditWidget::setDefaults()
99{ 106{
100 mTypeNumberEditList.clear(); 107 mTypeNumberEditList.clear();
101 PhoneTypeNumberEdit* edit = appendEditCombo(); 108 PhoneTypeNumberEdit* edit = appendEditCombo();
102 KABC::PhoneNumber phoneNumber; 109 KABC::PhoneNumber phoneNumber;
103 phoneNumber.setType( KABC::PhoneNumber::Home | KABC::PhoneNumber::Pref ); 110 phoneNumber.setType( KABC::PhoneNumber::Home | KABC::PhoneNumber::Pref );
104 edit->setPhoneNumber( phoneNumber ); 111 edit->setPhoneNumber( phoneNumber );
105 edit = appendEditCombo(); 112 edit = appendEditCombo();
106 phoneNumber.setType( KABC::PhoneNumber::Work | KABC::PhoneNumber::Pref ); 113 phoneNumber.setType( KABC::PhoneNumber::Work | KABC::PhoneNumber::Pref );
107 edit->setPhoneNumber( phoneNumber ); 114 edit->setPhoneNumber( phoneNumber );
108 edit = appendEditCombo(); 115 edit = appendEditCombo();
109 phoneNumber.setType( KABC::PhoneNumber::Cell ); 116 phoneNumber.setType( KABC::PhoneNumber::Cell );
110 edit->setPhoneNumber( phoneNumber ); 117 edit->setPhoneNumber( phoneNumber );
111 118
112} 119}
113void PhoneEditWidget::addNumberInt( int index ) 120void PhoneEditWidget::addNumberInt( int index )
114{ 121{
115 PhoneTypeNumberEdit* edit = appendEditCombo(); 122 PhoneTypeNumberEdit* edit = appendEditCombo();
116 KABC::PhoneNumber phoneNumber; 123 KABC::PhoneNumber phoneNumber;
117 phoneNumber.setType( PhoneNumber::supportedTypeList()[index] ); 124 phoneNumber.setType( PhoneNumber::supportedTypeList()[index] );
118 edit->setPhoneNumber( phoneNumber ); 125 edit->setPhoneNumber( phoneNumber );
119 //verticalScrollBar()->setValue( 1024); 126 //verticalScrollBar()->setValue( 1024);
120 QTimer::singleShot( 0, this, SLOT ( bottomVisible() ) ); 127 QTimer::singleShot( 0, this, SLOT ( bottomVisible() ) );
121} 128}
122void PhoneEditWidget::bottomVisible() 129void PhoneEditWidget::bottomVisible()
123{ 130{
124 sv->setContentsPos ( 0, 1024 ); 131 sv->setContentsPos ( 0, 1024 );
125} 132}
126void PhoneEditWidget::addNumber() 133void PhoneEditWidget::addNumber()
127{ 134{
128 int i = 0; 135 int i = 0;
129 while ( i < mPopupCount ) { 136 while ( i < mPopupCount ) {
130 mPopup->setItemEnabled( i, true ); 137 mPopup->setItemEnabled( i, true );
131 ++i; 138 ++i;
132 } 139 }
133 PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); 140 PhoneTypeNumberEdit* edit = mTypeNumberEditList.first();
134 while ( edit ) { 141 while ( edit ) {
135 if ( edit->currentType() < mPopupCount -1 ) 142 if ( edit->currentType() < mPopupCount -1 )
136 mPopup->setItemEnabled( edit->currentType(), false ); 143 mPopup->setItemEnabled( edit->currentType(), false );
137 edit = mTypeNumberEditList.next(); 144 edit = mTypeNumberEditList.next();
138 } 145 }
139 mPopup->popup( QCursor::pos() ); 146 mPopup->popup( QCursor::pos() );
140} 147}
141PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo() 148PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo()
142{ 149{
143 PhoneTypeNumberEdit* edit = new PhoneTypeNumberEdit( mw ); 150 PhoneTypeNumberEdit* edit = new PhoneTypeNumberEdit( mw );
144 connect ( edit, SIGNAL ( typeChange( int , int) ), this, SIGNAL ( typeChange( int , int)) ); 151 connect ( edit, SIGNAL ( typeChange( int , int) ), this, SIGNAL ( typeChange( int , int)) );
145 connect ( edit, SIGNAL ( modified() ), this, SIGNAL ( modified() ) ); 152 connect ( edit, SIGNAL ( modified() ), this, SIGNAL ( modified() ) );
146 connect ( edit, SIGNAL ( deleteMe( PhoneTypeNumberEdit* ) ), this, SLOT ( deleteEdit( PhoneTypeNumberEdit*) ) ); 153 connect ( edit, SIGNAL ( deleteMe( PhoneTypeNumberEdit* ) ), this, SLOT ( deleteEdit( PhoneTypeNumberEdit*) ) );
147 connect ( this, SIGNAL ( typeChange( int , int)), edit, SLOT ( typeExternalChanged( int, int)) ); 154 connect ( this, SIGNAL ( typeChange( int , int)), edit, SLOT ( typeExternalChanged( int, int)) );
148 155
149 mainLayout->add( edit ); 156 mainLayout->add( edit );
150 mTypeNumberEditList.append( edit ); 157 mTypeNumberEditList.append( edit );
151 return edit; 158 return edit;
152} 159}
153 160
154void PhoneEditWidget::deleteEdit( PhoneTypeNumberEdit* ew ) 161void PhoneEditWidget::deleteEdit( PhoneTypeNumberEdit* ew )
155{ 162{
156 mPendingDelete = ew; 163 mPendingDelete = ew;
157 QTimer::singleShot( 0, this, SLOT ( pendingDelete() ) ); 164 QTimer::singleShot( 0, this, SLOT ( pendingDelete() ) );
158} 165}
159void PhoneEditWidget::pendingDelete() 166void PhoneEditWidget::pendingDelete()
160{ 167{
161 mTypeNumberEditList.removeRef( mPendingDelete ); 168 mTypeNumberEditList.removeRef( mPendingDelete );
162 emit modified(); 169 emit modified();
163} 170}
164 171
165void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li ) 172void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li )
166{ 173{
167 if ( li.isEmpty() ) { 174 if ( li.isEmpty() ) {
168 setDefaults(); 175 setDefaults();
169 return; 176 return;
170 } 177 }
171 mTypeNumberEditList.clear(); 178 mTypeNumberEditList.clear();
172 KABC::PhoneNumber::List::Iterator it; 179 KABC::PhoneNumber::List::Iterator it;
173 KABC::PhoneNumber::List list2 = li; 180 KABC::PhoneNumber::List list2 = li;
174 KABC::PhoneNumber::List list ; 181 KABC::PhoneNumber::List list ;
175 182
176 PhoneNumber::TypeList tList = PhoneNumber::supportedTypeList(); 183 PhoneNumber::TypeList tList = PhoneNumber::supportedTypeList();