Beter handling of new vs existing files.

This commit is contained in:
eelke 2017-02-19 17:40:43 +01:00
parent 4adb78a84e
commit 874ca664b8
2 changed files with 7 additions and 2 deletions

View file

@ -123,8 +123,9 @@ bool QueryTab::canClose()
void QueryTab::newdoc() void QueryTab::newdoc()
{ {
ui->queryEdit->clear(); ui->queryEdit->clear();
setFileName(QString()); setFileName(tr("new"));
m_queryTextChanged = false; m_queryTextChanged = false;
m_new = true;
} }
bool QueryTab::load(const QString &filename) bool QueryTab::load(const QString &filename)
@ -147,6 +148,7 @@ bool QueryTab::load(const QString &filename)
ui->queryEdit->setPlainText(text); ui->queryEdit->setPlainText(text);
m_queryTextChanged = false; m_queryTextChanged = false;
setFileName(filename); setFileName(filename);
m_new = false;
result = true; result = true;
} }
return result; return result;
@ -155,7 +157,7 @@ bool QueryTab::load(const QString &filename)
bool QueryTab::save() bool QueryTab::save()
{ {
bool result; bool result;
if (m_fileName.isEmpty()) { if (m_fileName.isEmpty() || m_new) {
result = saveAs(); result = saveAs();
} }
else { else {
@ -172,6 +174,7 @@ bool QueryTab::saveAs()
result = saveSqlTo(filename); result = saveSqlTo(filename);
if (result) { if (result) {
setFileName(filename); setFileName(filename);
m_new = false;
} }
} }
return result; return result;

View file

@ -70,6 +70,7 @@ public:
QString fileName() const { return m_fileName; } QString fileName() const { return m_fileName; }
bool isChanged() const { return m_queryTextChanged; } bool isChanged() const { return m_queryTextChanged; }
bool isNew() const { return m_new; }
private: private:
// struct ResultTab { // struct ResultTab {
@ -90,6 +91,7 @@ private:
QueryParamListController *m_queryParamListController = nullptr; QueryParamListController *m_queryParamListController = nullptr;
bool m_new = true;
QString m_fileName; ///< use setFileName function to set QString m_fileName; ///< use setFileName function to set
bool m_queryTextChanged = false; bool m_queryTextChanged = false;