Skip to content

Commit

Permalink
Merge pull request #13 from peterkomar/title
Browse files Browse the repository at this point in the history
Added title details
  • Loading branch information
peterkomar committed Oct 28, 2015
2 parents 2cb0d00 + db25a0a commit 7676032
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 33 deletions.
37 changes: 26 additions & 11 deletions src/requesthistory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,26 +211,41 @@ void RequestHistory::addRaw(int requestId, const QString &contentType, const QSt
}
}

bool RequestHistory::deleteHistory(int requestId)
bool RequestHistory::deleteHistory(const QVector<int> requestIds)
{
m_database.transaction();
QSqlQuery query(m_database);

QString ids;
for (int i = 0; i < requestIds.size(); ++i) {
ids += QString::number(requestIds.at(i)) + ", ";
}
ids = ids.remove(ids.length()-2, 2);

QStringList queries;
queries << "DELETE FROM requests WHERE id = :id"
<< "DELETE FROM requests_params WHERE request_id = :id"
<< "DELETE FROM request_headers WHERE request_id = :id"
<< "DELETE FROM request_raw WHERE request_id = :id"
<< "vacuum";
queries << QString("DELETE FROM requests WHERE id IN (%1)").arg(ids)
<< QString("DELETE FROM requests_params WHERE request_id IN (%1)").arg(ids)
<< QString("DELETE FROM request_headers WHERE request_id IN (%1)").arg(ids)
<< QString("DELETE FROM request_raw WHERE request_id IN (%1)").arg(ids);

QStringList::const_iterator constIterator;
bool sqlOk = true;
for (constIterator = queries.constBegin(); constIterator != queries.constEnd(); ++constIterator) {
query.prepare(*constIterator);
query.bindValue(":id", requestId);
if (!query.exec()) {
qDebug() << "Failed to execute: " << (*constIterator).toLocal8Bit().constData();
return false;
if (!query.exec(*constIterator) && sqlOk) {
sqlOk = false;
}
}

query.clear();
if (sqlOk) {
sqlOk = database().commit();
}

if(!sqlOk) {
qDebug() << "Failed to execute: " << query.lastError().text();
database().rollback();
}
query.exec("vacuum");

return true;
}
3 changes: 2 additions & 1 deletion src/requesthistory.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QCoreApplication>
#include <QVector>

class RequestHistory
{
Expand All @@ -65,7 +66,7 @@ class RequestHistory
void addParam(int requestId, const QString& name, const QString& value);
void addHeader(int requestId, const QString& name, const QString& value);
void addRaw(int requestId, const QString& contentType, const QString& rawBody);
bool deleteHistory(int requestId);
bool deleteHistory(const QVector<int> requestIds);

private:
bool connect(const QString& name);
Expand Down
47 changes: 26 additions & 21 deletions src/restclientmainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
#include <QStatusBar>
#include <QMenuBar>
#include <QSettings>
#include <QProgressDialog>
#include <QCloseEvent>
#include <QShortcut>

Expand Down Expand Up @@ -331,9 +330,12 @@ void RestClientMainWindow::loadHistory()
void RestClientMainWindow::waitDialog()
{
m_waitDialog = new QMessageBox(this);
m_waitDialog->setStandardButtons(QMessageBox::NoButton);
m_waitDialog->setStandardButtons(QMessageBox::Abort);
m_waitDialog->setText("Please wait, sending request ...");
m_waitDialog->exec();
int btn = m_waitDialog->exec();
if (btn == QMessageBox::Abort && m_reply) {
m_reply->abort();
}
}

void RestClientMainWindow::releaseReplyResources()
Expand All @@ -353,26 +355,16 @@ void RestClientMainWindow::releaseReplyResources()

void RestClientMainWindow::clearItems(QList<QTreeWidgetItem *>& items)
{
int countItems = items.count();
QProgressDialog *progress = new QProgressDialog("Removing history...", "", 0, countItems, this);
progress->setWindowModality(Qt::WindowModal);
progress->setAutoClose(true);

QPushButton *btn = new QPushButton("Cancel", progress);
btn->setDisabled(true);
progress->setCancelButton(btn);

int i = 0;
progress->setValue(i);
while( !items.isEmpty() ) {
progress->setValue(++i);
QTreeWidgetItem *item = (QTreeWidgetItem *)items.takeFirst();
m_history->deleteHistory(item->text(0).toInt());
delete item;
QVector<int> ids;
for (int i = 0; i < items.size(); ++i) {
ids << ((QTreeWidgetItem *)items.at(i))->text(0).toInt();
}

progress->setValue(countItems);
delete progress;
if (m_history->deleteHistory(ids)) {
qDeleteAll(items);
} else {
QMessageBox::critical(this, tr("Error delete"), tr("Can't delete item(s) beacuses database"));
}
}

void RestClientMainWindow::parseUrlParams()
Expand Down Expand Up @@ -404,6 +396,17 @@ void RestClientMainWindow::parseUrlParams()
}
}

void RestClientMainWindow::setTitle(const QString& method, const QString& url)
{
QString title = windowTitle();
int index = title.indexOf(" - ");
if (index != -1) {
title.remove(index, title.length());
}

setWindowTitle(title + QString(" - [%1] %2").arg(method).arg(url));
}

//slots
void RestClientMainWindow::slotSendRequest()
{
Expand All @@ -417,6 +420,8 @@ void RestClientMainWindow::slotSendRequest()
return;
}

setTitle(m_comboRestMethod->currentText(), url);

QNetworkAccessManager *manager = new QNetworkAccessManager(this);

QUrl urlObject(url);
Expand Down
1 change: 1 addition & 0 deletions src/restclientmainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ public slots:
void renderContentType(const QString& contentType);

void renderResponseHeaders();
void setTitle(const QString& method, const QString& url);
};

#endif // RESTCLIENTMAINWINDOW_H

0 comments on commit 7676032

Please sign in to comment.