From 7be4fc2d00a8adb56f703dda85dd075d9b8444bb Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Tue, 24 Oct 2006 14:11:18 +0000 Subject: [PATCH] Updates for connectdialog in qt 4.2. git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@411 05730e5d-ab1b-0410-a4ac-84af385074fa --- ConnectDialog.cpp | 41 +++++++++++++++++++++-------------------- ConnectDialog.h | 1 - MainWindow.cpp | 2 +- ServerHandler.cpp | 17 +++++------------ ServerHandler.h | 5 ++--- 5 files changed, 29 insertions(+), 37 deletions(-) diff --git a/ConnectDialog.cpp b/ConnectDialog.cpp index 457a199cd..0cc53babd 100644 --- a/ConnectDialog.cpp +++ b/ConnectDialog.cpp @@ -61,21 +61,21 @@ ConnectDialog::ConnectDialog(QWidget *p) : QDialog(p) { QItemSelectionModel *selectionModel = qlwServers->selectionModel(); connect(selectionModel, SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(onSelection_Changed(const QModelIndex &, const QModelIndex &))); - qleName=new QLineEdit(g.qs->value("ServerName", "").toString()); + qleName=new QLineEdit(); lab=new QLabel(tr("&Name")); lab->setBuddy(qleName); l->addWidget(lab, 0, 1); l->addWidget(qleName, 0, 2); - qleServer=new QLineEdit(g.qs->value("ServerAddress", "").toString()); + qleServer=new QLineEdit(); lab=new QLabel(tr("A&ddress")); lab->setBuddy(qleServer); l->addWidget(lab, 1, 1); l->addWidget(qleServer, 1, 2); - qlePort=new QLineEdit(g.qs->value("ServerPort", "64738").toString()); + qlePort=new QLineEdit("64738"); qlePort->setValidator(new QIntValidator(1, 65535, qlePort)); lab=new QLabel(tr("&Port")); lab->setBuddy(qlePort); @@ -83,14 +83,14 @@ ConnectDialog::ConnectDialog(QWidget *p) : QDialog(p) { l->addWidget(lab, 2, 1); l->addWidget(qlePort, 2, 2); - qleUsername=new QLineEdit(g.qs->value("ServerUsername", "").toString()); + qleUsername=new QLineEdit(); lab=new QLabel(tr("&Username")); lab->setBuddy(qleUsername); l->addWidget(lab, 3, 1); l->addWidget(qleUsername, 3, 2); - qlePassword=new QLineEdit(g.qs->value("ServerPassword", "").toString()); + qlePassword=new QLineEdit(); qlePassword->setEchoMode(QLineEdit::Password); lab=new QLabel(tr("&Password")); lab->setBuddy(qlePassword); @@ -125,6 +125,10 @@ ConnectDialog::ConnectDialog(QWidget *p) : QDialog(p) { connect(qlwServers, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(accept())); QMetaObject::connectSlotsByName(this); + + QModelIndex idx = qstmServers->index(g.qs->value("ServerRow",-1).toInt(),0); + if (idx.isValid()) + qlwServers->setCurrentIndex(idx); } void ConnectDialog::accept() { @@ -139,13 +143,8 @@ void ConnectDialog::accept() { qsUsername = qleUsername->text(); qsPassword = qlePassword->text(); iPort = qlePort->text().toInt(); - bUdp = true; - - g.qs->setValue("ServerAddress", qsServer); - g.qs->setValue("ServerUsername", qsUsername); - g.qs->setValue("ServerPassword", qsPassword); - g.qs->setValue("ServerPort", iPort); + g.qs->setValue("ServerRow", qlwServers->currentIndex().row()); QDialog::accept(); } @@ -157,7 +156,6 @@ QSqlRecord ConnectDialog::toRecord() const r.setValue("username", qleUsername->text()); r.setValue("password", qlePassword->text()); r.setValue("port", qlePort->text().toInt()); - r.setValue("udp", true); return r; } @@ -166,25 +164,28 @@ void ConnectDialog::onSelection_Changed(const QModelIndex &index, const QModelIn QSqlRecord r; if (bDirty) { + bDirty = false; r = toRecord(); qstmServers->setRecord(previndex.row(), r); qstmServers->submitAll(); } - r = qstmServers->record(index.row()); - qleName->setText(r.value("name").toString()); - qleServer->setText(r.value("hostname").toString()); - qleUsername->setText(r.value("username").toString()); - qlePassword->setText(r.value("password").toString()); - qlePort->setText(r.value("port").toString()); - bDirty = false; + if (index.isValid()) { + r = qstmServers->record(index.row()); + qleName->setText(r.value("name").toString()); + qleServer->setText(r.value("hostname").toString()); + qleUsername->setText(r.value("username").toString()); + qlePassword->setText(r.value("password").toString()); + qlePort->setText(r.value("port").toString()); + bDirty = false; + } } void ConnectDialog::on_Add_clicked() { + bDirty = false; QSqlRecord r = toRecord(); qstmServers->insertRecord(-1, r); qstmServers->submitAll(); - bDirty = false; } void ConnectDialog::on_Remove_clicked() diff --git a/ConnectDialog.h b/ConnectDialog.h index 67ace6220..277406328 100644 --- a/ConnectDialog.h +++ b/ConnectDialog.h @@ -50,7 +50,6 @@ class ConnectDialog : public QDialog { public: QString qsServer, qsUsername, qsPassword; int iPort; - bool bUdp; ConnectDialog(QWidget *parent); }; diff --git a/MainWindow.cpp b/MainWindow.cpp index 212442f8c..5ca6343a2 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -404,7 +404,7 @@ void MainWindow::on_ServerConnect_triggered() if (res == QDialog::Accepted) { qaServerConnect->setEnabled(false); qaServerDisconnect->setEnabled(true); - g.sh->setConnectionInfo(cd->qsServer, cd->iPort, cd->bUdp, cd->qsUsername, cd->qsPassword); + g.sh->setConnectionInfo(cd->qsServer, cd->iPort, cd->qsUsername, cd->qsPassword); g.sh->start(QThread::TimeCriticalPriority); } delete cd; diff --git a/ServerHandler.cpp b/ServerHandler.cpp index 862f6abf0..b479681d3 100644 --- a/ServerHandler.cpp +++ b/ServerHandler.cpp @@ -112,14 +112,13 @@ void ServerHandler::udpReady() { } } -void ServerHandler::sendMessage(Message *mMsg) +void ServerHandler::sendMessage(Message *mMsg, bool forceTCP) { QByteArray qbaBuffer; mMsg->sPlayerId = g.sId; mMsg->messageToNetwork(qbaBuffer); - bool mayUdp = bUdp && g.sId; - mayUdp = mayUdp && ((mMsg->messageType() == Message::Speex) || (mMsg->messageType() == Message::MultiSpeex) || (mMsg->messageType() == Message::Ping)); + bool mayUdp = !forceTCP && g.sId && ((mMsg->messageType() == Message::Speex) || (mMsg->messageType() == Message::MultiSpeex) || (mMsg->messageType() == Message::Ping)); ServerHandlerMessageEvent *shme=new ServerHandlerMessageEvent(qbaBuffer, mayUdp); QApplication::postEvent(this, shme); @@ -153,14 +152,9 @@ void ServerHandler::run() } void ServerHandler::sendPing() { - bool oldudp = bUdp; - MessagePing mp; - bUdp = false; - sendMessage(&mp); - bUdp = oldudp; - if (bUdp) - sendMessage(&mp); + sendMessage(&mp, true); + sendMessage(&mp, false); } void ServerHandler::message(QByteArray &qbaMsg) { @@ -241,10 +235,9 @@ void ServerHandler::serverConnectionConnected() { emit connected(); } -void ServerHandler::setConnectionInfo(QString host, int port, bool udp, QString username, QString pw) { +void ServerHandler::setConnectionInfo(QString host, int port, QString username, QString pw) { qsHostName = host; iPort = port; - bUdp = udp; qsUserName = username; qsPassword = pw; } diff --git a/ServerHandler.h b/ServerHandler.h index d30104bfc..2b3f89643 100644 --- a/ServerHandler.h +++ b/ServerHandler.h @@ -52,7 +52,6 @@ class ServerHandler : public QThread QString qsUserName; QString qsPassword; int iPort; - bool bUdp; Connection *cConnection; QHostAddress qhaRemote; @@ -60,9 +59,9 @@ class ServerHandler : public QThread public: ServerHandler(); ~ServerHandler(); - void setConnectionInfo(QString host, int port, bool udp, QString username, QString pw); + void setConnectionInfo(QString host, int port, QString username, QString pw); void customEvent(QEvent *evt); - void sendMessage(Message *m); + void sendMessage(Message *m, bool forceTCP=false); void disconnect(); void run(); signals: