From c2c343110573bd8b4d59fbff577969ff23d5c544 Mon Sep 17 00:00:00 2001 From: tux_mike Date: Wed, 17 Apr 2002 19:45:48 +0000 Subject: Added preliminary version of the Picker --- (limited to 'core/pim/addressbook/picker.cpp') diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp new file mode 100644 index 0000000..06dcc7d --- a/dev/null +++ b/core/pim/addressbook/picker.cpp @@ -0,0 +1,234 @@ +#include "picker.h" + +#include +#include +#include +#include + +char PickerLabel::lastLetter = '\0'; + +PickerLabel::PickerLabel( QWidget *parent, const char *name ) + : QLabel ( parent, name ) +{ + currentLetter = 0; + //lastLetter = 0; + + letter1 = '\0'; + letter2 = '\0'; + letter3 = '\0'; + + setFont( QFont( "smallsmooth", 9 ) ); + setTextFormat( Qt::RichText ); + +} + +PickerLabel::~PickerLabel() +{ + +} + +void PickerLabel::setLetters( char ch1, char ch2, char ch3 ) +{ + QString tmpStr; + + if (ch1 != '\0') + letter1 = ch1; + else + letter1 = ' '; + + if (ch2 != '\0') + letter2 = ch2; + else + letter2 = ' '; + + if (ch3 != '\0') + letter3 = ch3; + else + letter3 = ' '; + + tmpStr = ""; + tmpStr += letter1; + tmpStr += letter2; + tmpStr += letter3; + tmpStr += ""; + + setText(tmpStr); + + currentLetter = 0; + +} + +void PickerLabel::clearLetter() +{ + + QString tmpStr; + + tmpStr = ""; + tmpStr += letter1; + tmpStr += letter2; + tmpStr += letter3; + tmpStr += ""; + + setText(tmpStr); + + currentLetter = 0; + +} + +void PickerLabel::mouseReleaseEvent( QMouseEvent *e ) +{ + QString tmpStr; + + if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3) + QTimer::singleShot( 0, this, SLOT(emitClearSignal()) ); + + qDebug( "a" ); + switch (currentLetter) { + case 0: + tmpStr = ""; + tmpStr += letter1; + tmpStr += ""; + tmpStr += letter2; + tmpStr += letter3; + tmpStr += ""; + + setText(tmpStr); + + currentLetter++; + lastLetter = letter1; + emit selectedLetter( letter1 ); + qDebug( "PickerLabel::mouseReleaseEvent %c", letter1 ); + break; + + case 1: + tmpStr = ""; + tmpStr += letter1; + tmpStr += ""; + tmpStr += letter2; + tmpStr += ""; + tmpStr += letter3; + tmpStr += ""; + + setText(tmpStr); + + currentLetter++; + lastLetter = letter2; + emit selectedLetter( letter2 ); + qDebug( "PickerLabel::mouseReleaseEvent %c", letter2 ); + break; + + case 2: + tmpStr = ""; + tmpStr += letter1; + tmpStr += letter2; + tmpStr += ""; + tmpStr += letter3; + tmpStr += ""; + + setText(tmpStr); + + currentLetter++; + lastLetter = letter3; + emit selectedLetter( letter3 ); + qDebug( "PickerLabel::mouseReleaseEvent %c", letter3 ); + break; + + default: + clearLetter(); + lastLetter = '\0'; + emit selectedLetter( '\0' ); + + + } +} + +void PickerLabel::emitClearSignal() { + emit clearAll(); +} + +LetterPicker::LetterPicker( QWidget *parent, const char *name ) + : QFrame( parent, name ) +{ + QHBoxLayout *l = new QHBoxLayout(this); + + lblABC = new PickerLabel( this ); + l->addWidget( lblABC ); + + lblDEF = new PickerLabel( this ); + l->addWidget( lblDEF ); + + lblGHI = new PickerLabel( this ); + l->addWidget( lblGHI ); + + lblJKL = new PickerLabel( this ); + l->addWidget( lblJKL ); + + lblMNO = new PickerLabel( this ); + l->addWidget( lblMNO ); + + lblPQR = new PickerLabel( this ); + l->addWidget( lblPQR ); + + lblSTU = new PickerLabel( this ); + l->addWidget( lblSTU ); + + lblVWX = new PickerLabel( this ); + l->addWidget( lblVWX ); + + lblYZ = new PickerLabel( this ); + l->addWidget( lblYZ ); + + lblABC->setLetters( 'A', 'B', 'C' ); + lblDEF->setLetters( 'D', 'E', 'F' ); + lblGHI->setLetters( 'G', 'H', 'I' ); + lblJKL->setLetters( 'J', 'K', 'L' ); + lblMNO->setLetters( 'M', 'N', 'O' ); + lblPQR->setLetters( 'P', 'Q', 'R' ); + lblSTU->setLetters( 'S', 'T', 'U' ); + lblVWX->setLetters( 'V', 'W', 'X' ); + lblYZ->setLetters( 'Y', 'Z', '#' ); + + connect(lblABC, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblDEF, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblGHI, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblJKL, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblMNO, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblPQR, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblSTU, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblVWX, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblYZ, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char))); + connect(lblABC, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblDEF, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblGHI, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblJKL, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblMNO, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblPQR, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblSTU, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblVWX, SIGNAL(clearAll()), this, SLOT(clear())); + connect(lblYZ, SIGNAL(clearAll()), this, SLOT(clear())); + +} + +LetterPicker::~LetterPicker() +{ +} + +void LetterPicker::clear() +{ + lblABC->clearLetter(); + lblDEF->clearLetter(); + lblGHI->clearLetter(); + lblJKL->clearLetter(); + lblMNO->clearLetter(); + lblPQR->clearLetter(); + lblSTU->clearLetter(); + lblVWX->clearLetter(); + lblYZ->clearLetter(); +} + +void LetterPicker::newLetter( char letter ) +{ + qDebug( "LetterPicker::newLetter %c", letter ); + emit letterClicked( letter ); + +} -- cgit v0.9.0.2