Exemple #1
0
static int
map_binfile_open(struct map_priv *m)
{
	int *magic;
	struct zip_cd *first_cd;

	dbg(1,"file_create %s\n", m->filename);
	m->fi=file_create(m->filename);
	if (! m->fi) {
		dbg(0,"Failed to load '%s'\n", m->filename);
		return 0;
	}
	if (m->check_version)
		m->version=file_version(m->fi, m->check_version == 2);
	magic=(int *)file_data_read(m->fi, 0, 4);
	*magic = le32_to_cpu(*magic);
	if (*magic == zip_lfh_sig) {
		if ((m->eoc=binfile_read_eoc(m->fi)) && binfile_get_index(m) && (first_cd=binfile_read_cd(m, 0, 0))) {
			m->cde_size=sizeof(struct zip_cd)+first_cd->zipcfnl;
			m->zip_members=m->index_offset/m->cde_size+1;
			dbg(1,"cde_size %d\n", m->cde_size);
			dbg(1,"members %d\n",m->zip_members);
			file_data_free(m->fi, (unsigned char *)first_cd);
		} else {
			dbg(0,"invalid file format for '%s'\n", m->filename);
			return 0;
		}
	} else 
		file_mmap(m->fi);
	file_data_free(m->fi, (unsigned char *)magic);
	m->cachedir="/tmp/navit";
	return 1;
}
Exemple #2
0
static void
binfile_check_version(struct map_priv *m)
{
	int version;
	if (!m->check_version)
		return;
	version=file_version(m->fi, m->check_version == 2);
	if (version != m->version) {
		map_binfile_close(m);
		map_binfile_open(m);
	}
}
Exemple #3
0
	simple_file_version::simple_file_version(const wchar_t* module_path, const wchar_t* key, const wchar_t* pred)
	{
		create_simple_file_version(*this, file_version(module_path)[key], pred);
	}
Exemple #4
0
	simple_file_version::simple_file_version(HMODULE module_handle, const wchar_t* key, const wchar_t* pred)
	{
		create_simple_file_version(*this, file_version(module_handle)[key], pred);
	}
Exemple #5
0
/************
 *
 *功能:主界面
 * 初始实例化所有的子窗口对象,设置字符编码,检测读取版本号,
 *更改或创建wifi管理工具wpa_supplicant的配置文件wpa_supplicant.conf,启动wifi后台管理服务,
 *设置主界面样式和初始化布局,多个子窗口间通信的信号和槽的初始化连接操作。
 *
 *
 **/
mainview::mainview(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::mainview)
{
    /****set Shortcut Keys*****/
    QShortcut  *m_ALT_down_Accel= new QShortcut(QKeySequence(tr("Ctrl+Shift+Alt+Y")), this);

    this->login     = NULL;
    this->netconfig = NULL;
    this->wifi      = NULL;
    ui->setupUi(this);
    logo_x=QApplication::desktop()->width()/2-100;
    logo_y=50;
    open = false;

    //this->setStyleSheet("background-image:url(:/images/terminal-bg.jpg);");
    /*********Set  Unicode *********/
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);

    spicy_thread_id.clear();

    QFile file_version( "./version.txt" );
    if ( file_version.open(QIODevice::ReadOnly | QIODevice::Text) ) {
        QByteArray  line = file_version.readLine();
        QString mg = line;
        file_version.close();
        QStringList md = mg.split("\n");
        version = "ver "+md.at(0);
    }
    else
    {
        version = "ver 3.0.1";
    }

        QFile  file_eth("./wpa_supplicant.conf");
            if (!file_eth.open(QIODevice::ReadOnly)&&
                file_eth.open(QIODevice::WriteOnly|QIODevice::Text)) {
                QTextStream out(&file_eth);
                out<<"ctrl_interface=/var/run/wpa_supplicant\nctrl_interface_group=0\nap_scan=1\n"<<endl;
                out.flush();

                file_eth.close();
            }
            else
                file_eth.close();

    //start wpa_supplicant  service
    QProcess::execute("ifconfig wlan0 up");
    startthread("wpa_supplicant -Dwext -iwlan0 -c ./wpa_supplicant.conf "); 
    //startthread("dhclient wlan0");
    /*********Set Button Style************/
    ui->pushButton->setStyleSheet("background-color:transparent");
    //ui->pushButton->setStyleSheet("border: 0px");//消除边框,取消点击效果
    ui->pushButton->setText("");
    ui->pushButton->setFlat(true);
    ui->pushButton->setFocusPolicy(Qt::NoFocus);
    ui->pushButton_1->setStyleSheet("QPushButton{text-align:left;}");
    ui->pushButton_1->setStyleSheet("border: 0px");//消除边框,取消点击效果
    ui->pushButton_1->setStyleSheet("background-color:transparent");
    ui->pushButton_1->setText("");
    ui->pushButton_1->setFlat(true);
    ui->pushButton_1->setFocusPolicy(Qt::NoFocus);
    //ui->pushButton_2->setStyleSheet("border: 0px");//消除边框,取消点击效果
    ui->pushButton_2->setStyleSheet("background-color:transparent");
    ui->pushButton_2->setText("");
    ui->pushButton_2->setFlat(true);
    ui->pushButton_2->setFocusPolicy(Qt::NoFocus);
    //ui->pushButton_3->setStyleSheet("border: 0px");//消除边框,取消点击效果
    ui->pushButton_3->setStyleSheet("background-color:transparent");
    ui->pushButton_3->setText("");
    ui->pushButton_3->setFlat(true);
    ui->pushButton_3->setFocusPolicy(Qt::NoFocus);
    //ui->pushButton_4->setStyleSheet("border: 0px");//消除边框,取消点击效果
    ui->pushButton_4->setStyleSheet("background-color:transparent");
    ui->pushButton_4->setText("");
    ui->pushButton_4->setFlat(true);
    ui->pushButton_4->setFocusPolicy(Qt::NoFocus);
    //ui->pushButton_5->setStyleSheet("border: 0px");//消除边框,取消点击效果
    ui->pushButton_5->setStyleSheet("background-color:transparent");
    ui->pushButton_5->setText("");
    ui->pushButton_5->setFlat(true);
    ui->pushButton_5->setFocusPolicy(Qt::NoFocus);
    //ui->pushButton_5->setVisible(false);
#if  1
    this->login = new  Login();
    this->netconfig = new NetworkConfig();
    this->wifi = new  Wifi();
    //this->termigrate = new  Termigrate();

    http = new  SocketService();
    changepasswd= new  ChangePasswd();
    hostlist = new  CreateVmlist();
    
    ui->widgetstack->addWidget(login);
    ui->widgetstack->addWidget(netconfig);
    ui->widgetstack->addWidget(changepasswd);
    ui->widgetstack->addWidget(wifi);
    ui->widgetstack->addWidget(hostlist);
    ui->widgetstack->resize(0,0);


    ui->widgetlist->setMovement(QListView::Static);
    ui->widgetlist->setFocusPolicy(Qt::NoFocus);
    ui->widgetlist->addItem("用户登录");
    ui->widgetlist->addItem("修改配置");
    ui->widgetlist->addItem("修改密码");
    ui->widgetlist->setSpacing(4);
    ui->widgetlist->setMouseTracking(true);
    ui->widgetlist->item(0)->setSizeHint(QSize(30,30));
    ui->widgetlist->item(1)->setSizeHint(QSize(30,30));
    ui->widgetlist->item(2)->setSizeHint(QSize(30,30));

    


    connect(this,SIGNAL(loadoperator(int)),this,SLOT(changeslots(int)));
    connect(ui->widgetlist,SIGNAL(currentRowChanged(int)),this,SLOT(deal_widgets(int)));
    connect(ui->widgetlist,SIGNAL(itemEntered(QListWidgetItem *)),this,SLOT(changeColor(QListWidgetItem *)));
    for(int i=0;i<ui->widgetlist->count();i++)
    {
        ui->widgetlist->item(i)->setBackground(QBrush(QColor(255,255,255)));
        ui->widgetlist->item(i)->setSelected(false);
    }


    /********Set  Function Key As following:reflush, wifi, help, shutdown, reboot**********/
    //get vmhostlist by  click  the  reflush  function
    setMouseTracking(true);
    ui->pushButton->setMouseTracking(true);
    ui->pushButton_1->setMouseTracking(true);
    ui->pushButton_2->setMouseTracking(true);
    ui->pushButton_3->setMouseTracking(true);
    ui->pushButton_4->setMouseTracking(true);
    ui->pushButton_5->setMouseTracking(true);
    connect(ui->pushButton,SIGNAL(clicked()),this->http,SLOT(gethostlist_slots()));
    connect(this->http,SIGNAL(signals_vmlist(QString)),this,SLOT(reflushlisttable(QString)));



    connect(ui->pushButton_1,SIGNAL(clicked()),this,SLOT(moreoperator()));
    connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(wifioperator()));
    connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(helpoperator()));
    connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(closecomputer()));
    connect(ui->pushButton_5,SIGNAL(clicked()),this,SLOT(rebootcomputer()));

    /*** this function is logining  when the login window whose login_signals had been sended by click the OK_button.**/
    connect(this->login,SIGNAL(signals_loginmsg(QString)),this->http,SLOT(login_slots(QString)));//send login information by httpsocket
    //connect(this->login,SIGNAL(signals_loginmsg(QString)),this->hostlist,SLOT(getuserinfo(QString)));//send login information 
    connect(this->http,SIGNAL(signals_loginview(int)),this,SLOT(emit_widgets(int)));
    connect(m_ALT_down_Accel, SIGNAL(activated()), this, SLOT(docreen()));

    /*** this is connect the signals with the networkconfigview and modify the password windows **/
    connect(this->netconfig,SIGNAL(signals_cdms(QString)),this->http,SLOT(registertocdms(QString)));
    connect(this->netconfig,SIGNAL(signals_modifycdms(QString)),this->http,SLOT(modifycdmsSlots(QString)));
    connect(this->changepasswd,SIGNAL(signals_modify(QString)),this->http,SLOT(updateUserinfo(QString)));
    connect(this->changepasswd,SIGNAL(docancel()),this->http,SLOT(gethostlist_slots()));

    /*** when click the OK_button that is the networkconfigview button,the thread will be create to runing shell command**/
    connect(this->netconfig,SIGNAL(signals_startthread(QString)),this,SLOT(startthread(QString)));


    /***it is registertocdms at first when the  programmer  running***/
    connect(this->http,SIGNAL(signals_register()),this->netconfig,SLOT(SendRegisterData()));
    /***if connect error,switch to netconfig view***/
    connect(this->http,SIGNAL(signals_connectError(int)),this,SLOT(emit_widgets(int)));
    /*** it's used to  start  the  spicy  protocol thread at the  SocketService class***/
    connect(this->http,SIGNAL(signals_startspicy(QString)),this,SLOT(startthread(QString)));
    //connect(this->http,SIGNAL(signals_tohostlistcheck(QString)),this->hostlist,SLOT(checkuserinfo(QString)));//check the userinfo is the same as  already logininfo

    /****there is  the  signals which serves for  vmhostlist contained  three vmhost most****/
    connect(this->hostlist,SIGNAL(signals_vm(QString)),this->http,SLOT(getconnectinfo_slots(QString)));
    connect(this->hostlist,SIGNAL(signals_connect(QString)),this->http,SLOT(isableconnectslots(QString)));
    connect(this->hostlist,SIGNAL(signals_start(QString)),this->http,SLOT(startvmslots(QString)));
    connect(this->hostlist,SIGNAL(signals_down(QString)),this->http,SLOT(shutdownvmslots(QString)));
    connect(this->hostlist,SIGNAL(signals_reboot(QString)),this->http,SLOT(rebootvmslots(QString)));

    /*******it's connected the  windows  with  the   choose  table on the  mainview  windows*******/
    connect(this,SIGNAL(signals_widgets(int)),ui->widgetstack,SLOT(setCurrentIndex(int)));
    /****it's used  to  execute  the  shell command int  the  function of  Wifi class****/
    connect(this->wifi,SIGNAL(signals_connect(QString)),this,SLOT(startthread(QString)));
    /****it's used to update  connected  wifiname on  the  mainview  background ********/
    connect(this->wifi,SIGNAL(signals_update()),this,SLOT(repaint()));
    connect(this->wifi,SIGNAL(siglogin(int)),this,SLOT(deal_widgets(int)));

    /******it's used  to  migrate  vitural machine ,that send oldip to tcp server for close it********/
    //connect(this->http,SIGNAL(signals_startmigrate(QString)),this->termigrate,SLOT(WriteIpToShm(QString)));
#endif
}