📄 lxbankselectionlist.cc
字号:
// ****************************************************************************// // LxBank - home-banking for Linux using the HBCI standard// // Author: Franz Zimmermann 83043 Bad Aibling// // Copyright (C) 2002-2003 Franz Zimmermann - arafang@users.sourceforge.net// // 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., 675 Mass Ave, Cambridge, MA 02139, USA.// // ***************************************************************************//// ***************************************************************************// /*! \file \brief LxBankSelectionList: Bank selection dialog for LxBank*/ // ***************************************************************************//// $Name: $//// $State: Exp $//// $Log: LxBankSelectionList.cc,v $// Revision 1.3 2003/05/03 20:27:05 arafang// Use LxBankSelectionList within LxUserAddWizard to show a list// with BTX-names to put into the Short-Name input field.//// Revision 1.2 2003/05/03 16:36:05 arafang// Brief description corrected.//// Revision 1.1 2003/05/03 16:24:04 arafang// New class LxBankSelectionList. Used in LxRemittanceWorkDialog to present information about all banks of one bank code id.////#ifdef HAVE_CONFIG_H#include <config.h>#endif#include "LxBankSelectionList.h"#include <qlayout.h>#include <qsignalmapper.h>#include <qstring.h>#include <qlistview.h> LxBankSelectionList::LxBankSelectionList( const BankCodeVec &b, int buttonFlags, QString cap, QWidget *parent, const char *name, bool modal, WFlags f) : QDialog( parent, name, modal, f ), banks(b), canceledBanks(false), okButton(0), dismissButton(0){ setCaption(tr(cap)); sm = new QSignalMapper( this ); vBox = new QVBoxLayout( this, 3, 5, "BSD-VBox" ); lView = new QListView( this, "BankList" ); vBox->addWidget( lView, 10 ); hBox = new QHBoxLayout(vBox, 3, "BSD-HBox"); hBox->addStretch ( 10 ); createButtons ( buttonFlags ); setupBankList ( ); QListViewItem *item = 0; item = lView->firstChild (); if ( buttonFlags & Lx::Okay ){ if (item){ lView->setSelected ( item, TRUE ); } }else{ if (item){ lView->setSelected ( item, TRUE ); lView->setSelected ( item, FALSE ); } } setButtonState ( item ); connect( lView, SIGNAL( selectionChanged(QListViewItem *) ), this, SLOT( selectionChanged(QListViewItem *) ) ); connect( lView, SIGNAL( pressed(QListViewItem *) ), this, SLOT( pressedInList(QListViewItem *) ) ); connect(lView, SIGNAL( doubleClicked ( QListViewItem * ) ), this, SLOT(selectionDone(QListViewItem *)) ); connect(lView, SIGNAL( returnPressed ( QListViewItem * ) ), this, SLOT(selectionDone(QListViewItem *)) ); connect( sm, SIGNAL( mapped( int )), this, SLOT( done( int ) ));}void LxBankSelectionList::createButtons( int buttonFlags ){ if ( buttonFlags & Lx::Okay ){ okButton = new QPushButton(tr("Ok"), this); addButton( okButton, Lx::Okay ); } if ( buttonFlags & Lx::Dismiss ){ dismissButton = new QPushButton(tr("Dismiss"), this); addButton( dismissButton, Lx::Dismiss ); }}void LxBankSelectionList::addButton( QPushButton *button, int result ){ hBox->addWidget ( button, 0 ); hBox->addStretch ( 10 ); if ( result ){ sm->setMapping( button, result ); connect( button, SIGNAL( clicked() ), sm, SLOT( map() ) ); }}void LxBankSelectionList::setupBankList (){ // see if we have canceled banks BankCodeVec::iterator pos; for ( pos = banks.begin(); pos != banks.end(); ++pos ) { if ( pos->getState() == LxBankCodeData::Canceled ){ canceledBanks = true; break; } } lView->setAllColumnsShowFocus ( TRUE ); lView->setSelectionMode ( QListView::Single ); lView->setItemMargin ( 2 ); int c1, c2, c3, c4, c5, c6, c7, c8; c1 = lView->addColumn ( tr("Sequence No.") ); c2 = lView->addColumn ( tr("BTX-Name") ); c3 = lView->addColumn ( tr("Name") ); c4 = lView->addColumn ( tr("Zipcode") ); c5 = lView->addColumn ( tr("City") ); c6 = lView->addColumn ( tr("CS-Method") ); if ( canceledBanks ){ c7 = lView->addColumn ( tr("Cancel Date") ); c8 = lView->addColumn ( tr("Succession Bank") ); } lView->setSorting ( -1 ); lView->setColumnAlignment ( c1, AlignCenter ); lView->setColumnAlignment ( c4, AlignCenter ); lView->setColumnAlignment ( c6, AlignCenter ); if ( canceledBanks ){ lView->setColumnAlignment ( c7, AlignCenter ); lView->setColumnAlignment ( c8, AlignCenter ); } BankCodeVec::reverse_iterator rpos; lView->clear(); QListViewItem *item; if ( canceledBanks ){ for ( rpos = banks.rbegin(); rpos != banks.rend(); ++rpos ) { if ( rpos->getState() == LxBankCodeData::Canceled ){ // canceled bank item = new QListViewItem( lView, rpos->qtgetSqeNo(), // Sequence No. rpos->qtgetBTXname(), // BTX-Name rpos->qtgetName(), // Name rpos->qtgetZipCode(), // Zipcode rpos->qtgetCity(), // City rpos->qtgetPZmethode(), // Checksum Method rpos->qtgetCancelDate(), // Cancel Date rpos->qtgetSuccessionSqeNo() ); // Succession Bank }else{ // valid bank item = new QListViewItem( lView, rpos->qtgetSqeNo(), // Sequence No. rpos->qtgetBTXname(), // BTX-Name rpos->qtgetName(), // Name rpos->qtgetZipCode(), // Zipcode rpos->qtgetCity(), // City rpos->qtgetPZmethode(), // Checksum Method QString::null, // Cancel Date QString::null ); // Succession Bank } } }else{ // only valid banks for ( rpos = banks.rbegin(); rpos != banks.rend(); ++rpos ) { item = new QListViewItem( lView, rpos->qtgetSqeNo(), // Sequence No. rpos->qtgetBTXname(), // BTX-Name rpos->qtgetName(), // Name rpos->qtgetZipCode(), // Zipcode rpos->qtgetCity(), // City rpos->qtgetPZmethode() ); // Checksum Method } }}const LxBankCodeData& LxBankSelectionList::getSelectedBank (){ int bankSqeNo; QListViewItem *item; BankCodeVec::iterator pos = banks.begin(); item = lView->selectedItem(); if ( item ){ bankSqeNo = item->text(0).toInt(); for ( ; pos != banks.end(); ++pos ) { if ( pos->getSqeNo() == bankSqeNo ){ break; } } } return *pos;}void LxBankSelectionList::selectionDone ( QListViewItem *lvItem ){ done ( 1 ); }void LxBankSelectionList::selectionChanged ( QListViewItem *lvItem ){ setButtonState ( lvItem ); }void LxBankSelectionList::pressedInList ( QListViewItem *lvItem ){ setButtonState ( lvItem ); }void LxBankSelectionList::setButtonState ( QListViewItem *lvItem ){ if ( lvItem && lView->selectedItem() ){ if (okButton) okButton->setEnabled(TRUE); }else{ if (okButton) okButton->setEnabled(FALSE); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -