first commit
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
#include "cconfigdialog.h"
|
||||
#include "ui_cconfigdialog.h"
|
||||
#include <QMessageBox>
|
||||
#include <QSettings>
|
||||
#include <QCloseEvent>
|
||||
|
||||
|
||||
cConfigDialog::cConfigDialog(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::cConfigDialog),
|
||||
m_bPasswordChanged(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
cConfigDialog::~cConfigDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void cConfigDialog::setHostname(const QString& szHostname)
|
||||
{
|
||||
ui->m_lpHostname->setText(szHostname);
|
||||
}
|
||||
|
||||
void cConfigDialog::setDatabase(const QString& szDatabase)
|
||||
{
|
||||
ui->m_lpDatabase->setText(szDatabase);
|
||||
}
|
||||
|
||||
void cConfigDialog::setUserName(const QString& szUserName)
|
||||
{
|
||||
ui->m_lpUsername->setText(szUserName);
|
||||
}
|
||||
|
||||
void cConfigDialog::setPassword(const QString& szPassword)
|
||||
{
|
||||
ui->m_lpPassword->setText(szPassword);
|
||||
ui->m_lpPassword2->setText(szPassword);
|
||||
}
|
||||
|
||||
QString cConfigDialog::hostname()
|
||||
{
|
||||
return(ui->m_lpHostname->text());
|
||||
}
|
||||
|
||||
QString cConfigDialog::database()
|
||||
{
|
||||
return(ui->m_lpDatabase->text());
|
||||
}
|
||||
|
||||
QString cConfigDialog::userName()
|
||||
{
|
||||
return(ui->m_lpUsername->text());
|
||||
}
|
||||
|
||||
QString cConfigDialog::password()
|
||||
{
|
||||
return(ui->m_lpPassword->text());
|
||||
}
|
||||
|
||||
void cConfigDialog::on_m_lpTestButton_clicked()
|
||||
{
|
||||
}
|
||||
|
||||
void cConfigDialog::on_m_lpOKButton_clicked()
|
||||
{
|
||||
if(ui->m_lpPassword->text() != ui->m_lpPassword2->text())
|
||||
QMessageBox::critical(this, "Database", "password does not match");
|
||||
else
|
||||
accept();
|
||||
}
|
||||
|
||||
void cConfigDialog::on_m_lpCancelButton_clicked()
|
||||
{
|
||||
reject();
|
||||
}
|
||||
|
||||
void cConfigDialog::on_m_lpPassword_textChanged(const QString&/*arg1*/)
|
||||
{
|
||||
m_bPasswordChanged = true;
|
||||
if(ui->m_lpPassword->text() != ui->m_lpPassword2->text())
|
||||
ui->m_lpPasswordMatch->setText("password does not match");
|
||||
else
|
||||
ui->m_lpPasswordMatch->setText("");
|
||||
}
|
||||
|
||||
void cConfigDialog::on_m_lpPassword2_textChanged(const QString&/*arg1*/)
|
||||
{
|
||||
m_bPasswordChanged = true;
|
||||
if(ui->m_lpPassword->text() != ui->m_lpPassword2->text())
|
||||
ui->m_lpPasswordMatch->setText("password does not match");
|
||||
else
|
||||
ui->m_lpPasswordMatch->setText("");
|
||||
}
|
||||
|
||||
QWidget* cConfigDialog::widget()
|
||||
{
|
||||
return((QWidget*)ui->gridLayout);
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
/**
|
||||
* \class cConfigDialog
|
||||
*
|
||||
* \brief Configuration Dialog for dMySQL
|
||||
*
|
||||
* \ingroup MYSQL
|
||||
*
|
||||
* This class implements basic import functionality for Kooky.
|
||||
* All functions may be overwritten by derriving classes.
|
||||
*
|
||||
* \note Attempts at zen rarely work.
|
||||
*
|
||||
* \author Herwig Birke
|
||||
*
|
||||
* \version 1.0
|
||||
*
|
||||
* \date 2016/02/09
|
||||
*/
|
||||
|
||||
#ifndef CCONFIGDIALOG_H
|
||||
#define CCONFIGDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QCloseEvent>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class cConfigDialog;
|
||||
}
|
||||
|
||||
class cConfigDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\param parent
|
||||
*/
|
||||
explicit cConfigDialog(QWidget *parent = 0);
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
*/
|
||||
~cConfigDialog();
|
||||
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\param szHostname
|
||||
*/
|
||||
void setHostname(const QString& szHostname);
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\param szDatabase
|
||||
*/
|
||||
void setDatabase(const QString& szDatabase);
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\param szUserName
|
||||
*/
|
||||
void setUserName(const QString& szUserName);
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\param szPassword
|
||||
*/
|
||||
void setPassword(const QString& szPassword);
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\return QString
|
||||
*/
|
||||
QString hostname();
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\return QString
|
||||
*/
|
||||
QString database();
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\return QString
|
||||
*/
|
||||
QString userName();
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\return QString
|
||||
*/
|
||||
QString password();
|
||||
|
||||
QWidget* widget();
|
||||
private slots:
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
|
||||
*/
|
||||
void on_m_lpTestButton_clicked();
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\param arg1
|
||||
*/
|
||||
void on_m_lpPassword_textChanged(const QString &arg1);
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
\param arg1
|
||||
*/
|
||||
void on_m_lpPassword2_textChanged(const QString &arg1);
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
*/
|
||||
void on_m_lpOKButton_clicked();
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
*/
|
||||
void on_m_lpCancelButton_clicked();
|
||||
|
||||
private:
|
||||
Ui::cConfigDialog *ui; /*!< TODO: describe */
|
||||
bool m_bPasswordChanged; /*!< TODO: describe */
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
#endif // CCONFIGDIALOG_H
|
||||
@@ -0,0 +1,162 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>cConfigDialog</class>
|
||||
<widget class="QDialog" name="cConfigDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>398</width>
|
||||
<height>173</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MySQL Plugin - Configure</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0" colspan="5">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Hostname:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="m_lpHostname">
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Normal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Database:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="m_lpDatabase"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>User:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="m_lpUsername"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Password:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="m_lpPassword">
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>retype Password:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="m_lpPassword2">
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Password</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="m_lpPasswordMatch">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QLabel { red; color : red; }</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="m_lpTestButton">
|
||||
<property name="text">
|
||||
<string>Test</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>134</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="m_lpOKButton">
|
||||
<property name="text">
|
||||
<string>OK</string>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QPushButton" name="m_lpCancelButton">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -0,0 +1,353 @@
|
||||
#include "cmysqlplugin.h"
|
||||
#include "cconfigdialog.h"
|
||||
|
||||
#include <QSqlError>
|
||||
#include <QSettings>
|
||||
#include <QSqlQuery>
|
||||
#include <QMessageBox>
|
||||
|
||||
|
||||
bool cMySQLPlugin::connect()
|
||||
{
|
||||
QSettings settings;
|
||||
|
||||
m_db = QSqlDatabase::addDatabase("QMYSQL");
|
||||
m_db.setHostName(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString());
|
||||
m_db.setDatabaseName(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString());
|
||||
m_db.setUserName(settings.value(QString("plugins/%1/userName").arg(pluginName())).toString());
|
||||
m_db.setPassword(settings.value(QString("plugins/%1/password").arg(pluginName())).toString());
|
||||
|
||||
return(open());
|
||||
}
|
||||
|
||||
bool cMySQLPlugin::init()
|
||||
{
|
||||
QSettings settings;
|
||||
|
||||
m_db = QSqlDatabase::addDatabase("QMYSQL");
|
||||
m_db.setHostName(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString());
|
||||
m_db.setDatabaseName(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString());
|
||||
m_db.setUserName(settings.value(QString("plugins/%1/userName").arg(pluginName())).toString());
|
||||
m_db.setPassword(settings.value(QString("plugins/%1/password").arg(pluginName())).toString());
|
||||
|
||||
m_bConnected = m_db.open();
|
||||
|
||||
if(m_bConnected)
|
||||
{
|
||||
QStringList tables = m_db.tables();
|
||||
if(tables.count())
|
||||
{
|
||||
if(QMessageBox::question(0, "Tables exist", "Database not empty.\nExisting tables will be deleted.\nContinue?", QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No)
|
||||
return(m_bConnected);
|
||||
}
|
||||
QSqlQuery query(m_db);
|
||||
for(int z = 0;z < tables.count();z++)
|
||||
query.exec(QString("DROP TABLE %1;").arg(tables.at(z)));
|
||||
|
||||
if(!query.exec("CREATE TABLE `kooky`.settings ( `var` VARCHAR(100) NOT NULL , `val` VARCHAR(100) NOT NULL ) ENGINE = InnoDB;"))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
m_db.close();
|
||||
m_bConnected = false;
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
if(!query.exec("INSERT INTO `kooky`.settings values ('version', '1.0');"))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
m_db.close();
|
||||
m_bConnected = false;
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
if(!query.exec("CREATE TABLE `kooky`.ingredient_group ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, PRIMARY KEY (id) )"))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
m_db.close();
|
||||
m_bConnected = false;
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
if(!query.exec("CREATE TABLE `kooky`.ingredient ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, ingredient_group_id INT NOT NULL, PRIMARY KEY (id) )"))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
m_db.close();
|
||||
m_bConnected = false;
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
if(!query.exec("CREATE TABLE `kooky`.ingredient_values ( `id` INT NOT NULL AUTO_INCREMENT, `ingredient_id` INT NOT NULL, `ingredient_number` INT NOT NULL, `value` DOUBLE, PRIMARY KEY (id), FOREIGN KEY(ingredient_id) REFERENCES ingredient(id) )"))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
m_db.close();
|
||||
m_bConnected = false;
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
createGroup("default");
|
||||
}
|
||||
else
|
||||
m_szLastError = m_db.lastError().text();
|
||||
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
bool cMySQLPlugin::open()
|
||||
{
|
||||
m_bConnected = m_db.open();
|
||||
|
||||
if(m_bConnected)
|
||||
{
|
||||
QSqlQuery query(m_db);
|
||||
if(!query.exec("SELECT * FROM settings"))
|
||||
{
|
||||
init();
|
||||
|
||||
QSqlQuery query1(m_db);
|
||||
if(!query1.exec("SELECT * FROM settings"))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
m_db.close();
|
||||
m_bConnected = false;
|
||||
return(m_bConnected);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
m_szLastError = m_db.lastError().text();
|
||||
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
QString cMySQLPlugin::lastError()
|
||||
{
|
||||
return(m_szLastError);
|
||||
}
|
||||
|
||||
bool cMySQLPlugin::config()
|
||||
{
|
||||
cConfigDialog dlg;
|
||||
QSettings settings;
|
||||
dlg.setHostname(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString());
|
||||
dlg.setDatabase(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString());
|
||||
dlg.setUserName(settings.value(QString("plugins/%1/userName").arg(pluginName())).toString());
|
||||
dlg.setPassword(settings.value(QString("plugins/%1/password").arg(pluginName())).toString());
|
||||
|
||||
if(dlg.exec() == QDialog::Accepted)
|
||||
{
|
||||
m_db.close();
|
||||
settings.setValue(QString("plugins/%1/hostName").arg(pluginName()), dlg.hostname());
|
||||
settings.setValue(QString("plugins/%1/databaseName").arg(pluginName()), dlg.database());
|
||||
settings.setValue(QString("plugins/%1/userName").arg(pluginName()), dlg.userName());
|
||||
settings.setValue(QString("plugins/%1/password").arg(pluginName()), dlg.password());
|
||||
|
||||
m_db.setHostName(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString());
|
||||
m_db.setDatabaseName(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString());
|
||||
m_db.setUserName(settings.value(QString("plugins/%1/userName").arg(pluginName())).toString());
|
||||
m_db.setPassword(settings.value(QString("plugins/%1/password").arg(pluginName())).toString());
|
||||
return(open());
|
||||
}
|
||||
|
||||
return(m_bConnected);
|
||||
}
|
||||
|
||||
qint32 cMySQLPlugin::exists(const QString& szName, const QString& szGroup)
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(-1);
|
||||
|
||||
qint32 iGroup = existsGroup(szGroup);
|
||||
if(iGroup == -1)
|
||||
return(-1);
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
|
||||
if(!query.exec(QString("SELECT id FROM ingredient WHERE name = \"%1\" AND ingredient_group_id=%2").arg(szName).arg(iGroup)))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(-1);
|
||||
}
|
||||
query.first();
|
||||
if(!query.isValid())
|
||||
return(-1);
|
||||
|
||||
return(query.value(0).toInt());
|
||||
}
|
||||
|
||||
qint32 cMySQLPlugin::existsGroup(const QString& szGroup)
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(-1);
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
|
||||
if(!query.exec(QString("SELECT id FROM ingredient_group WHERE name = \"%1\"").arg(szGroup)))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(-1);
|
||||
}
|
||||
query.first();
|
||||
if(!query.isValid())
|
||||
return(-1);
|
||||
|
||||
return(query.value(0).toInt());
|
||||
}
|
||||
|
||||
qint32 cMySQLPlugin::existsIngredient(qint32 id, qint16 ingredientNumber)
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(-1);
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
|
||||
if(!query.exec(QString("SELECT id FROM ingredient_values WHERE ingredient_id = %1 AND ingredient_number = %2").arg(id).arg(ingredientNumber)))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(-1);
|
||||
}
|
||||
query.first();
|
||||
if(!query.isValid())
|
||||
return(-1);
|
||||
|
||||
return(query.value(0).toInt());
|
||||
}
|
||||
|
||||
qint32 cMySQLPlugin::create(const QString& szName, const QString& szGroup)
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(-1);
|
||||
|
||||
qint32 iGroup = existsGroup(szGroup);
|
||||
if(iGroup == -1)
|
||||
return(-1);
|
||||
|
||||
if(exists(szName, szGroup) != -1)
|
||||
return(-1);
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
if(!query.exec(QString("INSERT INTO ingredient (name, ingredient_group_id) VALUES (\"%1\", %2)").arg(szName).arg(iGroup)))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(-1);
|
||||
}
|
||||
return(exists(szName, szGroup));
|
||||
}
|
||||
|
||||
qint32 cMySQLPlugin::createGroup(const QString& szGroup)
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(-1);
|
||||
|
||||
if(existsGroup(szGroup) != -1)
|
||||
return(-1);
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
if(!query.exec(QString("INSERT INTO ingredient_group (name) VALUES (\"%1\")").arg(szGroup)))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(-1);
|
||||
}
|
||||
return(existsGroup(szGroup));
|
||||
}
|
||||
|
||||
bool cMySQLPlugin::set(qint32 id, qint16 ingredientNumber, qreal value)
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(-1);
|
||||
|
||||
if(existsIngredient(id, ingredientNumber) != -1)
|
||||
return(-1);
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
if(!query.exec(QString("INSERT INTO ingredient_values (ingredient_id, ingredient_number, value) VALUES (%1, %2, %3)").arg(id).arg(ingredientNumber).arg(value)))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(-1);
|
||||
}
|
||||
return(existsIngredient(id, ingredientNumber));
|
||||
}
|
||||
|
||||
INGREDIENT_LIST cMySQLPlugin::ingredients()
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(INGREDIENT_LIST());
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
if(!query.exec(QString("SELECT ingredient.name, ingredient_group.name FROM ingredient, ingredient_group WHERE ingredient.ingredient_group_id = ingredient_group.id ORDER BY ingredient_group.name, ingredient.name")))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(INGREDIENT_LIST());
|
||||
}
|
||||
|
||||
INGREDIENT_LIST list;
|
||||
while(query.next())
|
||||
{
|
||||
INGREDIENT i;
|
||||
i.szGroup = query.value(1).toString();
|
||||
i.szIngredient = query.value(0).toString();
|
||||
list.append(i);
|
||||
}
|
||||
|
||||
return(list);
|
||||
}
|
||||
|
||||
QStringList cMySQLPlugin::groups()
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(QStringList());
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
if(!query.exec(QString("SELECT name FROM ingredient_group ORDER BY name")))
|
||||
{
|
||||
m_szLastError = query.lastError().text();
|
||||
return(QStringList());
|
||||
}
|
||||
|
||||
QStringList list;
|
||||
while(query.next())
|
||||
list.append(query.value(0).toString());
|
||||
|
||||
return(list);
|
||||
}
|
||||
|
||||
bool cMySQLPlugin::beginTransaction()
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(false);
|
||||
QSqlQuery query(m_db);
|
||||
return(query.exec("SET autocommit = 0"));
|
||||
}
|
||||
|
||||
bool cMySQLPlugin::endTransaction()
|
||||
{
|
||||
if(!m_bConnected)
|
||||
return(false);
|
||||
QSqlQuery query(m_db);
|
||||
query.exec("SET autocommit = 1");
|
||||
return(m_db.commit());
|
||||
}
|
||||
|
||||
QString cMySQLPlugin::author()
|
||||
{
|
||||
return("Herwig Birke");
|
||||
}
|
||||
|
||||
QString cMySQLPlugin::company()
|
||||
{
|
||||
return("WIN-DESIGN");
|
||||
}
|
||||
|
||||
QString cMySQLPlugin::link()
|
||||
{
|
||||
return("http://www.windesign.at");
|
||||
}
|
||||
|
||||
QString cMySQLPlugin::description()
|
||||
{
|
||||
return("This is the description.");
|
||||
}
|
||||
|
||||
QString cMySQLPlugin::copyright()
|
||||
{
|
||||
return("This is the copyright.");
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
/**
|
||||
* \defgroup MYSQL MySQL Database Connector Plugin
|
||||
*
|
||||
* \brief
|
||||
*
|
||||
* This module is designed to connect to MySQL Databases.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* \class cMySQLPlugin
|
||||
*
|
||||
* \brief MySQL Database Connector Plugin class
|
||||
*
|
||||
* \ingroup MYSQL
|
||||
*
|
||||
* This class implements the database connector for MySQL.
|
||||
* All functions may be overwritten by derriving classes.
|
||||
*
|
||||
* \note
|
||||
*
|
||||
* \author Herwig Birke
|
||||
*
|
||||
* \version 1.0
|
||||
*
|
||||
* \date $Date: 2016/02/09
|
||||
*/
|
||||
|
||||
#ifndef CMYSQLPLUGIN_H
|
||||
#define CMYSQLPLUGIN_H
|
||||
|
||||
|
||||
#include "cdbinterface.h"
|
||||
|
||||
#include <QtCore>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QSqlDatabase>
|
||||
|
||||
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
*/
|
||||
class cMySQLPlugin : public QObject, public cDBInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID "cMySQLPlugin" FILE "dMySQL.json")
|
||||
Q_INTERFACES(cDBInterface)
|
||||
|
||||
public:
|
||||
/**
|
||||
* \brief Returns the version of the plugin API
|
||||
*
|
||||
* \return qint16 plugin API version
|
||||
*/
|
||||
qint16 pluginAPIVersion() { return(1); }
|
||||
/**
|
||||
* \brief Returns the name of the plugin
|
||||
*
|
||||
* \return QString name of the plugin
|
||||
*/
|
||||
QString pluginName() { return("MySQL DB"); }
|
||||
/**
|
||||
* \brief returns the version of the plugin
|
||||
*
|
||||
* \return qint16 version of the plugin
|
||||
*/
|
||||
qint16 pluginVersion() { return(1); }
|
||||
/**
|
||||
* \brief returns the type of the plugin.
|
||||
*
|
||||
* \return iType type of the plugin.
|
||||
*
|
||||
* Returns the type of the plugin. Possible values are:
|
||||
* <ul>
|
||||
* <li> cInterface::iTypeDB
|
||||
* <br> plugin provides DB connector
|
||||
* <li> cInterface::iTypeExport
|
||||
* <br> plugin provides export capabilities
|
||||
* <li> cInterface::iTypeImport
|
||||
* <br> plugin provides import capabilities
|
||||
* </ol>
|
||||
* </ul>
|
||||
*/
|
||||
iType pluginType() { return(cInterface::iTypeDB); }
|
||||
|
||||
/**
|
||||
* \brief connects to the database.
|
||||
*
|
||||
* \return bool true on success or false otherwise
|
||||
*/
|
||||
bool connect();
|
||||
/**
|
||||
* \brief initializes default settings for the plugin.
|
||||
*
|
||||
* \return bool true if settings where successfully tested or false otherwise.
|
||||
*/
|
||||
bool init();
|
||||
/**
|
||||
* \brief returns the last error string.
|
||||
*
|
||||
* \return QString last error
|
||||
*/
|
||||
QString lastError();
|
||||
|
||||
/**
|
||||
* \brief calls the configuration dialog.
|
||||
*
|
||||
* \return bool true if the configuration has been changed successfully or false otherwise.
|
||||
*/
|
||||
bool config();
|
||||
|
||||
qint32 exists(const QString& szName, const QString& szGroup);
|
||||
qint32 existsGroup(const QString& szGroup);
|
||||
qint32 existsIngredient(qint32 id, qint16 ingredientNumber);
|
||||
qint32 create(const QString& szName, const QString& szGroup);
|
||||
qint32 createGroup(const QString& szGroup);
|
||||
bool set(qint32 id, qint16 ingredientNumber, qreal value);
|
||||
INGREDIENT_LIST ingredients();
|
||||
QStringList groups();
|
||||
bool beginTransaction();
|
||||
bool endTransaction();
|
||||
|
||||
QString author();
|
||||
QString company();
|
||||
QString link();
|
||||
QString description();
|
||||
QString copyright();
|
||||
|
||||
protected:
|
||||
/**
|
||||
* \brief opens the database.
|
||||
*
|
||||
* \return bool true on success or false otherwise.
|
||||
*/
|
||||
bool open();
|
||||
|
||||
QSqlDatabase m_db; /*!< holds the database connection */
|
||||
QString m_szLastError; /*!< holds the last error message */
|
||||
};
|
||||
|
||||
#endif // CMYSQLPLUGIN_H
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"Keys" : [ ]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2015-11-18T11:56:38
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui sql
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
TARGET = dMySQL
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin
|
||||
|
||||
SOURCES += \
|
||||
cmysqlplugin.cpp \
|
||||
cconfigdialog.cpp
|
||||
|
||||
HEADERS += \
|
||||
cmysqlplugin.h \
|
||||
cconfigdialog.h
|
||||
OTHER_FILES += dMySQL.json
|
||||
|
||||
DESTDIR = ../bin/plugins
|
||||
INCLUDEPATH += ../Kooky
|
||||
|
||||
unix {
|
||||
target.path = /usr/lib
|
||||
INSTALLS += target
|
||||
}
|
||||
|
||||
DISTFILES += \
|
||||
dMySQL.json
|
||||
|
||||
FORMS += \
|
||||
cconfigdialog.ui
|
||||
@@ -0,0 +1,257 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 3.5.0, 2016-01-25T10:39:00. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{90551da6-f083-4f65-96d6-4435a4c6527f}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap"/>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.5.0 MinGW 32bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.5.0 MinGW 32bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.55.win32_mingw492_kit</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/birkeh/Documents/Projects/Kooky/build-dMySQL-Desktop_Qt_5_5_0_MinGW_32bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/birkeh/Documents/Projects/Kooky/build-dMySQL-Desktop_Qt_5_5_0_MinGW_32bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
|
||||
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
|
||||
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">18</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
Reference in New Issue
Block a user