亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lxuserlistdialog.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 - farafang@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.// // ***************************************************************************//// ***************************************************************************// //// $Name:  $//// $State: Exp $//// $Log: LxUserListDialog.cc,v $// Revision 1.6  2003/04/07 22:44:42  arafang// Put all calls of executeQueue into try/catch clause. Check status of jobs in get accounts.//// Revision 1.5  2003/02/20 02:38:03  arafang// Default args in some constructor implementions removed.//// Revision 1.4  2003/02/08 15:25:21  franz// Mail address changed.//// Revision 1.3  2003/01/26 23:09:41  franz// LxAccountSelectDialog: New method to delete accounts (remove).// Class LxAccountStmtPrint adapted to new account statement view layout.// Account update implemented.//// Revision 1.2  2003/01/11 18:35:22  franz// Complete methods of class LxInteractor.// Worked on class LxPinDialog.// Improve class LxUserAddWizard.// Implement methods removeUser and getAccounts in class LxUserListDialog.// Button enable/dissable bug fixed in class LxRemittanceView.//// Revision 1.1  2003/01/07 22:09:32  franz// Added user list dialog.////#ifdef HAVE_CONFIG_H#include <config.h>#endif#include "LxUserListDialog.h"#include "LxUserAddWizard.h"#include <qlistview.h> #include <qpushbutton.h> #include <qlayout.h>#include <qmessagebox.h>LxUserListDialog::LxUserListDialog(LxHbci *hbciapi, AccountList *acclist,				    QWidget *parent, const char *name, 				    bool modal, WFlags f)  : QDialog( parent, name, modal, f ), hbciApi(hbciapi), accList(acclist),     newButton(0), detailButton(0), getAccButton(0), modifyButton(0), removeButton(0), dismButton(0){  setCaption(tr("User List"));   vBox = new QVBoxLayout( this, 3, 5);  lView = new QListView( this, "UsersList" );  vBox->addWidget( lView, 10 );  lView->setAllColumnsShowFocus ( TRUE );   lView->setSelectionMode ( QListView::Single );  int c1, c2, c3, c4;  c1 = lView->addColumn ( tr("No.") );  c2 = lView->addColumn ( tr("User Name") );	        c3 = lView->addColumn ( tr("User Id") );      c4 = lView->addColumn ( tr("Institute") );     lView->setItemMargin ( 2 );  hBox = new QHBoxLayout(vBox, 3);  hBox->addStretch ( 10 );  createButtons ( );  setupUserList ();  connect( lView, SIGNAL( selectionChanged(QListViewItem *) ), this, SLOT( selectionChanged(QListViewItem *) ) );  connect( lView, SIGNAL( pressed(QListViewItem *) ), this, SLOT( pressedInList(QListViewItem *) ) );}void LxUserListDialog::setupUserList (){  int count;  list<HBCI::Pointer<HBCI::User> >::iterator uit;  userList.clear();  lView->clear();  userList = hbciApi->getUsers ( );  for ( uit = userList.begin(), count = 1; uit != userList.end(); ++uit, ++count ) {    addUserToList (count, uit);  }  QListViewItem *item;  item = lView->firstChild ();  if (item){    lView->setSelected ( item, TRUE );  }  setButtonState ( item );}void LxUserListDialog::addUserToList (int count, list<HBCI::Pointer<HBCI::User> >::iterator uit){  QListViewItem *item;  HBCI::Pointer<HBCI::Bank> bank = (**uit).bank();  item = new QListViewItem( lView,			    QString::number(count),			    (**uit).userName().c_str(),			    (**uit).userId().c_str(),			    (*bank).name().c_str() );}void LxUserListDialog::createButtons( ){    newButton = new QPushButton(tr("New"), this);    addButton( newButton );    connect( newButton, SIGNAL( clicked() ), this, SLOT( createUser() ) );    detailButton = new QPushButton(tr("Details"), this);    addButton( detailButton );    connect( detailButton, SIGNAL( clicked() ), this, SLOT( showDetails() ) );    getAccButton = new QPushButton(tr("Get Accounts"), this);    addButton( getAccButton );    connect( getAccButton, SIGNAL( clicked() ), this, SLOT( getAccounts() ) );    modifyButton = new QPushButton(tr("Modify"), this);    addButton( modifyButton );    connect( modifyButton, SIGNAL( clicked() ), this, SLOT( modifyUser() ) );    removeButton = new QPushButton(tr("Delete"), this);    addButton( removeButton );    connect( removeButton, SIGNAL( clicked() ), this, SLOT( remove() ) );    dismButton = new QPushButton(tr("Dismiss"), this);    addButton( dismButton );    connect( dismButton, SIGNAL( clicked() ), this, SLOT( reject() ) );}void LxUserListDialog::addButton( QPushButton *button ){  hBox->addWidget ( button, 0 );  hBox->addStretch ( 10 );}HBCI::Pointer<HBCI::User> LxUserListDialog::getSelectedUser ( ){  int itemNo;  QListViewItem *item;  HBCI::Pointer<HBCI::User> selectedUser;  item = lView->selectedItem();  if ( item ){    itemNo = item->text(0).toInt();    list<HBCI::Pointer<HBCI::User> >::const_iterator uit;    int count = 0;    for ( count = 1, uit = userList.begin(); count < itemNo; ++uit, ++count ){    }    selectedUser = *uit;  }  return selectedUser;  }void LxUserListDialog::selectionChanged ( QListViewItem *lvItem ){  setButtonState ( lvItem ); }void LxUserListDialog::pressedInList ( QListViewItem *lvItem ){  setButtonState ( lvItem ); }void LxUserListDialog::setButtonState ( QListViewItem *lvItem ){  if ( lvItem && lView->selectedItem() ){    if (removeButton)      removeButton->setEnabled(TRUE);    if (detailButton)      detailButton->setEnabled(TRUE);    if (getAccButton)      getAccButton->setEnabled(TRUE);    if (modifyButton)      modifyButton->setEnabled(TRUE);  }else{    if (removeButton)      removeButton->setEnabled(FALSE);    if (detailButton)      detailButton->setEnabled(FALSE);    if (getAccButton)      getAccButton->setEnabled(FALSE);    if (modifyButton)      modifyButton->setEnabled(FALSE);  }}void LxUserListDialog::createUser(){  int res;  LxUserAddWizard *newUser = new LxUserAddWizard(hbciApi);  res = newUser->exec();  if ( res == QDialog::Accepted ){    setupUserList ();    hbciApi->save ();  }}void LxUserListDialog::showDetails(){  QMessageBox::information ( this, tr("Show Details"),			     tr("Not yet implemented!\n"),			     QMessageBox::Ok,			     0);}void LxUserListDialog::getAccounts(){  HBCI::Pointer<HBCI::User> selectedUser = getSelectedUser ();  if ( !selectedUser.isValid () ){    return;  }  HBCI::Error err;  HBCI::Pointer<HBCI::OutboxJob> job;  int jobCount = 0;  int oldVersion = (*selectedUser).version ();  // set user's version to zero; some banks expect this!!! example: Kreissparkasse Bad Aibling  (*selectedUser).setVersion ( 0 );  const list<HBCI::Pointer<HBCI::Customer> > customersOfUser = (*selectedUser).customers();  list<HBCI::Pointer<HBCI::Customer> >::const_iterator cit;  for ( cit = customersOfUser.begin(); cit != customersOfUser.end(); ++cit ){    job = new HBCI::OutboxJobGetAccounts ( *cit );    hbciApi->addJob (job);    ++jobCount;  }  // execute the job(s)  try {    err = hbciApi->executeQueue();    if ( !err.isOk() ){      LxHbci::reportError (err, "LxUserListDialog::getAccounts: Error at executeQueue!");    }  }  catch (HBCI::Error excErr) {    LxHbci::reportError (excErr, "LxUserListDialog::getAccounts: Exeption at executeQueue!");  }  // reset user's version  int curVersion = (*selectedUser).version ();  (*selectedUser).setVersion ( oldVersion + curVersion );  // check the interactor  HBCI::Pointer<HBCI::Interactor> intActor = hbciApi->interactor();  if ( (*intActor).aborted() ){    (*intActor).abort(false);//     cerr << "\nStatus of Interactor after executeQueue: aborted!" << endl;  }//   else{//     cerr << "\nStatus of Interactor after executeQueue: not aborted!" << endl;//   }  list<HBCI::Pointer<HBCI::OutboxJob> > qjobs = hbciApi->queuedJobs ();  list<HBCI::Pointer<HBCI::OutboxJob> >::iterator jb;  int accountsAdded = 0;  LxAccount *oldAccount;  int accNo, maxAccNo;  // found the maximum account number; new accounts gets greater sequence numbers  for ( oldAccount = accList->first(), maxAccNo = 0; oldAccount != 0; oldAccount = accList->next() ){    accNo = oldAccount->getId();    if ( accNo > maxAccNo  ){      maxAccNo = accNo;    }  }  // get user's bank and bank code  HBCI::Pointer<HBCI::Bank> usersBank = (*selectedUser).bank ();  const string &bankCode = (*usersBank).bankCode ();  // get all accounts of user's bank  list<HBCI::Pointer<HBCI::Account> >::iterator accIt;  list<HBCI::Pointer<HBCI::Account> > accountsOfUsersBank = hbciApi->getAccounts (0, bankCode, "*");//   cerr << "\ngetAccounts: user has " << accountsOfUsersBank.size() << " accounts at bank " << bankCode << "!" << endl;  for ( jb = qjobs.begin(); jb != qjobs.end(); ++jb){//     switch ( (**jb).result() ){//     case HBCI_JOB_RESULT_NONE://       cerr << "\ngetAccounts: job was not executed" << endl;//       break;//     case HBCI_JOB_RESULT_SUCCESS://       cerr << "\ngetAccounts: job was successfully performed" << endl;//       break;//     case HBCI_JOB_RESULT_FAILED://       cerr << "\ngetAccounts: job was executed and failed" << endl;//     }    if ( (**jb).result() == HBCI_JOB_RESULT_SUCCESS ){      cerr << "\nGet Account job has been performed successfully! Setup account!" << endl;      LxAccount *newAccount;      bool isNewAccount;      for (accIt = accountsOfUsersBank.begin(); accIt != accountsOfUsersBank.end(); ++accIt){	const string &accId = (**accIt).accountId ();	// see, if we have this account already in our list	for ( oldAccount = accList->first(), isNewAccount = true; oldAccount != 0; oldAccount = accList->next() ){	  string idOfAcc ( oldAccount->getAccountNo().latin1() );	  if ( idOfAcc == accId ){	    isNewAccount = false;	    break;	  }	}	// take it, if this account is new	if ( isNewAccount ){	  ++maxAccNo;	  newAccount = new LxAccount( maxAccNo, hbciApi, *accIt );	  accList->append (newAccount);	  ++accountsAdded;// 	  cerr << "\ngetAccounts: account " << (**accIt).accountId() << " added!" << endl;	}      }    }else{      cerr << "\nGet Account job has not been performed successfully!" << endl;    }  }  if ( accountsAdded ){    hbciApi->save ();    setupUserList ();  }  // clear queue//   cerr << "\nClear queue!\n\nNumber of queued jobs = " << qjobs.size() << endl;  for ( jb = qjobs.begin(); jb != qjobs.end(); ++jb){    hbciApi->removeQueuedJob ( *jb );  }//   qjobs = hbciApi->queuedJobs ();//   cerr << "\nNumber of queued jobs = " << qjobs.size() << endl;}void LxUserListDialog::modifyUser(){  QMessageBox::information ( this, tr("Modify User"),			     tr("Not yet implemented!\n"),			     QMessageBox::Ok,			     0);}void LxUserListDialog::remove(){  HBCI::Pointer<HBCI::User> user = getSelectedUser ();  if ( user.isValid () ){    switch( QMessageBox::warning ( this, tr("Confirm Delete"), 				   tr("Do you really want to delete this user?"),				   tr("Ok"), tr("Cancel"), QString::null, 1, 1 ) ){    case 0: // The user clicked the Ok button      removeUser ( user );      break;    case 1: // The user clicked the Cancel button, or pressed Enter or Escape      return;      break;    }  }}void LxUserListDialog::removeUser( HBCI::Pointer<HBCI::User> user ){  bool userHasAnAccount = false;  HBCI::Pointer<HBCI::Bank> bank = (*user).bank ();  HBCI::Pointer<HBCI::Medium> medium = (*user).medium ();  int secMode = (*medium).securityMode ();  const list<HBCI::Pointer<HBCI::Customer> > customersOfUser = (*user).customers ();  const list<HBCI::Pointer<HBCI::Account> > allAccountsAtUsersBank = (*bank).accounts ();  list<HBCI::Pointer<HBCI::Account> >::const_iterator ait;  list<HBCI::Pointer<HBCI::Account> > allAccountsOfUser;  for ( ait = allAccountsAtUsersBank.begin(); ait != allAccountsAtUsersBank.end(); ++ait ){     const list<HBCI::Pointer<HBCI::Customer> > customersOfAccount = (**ait).authorizedCustomers();    list<HBCI::Pointer<HBCI::Customer> >::const_iterator cait;    for ( cait = customersOfAccount.begin(); cait != customersOfAccount.end(); ++cait ){      list<HBCI::Pointer<HBCI::Customer> >::const_iterator cuit;	      for ( cuit = customersOfUser.begin(); cuit != customersOfUser.end(); ++cuit ){	if ( (**cait).custId() == (**cuit).custId() ){	  allAccountsOfUser.push_back(*ait);	}      }    }  }  if ( !allAccountsOfUser.empty() ){    userHasAnAccount = true;  }  if ( userHasAnAccount ){    QString msg;    list<HBCI::Pointer<HBCI::Account> >::iterator ac;    if ( allAccountsOfUser.size() == 1 ){      msg  = tr("Cannot remove this user!\n\nThis user owns still one account!\nAccount Number: ");      ac = allAccountsOfUser.begin();      msg += (**ac).accountId().c_str();    }else{      msg  = tr("Cannot remove this user!\n\nThis user owns still ");      msg += QString::number( allAccountsOfUser.size() );      msg += tr(" accounts!\nAccount Numbers: ");      ac = allAccountsOfUser.begin();      msg += (**ac).accountId().c_str();      for (++ac; ac != allAccountsOfUser.end(); ++ac){	msg += ", ";	msg += (**ac).accountId().c_str();      }    }    QMessageBox::critical ( this, tr("Delete User"),			    msg,			    QMessageBox::Ok,			    0);  }else{    switch (secMode){    case HBCI_SECURITY_DDV:      if ( (*medium).isMounted () ){	(*medium).unmountMedium();      }      break;    case HBCI_SECURITY_RDH:      // destroy medium      break;    }    (*bank).removeUser ( user );     // delete bank if no users remaining    const list<HBCI::Pointer<HBCI::User> > bankUsers = (*bank).users();    if ( bankUsers.empty() ){      hbciApi->removeBank(bank);    }    setupUserList ();    hbciApi->save ();  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区电影| 欧美日韩国产乱码电影| 免费观看成人av| 亚洲最大成人综合| 一区二区三区丝袜| 亚洲欧美日韩国产综合在线| 国产精品美女久久久久久久久久久| 日韩欧美第一区| 精品捆绑美女sm三区| 精品成人私密视频| 久久久久国产精品麻豆| 国产精品天美传媒| 中文字幕在线不卡一区二区三区| 国产精品乱子久久久久| 综合在线观看色| 一区二区三区资源| 日韩有码一区二区三区| 日本午夜一本久久久综合| 琪琪一区二区三区| 久久99精品久久久| 岛国av在线一区| 在线中文字幕一区二区| 欧美精品少妇一区二区三区| 精品久久人人做人人爽| 中文成人av在线| 一区二区三区在线视频免费观看| 一区二区三区四区视频精品免费 | 欧美伊人久久大香线蕉综合69| 在线观看亚洲精品视频| 欧美一区二区三区婷婷月色| 精品国产一区二区三区四区四| 久久久久久免费| 国产精品国产三级国产aⅴ入口 | 国产一区视频网站| 不卡电影免费在线播放一区| 欧美在线观看视频一区二区 | 久久精品国产亚洲aⅴ| 国产乱淫av一区二区三区| 91美女片黄在线观看| 制服丝袜在线91| 国产精品久久久久久久岛一牛影视| 亚洲另类春色校园小说| 九九在线精品视频| 欧美午夜电影在线播放| 中文字幕二三区不卡| 日本成人在线视频网站| av在线一区二区| 精品奇米国产一区二区三区| 亚洲麻豆国产自偷在线| 精品一区二区影视| 在线免费精品视频| 中文字幕免费不卡| 精品中文字幕一区二区| 欧美三级视频在线| 国产精品日韩成人| 国精产品一区一区三区mba桃花| 在线看国产一区| 亚洲欧洲美洲综合色网| 久草精品在线观看| 日韩欧美在线综合网| 亚洲图片欧美视频| 99re66热这里只有精品3直播 | ...xxx性欧美| 国产伦精品一区二区三区在线观看 | 日本女优在线视频一区二区| 91九色最新地址| 国产精品乱子久久久久| 国产成人av一区二区三区在线观看| 欧美一卡在线观看| 日韩国产欧美一区二区三区| 欧美性猛交xxxx乱大交退制版| 国产精品系列在线| 懂色av一区二区在线播放| 国产视频一区二区三区在线观看| 日韩精品一卡二卡三卡四卡无卡| 在线精品视频小说1| 一区二区三区久久久| 99国内精品久久| 亚洲欧美国产毛片在线| 色婷婷狠狠综合| 一区二区在线免费| 91极品视觉盛宴| 亚洲黄网站在线观看| 色噜噜狠狠成人中文综合| 亚洲激情男女视频| 欧美日韩精品一区二区三区四区| 午夜精品久久一牛影视| 欧美日韩成人综合天天影院| 日韩1区2区日韩1区2区| 久久亚洲综合色| 粉嫩蜜臀av国产精品网站| 国产精品国产三级国产三级人妇| www.欧美日韩国产在线| 亚洲蜜臀av乱码久久精品蜜桃| 日本精品一级二级| 视频一区视频二区中文字幕| 欧美一区二区日韩一区二区| 国产麻豆精品视频| 亚洲激情中文1区| 69p69国产精品| 国产精品白丝jk黑袜喷水| 亚洲欧美视频在线观看| 欧美高清dvd| 国产精品一区二区在线播放 | 精品欧美乱码久久久久久| 国产一区91精品张津瑜| 中文字幕一区av| 欧美人与性动xxxx| 国内精品伊人久久久久av一坑 | 欧美私模裸体表演在线观看| 日本视频在线一区| 国产精品美女一区二区| 欧美人与性动xxxx| 波波电影院一区二区三区| 午夜久久福利影院| 国产精品欧美综合在线| 欧美妇女性影城| 成人性视频网站| 蜜芽一区二区三区| 中文字幕在线观看不卡| 欧美成人官网二区| 欧美视频一二三区| 懂色av一区二区三区蜜臀 | 26uuu国产在线精品一区二区| 成人av综合在线| 久久黄色级2电影| 亚洲精品欧美专区| 国产日产欧美一区二区三区| 制服丝袜av成人在线看| 91精品福利在线| 国产 日韩 欧美大片| 青草国产精品久久久久久| 亚洲最色的网站| 国产精品视频你懂的| 欧美一级久久久久久久大片| 在线亚洲高清视频| 不卡的av在线播放| 国产成人免费网站| 国内精品嫩模私拍在线| 婷婷夜色潮精品综合在线| 亚洲欧美日韩国产中文在线| 国产欧美日产一区| 精品99999| 欧美xxxxxxxx| 日韩午夜电影在线观看| 欧美日韩1234| 欧美色区777第一页| 色婷婷久久99综合精品jk白丝| 成人性生交大片免费看中文| 国产成人夜色高潮福利影视| 国产一区二区电影| 国产麻豆一精品一av一免费| 精品一区二区三区免费观看| 免费成人小视频| 精一区二区三区| 国精产品一区一区三区mba桃花| 日韩av网站免费在线| 日本在线不卡视频一二三区| 天堂一区二区在线| 日本美女一区二区三区视频| 免费成人在线播放| 久久成人免费网站| 国产91综合一区在线观看| 风间由美一区二区三区在线观看| 成人在线综合网站| 不卡视频在线观看| 欧洲国产伦久久久久久久| 欧美午夜一区二区三区免费大片| 欧美巨大另类极品videosbest| 欧美日韩国产成人在线免费| 日韩一级免费观看| 久久人人97超碰com| 国产精品久久久久久久久快鸭 | 国产成人免费视| av在线不卡观看免费观看| 色8久久人人97超碰香蕉987| 欧美日韩一区国产| 欧美电影免费提供在线观看| 国产日韩精品久久久| 综合电影一区二区三区 | 欧美综合在线视频| 91麻豆精品国产综合久久久久久| 精品国产1区二区| 亚洲天堂中文字幕| 日本欧美一区二区三区乱码| 懂色中文一区二区在线播放| 色欧美片视频在线观看| 欧美一级欧美三级在线观看| 中文字幕乱码日本亚洲一区二区| 亚洲欧洲精品天堂一级| 日本少妇一区二区| www.欧美.com| 91精品国产综合久久婷婷香蕉| 精品sm捆绑视频| 亚洲一区二区三区国产| 九一久久久久久| 欧美吻胸吃奶大尺度电影| 日韩午夜电影av| 亚洲综合成人在线视频| 国产经典欧美精品|