[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/jimtendo/QuteSQL/master/SavedQueryWidget.cpp [Back]  [Original]

#include "SavedQueryWidget.h"
#include "ui_SavedQueryWidget.h"

#include 
#include 

SavedQueryWidget::SavedQueryWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SavedQueryWidget)
{
    ui->setupUi(this);
}

SavedQueryWidget::~SavedQueryWidget()
{
    delete ui;
}

void SavedQueryWidget::setDatabase(QSqlDatabase *database)
{
    m_database = database;

    loadQueries();
}

void SavedQueryWidget::addQuery(QString query)
{
    QListWidgetItem *item = new QListWidgetItem();
    item->setData(Qt::DisplayRole, query);
    //item->setData(Qt::DisplayRole, "Title");
    //item->setData(Qt::UserRole, query);
    ui->listWidget->addItem(item);
    //http://stackoverflow.com/questions/6905147/qt-qlistwidgetitem-multiple-lines

    saveQueries();
}

void SavedQueryWidget::on_addButton_clicked()
{
    emit addButtonClicked();
}

void SavedQueryWidget::on_removeButton_clicked()
{
    QListWidgetItem *item = ui->listWidget->currentItem();
    ui->listWidget->takeItem(ui->listWidget->currentRow());
    delete item;

    saveQueries();
}

void SavedQueryWidget::loadQueries()
{
    // Load saved connections
    QSettings settings;
    int size = settings.beginReadArray(m_database->connectionName());
    for (int i = 0; i < size; i++) {
        settings.setArrayIndex(i);

        // Add item to combo box
        ui->listWidget->addItem(settings.value("query").toString());
    }
    settings.endArray();
}

void SavedQueryWidget::saveQueries()
{
    // Save queries
    QSettings settings;
    settings.beginWriteArray(m_database->connectionName());
    for (int i = 0; i < ui->listWidget->count(); i++) {
        settings.setArrayIndex(i);
        settings.setValue("query", ui->listWidget->item(i)->text());
    }
    settings.endArray();
}

void SavedQueryWidget::on_listWidget_itemActivated(QListWidgetItem *item)
{
    emit querySelected(item->text());
}

Web Proxy Viewer  |  New URL  |  Original Page