mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
Add changes file
Add persistant storage of server lists git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@85 05730e5d-ab1b-0410-a4ac-84af385074fa
This commit is contained in:
parent
9a73682d3a
commit
3475fc3857
6
CHANGES
Normal file
6
CHANGES
Normal file
@ -0,0 +1,6 @@
|
||||
0.2.2cvs
|
||||
========
|
||||
|
||||
- Store list of servers in connect dialog
|
||||
- Added persistant database
|
||||
- Added CHANGES file
|
||||
@ -37,8 +37,14 @@
|
||||
#include <QGridLayout>
|
||||
#include <QIntValidator>
|
||||
#include <QSettings>
|
||||
#include <QSqlQuery>
|
||||
#include <QSqlError>
|
||||
#include <QItemSelectionModel>
|
||||
#include <QSqlRecord>
|
||||
#include <QMessageBox>
|
||||
|
||||
ConnectDialog::ConnectDialog(QWidget *parent) : QDialog(parent) {
|
||||
QSqlQuery query;
|
||||
QGridLayout *l=new QGridLayout;
|
||||
QVBoxLayout *vbl = new QVBoxLayout;
|
||||
QHBoxLayout *vbh = new QHBoxLayout();
|
||||
@ -48,47 +54,106 @@ ConnectDialog::ConnectDialog(QWidget *parent) : QDialog(parent) {
|
||||
setLayout(vbl);
|
||||
QLabel *lab;
|
||||
|
||||
bDirty = false;
|
||||
|
||||
/* query.exec("DELETE FROM servers");
|
||||
query.exec("INSERT INTO servers (name, hostname) VALUES('Hei1','Mixern1')");
|
||||
query.exec("INSERT INTO servers (name, hostname) VALUES('Hei3','Mixern3')");
|
||||
query.exec("INSERT INTO servers (name, hostname) VALUES('Hei2','Mixern2')");
|
||||
*/
|
||||
qstmServers = new QSqlTableModel(this);
|
||||
qstmServers->setTable("servers");
|
||||
qstmServers->setSort(1, Qt::AscendingOrder);
|
||||
if (! qstmServers->select()) {
|
||||
query.exec("DROP TABLE servers");
|
||||
if (! query.exec("CREATE TABLE servers (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, hostname TEXT, port INTEGER DEFAULT 64738, username TEXT, password TEXT)"))
|
||||
qWarning("ConnectDialog: Failed to create table");
|
||||
|
||||
// delete qstmServers;
|
||||
// qstmServers = new QSqlTableModel(this);
|
||||
qstmServers->setTable("servers");
|
||||
if (! qstmServers->select())
|
||||
qWarning("ConnectDialog: Failed to reselect table");
|
||||
qWarning("%s", qstmServers->lastError().databaseText().toLatin1().constData());
|
||||
}
|
||||
qstmServers->setEditStrategy(QSqlTableModel::OnManualSubmit);
|
||||
|
||||
QSettings qs;
|
||||
|
||||
qlwServers=new QListView(this);
|
||||
l->addWidget(qlwServers,0,0,4,1);
|
||||
qlwServers->setModel(qstmServers);
|
||||
qlwServers->setModelColumn(1);
|
||||
qlwServers->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
qlwServers->setObjectName("List");
|
||||
|
||||
QItemSelectionModel *selectionModel = qlwServers->selectionModel();
|
||||
connect(selectionModel, SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(onSelection_Changed(const QModelIndex &, const QModelIndex &)));
|
||||
|
||||
qleName=new QLineEdit(qs.value("ServerName", "").toString(), this);
|
||||
lab=new QLabel("&Name", this);
|
||||
lab->setBuddy(qleName);
|
||||
|
||||
l->addWidget(lab, 0, 1);
|
||||
l->addWidget(qleName, 0, 2);
|
||||
|
||||
qleServer=new QLineEdit(qs.value("ServerAddress", "").toString(), this);
|
||||
lab=new QLabel("&Address", this);
|
||||
lab=new QLabel("A&ddress", this);
|
||||
lab->setBuddy(qleServer);
|
||||
|
||||
l->addWidget(lab, 0, 0);
|
||||
l->addWidget(qleServer, 0, 1);
|
||||
l->addWidget(lab, 1, 1);
|
||||
l->addWidget(qleServer, 1, 2);
|
||||
|
||||
qlePort=new QLineEdit(qs.value("ServerPort", "64738").toString(), this);
|
||||
qlePort->setValidator(new QIntValidator(1, 65535, qlePort));
|
||||
lab=new QLabel("&Port", this);
|
||||
lab->setBuddy(qlePort);
|
||||
|
||||
l->addWidget(lab, 1, 0);
|
||||
l->addWidget(qlePort, 1, 1);
|
||||
l->addWidget(lab, 2, 1);
|
||||
l->addWidget(qlePort, 2, 2);
|
||||
|
||||
qleUsername=new QLineEdit(qs.value("ServerUsername", "").toString(), this);
|
||||
lab=new QLabel("&Username", this);
|
||||
lab->setBuddy(qleUsername);
|
||||
|
||||
l->addWidget(lab, 3, 1);
|
||||
l->addWidget(qleUsername, 3, 2);
|
||||
|
||||
qlePassword=new QLineEdit(qs.value("ServerPassword", "").toString(), this);
|
||||
qlePassword->setEchoMode(QLineEdit::Password);
|
||||
lab=new QLabel("&Password", this);
|
||||
lab->setBuddy(qlePassword);
|
||||
|
||||
l->addWidget(lab, 2, 0);
|
||||
l->addWidget(qlePassword, 2,1);
|
||||
l->addWidget(lab, 4, 1);
|
||||
l->addWidget(qlePassword, 4,2);
|
||||
|
||||
qleUsername=new QLineEdit(qs.value("ServerUsername", "").toString(), this);
|
||||
lab=new QLabel("&Username", this);
|
||||
lab->setBuddy(qleUsername);
|
||||
|
||||
l->addWidget(lab, 3, 0);
|
||||
l->addWidget(qleUsername, 3, 1);
|
||||
|
||||
QPushButton *okButton = new QPushButton("&OK");
|
||||
QPushButton *okButton = new QPushButton("&Connect");
|
||||
okButton->setDefault(true);
|
||||
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
|
||||
|
||||
QPushButton *cancelButton = new QPushButton("&Cancel");
|
||||
QPushButton *cancelButton = new QPushButton("Cancel");
|
||||
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
|
||||
|
||||
QPushButton *addButton = new QPushButton("&Add");
|
||||
addButton->setObjectName("Add");
|
||||
|
||||
QPushButton *removeButton = new QPushButton("&Remove");
|
||||
removeButton->setObjectName("Remove");
|
||||
|
||||
vbh->addWidget(okButton);
|
||||
vbh->addWidget(cancelButton);
|
||||
vbh->addWidget(addButton);
|
||||
vbh->addWidget(removeButton);
|
||||
|
||||
connect(qleName, SIGNAL(textEdited(const QString &)), this, SLOT(onDirty(const QString &)));
|
||||
connect(qleServer, SIGNAL(textEdited(const QString &)), this, SLOT(onDirty(const QString &)));
|
||||
connect(qleUsername, SIGNAL(textEdited(const QString &)), this, SLOT(onDirty(const QString &)));
|
||||
connect(qlePassword, SIGNAL(textEdited(const QString &)), this, SLOT(onDirty(const QString &)));
|
||||
connect(qlePort, SIGNAL(textEdited(const QString &)), this, SLOT(onDirty(const QString &)));
|
||||
|
||||
connect(qlwServers, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(accept()));
|
||||
|
||||
QMetaObject::connectSlotsByName(this);
|
||||
}
|
||||
|
||||
void ConnectDialog::accept() {
|
||||
@ -105,3 +170,52 @@ void ConnectDialog::accept() {
|
||||
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
QSqlRecord ConnectDialog::toRecord() const
|
||||
{
|
||||
QSqlRecord r = qstmServers->record();
|
||||
r.setValue("name", qleName->text());
|
||||
r.setValue("hostname", qleServer->text());
|
||||
r.setValue("username", qleUsername->text());
|
||||
r.setValue("password", qlePassword->text());
|
||||
r.setValue("port", qlePort->text().toInt());
|
||||
return r;
|
||||
}
|
||||
|
||||
void ConnectDialog::onSelection_Changed(const QModelIndex &index, const QModelIndex &previndex)
|
||||
{
|
||||
QSqlRecord r;
|
||||
|
||||
if (bDirty) {
|
||||
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;
|
||||
}
|
||||
|
||||
void ConnectDialog::on_Add_clicked()
|
||||
{
|
||||
QSqlRecord r = toRecord();
|
||||
qstmServers->insertRecord(-1, r);
|
||||
qstmServers->submitAll();
|
||||
bDirty = false;
|
||||
}
|
||||
|
||||
void ConnectDialog::on_Remove_clicked()
|
||||
{
|
||||
int row=qlwServers->currentIndex().row();
|
||||
qstmServers->removeRows(qlwServers->currentIndex().row(), 1, QModelIndex());
|
||||
qstmServers->submitAll();
|
||||
qWarning("Dumped %d", row);
|
||||
}
|
||||
|
||||
void ConnectDialog::onDirty(const QString &) {
|
||||
bDirty = true;
|
||||
}
|
||||
|
||||
@ -33,13 +33,25 @@
|
||||
|
||||
#include <QDialog>
|
||||
#include <QLineEdit>
|
||||
#include <QListView>
|
||||
#include <QSqlTableModel>
|
||||
#include <QAbstractItemView>
|
||||
|
||||
class ConnectDialog : public QDialog {
|
||||
Q_OBJECT;
|
||||
protected:
|
||||
QLineEdit *qleServer, *qlePort, *qleUsername, *qlePassword;
|
||||
QSqlTableModel *qstmServers;
|
||||
QListView *qlwServers;
|
||||
QLineEdit *qleName, *qleServer, *qlePort, *qleUsername, *qlePassword;
|
||||
QModelIndex qmiDirty;
|
||||
QSqlRecord toRecord() const;
|
||||
bool bDirty;
|
||||
public slots:
|
||||
void accept();
|
||||
void on_Add_clicked();
|
||||
void on_Remove_clicked();
|
||||
void onSelection_Changed(const QModelIndex &n, const QModelIndex &p);
|
||||
void onDirty(const QString &);
|
||||
public:
|
||||
QString qsServer, qsUsername, qsPassword;
|
||||
int iPort;
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
#include "MainWindow.h"
|
||||
#include "AudioInput.h"
|
||||
#include "Settings.h"
|
||||
#include "ConnectDialog.h"
|
||||
|
||||
MainWindow *g_mwMainWindow;
|
||||
|
||||
|
||||
@ -40,7 +40,6 @@
|
||||
#include "Connection.h"
|
||||
#include "ServerHandler.h"
|
||||
#include "About.h"
|
||||
#include "ConnectDialog.h"
|
||||
#include "GlobalShortcut.h"
|
||||
#include "TextToSpeech.h"
|
||||
|
||||
|
||||
@ -67,6 +67,7 @@ Section "Mumble & Murmur" SecMumble
|
||||
|
||||
File /oname=license.txt "..\LICENSE"
|
||||
File /oname=Readme.txt "..\README"
|
||||
File /oname=Changes.txt "..\CHANGES"
|
||||
File "speex.txt"
|
||||
File "qt.txt"
|
||||
File "..\release\mumble.exe"
|
||||
@ -116,6 +117,7 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\QtSql4.dll"
|
||||
Delete "$INSTDIR\libspeex.dll"
|
||||
Delete "$INSTDIR\mingwm10.dll"
|
||||
Delete "$INSTDIR\Changes.txt"
|
||||
Delete "$INSTDIR\qt.txt"
|
||||
Delete "$INSTDIR\speex.txt"
|
||||
Delete "$INSTDIR\Readme.txt"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
VERSION = 0.2.1
|
||||
DIST = LICENSE INSTALL README mumble.pro murmur.pro mumble.pri mumble.ico
|
||||
DIST = LICENSE INSTALL README CHANGES mumble.pro murmur.pro mumble.pri mumble.ico
|
||||
CONFIG += qt thread debug_and_release
|
||||
|
||||
CONFIG(debug, debug|release) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user