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

📄 mainwin.cpp

📁 qgo-1.5.4-r3.tar.gz linux下一个很好玩的游戏
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#if (QT_VERSION > 0x030102)			qApp->setStyle(new QWindowsXPStyle);#else			qApp->setStyle(new QWindowsStyle);#endif			break;		default:			qWarning("Unrecognized style!");	}#endif*/	slot_updateFont();	QToolTip::setGloballyEnabled(true);	// install an event filter	qApp->installEventFilter(this);}ClientWindow::~ClientWindow(){/*	delete qgoif;	delete setting;	delete telnetConnection;	delete parser;	delete statusUsers;	delete statusBar;*/}void ClientWindow::initStatusBar(QWidget* /*parent*/){//	statusBar = new QStatusBar(parent);//	statusBar->resize(-1, 20);	statusBar()->show();	statusBar()->setSizeGripEnabled(false);	statusBar()->message(tr("Ready."));  // Normal indicator	// Standard Text instead of "message" cause WhatsThisButten overlaps	statusMessage = new QLabel(statusBar());	statusMessage->setAlignment(AlignCenter | SingleLine);	statusMessage->setText("");	statusBar()->addWidget(statusMessage, 0, true);  // Permanent indicator/*	// What's this	statusWhatsThis = new QLabel(statusBar);	statusWhatsThis->setAlignment(AlignCenter | SingleLine);	statusWhatsThis->setText("WHATSTHIS");	statusBar->addWidget(statusWhatsThis, 0, true);  // Permanent indicator	QWhatsThis::whatsThisButton(statusWhatsThis);*/	// The users widget	statusUsers = new QLabel(statusBar());	statusUsers->setAlignment(AlignCenter | SingleLine);	statusUsers->setText(" P: 0 / 0 ");	statusBar()->addWidget(statusUsers, 0, true);  // Permanent indicator	QToolTip::add(statusUsers, tr("Current online players / watched players"));	QWhatsThis::add(statusUsers, tr("Displays the number of current online players\nand the number of online players you are watching.\nA player you are watching has an entry in the 'watch player:' field."));	// The games widget	statusGames = new QLabel(statusBar());	statusGames->setAlignment(AlignCenter | SingleLine);	statusGames->setText(" G: 0 / 0 ");	statusBar()->addWidget(statusGames, 0, true);  // Permanent indicator	QToolTip::add(statusGames, tr("Current online games / observed games + matches"));	QWhatsThis::add(statusGames, tr("Displays the number of games currently played on this server and the number of games you are observing or playing"));	// The server widget	statusServer = new QLabel(statusBar());	statusServer->setAlignment(AlignCenter | SingleLine);	statusServer->setText(" OFFLINE ");	statusBar()->addWidget(statusServer, 0, true);  // Permanent indicator	QToolTip::add(statusServer, tr("Current server"));	QWhatsThis::add(statusServer, tr("Displays the current server's name or OFFLINE if you are not connected to the internet."));	// The channel widget	statusChannel = new QLabel(statusBar());	statusChannel->setAlignment(AlignCenter | SingleLine);	statusChannel->setText("");	statusBar()->addWidget(statusChannel, 0, true);  // Permanent indicator	QToolTip::add(statusChannel, tr("Current channels and users"));	QWhatsThis::add(statusChannel, tr("Displays the current channels you are in and the number of users inthere.\nThe tooltip text contains the channels' title and users' names"));	// Online Time	statusOnlineTime = new QLabel(statusBar());	statusOnlineTime->setAlignment(AlignCenter | SingleLine);	statusOnlineTime->setText(" 00:00 ");	statusBar()->addWidget(statusOnlineTime, 0, true);  // Permanent indicator	QToolTip::add(statusOnlineTime, tr("Online Time"));	QWhatsThis::add(statusOnlineTime, tr("Displays the current online time.\n(A) -> auto answer\n(Hold) -> hold the line"));}void ClientWindow::timerEvent(QTimerEvent* e){	// some variables for forcing send buffer and keep line established//	static int counter = 3599;	static int holdTheLine = true;	static int tnwait = 0;//	static int statusCnt = 0;	static QString statusTxt = QString();	static int imagecounter = 0;		//qDebug( "timer event, id %d", e->timerId() );	if (e->timerId() == seekButtonTimer)	{			imagecounter = (imagecounter+1) % 4;		toolSeek->setIconSet(QIconSet::QIconSet(seekingIcon[imagecounter]));		return;	}	if (tn_ready)	{		// case: ready to send		tnwait = 0;	}	else if (tnwait < 2)	{		//qDebug(QString("%1: HoldTheLine SET: something has been sent").arg(statusOnlineTime->text()));		// case: not ready to send, but maybe waiting for READY message		tnwait++;		// something was sent, so reset counter		resetCounter();		holdTheLine = true;		autoAwayMessage = false;	}/*	else if (!tn_active)	{		qDebug("---> sending forced!!!");		// case: not ready to send, waiting too long -> force sending		tnwait = 0;		set_tn_ready();	}	else		qDebug("---> not forced because of tn_active");*/	// show status bar text for 5 seconds/*	if (statusTxt != statusMessage->text())	{		statusTxt = statusMessage->text();		statusCnt = 5;	}	if (statusCnt-- == 0)		statusMessage->setText("");*/	if (counter % 300 == 0)	{		// 5 mins away -> set auto answering		autoAwayMessage = true;		if (counter == 0)		{			// send "ayt" every half hour anyway			// new: reset timer after one hour of idle state			//      -> if not observing a game!			//qDebug(QString("%1 -> HoldTheLine: status = %2").arg(statusOnlineTime->text()).arg(holdTheLine));			if (holdTheLine)				sendcommand("ayt", false);			// 12*5 min			resetCounter();			if (myAccount->num_observedgames == 0)			{				// nothing observing				holdTheLine = false;//qDebug(QString("%1: HoldTheLine END!").arg(statusOnlineTime->text()));			}			else			{//qDebug(QString("%1: HoldTheLine LENGTHENED: observing game...").arg(statusOnlineTime->text()));			}		}		else if (myAccount->get_gsname() == IGS && holdTheLine)		{			sendcommand("ayt", false);			qDebug(QString("%1 -> ayt").arg(statusOnlineTime->text()));		}	}	counter--;	// display online time	onlineCount++;	int hr = onlineCount/3600;	int min = (onlineCount % 3600)/60;	int sec = onlineCount % 60;	QString pre = " ";	QString min_;	QString sec_;	if (min < 10)		min_ = "0" + QString::number(min);	else		min_ = QString::number(min);	if (sec < 10)		sec_ = "0" + QString::number(sec);	else		sec_ = QString::number(sec);	if (hr)		pre += QString::number(hr) + "h ";	statusOnlineTime->setText(pre + min_ + ":" + sec_ + " ");	// some statistics	QToolTip::remove(statusServer);	QToolTip::add(statusServer, tr("Current server") + "\n" +		tr("Bytes in:") + " " + QString::number(bytesIn) + "\n" +		tr("Bytes out:") + " " + QString::number(bytesOut));//	LineEdit_bytesIn->setText(QString::number(bytesIn));//	LineEdit_bytesOut->setText(QString::number(bytesOut));// DEBUG ONLY BEGIN ****	// DEBUG display remaining time	hr = counter/3600;	min = (counter % 3600)/60;	sec = counter % 60;	if (autoAwayMessage)		pre = "(A) ";	else		pre = " ";	if (min < 10)		min_ = "0" + QString::number(min);	else		min_ = QString::number(min);	if (sec < 10)		sec_ = "0" + QString::number(sec);	else		sec_ = QString::number(sec);	if (hr)		pre += QString::number(hr) + "h ";	statusMessage->setText(pre + min_ + ":" + sec_ + (holdTheLine ? " Hold" : " "));// DEBUG ONLY END ****}// slot_connect: emitted when connect button has toggledvoid ClientWindow::slot_connect(bool b){qDebug("connect %i", (int)b);	if (b)	{		// create instance of telnetConnection		if (!telnetConnection)			qFatal("No telnetConnection!");		// connect to selected host		telnetConnection->slotHostConnect();	}	else	{		// disconnect		telnetConnection->slotHostQuit();	}}// connection closedvoid ClientWindow::slot_connclosed(){	// no Timers in offline mode!	killTimers();	// set to offline:	myAccount->set_offline();	//pb_connect->setOn(FALSE);	toolConnect->setOn(FALSE);	seekMenu->clear();	slot_cancelSeek();		// clear channel	prepare_tables(CHANNELS);	// remove boards	qgoif->set_initIF();	qDebug("slot_connclosed()");	qDebug(QString("%1 -> slot_connclosed()").arg(statusOnlineTime->text()));	qgoif->get_qgo()->playConnectSound();	// show current Server name in status bar	statusServer->setText(" OFFLINE ");	// set menu	Connect->setEnabled(true);	Disconnect->setEnabled(false);	toolConnect->setOn(false);	toolConnect->setPixmap(disconnectedIcon);	QToolTip::remove(toolConnect);	QToolTip::add(toolConnect, tr("Connect with") + " " + cb_connect->currentText());}// close applicationvoid ClientWindow::saveSettings(){	// save setting	int i = 0;	for (Host *h = hostlist.first(); h != 0; h = hostlist.next())	{		i++;		setting->writeEntry("HOST" + QString::number(i) + "a", h->title());		setting->writeEntry("HOST" + QString::number(i) + "b", h->host());		setting->writeIntEntry("HOST" + QString::number(i) + "c", h->port());		setting->writeEntry("HOST" + QString::number(i) + "d", h->loginName());		setting->writeEntry("HOST" + QString::number(i) + "e", h->password());		setting->writeEntry("HOST" + QString::number(i) + "f", h->codec());	}	while (setting->readEntry("HOST" + QString::number(++i) + "a"))	{		// delete unused entries		setting->writeEntry("HOST" + QString::number(i) + "a", QString());		setting->writeEntry("HOST" + QString::number(i) + "b", QString());		setting->writeEntry("HOST" + QString::number(i) + "c", QString());		setting->writeEntry("HOST" + QString::number(i) + "d", QString());		setting->writeEntry("HOST" + QString::number(i) + "e", QString());		setting->writeEntry("HOST" + QString::number(i) + "f", QString());	}   // set the user toolbar list   i=0 ;    QObjectList *bl = UserToolbar->queryList( "QToolButton" ,NULL,true,false);   QToolButton *b0 ; 	 for ( b0 = (QToolButton*)bl->first(); b0 != 0; b0 = (QToolButton*)bl->next())      {        i++ ;        setting->writeEntry("USER" + QString::number(i) + "_1",b0->textLabel());        setting->writeEntry("USER" + QString::number(i) + "_2",b0->caption());			  setting->writeEntry("USER" + QString::number(i) + "_3",QToolTip::textFor (b0) );        setting->writeEntry("USER" + QString::number(i) + "_4",b0->iconText());      }       while (setting->readEntry("USER" + QString::number(++i) + "_1"))	    {        setting->writeEntry("USER" + QString::number(i) + "_1",QString());        setting->writeEntry("USER" + QString::number(i) + "_2",QString());			  setting->writeEntry("USER" + QString::number(i) + "_3",QString());        setting->writeEntry("USER" + QString::number(i) + "_4",QString());      }           	// save current connection if at least one host exists	if (!hostlist.isEmpty())		setting->writeEntry("ACTIVEHOST",cb_connect->currentText());	setting->writeEntry("CLIENTWINDOW",		QString::number(pos().x()) + DELIMITER +		QString::number(pos().y()) + DELIMITER +		QString::number(size().width()) + DELIMITER +		QString::number(size().height()));	setting->writeEntry("CLIENTSPLITTER",		QString::number(s1->sizes().first()) + DELIMITER +		QString::number(s1->sizes().last()) + DELIMITER +		QString::number(s2->sizes().first()) + DELIMITER +		QString::number(s2->sizes().last()) + DELIMITER +		QString::number(s3->sizes().first()) + DELIMITER +		QString::number(s3->sizes().last()));	if (DD)		setting->writeEntry("DEBUGWINDOW",			QString::number(DD->pos().x()) + DELIMITER +			QString::number(DD->pos().y()) + DELIMITER +			QString::number(DD->size().width()) + DELIMITER +			QString::number(DD->size().height()));//	DD = 0;	if (menu_s.width() > 0)		setting->writeEntry("MENUWINDOW",			QString::number(menu_p.x()) + DELIMITER +			QString::number(menu_p.y()) + DELIMITER +			QString::number(menu_s.width()) + DELIMITER +			QString::number(menu_s.height()));	if (pref_s.width() > 0)		setting->writeEntry("PREFWINDOW",			QString::number(pref_p.x()) + DELIMITER +			QString::number(pref_p.y()) + DELIMITER +			QString::number(pref_s.width()) + DELIMITER +			QString::number(pref_s.height()));	setting->writeBoolEntry("EXTUSERINFO", extUserInfo);  setting->writeIntEntry("WHO_1", whoBox1->currentItem());  setting->writeIntEntry("WHO_2", whoBox2->currentItem());  setting->writeBoolEntry("WHO_CB", whoOpenCheck->isChecked());  	// write settings to file	setting->saveSettings();}// close applicationvoid ClientWindow::quit(){	saveSettings();	qApp->quit();}// distribute text from telnet session and local commands to tablesvoid ClientWindow::sendTextToApp(const QString &txt){#if (QT_VERSION > 0x030006)	static int store_sort_col = -1;	static int store_games_sort_col = -1;#endif	static bool player7active = false;	// put text to parser 	InfoType it_ = parser->put_line(txt);	// some statistics	setBytesIn(txt.length()+2);//	if (it_ != READY)		// a input is being parsed -> wait until tn_active == false before sending new cmd//		tn_active = true;	// GAME7_END emulation:	if (player7active && it_ != GAME7)	{		player7active = false;		if (store_games_sort_col != -1)			ListView_games->setSorting(store_games_sort_col);		store_games_sort_col = -1;		ListView_games->sort();	}	switch (it_)	{		case READY:			// ok, telnet is ready to receive commands//			tn_active = false;      			currentCommand->txt="";			if (!tn_wait_for_tn_ready && !tn_ready)			{				QTimer::singleShot(200, this, SLOT(set_tn_ready()));				tn_wait_for_tn_ready = true;			}			sendTextFromApp(NULL);		case WS:			// ready or white space -> return//      currentCommand->txt="";			return;			break;		// echo entered command		// echo server enter line		case CMD:			slot_message(txt);			break;		// set client mode		case NOCLIENTMODE:			set_sessionparameter("client", true);			break;		case YOUHAVEMSG:			// normally no connection -> wait until logged in	        	youhavemsg = true;			break;		case SERVERNAME:

⌨️ 快捷键说明

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