⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lxbankselectionlist.cc

📁 LxBank是一个基于Qt/X的家庭储蓄应用程序
💻 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 + -