Files
DbLogAnalyzer/widgets/databasewidget.cpp

105 lines
2.5 KiB
C++

#include "databasewidget.h"
#include "ui_databasewidget.h"
DatabaseWidget::DatabaseWidget(QWidget *parent) :
QWidget(parent),
m_ui(std::make_unique<Ui::DatabaseWidget>())
{
m_ui->setupUi(this);
m_ui->comboBox->addItem(tr("SQLite"), "QSQLITE");
m_ui->comboBox->addItem(tr("MySQL"), "QMYSQL");
// for debugging
setDriver("QMYSQL");
// setMysqlHostname("sql7.freemysqlhosting.net");
// setMysqlUsername("sql7285815");
// setMysqlPassword("BKhysrtqKl");
// setMysqlDatabase("sql7285815");
//setMysqlHostname("brunner.ninja");
setMysqlHostname("localhost");
setMysqlUsername("logtest");
setMysqlPassword("logtest");
setMysqlDatabase("logtest");
}
DatabaseWidget::~DatabaseWidget() = default;
QString DatabaseWidget::driver() const
{
return m_ui->comboBox->currentData().toString();
}
void DatabaseWidget::setDriver(const QString &driver)
{
m_ui->comboBox->setCurrentIndex(m_ui->comboBox->findData(driver));
}
QString DatabaseWidget::sqliteFilepath() const
{
return m_ui->fileSelectionWidget->path();
}
void DatabaseWidget::setSqliteFilepath(const QString &sqliteFilepath)
{
m_ui->fileSelectionWidget->setPath(sqliteFilepath);
}
QString DatabaseWidget::mysqlHostname() const
{
return m_ui->lineEditHostname->text();
}
void DatabaseWidget::setMysqlHostname(const QString &mysqlHostname)
{
m_ui->lineEditHostname->setText(mysqlHostname);
}
QString DatabaseWidget::mysqlUsername() const
{
return m_ui->lineEditUsername->text();
}
void DatabaseWidget::setMysqlUsername(const QString &mysqlUsername)
{
m_ui->lineEditUsername->setText(mysqlUsername);
}
QString DatabaseWidget::mysqlPassword() const
{
return m_ui->lineEditPassword->text();
}
void DatabaseWidget::setMysqlPassword(const QString &mysqlPassword)
{
m_ui->lineEditPassword->setText(mysqlPassword);
}
QString DatabaseWidget::mysqlDatabase() const
{
return m_ui->lineEditDatabase->text();
}
void DatabaseWidget::setMysqlDatabase(const QString &mysqlDatabase)
{
m_ui->lineEditDatabase->setText(mysqlDatabase);
}
QSqlDatabase DatabaseWidget::createConnection(const QString &connectionName)
{
auto db = QSqlDatabase::addDatabase(driver(), connectionName);
if (db.driverName() == "QSQLITE")
db.setDatabaseName(sqliteFilepath());
else
{
db.setHostName(mysqlHostname());
db.setUserName(mysqlUsername());
db.setPassword(mysqlPassword());
db.setDatabaseName(mysqlDatabase());
}
return db;
}