diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2018-10-10 11:03:49 +0200 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2018-10-10 11:03:49 +0200 |
commit | 1ecc46ee977805418faae3d1c57aefc828203d95 (patch) | |
tree | afeacb2856034979f8841c4e13a2b5dac074d8c8 /src | |
parent | dd59a5c4b8b0eadf223a7e4b3fa0cc8bd99375f9 (diff) |
maybe a fix for DPI
Diffstat (limited to 'src')
-rw-r--r-- | src/data/tikzdocument.cpp | 39 | ||||
-rw-r--r-- | src/data/tikzdocument.h | 4 | ||||
-rw-r--r-- | src/gui/mainwindow.cpp | 22 | ||||
-rw-r--r-- | src/gui/mainwindow.ui | 2 | ||||
-rw-r--r-- | src/main.cpp | 24 | ||||
-rw-r--r-- | src/tikzit.cpp | 8 |
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); |