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

📄 qsipb_inputparamset.cpp

📁 sip torture test tools
💻 CPP
字号:
//qsipb_inputparamset.cpp//Copyright (C) 2003 Metalink LTD//Author: Rodionov Sergey (seger@metalinkltd.com)//This program is distributed under terms of GPL (see LICENSE)#include "qsipb_inputparamset.h"#include <qhbox.h>#include <qvbox.h>#include <qlabel.h>#include <qlayout.h>qsipb_param_wrapper::qsipb_param_wrapper(sipb_paramlist* pl,int num_,					 QWidget* parent):QWidget(parent){   edit=0;   cob_box=0;   num=num_;   QHBoxLayout* layout=new QHBoxLayout(this);   QLabel*l =new QLabel(pl->get_name(num).c_str(),this);   layout->addWidget(l,5);      if (pl->get_voriants(num).size()==0)  //--> use QLineEdit     {	edit=new QLineEdit(this);	edit->setValidator(pl->create_val(edit,num));	edit->setText(pl->get_rez(num).c_str());	layout->addWidget(edit,5);     }   else  //--->use QComboBox     {	cob_box =new QComboBox(false,this);  //create readonly combobox	for (unsigned int i=0;i<pl->get_voriants(num).size();i++)	  cob_box->insertItem(pl->get_voriants(num)[i].c_str());	set_cob_box_text(pl->get_rez(num));	layout->addWidget(cob_box,5);     }   chk_box=new QCheckBox(this);   if (pl->get_is_global(num))     chk_box->toggle();   layout->addWidget(chk_box,1);      connect(chk_box,SIGNAL(toggled(bool)),this,		SLOT(want_change_is_global(bool)));}//                                                                            string qsipb_param_wrapper::get_rez(){   if ( ( edit==0 && cob_box==0 ) || ( edit!=0 && cob_box!=0 ) )     qFatal("qsipb_param_wrapper::get_rez");   if (edit)      return (const char*)edit->text().utf8();   return (const char*)cob_box->currentText().utf8();}//                                                                            void qsipb_param_wrapper::set_text(string s){   if ( ( edit==0 && cob_box==0 ) || ( edit!=0 && cob_box!=0 ) )     qFatal("qsipb_param_wrapper::set_text");   if (edit)     edit->setText(s.c_str());   else     set_cob_box_text(s);}//                                                                            void qsipb_param_wrapper::want_change_is_global(bool b){   emit is_change_is_global(num,b);}//                                                                            void qsipb_param_wrapper::set_cob_box_text(string str){   int index=-1;   if (!cob_box)     qFatal("Error in qsipb_param_wrapper::set_cob_box_text cob_box==0");   for (int i=0;i<cob_box->count();i++)     if (str == (const char*)cob_box->text(i).utf8())       index=i;   if (index==-1)     qFatal("qsipb_param_wrapper::set_cob_box_text not find s in box");   cob_box->setCurrentItem(index);}//                                                                            //                                                                            qsipb_inputparamset::qsipb_inputparamset(QWidget* parent)  :QVGroupBox(parent){   local=0;   global=0;   base_box=0;}//                                                                            void qsipb_inputparamset::reset(sipb_paramlist* local_,sipb_paramlist*global_){   if (base_box)     make_results();   if ( base_box != 0 || local != 0 || global != 0 || params.size() != 0)     qFatal("Error in qsipb_inputparamset::set");   local=local_;   global=global_;   base_box=new QVBox(this);   local->copy_new_toglobal(*global);   local->set_fromglobal(*global);   for (int i=0;i<local->size();i++)     {	params.push_back(new qsipb_param_wrapper(local,i,base_box));	connect(params.back(),SIGNAL(is_change_is_global(int,bool)),this,		SLOT(want_change_is_global(int,bool)));     }   base_box->show();}//                                                                            void qsipb_inputparamset::make_results(){   if (!base_box) //not show anithing     return;   //get global parameters and write in global and local   //local parameter write to local   if ((int)params.size() != local->size())     qFatal("Intarnal error in qsipb_inputparamset::make_results");   for (unsigned int i=0;i<params.size();i++)     get_from_param(i);   local=0;   global=0;   if (!base_box->close(true))     qFatal("Can't close base_box in qsipb_inputparamset::make_results");   base_box=0;   params.resize(0);   base_box=0;}//                                                                            void qsipb_inputparamset::want_change_is_global(int i,bool t){   if (local->get_is_global(i)==t)     qFatal("Error in qsipb_inputparamset::want_change_global global->global");   get_from_param(i);   if (t)  //if want change to general     {	local->set_is_global(i,true);	if (global->check_name(local->get_name(i)))  //rule exist	  {	     local->set_rez(i, global->get( local->get_name(i) ));	     params.at(i)->set_text(local->get_rez(i).c_str());	  }	else  //new global rule	  local->copy_new_toglobal(*global);     }   else  //if want make local rule     local->set_is_global(i,false);	}//                                                                            void qsipb_inputparamset::get_from_param(int i){   if (local->get_is_global(i))     {	local->set_rez(i,params.at(i)->get_rez());	global->set_rez(local->get_name(i),params.at(i)->get_rez());     }   else     local->set_rez(i,params.at(i)->get_rez());}//                                                                            

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -