commit
						f7a7a0443a
					
				 12 changed files with 1108 additions and 0 deletions
			
			
		@ -0,0 +1,57 @@ | 
				
			|||
# C++ objects and libs | 
				
			|||
*.slo | 
				
			|||
*.lo | 
				
			|||
*.o | 
				
			|||
*.a | 
				
			|||
*.la | 
				
			|||
*.lai | 
				
			|||
*.so | 
				
			|||
*.dll | 
				
			|||
*.dylib | 
				
			|||
 | 
				
			|||
# Qt-es | 
				
			|||
object_script.*.Release | 
				
			|||
object_script.*.Debug | 
				
			|||
*_plugin_import.cpp | 
				
			|||
/.qmake.cache | 
				
			|||
/.qmake.stash | 
				
			|||
*.pro.user | 
				
			|||
*.pro.user.* | 
				
			|||
*.qbs.user | 
				
			|||
*.qbs.user.* | 
				
			|||
*.moc | 
				
			|||
moc_*.cpp | 
				
			|||
moc_*.h | 
				
			|||
qrc_*.cpp | 
				
			|||
ui_*.h | 
				
			|||
*.qmlc | 
				
			|||
*.jsc | 
				
			|||
Makefile* | 
				
			|||
*build-* | 
				
			|||
 | 
				
			|||
# Qt unit tests | 
				
			|||
target_wrapper.* | 
				
			|||
 | 
				
			|||
# QtCreator | 
				
			|||
*.autosave | 
				
			|||
 | 
				
			|||
# QtCreator Qml | 
				
			|||
*.qmlproject.user | 
				
			|||
*.qmlproject.user.* | 
				
			|||
 | 
				
			|||
# QtCreator CMake | 
				
			|||
CMakeLists.txt.user* | 
				
			|||
 | 
				
			|||
# QtCreator 4.8< compilation database  | 
				
			|||
compile_commands.json | 
				
			|||
 | 
				
			|||
# QtCreator local machine specific files for imported projects | 
				
			|||
*creator.user* | 
				
			|||
 | 
				
			|||
#added be H-4nd-H to the template to comply with project needs | 
				
			|||
 | 
				
			|||
*.pro.dummy | 
				
			|||
 | 
				
			|||
bin/ | 
				
			|||
doc/ | 
				
			|||
*.lupdate | 
				
			|||
@ -0,0 +1,36 @@ | 
				
			|||
QT       += core gui | 
				
			|||
QT       += xml | 
				
			|||
 | 
				
			|||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets | 
				
			|||
 | 
				
			|||
CONFIG += c++11 | 
				
			|||
 | 
				
			|||
# The following define makes your compiler emit warnings if you use | 
				
			|||
# any Qt feature that has been marked deprecated (the exact warnings | 
				
			|||
# depend on your compiler). Please consult the documentation of the | 
				
			|||
# deprecated API in order to know how to port your code away from it. | 
				
			|||
DEFINES += QT_DEPRECATED_WARNINGS | 
				
			|||
 | 
				
			|||
# You can also make your code fail to compile if it uses deprecated APIs. | 
				
			|||
# In order to do so, uncomment the following line. | 
				
			|||
# You can also select to disable deprecated APIs only up to a certain version of Qt. | 
				
			|||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0 | 
				
			|||
 | 
				
			|||
SOURCES += \ | 
				
			|||
    main.cpp \ | 
				
			|||
    mainwindow.cpp | 
				
			|||
 | 
				
			|||
HEADERS += \ | 
				
			|||
    mainwindow.h \ | 
				
			|||
    state.h | 
				
			|||
 | 
				
			|||
FORMS += \ | 
				
			|||
    mainwindow.ui | 
				
			|||
 | 
				
			|||
# Default rules for deployment. | 
				
			|||
qnx: target.path = /tmp/$${TARGET}/bin | 
				
			|||
else: unix:!android: target.path = /opt/$${TARGET}/bin | 
				
			|||
!isEmpty(target.path): INSTALLS += target | 
				
			|||
 | 
				
			|||
RESOURCES += \ | 
				
			|||
    res/Icons.qrc | 
				
			|||
@ -0,0 +1,11 @@ | 
				
			|||
#include "mainwindow.h" | 
				
			|||
 | 
				
			|||
#include <QApplication> | 
				
			|||
 | 
				
			|||
int main(int argc, char *argv[]) | 
				
			|||
{ | 
				
			|||
    QApplication a(argc, argv); | 
				
			|||
    MainWindow w; | 
				
			|||
    w.show(); | 
				
			|||
    return a.exec(); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,592 @@ | 
				
			|||
#include <QFileDialog> | 
				
			|||
#include "mainwindow.h" | 
				
			|||
#include "ui_mainwindow.h" | 
				
			|||
#include "state.h" | 
				
			|||
 | 
				
			|||
MainWindow::MainWindow(QWidget *parent) | 
				
			|||
    : QMainWindow(parent) | 
				
			|||
    , ui(new Ui::MainWindow) | 
				
			|||
{ | 
				
			|||
    ui->setupUi(this); | 
				
			|||
 | 
				
			|||
    //create model
 | 
				
			|||
    hideWidgets();     | 
				
			|||
    _model = new QStandardItemModel(0,1,this); | 
				
			|||
    ui->treeView->setModel(_model); | 
				
			|||
} | 
				
			|||
 | 
				
			|||
MainWindow::~MainWindow() | 
				
			|||
{ | 
				
			|||
    delete ui; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::readFile() | 
				
			|||
{ | 
				
			|||
    _model->clear(); | 
				
			|||
    QStandardItem *root = new QStandardItem("root:Root"); | 
				
			|||
    _model->appendRow(root); | 
				
			|||
 | 
				
			|||
    QDomDocument document; | 
				
			|||
 | 
				
			|||
    //load file
 | 
				
			|||
    QFile file(_fileName); | 
				
			|||
    if(file.open(QIODevice::ReadOnly | QIODevice::Text)) | 
				
			|||
    { | 
				
			|||
        document.setContent(&file); | 
				
			|||
        file.close(); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    //read xml file
 | 
				
			|||
    QDomElement xmlroot = document.firstChildElement(); | 
				
			|||
 | 
				
			|||
    QDomNodeList Databases = xmlroot.elementsByTagName("Database"); | 
				
			|||
    for (int i = 0; i < Databases.count(); ++i) | 
				
			|||
    { | 
				
			|||
        QDomElement database= Databases.at(i).toElement(); | 
				
			|||
        _DBElementVector.append(database); | 
				
			|||
        _DBNameVector.append(database.attribute("name")); | 
				
			|||
        QStandardItem *databaseItem = new QStandardItem(QString("DB : %1").arg(database.attribute("name"))); | 
				
			|||
 | 
				
			|||
        //read tables
 | 
				
			|||
        QDomNodeList tables = database.elementsByTagName("Table"); | 
				
			|||
        for (int t = 0; t < tables.count(); ++t) | 
				
			|||
        { | 
				
			|||
            QDomElement table = tables.at(t).toElement(); | 
				
			|||
            QStandardItem *tableItem = new QStandardItem(QString("TBL : %1").arg(table.attribute("name"))); | 
				
			|||
 | 
				
			|||
            //read Field
 | 
				
			|||
            QDomNodeList fields = table.elementsByTagName("Field"); | 
				
			|||
            for (int f = 0; f < fields.count(); ++f) | 
				
			|||
            { | 
				
			|||
                QDomElement field = fields.at(f).toElement(); | 
				
			|||
                QStandardItem *fieldItem = new QStandardItem(QString("FLD : %1").arg(field.attribute("name"))); | 
				
			|||
//                            "Name: "+field.attribute("name") + "; Type: " + field.attribute("type") + "; Allow Null: " + field.attribute("null") + "; Is Forign key:" + field.attribute("isforeignkey"));
 | 
				
			|||
 | 
				
			|||
                tableItem->appendRow(fieldItem); | 
				
			|||
            } | 
				
			|||
            databaseItem->appendRow(tableItem); | 
				
			|||
        } | 
				
			|||
        root->appendRow(databaseItem); | 
				
			|||
    } | 
				
			|||
    _xmlDoc = document; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::readFile(QDomDocument xmlInput) | 
				
			|||
{ | 
				
			|||
    _model->clear(); | 
				
			|||
    QStandardItem *root = new QStandardItem("root:Root"); | 
				
			|||
    _model->appendRow(root); | 
				
			|||
 | 
				
			|||
    QDomDocument document; | 
				
			|||
    document = xmlInput; | 
				
			|||
 | 
				
			|||
    //read xml file
 | 
				
			|||
    QDomElement xmlroot = document.firstChildElement(); | 
				
			|||
 | 
				
			|||
    QDomNodeList Databases = xmlroot.elementsByTagName("Database"); | 
				
			|||
    for (int i = 0; i < Databases.count(); ++i) | 
				
			|||
    { | 
				
			|||
        QDomElement database= Databases.at(i).toElement(); | 
				
			|||
        QStandardItem *databaseItem = new QStandardItem(QString("DB : %1").arg(database.attribute("name"))); | 
				
			|||
 | 
				
			|||
        //read tables
 | 
				
			|||
        QDomNodeList tables = database.elementsByTagName("Table"); | 
				
			|||
        for (int t = 0; t < tables.count(); ++t) | 
				
			|||
        { | 
				
			|||
            QDomElement table = tables.at(t).toElement(); | 
				
			|||
            QStandardItem *tableItem = new QStandardItem(QString("TBL : %1").arg(table.attribute("name"))); | 
				
			|||
 | 
				
			|||
            //read Field
 | 
				
			|||
            QDomNodeList fields = table.elementsByTagName("Field"); | 
				
			|||
            for (int f = 0; f < fields.count(); ++f) | 
				
			|||
            { | 
				
			|||
                QDomElement field = fields.at(f).toElement(); | 
				
			|||
                QStandardItem *fieldItem = new QStandardItem(QString("FLD : %1").arg(field.attribute("name"))); | 
				
			|||
//                            "Name: "+field.attribute("name") + "; Type: " + field.attribute("type") + "; Allow Null: " + field.attribute("null") + "; Is Forign key:" + field.attribute("isforeignkey"));
 | 
				
			|||
 | 
				
			|||
                tableItem->appendRow(fieldItem); | 
				
			|||
            } | 
				
			|||
            databaseItem->appendRow(tableItem); | 
				
			|||
        } | 
				
			|||
        root->appendRow(databaseItem); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
void MainWindow::writeFile() | 
				
			|||
{ | 
				
			|||
    _fileName = QFileDialog::getSaveFileName(this); | 
				
			|||
    QFile savefile(_fileName); | 
				
			|||
    if(!savefile.open(QIODevice::WriteOnly | QIODevice::Text)) | 
				
			|||
    { | 
				
			|||
        qDebug()<< "Ops! can not create file"; | 
				
			|||
    } | 
				
			|||
    QTextStream stream(&savefile); | 
				
			|||
    stream<<_xmlDoc.toString(); | 
				
			|||
    savefile.close(); | 
				
			|||
 | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
void MainWindow::on_actionCreate_Database_triggered() | 
				
			|||
{ | 
				
			|||
    hideWidgets(); | 
				
			|||
    _state = eStateLevel::createDatabase; | 
				
			|||
    if(_xmlDoc.isNull()) | 
				
			|||
    { | 
				
			|||
       _root  = _xmlDoc.createElement("Root"); | 
				
			|||
       _xmlDoc.appendChild(_root); | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
    else | 
				
			|||
    { | 
				
			|||
        _root = _xmlDoc.firstChild().toElement(); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    readFile(_xmlDoc); | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    ui->label_1->setText("Database Name"); | 
				
			|||
    ui->label_1->show(); | 
				
			|||
    ui->lineEdit_1->show(); | 
				
			|||
    ui->Append_btn->show(); | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_actionAdd_Table_triggered() | 
				
			|||
{ | 
				
			|||
 | 
				
			|||
    if(!_xmlDoc.isNull()) | 
				
			|||
    { | 
				
			|||
        hideWidgets(); | 
				
			|||
        _state = eStateLevel::createTable; | 
				
			|||
        ui->label_1->setText("Table Name"); | 
				
			|||
        ui->label_1->show(); | 
				
			|||
        ui->lineEdit_1->show(); | 
				
			|||
        ui->Append_btn->show(); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_actionAdd_Field_triggered() | 
				
			|||
{ | 
				
			|||
 | 
				
			|||
    if(!_xmlDoc.isNull() /*&& !_lastDBElement.isNull()*/) | 
				
			|||
    { | 
				
			|||
        hideWidgets(); | 
				
			|||
        _state = eStateLevel::createField; | 
				
			|||
        ui->label_1->setText("Field Name :"); | 
				
			|||
        ui->cmbType->show(); | 
				
			|||
        ui->label_1->show(); | 
				
			|||
        ui->lineEdit_1->show(); | 
				
			|||
        ui->Append_btn->show(); | 
				
			|||
        ui->chbIsNull->show(); | 
				
			|||
        ui->chbIsForignKey->show(); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_chbIsForignKey_stateChanged(int arg1) | 
				
			|||
{ | 
				
			|||
    if(arg1 > 0) | 
				
			|||
    { | 
				
			|||
        ui->cmbTablsName->addItem(""); | 
				
			|||
        for (int i = 0; i < _lastDBElement.childNodes().count(); ++i) | 
				
			|||
        { | 
				
			|||
            auto tblElem = _lastDBElement.childNodes().at(i); | 
				
			|||
            ui->cmbTablsName->addItem(tblElem.toElement().attribute("name")); | 
				
			|||
        } | 
				
			|||
        ui->cmbTablsName->show(); | 
				
			|||
    } | 
				
			|||
    else | 
				
			|||
    { | 
				
			|||
        ui->cmbTablsName->hide(); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::hideWidgets() | 
				
			|||
{ | 
				
			|||
    ui->label_1->hide(); | 
				
			|||
    ui->label_2->hide(); | 
				
			|||
    ui->label_3->hide(); | 
				
			|||
    ui->label_4->hide(); | 
				
			|||
 | 
				
			|||
    ui->lineEdit_1->hide(); | 
				
			|||
    ui->lineEdit_2->hide(); | 
				
			|||
    ui->lineEdit_3->hide(); | 
				
			|||
    ui->lineEdit_4->hide(); | 
				
			|||
 | 
				
			|||
    ui->Append_btn->setText("Append"); | 
				
			|||
    ui->Append_btn->hide(); | 
				
			|||
 | 
				
			|||
    ui->cmbType->hide(); | 
				
			|||
    ui->chbIsNull->hide(); | 
				
			|||
    ui->chbIsForignKey->hide(); | 
				
			|||
    ui->cmbTablsName->hide(); | 
				
			|||
 | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_Append_btn_clicked() | 
				
			|||
{ | 
				
			|||
    switch (_state) | 
				
			|||
    { | 
				
			|||
    case eStateLevel::createDatabase: | 
				
			|||
    { | 
				
			|||
        _lastDBElement =_xmlDoc.createElement("Database"); | 
				
			|||
        auto dbName = ui->lineEdit_1->text(); | 
				
			|||
        _lastDBElement.setAttribute("name",dbName); | 
				
			|||
        _DBElementVector.append(_lastDBElement); | 
				
			|||
        _root.appendChild(_lastDBElement); | 
				
			|||
        _xmlDoc.childNodes().at(0) = _root; | 
				
			|||
        readFile(_xmlDoc); | 
				
			|||
        hideWidgets(); | 
				
			|||
        ui->lineEdit_1->setText(""); | 
				
			|||
        break; | 
				
			|||
    } | 
				
			|||
    case eStateLevel::createTable: | 
				
			|||
    { | 
				
			|||
        _lastTableElement = _xmlDoc.createElement("Table"); | 
				
			|||
        auto tableName = ui->lineEdit_1->text(); | 
				
			|||
        _lastTableElement.setAttribute("name",tableName); | 
				
			|||
        _lastDBElement.appendChild(_lastTableElement); | 
				
			|||
        readFile(_xmlDoc); | 
				
			|||
        ui->lineEdit_1->setText(""); | 
				
			|||
        hideWidgets(); | 
				
			|||
        break; | 
				
			|||
    } | 
				
			|||
    case eStateLevel::createField: | 
				
			|||
    { | 
				
			|||
        if(_lastTableElement.isNull() || _lastDBElement.isNull()) | 
				
			|||
        { | 
				
			|||
            //TODO :: show mesagebox Text "Please select Database and Table"
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        if(ui->lineEdit_1->text() == "") | 
				
			|||
        { | 
				
			|||
            //TODO :: show mesagebox Text "Please set the field name"
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        auto a = ui->cmbType->currentIndex(); | 
				
			|||
        if(a < 1) | 
				
			|||
        { | 
				
			|||
            //TODO :: show mesagebox Text "Please set the Type"
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        auto fieldName = ui->lineEdit_1->text(); | 
				
			|||
        auto field = _xmlDoc.createElement("Field"); | 
				
			|||
        field.setAttribute("name",fieldName); | 
				
			|||
        if(ui->cmbType->currentText() == "VARCHAR") | 
				
			|||
        { | 
				
			|||
            field.setAttribute("type",QString("%1(%2)").arg(ui->cmbType->currentText()).arg(ui->lineEdit_2->text())); | 
				
			|||
        } | 
				
			|||
        else | 
				
			|||
        { | 
				
			|||
            field.setAttribute("type",ui->cmbType->currentText()); | 
				
			|||
        } | 
				
			|||
        if(ui->chbIsNull->checkState() == Qt::CheckState::Unchecked) | 
				
			|||
            field.setAttribute("null","NOT"); | 
				
			|||
        if(ui->chbIsForignKey->checkState() == Qt::CheckState::Checked) | 
				
			|||
        { | 
				
			|||
            field.setAttribute("isforeignkey","true"); | 
				
			|||
            field.setAttribute("lookuptable",ui->cmbTablsName->currentText()); | 
				
			|||
            field.setAttribute("lookuptable","ID"); | 
				
			|||
        } | 
				
			|||
        else | 
				
			|||
        { | 
				
			|||
            field.setAttribute("isforeignkey","false"); | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
        _lastTableElement.appendChild(field); | 
				
			|||
 | 
				
			|||
        readFile(_xmlDoc); | 
				
			|||
        ui->lineEdit_1->setText(""); | 
				
			|||
        hideWidgets(); | 
				
			|||
 | 
				
			|||
        break; | 
				
			|||
    } | 
				
			|||
    case eStateLevel::editDatabase: | 
				
			|||
    { | 
				
			|||
 | 
				
			|||
        auto oldDB  = _lastDBElement; | 
				
			|||
        _lastDBElement.setAttribute("name",ui->lineEdit_1->text()); | 
				
			|||
        auto root = _xmlDoc.firstChildElement().replaceChild(_lastDBElement,oldDB); | 
				
			|||
        readFile(_xmlDoc); | 
				
			|||
        ui->lineEdit_1->setText(""); | 
				
			|||
        hideWidgets(); | 
				
			|||
        break; | 
				
			|||
    } | 
				
			|||
    case eStateLevel::editTable: | 
				
			|||
    { | 
				
			|||
 | 
				
			|||
        auto oldTbl  = _lastTableElement; | 
				
			|||
        _lastTableElement.setAttribute("name",ui->lineEdit_1->text()); | 
				
			|||
        auto root = _lastDBElement.replaceChild(_lastTableElement,oldTbl); | 
				
			|||
        readFile(_xmlDoc); | 
				
			|||
        ui->lineEdit_1->setText(""); | 
				
			|||
        hideWidgets(); | 
				
			|||
        break; | 
				
			|||
    } | 
				
			|||
    case eStateLevel::editField: | 
				
			|||
    { | 
				
			|||
        if(_lastTableElement.isNull() || _lastDBElement.isNull()) | 
				
			|||
        { | 
				
			|||
            //TODO :: show mesagebox Text "Please select Database and Table"
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        if(ui->lineEdit_1->text() == "") | 
				
			|||
        { | 
				
			|||
            //TODO :: show mesagebox Text "Please set the field name"
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        auto a = ui->cmbType->currentIndex(); | 
				
			|||
        if(a < 1) | 
				
			|||
        { | 
				
			|||
            //TODO :: show mesagebox Text "Please set the Type"
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        auto fieldName = ui->lineEdit_1->text(); | 
				
			|||
        auto field = _xmlDoc.createElement("Field"); | 
				
			|||
        field.setAttribute("name",fieldName); | 
				
			|||
        if(ui->cmbType->currentText() == "VARCHAR") | 
				
			|||
        { | 
				
			|||
            field.setAttribute("type",QString("%1(%2)").arg(ui->cmbType->currentText()).arg(ui->lineEdit_2->text())); | 
				
			|||
        } | 
				
			|||
        else | 
				
			|||
        { | 
				
			|||
            field.setAttribute("type",ui->cmbType->currentText()); | 
				
			|||
        } | 
				
			|||
        if(ui->chbIsNull->checkState() == Qt::CheckState::Unchecked) | 
				
			|||
            field.setAttribute("null","NOT"); | 
				
			|||
        if(ui->chbIsForignKey->checkState() == Qt::CheckState::Checked) | 
				
			|||
        { | 
				
			|||
            field.setAttribute("isforeignkey","true"); | 
				
			|||
            field.setAttribute("lookuptable",ui->cmbTablsName->currentText()); | 
				
			|||
            field.setAttribute("lookuptable","ID"); | 
				
			|||
        } | 
				
			|||
        else | 
				
			|||
        { | 
				
			|||
            field.setAttribute("isforeignkey","false"); | 
				
			|||
        } | 
				
			|||
        auto oldFld = _lastFieldElement; | 
				
			|||
        _lastTableElement.replaceChild(field,oldFld); | 
				
			|||
 | 
				
			|||
        readFile(_xmlDoc); | 
				
			|||
        ui->lineEdit_1->setText(""); | 
				
			|||
        hideWidgets(); | 
				
			|||
 | 
				
			|||
        break; | 
				
			|||
    } | 
				
			|||
    default: | 
				
			|||
        break; | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
void MainWindow::on_cmbTablsName_currentIndexChanged(int index) | 
				
			|||
{ | 
				
			|||
        if(ui->chbIsForignKey->checkState() == Qt::CheckState::Checked) | 
				
			|||
        { | 
				
			|||
            if(index > 0 ) | 
				
			|||
            { | 
				
			|||
                ui->lineEdit_1->setText(QString("%1_id").arg(ui->cmbTablsName->currentText())); | 
				
			|||
                ui->cmbType->setCurrentIndex(1); | 
				
			|||
            } | 
				
			|||
        } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_treeView_doubleClicked(const QModelIndex &index) | 
				
			|||
{ | 
				
			|||
    hideWidgets(); | 
				
			|||
    auto type = getElementType(index); | 
				
			|||
    switch (type) | 
				
			|||
    { | 
				
			|||
        case MainWindow::eElementType::root : | 
				
			|||
        { | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        case MainWindow::eElementType::database : | 
				
			|||
        { | 
				
			|||
            _state = MainWindow::eStateLevel::editDatabase; | 
				
			|||
            for (int i = 0; i < _xmlDoc.firstChild().childNodes().count(); ++i) | 
				
			|||
            { | 
				
			|||
                if( _xmlDoc.firstChild().childNodes().at(i).toElement().attribute("name") == index.data().toString().split(" : ").at(1)) | 
				
			|||
                { | 
				
			|||
 | 
				
			|||
                    _lastDBElement = _xmlDoc.firstChild().childNodes().at(i).toElement(); | 
				
			|||
                    ui->label_1->setText("Database Name: "); | 
				
			|||
                    ui->label_1->show(); | 
				
			|||
                    ui->lineEdit_1->setText(_xmlDoc.firstChild().childNodes().at(i).toElement().attribute("name")); | 
				
			|||
                    ui->lineEdit_1->show(); | 
				
			|||
                    ui->Append_btn->setText("edit"); | 
				
			|||
                    ui->Append_btn->show(); | 
				
			|||
                    break; | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
//            _lastDBElement.clear();
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        case MainWindow::eElementType::table : | 
				
			|||
        { | 
				
			|||
        _state = MainWindow::eStateLevel::editTable; | 
				
			|||
            auto database = index.parent(); | 
				
			|||
            _lastDBElement.clear(); | 
				
			|||
           for (int i = 0; i < _xmlDoc.firstChild().childNodes().count(); ++i) | 
				
			|||
            { | 
				
			|||
                if(_xmlDoc.firstChild().childNodes().at(i).toElement().attribute("name") == database.data().toString().split(" : ").at(1)) | 
				
			|||
                { | 
				
			|||
                    _lastDBElement = _xmlDoc.firstChild().childNodes().at(i).toElement(); | 
				
			|||
                    break; | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
            for (int i = 0; i < _lastDBElement.childNodes().count(); ++i) | 
				
			|||
            { | 
				
			|||
                auto tblItem = _lastDBElement.childNodes().at(i); | 
				
			|||
                _lastTableElement.clear(); | 
				
			|||
                auto elem = tblItem.toElement(); | 
				
			|||
                if(elem.attribute("name") == index.data().toString().split(" : ").at(1)) | 
				
			|||
                { | 
				
			|||
                    _lastTableElement = elem; | 
				
			|||
                    ui->label_1->setText("Table Name: "); | 
				
			|||
                    ui->label_1->show(); | 
				
			|||
                    ui->lineEdit_1->setText(elem.attribute("name")); | 
				
			|||
                    ui->lineEdit_1->show(); | 
				
			|||
                    ui->Append_btn->setText("edit"); | 
				
			|||
                    ui->Append_btn->show(); | 
				
			|||
                    break; | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
 | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
        case MainWindow::eElementType::field : | 
				
			|||
        { | 
				
			|||
        _state = MainWindow::eStateLevel::editField; | 
				
			|||
            auto table = index.parent(); | 
				
			|||
            auto database = table.parent(); | 
				
			|||
            _lastDBElement.clear(); | 
				
			|||
            for (int i = 0; i < _xmlDoc.firstChild().childNodes().count(); ++i) | 
				
			|||
             { | 
				
			|||
                 if(_xmlDoc.firstChild().childNodes().at(i).toElement().attribute("name") == database.data().toString().split(" : ").at(1)) | 
				
			|||
                 { | 
				
			|||
                     _lastDBElement = _xmlDoc.firstChild().childNodes().at(i).toElement(); | 
				
			|||
                     break; | 
				
			|||
                 } | 
				
			|||
             } | 
				
			|||
            for (int i = 0; i < _lastDBElement.childNodes().count(); ++i) | 
				
			|||
            { | 
				
			|||
                auto tblelem = _lastDBElement.childNodes().at(i).toElement(); | 
				
			|||
                _lastTableElement.clear(); | 
				
			|||
                if(tblelem.attribute("name") == table.data().toString().split(" : ").at(1)) | 
				
			|||
                { | 
				
			|||
                    _lastTableElement = tblelem; | 
				
			|||
                    break; | 
				
			|||
                } | 
				
			|||
            } | 
				
			|||
            for (int i = 0; i < _lastTableElement.childNodes().count(); ++i) | 
				
			|||
            { | 
				
			|||
                _lastFieldElement = _lastTableElement.childNodes().at(i).toElement(); | 
				
			|||
                if(_lastFieldElement.attribute("name") == index.data().toString().split(" : ").at(1)) | 
				
			|||
                { | 
				
			|||
                    ui->label_1->setText("Field Name: "); | 
				
			|||
                    ui->label_1->show(); | 
				
			|||
                    ui->lineEdit_1->setText(_lastFieldElement.attribute("name")); | 
				
			|||
                    ui->lineEdit_1->show(); | 
				
			|||
                    ui->Append_btn->setText("edit"); | 
				
			|||
                    if(_lastFieldElement.attribute("type") == "INTEGER") | 
				
			|||
                        ui->cmbType->setCurrentText("INT"); | 
				
			|||
                    else if(_lastFieldElement.attribute("type").toLower().contains("varchar")) | 
				
			|||
                    { | 
				
			|||
                        ui->cmbType->setCurrentText("VARCHAR"); | 
				
			|||
                        auto size = _lastFieldElement.attribute("type").toLower().split("(").at(1); | 
				
			|||
                        size.replace(")",""); | 
				
			|||
                        ui->lineEdit_2->setText(size); | 
				
			|||
                        ui->lineEdit_2->show(); | 
				
			|||
                    } | 
				
			|||
                    else | 
				
			|||
                        ui->cmbType->setCurrentText(_lastFieldElement.attribute("type")); | 
				
			|||
 | 
				
			|||
                    ui->cmbType->show(); | 
				
			|||
                    if(_lastFieldElement.attribute("null") == "NOT") | 
				
			|||
                        ui->chbIsNull->setCheckState(Qt::CheckState::Unchecked); | 
				
			|||
                    else | 
				
			|||
                    { | 
				
			|||
                        ui->chbIsNull->setCheckState(Qt::CheckState::Checked); | 
				
			|||
                    } | 
				
			|||
                    ui->chbIsNull->show(); | 
				
			|||
 | 
				
			|||
                    if(_lastFieldElement.attribute("isforeignkey") == "true") | 
				
			|||
                    { | 
				
			|||
                        ui->chbIsForignKey->show(); | 
				
			|||
                        ui->cmbTablsName->show(); | 
				
			|||
                        ui->chbIsForignKey->setCheckState(Qt::CheckState::Checked); | 
				
			|||
                        ui->cmbTablsName->setCurrentText(_lastFieldElement.attribute("lookuptable")); | 
				
			|||
                    } | 
				
			|||
                    else | 
				
			|||
                    { | 
				
			|||
                          ui->chbIsForignKey->setCheckState(Qt::CheckState::Unchecked); | 
				
			|||
                    } | 
				
			|||
                    ui->Append_btn->show(); | 
				
			|||
                } | 
				
			|||
 | 
				
			|||
            } | 
				
			|||
            break; | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
    int a = index.row(); | 
				
			|||
    int b = index.column(); | 
				
			|||
    auto parent = index.parent(); | 
				
			|||
    auto par0 = parent.parent(); | 
				
			|||
    auto ac = index.data(); | 
				
			|||
    qDebug()<<parent.data() << "   " << par0.data(); | 
				
			|||
} | 
				
			|||
 | 
				
			|||
MainWindow::eElementType MainWindow::getElementType(QModelIndex indInput) | 
				
			|||
{ | 
				
			|||
    auto dataSptd = indInput.data().toString().split(" : "); | 
				
			|||
 | 
				
			|||
    if(dataSptd.at(0) == "root") | 
				
			|||
        return MainWindow::eElementType::root; | 
				
			|||
    else if(dataSptd.at(0) == "DB") | 
				
			|||
        return MainWindow::eElementType::database; | 
				
			|||
    else if(dataSptd.at(0) == "TBL") | 
				
			|||
        return MainWindow::eElementType::table; | 
				
			|||
    else if(dataSptd.at(0) == "FLD") | 
				
			|||
        return MainWindow::eElementType::field; | 
				
			|||
    else | 
				
			|||
        return MainWindow::eElementType::unknown; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_cmbType_currentTextChanged(const QString &arg1) | 
				
			|||
{ | 
				
			|||
    if(arg1 == "VARCHAR") | 
				
			|||
    { | 
				
			|||
        ui->lineEdit_2->show(); | 
				
			|||
        ui->label_2->setText("Len :"); | 
				
			|||
        ui->label_2->show(); | 
				
			|||
        ui->lineEdit_2->setText("200"); | 
				
			|||
    } | 
				
			|||
    else | 
				
			|||
    { | 
				
			|||
        ui->lineEdit_2->hide(); | 
				
			|||
        ui->label_2->setText("Len :"); | 
				
			|||
        ui->label_2->hide(); | 
				
			|||
        ui->lineEdit_2->setText("200"); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_actionsave_triggered() | 
				
			|||
{ | 
				
			|||
    writeFile(); | 
				
			|||
} | 
				
			|||
 | 
				
			|||
void MainWindow::on_actionEdit_Database_triggered() | 
				
			|||
{ | 
				
			|||
    _fileName = QFileDialog::getOpenFileName(this, | 
				
			|||
           tr("Open XML file"), "/home/", | 
				
			|||
           tr("Address XML (*.xml);;All Files (*)")); | 
				
			|||
    readFile(); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,87 @@ | 
				
			|||
#ifndef MAINWINDOW_H | 
				
			|||
#define MAINWINDOW_H | 
				
			|||
 | 
				
			|||
#include <QMainWindow> | 
				
			|||
#include <QtCore> | 
				
			|||
#include <QtGui> | 
				
			|||
#include <QtXml> | 
				
			|||
#include <QDebug> | 
				
			|||
 | 
				
			|||
QT_BEGIN_NAMESPACE | 
				
			|||
namespace Ui { class MainWindow; } | 
				
			|||
QT_END_NAMESPACE | 
				
			|||
 | 
				
			|||
class MainWindow : public QMainWindow | 
				
			|||
{ | 
				
			|||
    Q_OBJECT | 
				
			|||
    enum eStateLevel: quint8 | 
				
			|||
    { | 
				
			|||
        createRoot, | 
				
			|||
        createDatabase, | 
				
			|||
        createTable, | 
				
			|||
        createField, | 
				
			|||
        editDatabase, | 
				
			|||
        editTable, | 
				
			|||
        editField | 
				
			|||
    }; | 
				
			|||
    enum eElementType:quint8 | 
				
			|||
    { | 
				
			|||
        root, | 
				
			|||
        database, | 
				
			|||
        table, | 
				
			|||
        field, | 
				
			|||
        unknown | 
				
			|||
    }; | 
				
			|||
 | 
				
			|||
public: | 
				
			|||
    MainWindow(QWidget *parent = nullptr); | 
				
			|||
    ~MainWindow(); | 
				
			|||
 | 
				
			|||
private slots: | 
				
			|||
    void on_actionCreate_Database_triggered(); | 
				
			|||
 | 
				
			|||
    void on_Append_btn_clicked(); | 
				
			|||
 | 
				
			|||
    void on_actionAdd_Table_triggered(); | 
				
			|||
 | 
				
			|||
    void on_actionAdd_Field_triggered(); | 
				
			|||
 | 
				
			|||
    void on_chbIsForignKey_stateChanged(int arg1); | 
				
			|||
 | 
				
			|||
    void on_cmbTablsName_currentIndexChanged(int index); | 
				
			|||
 | 
				
			|||
    void on_treeView_doubleClicked(const QModelIndex &index); | 
				
			|||
 | 
				
			|||
    void on_cmbType_currentTextChanged(const QString &arg1); | 
				
			|||
 | 
				
			|||
    void on_actionsave_triggered(); | 
				
			|||
 | 
				
			|||
    void on_actionEdit_Database_triggered(); | 
				
			|||
 | 
				
			|||
private: | 
				
			|||
    Ui::MainWindow *ui; | 
				
			|||
    QStandardItemModel *_model; | 
				
			|||
    QString _fileName; | 
				
			|||
 | 
				
			|||
    int _state = 0; | 
				
			|||
 | 
				
			|||
    QDomDocument _xmlDoc; | 
				
			|||
    QString _xmlAddress; | 
				
			|||
    QDomElement _root; | 
				
			|||
    QVector<QString> _DBNameVector; | 
				
			|||
    QVector<QDomElement> _DBElementVector; | 
				
			|||
    QDomElement _lastDBElement; | 
				
			|||
    QDomElement _lastTableElement; | 
				
			|||
    QDomElement _lastFieldElement; | 
				
			|||
    QDomElement* _lastDBPointer; | 
				
			|||
 | 
				
			|||
    void readFile(); | 
				
			|||
    void readFile(QDomDocument xmlInput); | 
				
			|||
    void writeFile(); | 
				
			|||
    void hideWidgets(); | 
				
			|||
 | 
				
			|||
    eElementType getElementType(QModelIndex indInput); | 
				
			|||
 | 
				
			|||
 | 
				
			|||
}; | 
				
			|||
#endif // MAINWINDOW_H
 | 
				
			|||
@ -0,0 +1,304 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<ui version="4.0"> | 
				
			|||
 <class>MainWindow</class> | 
				
			|||
 <widget class="QMainWindow" name="MainWindow"> | 
				
			|||
  <property name="geometry"> | 
				
			|||
   <rect> | 
				
			|||
    <x>0</x> | 
				
			|||
    <y>0</y> | 
				
			|||
    <width>800</width> | 
				
			|||
    <height>600</height> | 
				
			|||
   </rect> | 
				
			|||
  </property> | 
				
			|||
  <property name="windowTitle"> | 
				
			|||
   <string>MainWindow</string> | 
				
			|||
  </property> | 
				
			|||
  <widget class="QWidget" name="centralwidget"> | 
				
			|||
   <widget class="QTreeView" name="treeView"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>0</x> | 
				
			|||
      <y>180</y> | 
				
			|||
      <width>791</width> | 
				
			|||
      <height>331</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="sizePolicy"> | 
				
			|||
     <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> | 
				
			|||
      <horstretch>1</horstretch> | 
				
			|||
      <verstretch>1</verstretch> | 
				
			|||
     </sizepolicy> | 
				
			|||
    </property> | 
				
			|||
    <property name="sizeAdjustPolicy"> | 
				
			|||
     <enum>QAbstractScrollArea::AdjustToContents</enum> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QPushButton" name="Append_btn"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>600</x> | 
				
			|||
      <y>150</y> | 
				
			|||
      <width>89</width> | 
				
			|||
      <height>25</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="text"> | 
				
			|||
     <string>Append</string> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QLabel" name="label_1"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>10</x> | 
				
			|||
      <y>10</y> | 
				
			|||
      <width>181</width> | 
				
			|||
      <height>17</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="text"> | 
				
			|||
     <string>TextLabel</string> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QLineEdit" name="lineEdit_1"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>203</x> | 
				
			|||
      <y>10</y> | 
				
			|||
      <width>84</width> | 
				
			|||
      <height>25</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QLabel" name="label_2"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>510</x> | 
				
			|||
      <y>10</y> | 
				
			|||
      <width>67</width> | 
				
			|||
      <height>17</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="text"> | 
				
			|||
     <string>TextLabel</string> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QLineEdit" name="lineEdit_2"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>600</x> | 
				
			|||
      <y>10</y> | 
				
			|||
      <width>136</width> | 
				
			|||
      <height>25</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QCheckBox" name="chbIsNull"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>291</x> | 
				
			|||
      <y>10</y> | 
				
			|||
      <width>95</width> | 
				
			|||
      <height>23</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="text"> | 
				
			|||
     <string>Allow Null</string> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QComboBox" name="cmbType"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>390</x> | 
				
			|||
      <y>10</y> | 
				
			|||
      <width>100</width> | 
				
			|||
      <height>25</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <item> | 
				
			|||
     <property name="text"> | 
				
			|||
      <string/> | 
				
			|||
     </property> | 
				
			|||
    </item> | 
				
			|||
    <item> | 
				
			|||
     <property name="text"> | 
				
			|||
      <string>INT</string> | 
				
			|||
     </property> | 
				
			|||
    </item> | 
				
			|||
    <item> | 
				
			|||
     <property name="text"> | 
				
			|||
      <string>BOOLEAN</string> | 
				
			|||
     </property> | 
				
			|||
    </item> | 
				
			|||
    <item> | 
				
			|||
     <property name="text"> | 
				
			|||
      <string>DOUBLE</string> | 
				
			|||
     </property> | 
				
			|||
    </item> | 
				
			|||
    <item> | 
				
			|||
     <property name="text"> | 
				
			|||
      <string>VARCHAR</string> | 
				
			|||
     </property> | 
				
			|||
    </item> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QCheckBox" name="chbIsForignKey"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>10</x> | 
				
			|||
      <y>70</y> | 
				
			|||
      <width>101</width> | 
				
			|||
      <height>23</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="text"> | 
				
			|||
     <string>IsForignKey</string> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QComboBox" name="cmbTablsName"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>150</x> | 
				
			|||
      <y>70</y> | 
				
			|||
      <width>131</width> | 
				
			|||
      <height>25</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QSplitter" name="splitter"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>70</x> | 
				
			|||
      <y>150</y> | 
				
			|||
      <width>418</width> | 
				
			|||
      <height>25</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="orientation"> | 
				
			|||
     <enum>Qt::Horizontal</enum> | 
				
			|||
    </property> | 
				
			|||
    <widget class="QLabel" name="label_3"> | 
				
			|||
     <property name="text"> | 
				
			|||
      <string>TextLabel</string> | 
				
			|||
     </property> | 
				
			|||
    </widget> | 
				
			|||
    <widget class="QLineEdit" name="lineEdit_3"/> | 
				
			|||
    <widget class="QLabel" name="label_4"> | 
				
			|||
     <property name="text"> | 
				
			|||
      <string>TextLabel</string> | 
				
			|||
     </property> | 
				
			|||
    </widget> | 
				
			|||
    <widget class="QLineEdit" name="lineEdit_4"/> | 
				
			|||
   </widget> | 
				
			|||
   <widget class="QPushButton" name="cancel_btn"> | 
				
			|||
    <property name="geometry"> | 
				
			|||
     <rect> | 
				
			|||
      <x>700</x> | 
				
			|||
      <y>150</y> | 
				
			|||
      <width>89</width> | 
				
			|||
      <height>25</height> | 
				
			|||
     </rect> | 
				
			|||
    </property> | 
				
			|||
    <property name="text"> | 
				
			|||
     <string>Cancel</string> | 
				
			|||
    </property> | 
				
			|||
   </widget> | 
				
			|||
  </widget> | 
				
			|||
  <widget class="QMenuBar" name="menubar"> | 
				
			|||
   <property name="geometry"> | 
				
			|||
    <rect> | 
				
			|||
     <x>0</x> | 
				
			|||
     <y>0</y> | 
				
			|||
     <width>800</width> | 
				
			|||
     <height>22</height> | 
				
			|||
    </rect> | 
				
			|||
   </property> | 
				
			|||
   <widget class="QMenu" name="menuFile"> | 
				
			|||
    <property name="title"> | 
				
			|||
     <string>File</string> | 
				
			|||
    </property> | 
				
			|||
    <addaction name="actionCreate_Database"/> | 
				
			|||
    <addaction name="actionEdit_Database"/> | 
				
			|||
    <addaction name="actionsave"/> | 
				
			|||
    <addaction name="actionclese"/> | 
				
			|||
   </widget> | 
				
			|||
   <addaction name="menuFile"/> | 
				
			|||
  </widget> | 
				
			|||
  <widget class="QStatusBar" name="statusbar"/> | 
				
			|||
  <widget class="QToolBar" name="toolBar"> | 
				
			|||
   <property name="windowTitle"> | 
				
			|||
    <string>toolBar</string> | 
				
			|||
   </property> | 
				
			|||
   <attribute name="toolBarArea"> | 
				
			|||
    <enum>TopToolBarArea</enum> | 
				
			|||
   </attribute> | 
				
			|||
   <attribute name="toolBarBreak"> | 
				
			|||
    <bool>false</bool> | 
				
			|||
   </attribute> | 
				
			|||
   <addaction name="actionCreate_Database"/> | 
				
			|||
   <addaction name="actionEdit_Database"/> | 
				
			|||
   <addaction name="actionAdd_Table"/> | 
				
			|||
   <addaction name="actionAdd_Field"/> | 
				
			|||
  </widget> | 
				
			|||
  <action name="actionCreate_Database"> | 
				
			|||
   <property name="icon"> | 
				
			|||
    <iconset resource="res/Icons.qrc"> | 
				
			|||
     <normaloff>:/Icons/new.png</normaloff>:/Icons/new.png</iconset> | 
				
			|||
   </property> | 
				
			|||
   <property name="text"> | 
				
			|||
    <string>Create Database</string> | 
				
			|||
   </property> | 
				
			|||
   <property name="shortcut"> | 
				
			|||
    <string>Ctrl+D</string> | 
				
			|||
   </property> | 
				
			|||
  </action> | 
				
			|||
  <action name="actionEdit_Database"> | 
				
			|||
   <property name="icon"> | 
				
			|||
    <iconset resource="res/Icons.qrc"> | 
				
			|||
     <normaloff>:/Icons/edit.png</normaloff>:/Icons/edit.png</iconset> | 
				
			|||
   </property> | 
				
			|||
   <property name="text"> | 
				
			|||
    <string>Edit Database</string> | 
				
			|||
   </property> | 
				
			|||
  </action> | 
				
			|||
  <action name="actionclese"> | 
				
			|||
   <property name="text"> | 
				
			|||
    <string>close</string> | 
				
			|||
   </property> | 
				
			|||
   <property name="toolTip"> | 
				
			|||
    <string>close</string> | 
				
			|||
   </property> | 
				
			|||
  </action> | 
				
			|||
  <action name="actionAdd_Table"> | 
				
			|||
   <property name="icon"> | 
				
			|||
    <iconset resource="res/Icons.qrc"> | 
				
			|||
     <normaloff>:/Icons/add.png</normaloff>:/Icons/add.png</iconset> | 
				
			|||
   </property> | 
				
			|||
   <property name="text"> | 
				
			|||
    <string>Add Table</string> | 
				
			|||
   </property> | 
				
			|||
   <property name="shortcut"> | 
				
			|||
    <string>Ctrl+T</string> | 
				
			|||
   </property> | 
				
			|||
  </action> | 
				
			|||
  <action name="actionAdd_Field"> | 
				
			|||
   <property name="icon"> | 
				
			|||
    <iconset resource="res/Icons.qrc"> | 
				
			|||
     <normaloff>:/Icons/column.png</normaloff>:/Icons/column.png</iconset> | 
				
			|||
   </property> | 
				
			|||
   <property name="text"> | 
				
			|||
    <string>Add Field</string> | 
				
			|||
   </property> | 
				
			|||
   <property name="shortcut"> | 
				
			|||
    <string>Ctrl+F</string> | 
				
			|||
   </property> | 
				
			|||
  </action> | 
				
			|||
  <action name="actionsave"> | 
				
			|||
   <property name="text"> | 
				
			|||
    <string>save</string> | 
				
			|||
   </property> | 
				
			|||
  </action> | 
				
			|||
 </widget> | 
				
			|||
 <resources> | 
				
			|||
  <include location="res/Icons.qrc"/> | 
				
			|||
 </resources> | 
				
			|||
 <connections/> | 
				
			|||
</ui> | 
				
			|||
@ -0,0 +1,8 @@ | 
				
			|||
<RCC> | 
				
			|||
    <qresource prefix="/Icons"> | 
				
			|||
        <file>new.png</file> | 
				
			|||
        <file>edit.png</file> | 
				
			|||
        <file>column.png</file> | 
				
			|||
        <file>add.png</file> | 
				
			|||
    </qresource> | 
				
			|||
</RCC> | 
				
			|||
| 
		 After Width: | Height: | Size: 4.2 KiB  | 
| 
		 After Width: | Height: | Size: 2.9 KiB  | 
| 
		 After Width: | Height: | Size: 1.8 KiB  | 
| 
		 After Width: | Height: | Size: 28 KiB  | 
@ -0,0 +1,13 @@ | 
				
			|||
#ifndef STATE_H | 
				
			|||
#define STATE_H | 
				
			|||
 | 
				
			|||
#include <QtCore> | 
				
			|||
 | 
				
			|||
//class EnumsLebel :public QObject
 | 
				
			|||
//{
 | 
				
			|||
//public:
 | 
				
			|||
 | 
				
			|||
//    Q_ENUM(eStateLevel)
 | 
				
			|||
 | 
				
			|||
//};
 | 
				
			|||
#endif // STATE_H
 | 
				
			|||
					Loading…
					
					
				
		Reference in new issue