summaryrefslogtreecommitdiff
path: root/core/pim/addressbook/picker.cpp
Unidiff
Diffstat (limited to 'core/pim/addressbook/picker.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/picker.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp
index a165451..7f4acb0 100644
--- a/core/pim/addressbook/picker.cpp
+++ b/core/pim/addressbook/picker.cpp
@@ -30,142 +30,151 @@ PickerLabel::~PickerLabel()
30void PickerLabel::setLetters( char ch1, char ch2, char ch3 ) 30void PickerLabel::setLetters( char ch1, char ch2, char ch3 )
31{ 31{
32 QString tmpStr; 32 QString tmpStr;
33 33
34 if (ch1 != '\0') 34 if (ch1 != '\0')
35 letter1 = ch1; 35 letter1 = ch1;
36 else 36 else
37 letter1 = ' '; 37 letter1 = ' ';
38 38
39 if (ch2 != '\0') 39 if (ch2 != '\0')
40 letter2 = ch2; 40 letter2 = ch2;
41 else 41 else
42 letter2 = ' '; 42 letter2 = ' ';
43 43
44 if (ch3 != '\0') 44 if (ch3 != '\0')
45 letter3 = ch3; 45 letter3 = ch3;
46 else 46 else
47 letter3 = ' '; 47 letter3 = ' ';
48 48
49 tmpStr = "<qt>"; 49 tmpStr = "<qt>";
50 tmpStr += letter1; 50 tmpStr += letter1;
51 tmpStr += letter2; 51 tmpStr += letter2;
52 tmpStr += letter3; 52 tmpStr += letter3;
53 tmpStr += "</qt>"; 53 tmpStr += "</qt>";
54 54
55 setText(tmpStr); 55 setText(tmpStr);
56 56
57 currentLetter = 0; 57 currentLetter = 0;
58 58
59} 59}
60 60
61void PickerLabel::clearLetter() 61void PickerLabel::clearLetter()
62{ 62{
63 63
64 QString tmpStr; 64 QString tmpStr;
65 65
66 tmpStr = "<qt>"; 66 tmpStr = "<qt>";
67 tmpStr += letter1; 67 tmpStr += letter1;
68 tmpStr += letter2; 68 tmpStr += letter2;
69 tmpStr += letter3; 69 tmpStr += letter3;
70 tmpStr += "</qt>"; 70 tmpStr += "</qt>";
71 71
72 setText(tmpStr); 72 setText(tmpStr);
73 73
74 currentLetter = 0; 74 currentLetter = 0;
75 75
76} 76}
77 77
78void PickerLabel::mouseReleaseEvent( QMouseEvent *e ) 78void PickerLabel::mousePressEvent( QMouseEvent* e )
79{
80 // If one pickerlabel is was, and an other is now selected, we
81 // have to simulate the releaseevent.. Otherwise the new label
82 // will not get a highlighted letter..
83 // Maybe there is a more intelligent solution, but this works and I am tired.. (se)
84 if ( ( currentLetter == 0 ) && ( lastLetter != '\0' ) ) mouseReleaseEvent( e );
85}
86
87void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
79{ 88{
80 QString tmpStr; 89 QString tmpStr;
81 90
82 if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3 && lastLetter != '\0') 91 if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3 && lastLetter != '\0')
83 QTimer::singleShot( 0, this, SLOT(emitClearSignal()) ); 92 QTimer::singleShot( 0, this, SLOT(emitClearSignal()) );
84 93
85 switch (currentLetter) { 94 switch (currentLetter) {
86 case 0: 95 case 0:
87 tmpStr = "<qt><font color=\"#7F0000\">"; 96 tmpStr = "<qt><u><font color=\"#7F0000\">";
88 tmpStr += letter1; 97 tmpStr += letter1;
89 tmpStr += "</font>"; 98 tmpStr += "</font></u>";
90 tmpStr += letter2; 99 tmpStr += letter2;
91 tmpStr += letter3; 100 tmpStr += letter3;
92 tmpStr += "</qt>"; 101 tmpStr += "</qt>";
93 102
94 setText(tmpStr); 103 setText(tmpStr);
95 104
96 currentLetter++; 105 currentLetter++;
97 lastLetter = letter1; 106 lastLetter = letter1;
98 emit selectedLetter( letter1 ); 107 emit selectedLetter( letter1 );
99 break; 108 break;
100 109
101 case 1: 110 case 1:
102 tmpStr = "<qt>"; 111 tmpStr = "<qt>";
103 tmpStr += letter1; 112 tmpStr += letter1;
104 tmpStr += "<font color=\"#7F0000\">"; 113 tmpStr += "<u><font color=\"#7F0000\">";
105 tmpStr += letter2; 114 tmpStr += letter2;
106 tmpStr += "</font>"; 115 tmpStr += "</font></u>";
107 tmpStr += letter3; 116 tmpStr += letter3;
108 tmpStr += "</qt>"; 117 tmpStr += "</qt>";
109 118
110 setText(tmpStr); 119 setText(tmpStr);
111 120
112 currentLetter++; 121 currentLetter++;
113 lastLetter = letter2; 122 lastLetter = letter2;
114 emit selectedLetter( letter2 ); 123 emit selectedLetter( letter2 );
115 break; 124 break;
116 125
117 case 2: 126 case 2:
118 tmpStr = "<qt>"; 127 tmpStr = "<qt>";
119 tmpStr += letter1; 128 tmpStr += letter1;
120 tmpStr += letter2; 129 tmpStr += letter2;
121 tmpStr += "<font color=\"#7F0000\">"; 130 tmpStr += "<u><font color=\"#7F0000\">";
122 tmpStr += letter3; 131 tmpStr += letter3;
123 tmpStr += "</font></qt>"; 132 tmpStr += "</font></u></qt>";
124 133
125 setText(tmpStr); 134 setText(tmpStr);
126 135
127 currentLetter++; 136 currentLetter++;
128 lastLetter = letter3; 137 lastLetter = letter3;
129 emit selectedLetter( letter3 ); 138 emit selectedLetter( letter3 );
130 break; 139 break;
131 140
132 default: 141 default:
133 clearLetter(); 142 clearLetter();
134 lastLetter = '\0'; 143 lastLetter = '\0';
135 emit selectedLetter( '\0' ); 144 emit selectedLetter( '\0' );
136 145
137 146
138 } 147 }
139} 148}
140 149
141void PickerLabel::emitClearSignal() { 150void PickerLabel::emitClearSignal() {
142 emit clearAll(); 151 emit clearAll();
143} 152}
144 153
145LetterPicker::LetterPicker( QWidget *parent, const char *name ) 154LetterPicker::LetterPicker( QWidget *parent, const char *name )
146 : QFrame( parent, name ) 155 : QFrame( parent, name )
147{ 156{
148 QHBoxLayout *l = new QHBoxLayout(this); 157 QHBoxLayout *l = new QHBoxLayout(this);
149 158
150 lblABC = new PickerLabel( this ); 159 lblABC = new PickerLabel( this );
151 l->addWidget( lblABC ); 160 l->addWidget( lblABC );
152 161
153 lblDEF = new PickerLabel( this ); 162 lblDEF = new PickerLabel( this );
154 l->addWidget( lblDEF ); 163 l->addWidget( lblDEF );
155 164
156 lblGHI = new PickerLabel( this ); 165 lblGHI = new PickerLabel( this );
157 l->addWidget( lblGHI ); 166 l->addWidget( lblGHI );
158 167
159 lblJKL = new PickerLabel( this ); 168 lblJKL = new PickerLabel( this );
160 l->addWidget( lblJKL ); 169 l->addWidget( lblJKL );
161 170
162 lblMNO = new PickerLabel( this ); 171 lblMNO = new PickerLabel( this );
163 l->addWidget( lblMNO ); 172 l->addWidget( lblMNO );
164 173
165 lblPQR = new PickerLabel( this ); 174 lblPQR = new PickerLabel( this );
166 l->addWidget( lblPQR ); 175 l->addWidget( lblPQR );
167 176
168 lblSTU = new PickerLabel( this ); 177 lblSTU = new PickerLabel( this );
169 l->addWidget( lblSTU ); 178 l->addWidget( lblSTU );
170 179
171 lblVWX = new PickerLabel( this ); 180 lblVWX = new PickerLabel( this );
@@ -179,51 +188,52 @@ LetterPicker::LetterPicker( QWidget *parent, const char *name )
179 lblGHI->setLetters( 'G', 'H', 'I' ); 188 lblGHI->setLetters( 'G', 'H', 'I' );
180 lblJKL->setLetters( 'J', 'K', 'L' ); 189 lblJKL->setLetters( 'J', 'K', 'L' );
181 lblMNO->setLetters( 'M', 'N', 'O' ); 190 lblMNO->setLetters( 'M', 'N', 'O' );
182 lblPQR->setLetters( 'P', 'Q', 'R' ); 191 lblPQR->setLetters( 'P', 'Q', 'R' );
183 lblSTU->setLetters( 'S', 'T', 'U' ); 192 lblSTU->setLetters( 'S', 'T', 'U' );
184 lblVWX->setLetters( 'V', 'W', 'X' ); 193 lblVWX->setLetters( 'V', 'W', 'X' );
185 lblYZ->setLetters( 'Y', 'Z', '#' ); 194 lblYZ->setLetters( 'Y', 'Z', '#' );
186 195
187 connect(lblABC, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 196 connect(lblABC, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
188 connect(lblDEF, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 197 connect(lblDEF, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
189 connect(lblGHI, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 198 connect(lblGHI, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
190 connect(lblJKL, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 199 connect(lblJKL, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
191 connect(lblMNO, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 200 connect(lblMNO, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
192 connect(lblPQR, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 201 connect(lblPQR, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
193 connect(lblSTU, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 202 connect(lblSTU, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
194 connect(lblVWX, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 203 connect(lblVWX, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
195 connect(lblYZ, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); 204 connect(lblYZ, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
196 connect(lblABC, SIGNAL(clearAll()), this, SLOT(clear())); 205 connect(lblABC, SIGNAL(clearAll()), this, SLOT(clear()));
197 connect(lblDEF, SIGNAL(clearAll()), this, SLOT(clear())); 206 connect(lblDEF, SIGNAL(clearAll()), this, SLOT(clear()));
198 connect(lblGHI, SIGNAL(clearAll()), this, SLOT(clear())); 207 connect(lblGHI, SIGNAL(clearAll()), this, SLOT(clear()));
199 connect(lblJKL, SIGNAL(clearAll()), this, SLOT(clear())); 208 connect(lblJKL, SIGNAL(clearAll()), this, SLOT(clear()));
200 connect(lblMNO, SIGNAL(clearAll()), this, SLOT(clear())); 209 connect(lblMNO, SIGNAL(clearAll()), this, SLOT(clear()));
201 connect(lblPQR, SIGNAL(clearAll()), this, SLOT(clear())); 210 connect(lblPQR, SIGNAL(clearAll()), this, SLOT(clear()));
202 connect(lblSTU, SIGNAL(clearAll()), this, SLOT(clear())); 211 connect(lblSTU, SIGNAL(clearAll()), this, SLOT(clear()));
203 connect(lblVWX, SIGNAL(clearAll()), this, SLOT(clear())); 212 connect(lblVWX, SIGNAL(clearAll()), this, SLOT(clear()));
204 connect(lblYZ, SIGNAL(clearAll()), this, SLOT(clear())); 213 connect(lblYZ, SIGNAL(clearAll()), this, SLOT(clear()));
205 214
206} 215}
207 216
208LetterPicker::~LetterPicker() 217LetterPicker::~LetterPicker()
209{ 218{
210} 219}
211 220
212void LetterPicker::clear() 221void LetterPicker::clear()
213{ 222{
214 lblABC->clearLetter(); 223 lblABC->clearLetter();
215 lblDEF->clearLetter(); 224 lblDEF->clearLetter();
216 lblGHI->clearLetter(); 225 lblGHI->clearLetter();
217 lblJKL->clearLetter(); 226 lblJKL->clearLetter();
218 lblMNO->clearLetter(); 227 lblMNO->clearLetter();
219 lblPQR->clearLetter(); 228 lblPQR->clearLetter();
220 lblSTU->clearLetter(); 229 lblSTU->clearLetter();
221 lblVWX->clearLetter(); 230 lblVWX->clearLetter();
222 lblYZ->clearLetter(); 231 lblYZ->clearLetter();
223} 232}
224 233
225void LetterPicker::newLetter( char letter ) 234void LetterPicker::newLetter( char letter )
226{ 235{
236 qWarning("LetterClicked");
227 emit letterClicked( letter ); 237 emit letterClicked( letter );
228 238
229} 239}