Source Code (Use browser search to find items of interest.)
Class Index
abbrowser'SelectFields (./kdepim/abbrowser/selectfields.h:12)
class SelectFields : public QDialog
{
Q_OBJECT
public:
SelectFields( QStringList oldFields,
QWidget *parent = 0,
const char *name = 0,
bool modal = false );
virtual QStringList chosenFields();
public slots:
virtual void select();
virtual void unselect();
virtual void addCustom();
virtual void showFields( int );
private:
QStringList currentField;
QListBox *lbUnSelected;
QListBox *lbSelected;
QLineEdit *leCustomField;
QComboBox *cbUnselected;
};
abbrowser'SelectFields::SelectFields() (./kdepim/abbrowser/selectfields.cpp:17)
SelectFields::SelectFields( QStringList oldFields,
QWidget * parent,
const char * name,
bool modal )
: QDialog( parent, name, modal )
{
setCaption( "Select fields to display" );
QGridLayout *gl = new QGridLayout( this, 6, 3, 10 );
gl->setSpacing( 10 );
cbUnselected = new QComboBox( false, this );
QString tmp;
for (int i = 0;
tmp = i18n(Attributes::instance()->fieldListName( i )), tmp != "";
++i )
cbUnselected->insertItem( tmp );
cbUnselected->setCurrentItem( 1 );
gl->addWidget( cbUnselected, 0, 0 );
// lUnselected->setAlignment( QLabel::AlignTop | QLabel::AlignLeft );
QLabel *lSelected = new QLabel( i18n( "Selected fields" ), this );
gl->addWidget( lSelected, 0, 2 );
lSelected->setAlignment( QLabel::AlignTop | QLabel::AlignLeft );
lbUnSelected = new QListBox( this );
lbUnSelected->setSelectionMode( QListBox::Extended );
gl->addWidget( lbUnSelected, 1, 0 );
lbSelected = new QListBox( this );
lbSelected->setSelectionMode( QListBox::Extended );
gl->addWidget( lbSelected, 1, 2 );
QBoxLayout *vb1 = new QBoxLayout( QBoxLayout::TopToBottom, 10 );
vb1->addStretch();
QPushButton *pbAdd = new QPushButton( i18n( "&Add >>" ), this );
QObject::connect( pbAdd, SIGNAL( clicked() ), this, SLOT( select() ));
vb1->addWidget( pbAdd );
QPushButton *pbRemove = new QPushButton( i18n( "<< &Remove" ), this );
QObject::connect( pbRemove, SIGNAL( clicked() ), this, SLOT( unselect() ));
vb1->addWidget( pbRemove );
vb1->addStretch();
gl->addLayout( vb1, 1, 1 );
QBoxLayout *hb1 = new QBoxLayout( QBoxLayout::LeftToRight, 10 );
QLabel *lCustomField = new QLabel( i18n( "Custom Field" ), this );
hb1->addWidget( lCustomField );
leCustomField = new QLineEdit( this );
QObject::connect( leCustomField, SIGNAL( returnPressed() ),
this, SLOT( addCustom() ));
hb1->addWidget( leCustomField );
gl->addMultiCell( hb1, 2, 2, 0, 2, QGridLayout::AlignRight );
QFrame *bar1 = new QFrame( this, "horizontal divider 1" );
bar1->setFrameStyle( QFrame::HLine | QFrame::Sunken );
bar1->setMinimumHeight( 10 );
bar1->setMaximumHeight( 10 );
gl->addMultiCellWidget( bar1, 3, 3, 0, 2 );
QBoxLayout *hb2 = new QBoxLayout( QBoxLayout::LeftToRight, 10 );
hb2->addStretch();
QPushButton *pbOk = new QPushButton( i18n("&OK"), this );
// pbOk->setFocus();
QObject::connect( pbOk, SIGNAL( clicked() ), this, SLOT( accept() ));
hb2->addWidget( pbOk );
QPushButton *pbCancel = new QPushButton( i18n("Cancel"), this );
QObject::connect( pbCancel, SIGNAL( clicked() ), this, SLOT( reject() ));
hb2->addWidget( pbCancel );
gl->addMultiCell( hb2, 4, 4, 0, 2, QGridLayout::AlignRight );
QStringList ignored;
QStringList unSelectedNames;
Attributes::instance()->nameFieldList( cbUnselected->currentItem(),
&unSelectedNames,
&ignored );
QStringList selectedNames;
QStringList::Iterator it;
for(it = oldFields.begin(); it != oldFields.end(); ++it) {
QString name = Attributes::instance()->fieldToName( *it );
selectedNames += name;
QStringList::Iterator cit = unSelectedNames.find( name );
if (cit != unSelectedNames.end())
unSelectedNames.remove( cit );
}
selectedNames.sort();
lbUnSelected->insertStringList( unSelectedNames );
lbSelected->insertStringList( selectedNames );
QSize lbSizeHint = lbUnSelected->sizeHint();
lbSizeHint = lbSizeHint.expandedTo( lbSelected->sizeHint() );
lbUnSelected->setMinimumSize( lbSizeHint );
lbSelected->setMinimumSize( lbSizeHint );
QObject::connect( cbUnselected, SIGNAL( activated(int) ),
this, SLOT( showFields(int) ));
gl->activate();
}
abbrowser'SelectFields::showFields() (./kdepim/abbrowser/selectfields.cpp:119)
void SelectFields::showFields( int index )
{
QStringList ignored;
QStringList unSelectedNames;
Attributes::instance()->nameFieldList( index,
&unSelectedNames,
&ignored );
for(uint i = 0; i < lbSelected->count(); ++i) {
QString name = lbSelected->text( i );
QStringList::Iterator cit = unSelectedNames.find( name );
if (cit != unSelectedNames.end())
unSelectedNames.remove( cit );
}
lbUnSelected->clear();
lbUnSelected->insertStringList( unSelectedNames );
}
abbrowser'SelectFields::select() (./kdepim/abbrowser/selectfields.cpp:137)
void SelectFields::select()
{
for(uint i = 0; i < lbUnSelected->count(); ++i)
if (lbUnSelected->isSelected( lbUnSelected->item( i ))) {
QString item = lbUnSelected->item( i )->text();
QString lItem = item.lower();
uint j;
for(j = 0; j < lbSelected->count(); ++j) {
if (lbSelected->text( j ).lower() > lItem)
break;
}
lbSelected->insertItem( item, j );
lbUnSelected->removeItem( i );
--i;
}
}
abbrowser'SelectFields::unselect() (./kdepim/abbrowser/selectfields.cpp:154)
void SelectFields::unselect()
{
for(uint i = 0; i < lbSelected->count(); ++i)
if (lbSelected->isSelected( lbSelected->item( i ))) {
QString item = lbSelected->item( i )->text();
QString lItem = item.lower();
uint j = 0;
for(j = 0; j < lbUnSelected->count(); ++j) {
if (lbUnSelected->text( j ).lower() > lItem)
break;
}
lbUnSelected->insertItem( item, j );
lbSelected->removeItem( i );
--i;
}
}
abbrowser'SelectFields::chosenFields() (./kdepim/abbrowser/selectfields.cpp:171)
QStringList SelectFields::chosenFields()
{
QStringList result;
uint i;
for(i = 0; i < lbSelected->count(); ++i) {
QString field = Attributes::instance()->nameToField( lbSelected->text( i ) );
if (field != "")
result += field;
else
result += "X-CUSTOM-" + lbSelected->text( i );
}
return result;
}
abbrowser'SelectFields::addCustom() (./kdepim/abbrowser/selectfields.cpp:185)
void SelectFields::addCustom()
{
QString item = leCustomField->text();
if (item == "")
return;
QString lItem = item.lower();
uint i = 0;
for(i = 0; i < lbSelected->count(); ++i) {
if (lbSelected->text( i ).lower() > lItem)
break;
}
lbSelected->insertItem( item, i );
leCustomField->clear();
}