summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-10-10 11:03:49 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-10-10 11:03:49 +0200
commit1ecc46ee977805418faae3d1c57aefc828203d95 (patch)
treeafeacb2856034979f8841c4e13a2b5dac074d8c8
parentdd59a5c4b8b0eadf223a7e4b3fa0cc8bd99375f9 (diff)
maybe a fix for DPI
-rw-r--r--src/data/tikzdocument.cpp39
-rw-r--r--src/data/tikzdocument.h4
-rw-r--r--src/gui/mainwindow.cpp22
-rw-r--r--src/gui/mainwindow.ui2
-rw-r--r--src/main.cpp24
-rw-r--r--src/tikzit.cpp8
6 files changed, 80 insertions, 19 deletions
diff --git a/src/data/tikzdocument.cpp b/src/data/tikzdocument.cpp
index fd70e92..2554c21 100644
--- a/src/data/tikzdocument.cpp
+++ b/src/data/tikzdocument.cpp
@@ -98,9 +98,9 @@ void TikzDocument::open(QString fileName)
}
}
-void TikzDocument::save() {
+bool TikzDocument::save() {
if (_fileName == "") {
- saveAs();
+ return saveAs();
} else {
MainWindow *win = tikzit->activeWindow();
if (win != 0 && !win->tikzScene()->enabled()) {
@@ -110,7 +110,7 @@ void TikzDocument::save() {
tr("Tikz failed to parse"),
tr("Cannot save file with invalid TiKZ source. Revert changes and save?"));
if (resp == QMessageBox::Yes) win->tikzScene()->setEnabled(true);
- else return; // ABORT the save
+ else return false; // ABORT the save
}
}
@@ -126,10 +126,13 @@ void TikzDocument::save() {
stream << _tikz;
file.close();
setClean();
+ return true;
} else {
QMessageBox::warning(0, "Save Failed", "Could not open file: '" + _fileName + "' for writing.");
}
}
+
+ return false;
}
bool TikzDocument::isClean() const
@@ -148,7 +151,7 @@ void TikzDocument::setGraph(Graph *graph)
refreshTikz();
}
-void TikzDocument::saveAs() {
+bool TikzDocument::saveAs() {
MainWindow *win = tikzit->activeWindow();
if (win != 0 && !win->tikzScene()->enabled()) {
win->tikzScene()->parseTikz(win->tikzSource());
@@ -157,23 +160,39 @@ void TikzDocument::saveAs() {
tr("Tikz failed to parse"),
tr("Cannot save file with invalid TiKZ source. Revert changes and save?"));
if (resp == QMessageBox::Yes) win->tikzScene()->setEnabled(true);
- else return; // ABORT the save
+ else return false; // ABORT the save
}
}
QSettings settings("tikzit", "tikzit");
+
+// QFileDialog dialog;
+// dialog.setDefaultSuffix("tikz");
+// dialog.setWindowTitle(tr("Save File As"));
+// dialog.setAcceptMode(QFileDialog::AcceptSave);
+// dialog.setNameFilter(tr("TiKZ Files (*.tikz)"));
+// dialog.setFileMode(QFileDialog::AnyFile);
+// dialog.setDirectory(settings.value("previous-file-path").toString());
+// dialog.setOption(QFileDialog::DontUseNativeDialog);
+
QString fileName = QFileDialog::getSaveFileName(tikzit->activeWindow(),
tr("Save File As"),
settings.value("previous-file-path").toString(),
- tr("TiKZ Files (*.tikz)"));
+ tr("TiKZ Files (*.tikz)"),
+ nullptr,
+ QFileDialog::DontUseNativeDialog);
if (!fileName.isEmpty()) {
+// QString fileName = dialog.selectedFiles()[0];
_fileName = fileName;
- save();
-
- // clean state might not change, so update title bar manually
- tikzit->activeWindow()->updateFileName();
+ if (save()) {
+ // clean state might not change, so update title bar manually
+ tikzit->activeWindow()->updateFileName();
+ return true;
+ }
}
+
+ return false;
}
QString TikzDocument::shortName() const
diff --git a/src/data/tikzdocument.h b/src/data/tikzdocument.h
index 773f369..fca5434 100644
--- a/src/data/tikzdocument.h
+++ b/src/data/tikzdocument.h
@@ -47,8 +47,8 @@ public:
QString shortName() const;
- void saveAs();
- void save();
+ bool saveAs();
+ bool save();
bool isClean() const;
void setClean();
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index b0ffdc6..479d8ed 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -108,7 +108,25 @@ void MainWindow::closeEvent(QCloseEvent *event)
settings.setValue("geometry-main", saveGeometry());
settings.setValue("windowState-main", saveState(2));
- QMainWindow::closeEvent(event);
+ if (!_tikzDocument->isClean()) {
+ QString nm = _tikzDocument->shortName();
+ if (nm.isEmpty()) nm = "untitled";
+ QMessageBox::StandardButton resBtn = QMessageBox::question(
+ this, "Save Changes",
+ "Do you wish to save changes to " + nm + "?",
+ QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes,
+ QMessageBox::Yes);
+
+ if (resBtn == QMessageBox::Yes && _tikzDocument->save()) {
+ event->accept();
+ } else if (resBtn == QMessageBox::No) {
+ event->accept();
+ } else {
+ event->ignore();
+ }
+ } else {
+ event->accept();
+ }
}
void MainWindow::changeEvent(QEvent *event)
@@ -144,7 +162,7 @@ void MainWindow::updateFileName()
QString nm = _tikzDocument->shortName();
if (nm.isEmpty()) nm = "untitled";
if (!_tikzDocument->isClean()) nm += "*";
- setWindowTitle("TiKZiT - " + nm);
+ setWindowTitle(nm + " - TikZiT");
}
void MainWindow::refreshTikz()
diff --git a/src/gui/mainwindow.ui b/src/gui/mainwindow.ui
index 8eff5ee..27e0127 100644
--- a/src/gui/mainwindow.ui
+++ b/src/gui/mainwindow.ui
@@ -17,7 +17,7 @@
</sizepolicy>
</property>
<property name="windowTitle">
- <string>TikZiT - untitled</string>
+ <string>untitled - TikZiT</string>
</property>
<widget class="QWidget" name="centralWidget">
<property name="sizePolicy">
diff --git a/src/main.cpp b/src/main.cpp
index 9ad40ae..ac8ab13 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -27,6 +27,9 @@
#include <QApplication>
#include <QMenuBar>
+#include <QDesktopWidget>
+#include <QDebug>
+#include <QScreen>
// #ifdef Q_OS_WIN
// #include <Windows.h>
@@ -37,13 +40,30 @@ int main(int argc, char *argv[])
// #ifdef Q_OS_WIN
// SetProcessDPIAware();
// #endif
- QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+// QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
- //QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
+
+ // dummy application for detecting DPI
+ QApplication *a0 = new QApplication(argc, argv);
+ qDebug() << "physical DPI" << QApplication::screens()[0]->physicalDotsPerInch();
+
+ if (QApplication::screens()[0]->physicalDotsPerInch() >= 100) {
+ QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+ } else {
+ QApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
+ }
+
+ delete a0;
+
QApplication a(argc, argv);
a.setQuitOnLastWindowClosed(false);
+
+
+
tikzit = new Tikzit();
tikzit->init();
+
+
if (a.arguments().length() > 1) {
tikzit->open(a.arguments()[1]);
diff --git a/src/tikzit.cpp b/src/tikzit.cpp
index 967d76e..c649969 100644
--- a/src/tikzit.cpp
+++ b/src/tikzit.cpp
@@ -181,7 +181,9 @@ void Tikzit::open()
QString fileName = QFileDialog::getOpenFileName(0,
tr("Open File"),
settings.value("previous-file-path").toString(),
- tr("TiKZ Files (*.tikz)"));
+ tr("TiKZ Files (*.tikz)"),
+ nullptr,
+ QFileDialog::DontUseNativeDialog);
open(fileName);
}
@@ -210,7 +212,9 @@ void Tikzit::openTikzStyles() {
QString fileName = QFileDialog::getOpenFileName(0,
tr("Open File"),
settings.value("previous-tikzstyles-path").toString(),
- tr("TiKZ Style Files (*.tikzstyles)"));
+ tr("TiKZ Style Files (*.tikzstyles)"),
+ nullptr,
+ QFileDialog::DontUseNativeDialog);
if (!fileName.isEmpty()) {
QFileInfo fi(fileName);