/trunk/qbsqlator/mainwindow.cpp |
---|
Новый файл |
0,0 → 1,72 |
#include <QtGui> |
#include <QtSql> |
#include "mainwindow.h" |
#include "dbconfigdialog.h" |
MainWindow::MainWindow(QWidget *parent) |
: QMainWindow(parent) |
{ |
QLabel *dbLabel = new QLabel("Database"); |
QComboBox *dbCombo = new QComboBox; |
dbCombo->addItem("default"); |
dbCombo->setEnabled(false); |
QPushButton *dbPrefButton = new QPushButton("Config"); |
QPushButton *dbConnectButton = new QPushButton("Connect"); |
QHBoxLayout *dbLayout = new QHBoxLayout; |
dbLayout->addWidget(dbLabel); |
dbLayout->addWidget(dbCombo); |
dbLayout->addWidget(dbPrefButton); |
dbLayout->addWidget(dbConnectButton); |
queryEdit = new QTextEdit; |
QPushButton *queryExecButton = new QPushButton("Exec"); |
QHBoxLayout *queryLayout = new QHBoxLayout; |
queryLayout->addWidget(queryEdit); |
queryLayout->addWidget(queryExecButton); |
resultTable = new QTableView; |
resultModel = new QSqlQueryModel; |
QWidget *mainWidget = new QWidget; |
QVBoxLayout *mainLayout = new QVBoxLayout; |
mainLayout->addLayout(dbLayout); |
mainLayout->addLayout(queryLayout); |
mainLayout->addWidget(resultTable); |
mainWidget->setLayout(mainLayout); |
setCentralWidget(mainWidget); |
connect(queryExecButton,SIGNAL(clicked()),this,SLOT(queryExec())); |
connect(dbPrefButton, SIGNAL(clicked()),this,SLOT(settingsDB())); |
connect(dbConnectButton, SIGNAL(clicked()),this,SLOT(connectDB())); |
} |
MainWindow::~MainWindow() |
{ |
} |
void MainWindow::queryExec() |
{ |
resultModel->setQuery(queryEdit->toPlainText()); |
resultTable->setModel(resultModel); |
resultTable->show(); |
} |
void MainWindow::settingsDB() |
{ |
DbConfigDialog *dbc = new DbConfigDialog(); |
dbc->exec(); |
} |
void MainWindow::connectDB() |
{ |
QSettings settings; |
QSqlDatabase db = QSqlDatabase::addDatabase(settings.value("DB/driver").toString()); |
db.setDatabaseName(settings.value("DB/database").toString()); |
if (!db.open()) |
QMessageBox::critical(this, tr("Connection error"), tr("Can't open database\n%1").arg(db.lastError().text()), QMessageBox::Ok); |
else |
QMessageBox::information(this,tr("Connection complete"), tr("Connection complete!"),QMessageBox::Ok); |
} |
/trunk/qbsqlator/dbconfigdialog.h |
---|
Новый файл |
0,0 → 1,21 |
#ifndef DBCONFIGDIALOG_H |
#define DBCONFIGDIALOG_H |
#include <QtGui> |
#include <QDialog> |
class DbConfigDialog : public QDialog |
{ |
Q_OBJECT |
public: |
DbConfigDialog(); |
private: |
QComboBox *driversCombo; |
QLineEdit *databaseEdit; |
private slots: |
void on_read_settings(); |
void on_save_settings(); |
}; |
#endif // DBCONFIGDIALOG_H |
/trunk/qbsqlator/mainwindow.h |
---|
Новый файл |
0,0 → 1,27 |
#ifndef MAINWINDOW_H |
#define MAINWINDOW_H |
#include <QtSql> |
#include <QtGui/QMainWindow> |
class QTextEdit; |
class QTableView; |
class MainWindow : public QMainWindow |
{ |
Q_OBJECT |
public: |
MainWindow(QWidget *parent = 0); |
~MainWindow(); |
private: |
QTextEdit *queryEdit; |
QSqlQueryModel *resultModel; |
QTableView *resultTable; |
private slots: |
void queryExec(); |
void settingsDB(); |
void connectDB(); |
}; |
#endif // MAINWINDOW_H |
/trunk/qbsqlator/main.cpp |
---|
Новый файл |
0,0 → 1,13 |
#include <QtGui/QApplication> |
#include "mainwindow.h" |
int main(int argc, char *argv[]) |
{ |
QApplication a(argc, argv); |
QApplication::setOrganizationName("qb"); |
QApplication::setOrganizationDomain("qb.org.ru"); |
QApplication::setApplicationName("qbsqlator"); |
MainWindow w; |
w.show(); |
return a.exec(); |
} |
/trunk/qbsqlator/qbsqlator.pro |
---|
Новый файл |
0,0 → 1,11 |
# ------------------------------------------------- |
# Project created by QtCreator 2009-10-18T14:44:49 |
# ------------------------------------------------- |
QT += sql |
TARGET = qbsqlator |
TEMPLATE = app |
SOURCES += main.cpp \ |
mainwindow.cpp \ |
dbconfigdialog.cpp |
HEADERS += mainwindow.h \ |
dbconfigdialog.h |
/trunk/qbsqlator/dbconfigdialog.cpp |
---|
Новый файл |
0,0 → 1,49 |
#include <QtGui> |
#include <QtSql> |
#include "dbconfigdialog.h" |
DbConfigDialog::DbConfigDialog() |
{ |
QLabel *driversLabel = new QLabel("Driver"); |
driversCombo = new QComboBox; |
driversCombo->setModel(new QStringListModel(QSqlDatabase::drivers(), this)); |
QLabel *databaseLabel = new QLabel("Database"); |
databaseEdit = new QLineEdit; |
QGridLayout *settingsLayout = new QGridLayout(); |
settingsLayout->addWidget(driversLabel,0,0); |
settingsLayout->addWidget(driversCombo,0,1); |
settingsLayout->addWidget(databaseLabel,1,0); |
settingsLayout->addWidget(databaseEdit,1,1); |
QPushButton *readButton = new QPushButton("Read"); |
QPushButton *saveButton = new QPushButton("Save"); |
QHBoxLayout *buttonLayout = new QHBoxLayout; |
buttonLayout->addWidget(readButton); |
buttonLayout->addWidget(saveButton); |
QVBoxLayout *mainLayout = new QVBoxLayout; |
mainLayout->addLayout(settingsLayout); |
mainLayout->addLayout(buttonLayout); |
setLayout(mainLayout); |
connect(readButton,SIGNAL(clicked()),this,SLOT(on_read_settings())); |
connect(saveButton,SIGNAL(clicked()),this,SLOT(on_save_settings())); |
on_read_settings(); |
} |
void DbConfigDialog::on_read_settings() |
{ |
QSettings settings; |
driversCombo->setCurrentIndex(driversCombo->findText(settings.value("DB/driver").toString())); |
databaseEdit->setText(settings.value("DB/database").toString()); |
} |
void DbConfigDialog::on_save_settings() |
{ |
QSettings settings; |
settings.setValue("DB/driver",driversCombo->currentText()); |
settings.setValue("DB/database",databaseEdit->text()); |
} |