summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2019-01-25 14:56:15 +0100
committerAleks Kissinger <aleks0@gmail.com>2019-01-25 14:56:15 +0100
commitce94cb38ec38ce5a304b3bab1b9a2d903e1d15e9 (patch)
treeb2906ef71a1cc3ee1be8ab8aa4fb7ba7f73291a2
parent0755b73637711e803069da01560df9e491dd7d51 (diff)
set window geometry after showing it for the first time
-rw-r--r--src/gui/mainwindow.cpp33
-rw-r--r--src/gui/mainwindow.h1
-rw-r--r--src/gui/previewwindow.cpp23
-rw-r--r--src/gui/previewwindow.h2
-rw-r--r--src/tikzit.cpp8
5 files changed, 48 insertions, 19 deletions
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index 71fea63..71b9070 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -46,19 +46,7 @@ MainWindow::MainWindow(QWidget *parent) :
_menu->setParent(this);
setMenuBar(_menu);
- QVariant geom = settings.value(QString("geometry-main-qt") + qVersion());
- QVariant state = settings.value(QString("windowState-main-qt") + qVersion());
-
- if (geom.isValid()) {
- restoreGeometry(geom.toByteArray());
- }
- if (state.isValid()) {
- restoreState(state.toByteArray(), 2);
- } else {
- addDockWidget(Qt::RightDockWidgetArea, _stylePalette);
- resizeDocks({_stylePalette}, {130}, Qt::Horizontal);
- }
// initially, the source view should be collapsed
QList<int> sz = ui->splitter->sizes();
@@ -76,6 +64,15 @@ MainWindow::MainWindow(QWidget *parent) :
#else
ui->tikzSource->setTabStopWidth(20);
#endif
+
+
+ QVariant state = settings.value(QString("windowState-main-qt") + qVersion());
+ if (state.isValid()) {
+ restoreState(state.toByteArray(), 2);
+ } else {
+ addDockWidget(Qt::RightDockWidgetArea, _stylePalette);
+ resizeDocks({_stylePalette}, {130}, Qt::Horizontal);
+ }
}
MainWindow::~MainWindow()
@@ -84,6 +81,18 @@ MainWindow::~MainWindow()
delete ui;
}
+void MainWindow::restorePosition()
+{
+ QSettings settings("tikzit", "tikzit");
+ QVariant geom = settings.value(QString("geometry-main-qt") + qVersion());
+
+ if (geom.isValid()) {
+ restoreGeometry(geom.toByteArray());
+ }
+
+
+}
+
void MainWindow::open(QString fileName)
{
_tikzDocument->open(fileName);
diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h
index 21fbd5a..48a88dd 100644
--- a/src/gui/mainwindow.h
+++ b/src/gui/mainwindow.h
@@ -29,6 +29,7 @@ public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
+ void restorePosition();
void open(QString fileName);
int windowId() const;
TikzView *tikzView() const;
diff --git a/src/gui/previewwindow.cpp b/src/gui/previewwindow.cpp
index acce1a1..4906484 100644
--- a/src/gui/previewwindow.cpp
+++ b/src/gui/previewwindow.cpp
@@ -41,15 +41,10 @@ PreviewWindow::PreviewWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::PreviewWindow)
{
- QSettings settings("tikzit", "tikzit");
- ui->setupUi(this);
- QVariant geom = settings.value(QString("geometry-preview-qt") + qVersion());
-
- if (geom.isValid()) {
- restoreGeometry(geom.toByteArray());
- }
+ ui->setupUi(this);
+ _positionRestored = false;
_doc = nullptr;
_loader = new QLabel(ui->tabWidget->tabBar());
@@ -90,6 +85,20 @@ PreviewWindow::~PreviewWindow()
delete ui;
}
+void PreviewWindow::restorePosition()
+{
+ // only restore position 1 time
+ if (_positionRestored) return;
+
+ QSettings settings("tikzit", "tikzit");
+ QVariant geom = settings.value(QString("geometry-preview-qt") + qVersion());
+
+ if (geom.isValid()) {
+ restoreGeometry(geom.toByteArray());
+ }
+ _positionRestored = true;
+}
+
void PreviewWindow::setPdf(QString file)
{
// use loadFromData to avoid holding a lock on the PDF file in windows
diff --git a/src/gui/previewwindow.h b/src/gui/previewwindow.h
index a14303b..0cb10aa 100644
--- a/src/gui/previewwindow.h
+++ b/src/gui/previewwindow.h
@@ -46,6 +46,7 @@ public:
};
explicit PreviewWindow(QWidget *parent = nullptr);
~PreviewWindow() override;
+ void restorePosition();
void setPdf(QString file);
QString preparePreview(QString tikz);
QPlainTextEdit *outputTextEdit();
@@ -67,6 +68,7 @@ private:
Ui::PreviewWindow *ui;
PdfDocument *_doc;
QLabel *_loader;
+ bool _positionRestored;
};
#endif // PREVIEWWINDOW_H
diff --git a/src/tikzit.cpp b/src/tikzit.cpp
index 8569817..f2ad661 100644
--- a/src/tikzit.cpp
+++ b/src/tikzit.cpp
@@ -61,6 +61,7 @@ void Tikzit::init()
//_stylePalette->show();
_windows << new MainWindow();
_windows[0]->show();
+ _windows[0]->restorePosition();
_styleFile = "";
_styleFilePath = "";
@@ -187,6 +188,7 @@ void Tikzit::newDoc()
{
MainWindow *w = new MainWindow();
w->show();
+ w->restorePosition();
_windows << w;
}
@@ -250,6 +252,7 @@ void Tikzit::open(QString fileName)
MainWindow *w = new MainWindow();
_windows << w;
w->show();
+ w->restorePosition();
w->open(fileName);
}
}
@@ -437,7 +440,12 @@ void Tikzit::makePreview()
} else {
_latex->makePreview(activeWindow()->tikzSource());
}
+
_preview->show();
+
+ // restores position from settings the first time this is called, otherwise
+ // do nothing.
+ _preview->restorePosition();
_preview->raise();
}
}