| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- #include "dialogselectsegment.h"
- #include "ui_dialogselectsegment.h"
- #include "SNCDataBase.h"
- DialogSelectSegment::DialogSelectSegment(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::DialogSelectSegment)
- {
- ui->setupUi(this);
- loadSegment();
- customListView = new CustomListView(ui->verticalLayoutWidget_3);
- ui->verticalLayout_3->addWidget(customListView);
- QStringListModel *model = new QStringListModel();
- this->customListView->setModel(model);
- QObject::connect(customListView,SIGNAL(updateSelectedSegmentCount()),
- this,SLOT(setSelectedLabel()));
- ui->startEdit->setValidator(new QRegExpValidator(NumberReg::getSegmentReg(), this));
- ui->endEdit->setValidator(new QRegExpValidator(NumberReg::getSegmentReg(), this));
- ui->labelCount->setText("共" + QString::number(SNCDataBase::getSegCount()) + "个号段");
- ui->buttonBox->button(QDialogButtonBox::Ok)->setText("确定");
- ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("取消");
- }
- DialogSelectSegment::~DialogSelectSegment()
- {
- delete ui;
- qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
- <<"DialogSelectSegment Destroyed.";
- }
- void DialogSelectSegment::setSelectedLabel()
- {
- int items = this->customListView->selectionModel()->selection().indexes().size();
- this->ui->selectLabel->setText("选中:["+QString::number(items)+
- "]个号段,共["+QString::number(items*10000)+
- "]个号码");
- }
- void DialogSelectSegment::loadSegment()
- {
- QTime time;
- time.start();
- segmentModel = new QStandardItemModel();
- segmentModel->setHorizontalHeaderItem(0,new QStandardItem("号码地区"));
- QString current;
- QStandardItem *parentItem;
- qDebug()<<time.elapsed();
- time.start();
- QList<QStringList> maps= SNCDataBase::getRegionInfo();
- if(maps.size()!=2)
- return ;
- for(int i=0;i<maps.at(0).size();i++)
- {
- QString province = maps.at(1).at(i);
- QString city = maps.at(0).at(i);
- qDebug()<<city<<province;
- QStandardItem *provinceItem;
- QStandardItem *cityItem;
- if(current!=province)
- {
- provinceItem= new QStandardItem(province);
- cityItem= new QStandardItem(city);
- parentItem = provinceItem;
- current = province;
- segmentModel->appendRow(provinceItem);
- parentItem->appendRow(cityItem);
- }
- else
- {
- cityItem= new QStandardItem(city);
- parentItem->appendRow(cityItem);
- }
- }
- ui->treeView->setModel(segmentModel);
- }
- void DialogSelectSegment::on_treeView_clicked(const QModelIndex &index)
- {
- if(index.parent().isValid())
- {
- this->currentCity = index.data().toString();
- fetchData();
- }
- else
- {
- this->currentCity = "";
- }
- }
- QStringList DialogSelectSegment::getSelectedSegment()
- {
- QItemSelectionModel *selectionModel = this->customListView->selectionModel();
- QModelIndexList list = selectionModel->selection().indexes();
- QStringList segments;
- for(int i=0;i<list.size();i++)
- {
- segments<<list.at(i).data().toString();
- }
- return segments;
- }
- QStringList DialogSelectSegment::fetchData()
- {
- QStringList list;
- if(this->currentCity.isEmpty())
- {
- QMessageBox::critical(this,"提示","请点击左侧的树形菜单,选择城市后才能显示数据!",QMessageBox::Ok);
- return list;
- }
- if(ui->allRB->isChecked())
- list = SNCDataBase::getSegmentByCityAll(this->currentCity);
- if(ui->cmccRB->isChecked())
- list = SNCDataBase::getSegmentByCityAndCorp(this->currentCity,"CMCC");
- if(ui->cutcRB->isChecked())
- list = SNCDataBase::getSegmentByCityAndCorp(this->currentCity,"CUTC");
- if(ui->ctccRB->isChecked())
- list = SNCDataBase::getSegmentByCityAndCorp(this->currentCity,"CTCC");
- if(ui->selfRB->isChecked())
- list = SNCDataBase::getSegmentByCityAndRange(this->currentCity,this->ui->startEdit->text(),this->ui->endEdit->text());
- QStringListModel *model = new QStringListModel();
- model->setStringList(list);
- this->customListView->setModel(model);
- this->ui->totalLabel->setText("总计:["+QString::number(list.size())+
- "]个号段,共["+QString::number(list.size()*10000)+
- "]个号码");
- }
- void DialogSelectSegment::on_allRB_clicked()
- {
- fetchData();
- }
- void DialogSelectSegment::on_cmccRB_clicked()
- {
- fetchData();
- }
- void DialogSelectSegment::on_cutcRB_clicked()
- {
- fetchData();
- }
- void DialogSelectSegment::on_ctccRB_clicked()
- {
- fetchData();
- }
- void DialogSelectSegment::on_selfRB_clicked()
- {
- if(ui->startEdit->hasAcceptableInput()&&ui->endEdit->hasAcceptableInput()&&ui->selfRB->isChecked())
- fetchData();
- }
- void DialogSelectSegment::on_startEdit_textChanged(const QString &arg1)
- {
- if(ui->startEdit->hasAcceptableInput()&&ui->endEdit->hasAcceptableInput()&&ui->selfRB->isChecked())
- fetchData();
- }
- void DialogSelectSegment::on_endEdit_textChanged(const QString &arg1)
- {
- if(ui->startEdit->hasAcceptableInput()&&ui->endEdit->hasAcceptableInput()&&ui->selfRB->isChecked())
- fetchData();
- }
|