📄 addressbook.cpp
字号:
/******************************************************************************** Trolltech hereby grants a license to use the Qt/Eclipse Integration** plug-in (the software contained herein), in binary form, solely for the** purpose of creating code to be used with Trolltech's Qt software.**** Qt Designer is licensed under the terms of the GNU General Public** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the** right to use certain no GPL licensed software under the terms of its GPL** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).**** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."**** Since we now have the GPL exception I think that the "special exception** is no longer needed. The license text proposed above (other than the** special exception portion of it) is the BSD license and we have added** the BSD license as a permissible license under the exception.******************************************************************************/#include "../header/addressbook.h"#include "../header/memberdatastructure.h"#include "../header/memberdatalist.h"AddressBook::AddressBook(QWidget *parent) : QWidget(parent){ ui.setupUi(this); SystemInit(); }/* Group * ListGroup * AddGroup * DetailGroup * * First Page: titleLabel rightButton leftButton optionCombo * * */AddressBook::~AddressBook(){}/* The Initial status when the program start to run */void AddressBook::SystemInit(){ ui.titleLabel->setText("AddressBook v1.0"); listPageOptionComboSet(); /* Data structure process */// MemberData mb;// mb.setName("wzz");// mb.setPhone("13458439991");// mb.setHome("6098382");// mb.setWork("plenware");// mb.setHomeFax("123456");// mb.setWorkFax("654321");// mb.setEmail("pushiwuhua@126.com");// mb.setAddress("tiafu road");// // mb.setGroup("thor");// mb.setPicture("c:\\");// mb.setRemarks("test");// MemberData mb2;// mb2.setName("wang");// // // mb2.setPhone("2730838");// mb2.setHome("luzhou");// mb2.setWork("prorammer");// mb2.setHomeFax("123456");// mb2.setEmail("pushiwuhua@gmail.com");// mb2.setAddress("shuanghua bridge");// // mb2.setGroup("diablo");// mb2.setPicture("D:\\");// mb2.setRemarks("test2");// // // list.add(mb);// list.add(mb2);// list.add(mb); curPersonName = list.value(0).getName(); ui.titleLabel->hide();// ui.listgroup_memberListWidget->itemAt(0); // MemberData newValue = list.value("wang");// newValue.setName("wang_new");// list.changeValue("wang",newValue);// list.initData(); /* The listpage processing */ showListPage(); // cout<<list.memberList.name; }/* ************************************************************************************************************** * List Page Related components processing * * 1. showListPage() //make this page visible * 2. on_listgroup_classCombo_activated() //process the class combobox * 3. on_listgroup_memberListWidget_itemActivated() //process the listwidget * 4. on_listgroup_findEdit_textChanged() //process the find bar. * 5. listPageOptionComboSet() //Set the initial items * 6. showOptionCombo() //Show the optioncombo and * //hide the right button * 7. on_optionCombo_activated() //process the combo event * 8. clearAddPage() //clear Page ***************************************************************************************************************/void AddressBook::showListPage(){ /* * This show page function should contain: * 1. Clear components * 2. TitleLabel Set * 3. Group hide and show * 4. Button, combo change and show * 5. Component initial Event process */ /*1. Clear components*/ ui.listgroup_findEdit->clear(); ui.listgroup_memberListWidget->clear(); ui.listgroup_classCombo->clear(); /* 2.TitleLabel Set */ ui.titleLabel->setText("List Page"); /* 3. Group hide and show */ ui.addGroupBox->hide(); ui.detailGroupBox->hide(); ui.classGroupBox->hide(); ui.classModifyGroupBox->hide(); ui.listGroupBox->show(); /* 4. Button, combo change and show */ ui.leftButton->setText("Add"); showOptionCombo(); /* 5. Component initial Event */ /* memberListWidget Event */ ui.listgroup_memberListWidget->setCurrentRow(0); for(int i=0;i<list.size();i++) { ui.listgroup_memberListWidget->addItem(list.value(i).getName()); } /* listgroup_classCombo Event */ ui.listgroup_classCombo->addItem("Show All Groups"); for(int i=0;i<list.groupsNameList().size();i++) { ui.listgroup_classCombo->addItem(list.groupsNameList().at(i)); } ui.listgroup_memberListWidget->sortItems(Qt::AscendingOrder); }void AddressBook::on_listgroup_classCombo_activated(){ ui.listgroup_memberListWidget->clear(); if(ui.listgroup_classCombo->currentText()=="Show All Groups") { ui.listgroup_memberListWidget->addItems(list.allNameList()); } else { ui.listgroup_memberListWidget->addItems(list.groupMemberName(ui.listgroup_classCombo->currentText())); } ui.listgroup_memberListWidget->sortItems(Qt::AscendingOrder);}void AddressBook::on_listgroup_memberListWidget_itemActivated(){ curPersonName = ui.listgroup_memberListWidget->currentItem()->text(); showDetailPage(); MemberData currentMD = list.value(curPersonName); ui.detailgroup_nameLabel->setText(QString(currentMD.getName())); int i=0; //ui.detailgroup_detailListWidget->addItem(QString(currentMD.getName())); if(!QString(currentMD.getPhone()).isEmpty()) ui.detailgroup_detailListWidget->insertItem(i++, new QListWidgetItem \ (QIcon("image/Cell Phone.png"), "Phone: "+QString(currentMD.getPhone()))); if(!QString(currentMD.getHome()).isEmpty()) ui.detailgroup_detailListWidget->insertItem(i++,new QListWidgetItem (QIcon("image/home.png"), "Home: "+QString(currentMD.getHome()))); if(!QString(currentMD.getWork()).isEmpty()) ui.detailgroup_detailListWidget->insertItem(i++,new QListWidgetItem (QIcon("image/phone.png"), "Work: "+QString(currentMD.getWork()))); if(!QString(currentMD.getHomeFax()).isEmpty()) ui.detailgroup_detailListWidget->insertItem(i++,new QListWidgetItem (QIcon("image/fax.png"), "HomeFax: "+QString(currentMD.getHomeFax()))); if(!QString(currentMD.getWorkFax()).isEmpty()) ui.detailgroup_detailListWidget->insertItem(i++,new QListWidgetItem (QIcon("image/workfax.png"), "WorkFax: "+QString(currentMD.getWorkFax()))); if(!QString(currentMD.getEmail()).isEmpty()) ui.detailgroup_detailListWidget->insertItem(i++,new QListWidgetItem (QIcon("image/email.png"), "Email: "+QString(currentMD.getEmail()))); if(!QString(currentMD.getAddress()).isEmpty()) { ui.detailgroup_detailListWidget->insertItem(i++, new QListWidgetItem (QIcon("image/home_II.png"), "Address: \n"+QString(currentMD.getAddress()))); //ui.detailgroup_detailListWidget->addItem(); // i++; } if(!QString(currentMD.getGroup()).isEmpty()) ui.detailgroup_detailListWidget->insertItem(i++,new QListWidgetItem (QIcon("image/Workgroup.png"), "Group: "+QString(currentMD.getGroup()))); if(!QString(currentMD.getRemarks()).isEmpty()) { ui.detailgroup_detailListWidget->insertItem(i++, new QListWidgetItem (QIcon("image/remark.png"), "Remarks: \n"+QString(currentMD.getRemarks()))); }// ui.detailgroup_detailListWidget->addItem() }void AddressBook::on_listgroup_memberListWidget_itemSelectionChanged(){ curPersonName = ui.listgroup_memberListWidget->currentItem()->text();}void AddressBook::on_listgroup_findEdit_textChanged(){ ui.listgroup_memberListWidget->clear(); ui.listgroup_memberListWidget->addItems(list.quickFind(ui.listgroup_findEdit->text())); ui.listgroup_memberListWidget->sortItems(Qt::AscendingOrder);}/* Option Combo Related Function */void AddressBook::listPageOptionComboSet(){ ui.optionCombo->clear(); ui.optionCombo->addItem("View"); ui.optionCombo->addItem("Delete"); ui.optionCombo->addItem("Add"); //ui.optionCombo->addItem("Find"); ui.optionCombo->addItem("Add Class"); ui.optionCombo->addItem("Edit Class"); ui.optionCombo->addItem("Delete Class"); ui.optionCombo->addItem("Quit");}void AddressBook::showOptionCombo(){ ui.optionCombo->show(); ui.rightButton->hide(); }void AddressBook::on_optionCombo_activated(){ if(ui.optionCombo->currentText()=="View") { if(!curPersonName.isEmpty()) { showDetailPage(); } }// else if(ui.optionCombo->currentText()=="Edit")// {// showEditPage(); // //ui.addgroup_nameEdit->setText("111111");// MemberData curPer = list.value(curPersonName);// ui.addgroup_nameEdit->setText(curPer.getName());// ui.addgroup_cellEdit->setText(curPer.getPhone());// ui.addgroup_homeEdit->setText(curPer.getHome());// ui.addgroup_workEdit->setText(curPer.getWork());// ui.addgroup_homefaxEdit->setText(curPer.getHomeFax());// ui.addgroup_workfaxEdit->setText(curPer.getWorkFax());// ui.addgroup_emailEdit->setText(curPer.getEmail());// ui.addgroup_addressEdit->setPlainText(curPer.getAddress());// ui.addgroup_groupCombo->addItems(list.groupsNameList());// ui.addgroup_remarkEdit->setPlainText(curPer.getRemarks());// // } else if(ui.optionCombo->currentText()=="Delete") { //showDetailPage(); if(list.size()>0) { if(!curPersonName.isEmpty()) list.remove(curPersonName); curPersonName = ""; showListPage(); } /* */ }else if(ui.optionCombo->currentText()=="Add") { showAddPage(); } // else if(ui.optionCombo->currentText()=="Find")// { // // } else if(ui.optionCombo->currentText()=="Add Class") { showClassPage(); } else if(ui.optionCombo->currentText()=="Edit Class") { showClassModifyPage(); ui.classmodifypage_classnameEdit->show(); ui.leftButton->setText("Modify"); ui.rightButton->setText("Cancel"); } else if(ui.optionCombo->currentText()=="Delete Class") { showClassModifyPage(); ui.classmodifypage_classnameEdit->hide();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -