diff --git a/sources/editor/qetelementeditor.cpp b/sources/editor/qetelementeditor.cpp index 8b82550da..5763d3061 100644 --- a/sources/editor/qetelementeditor.cpp +++ b/sources/editor/qetelementeditor.cpp @@ -1116,6 +1116,14 @@ void QETElementEditor::closeEvent(QCloseEvent *qce) { } else qce -> ignore(); } +/** + +*/ +void QETElementEditor::firstActivation(QEvent *event) { + Q_UNUSED(event) + if (ce_view) ce_view -> zoomFit(); +} + /** Remplit la liste des parties */ diff --git a/sources/editor/qetelementeditor.h b/sources/editor/qetelementeditor.h index 2b7dcd681..d52b10e5d 100644 --- a/sources/editor/qetelementeditor.h +++ b/sources/editor/qetelementeditor.h @@ -121,6 +121,7 @@ class QETElementEditor : public QETMainWindow { protected: void closeEvent(QCloseEvent *); + virtual void firstActivation(QEvent *); private: void setupActions(); diff --git a/sources/qetmainwindow.cpp b/sources/qetmainwindow.cpp index d49b330df..233dc0ae8 100644 --- a/sources/qetmainwindow.cpp +++ b/sources/qetmainwindow.cpp @@ -24,7 +24,8 @@ */ QETMainWindow::QETMainWindow(QWidget *widget, Qt::WindowFlags flags) : QMainWindow(widget, flags), - display_toolbars_(0) + display_toolbars_(0), + first_activation_(true) { initCommonActions(); initCommonMenus(); @@ -144,6 +145,15 @@ void QETMainWindow::checkToolbarsmenu() { bool QETMainWindow::event(QEvent *e) { if (e -> type() == QEvent::WindowStateChange) { updateFullScreenAction(); + } else if (first_activation_ && e -> type() == QEvent::WindowActivate) { + firstActivation(e); + first_activation_ = false; } return(QMainWindow::event(e)); } + +/** + Base implementation of firstActivation (does nothing). +*/ +void QETMainWindow::firstActivation(QEvent *) { +} diff --git a/sources/qetmainwindow.h b/sources/qetmainwindow.h index f6472aaa7..340ce5eaa 100644 --- a/sources/qetmainwindow.h +++ b/sources/qetmainwindow.h @@ -39,7 +39,8 @@ class QETMainWindow : public QMainWindow { QAction *actionForMenu(QMenu *); protected: - bool event(QEvent *); + virtual bool event(QEvent *); + virtual void firstActivation(QEvent *); // slots public slots: @@ -57,5 +58,6 @@ class QETMainWindow : public QMainWindow { QMenu *help_menu_; ///< Help menu QMenu *display_toolbars_; ///< Show/hide toolbars/docks QHash menu_actions_; ///< Store actions retrieved when inserting menus + bool first_activation_; ///< Used to detect whether the window is activated for the first time }; #endif diff --git a/sources/titleblock/qettemplateeditor.cpp b/sources/titleblock/qettemplateeditor.cpp index f6bde000e..4ecbbc68e 100644 --- a/sources/titleblock/qettemplateeditor.cpp +++ b/sources/titleblock/qettemplateeditor.cpp @@ -35,7 +35,6 @@ QETTitleBlockTemplateEditor::QETTitleBlockTemplateEditor(QWidget *parent) : opened_from_file_(false), read_only_(false), duplicate_(false), - first_activation_(true), tb_template_(0), logo_manager_(0) { @@ -108,15 +107,12 @@ bool QETTitleBlockTemplateEditor::canClose() { /** @param event Object describing the received event. */ -bool QETTitleBlockTemplateEditor::event(QEvent *event) { - if (first_activation_ && event -> type() == QEvent::WindowActivate) { - if (duplicate_ && !opened_from_file_ && location_.parentCollection()) { - // this editor is supposed to duplicate its current location - QTimer::singleShot(250, this, SLOT(duplicateCurrentLocation())); - } - first_activation_ = false; +void QETTitleBlockTemplateEditor::firstActivation(QEvent *event) { + Q_UNUSED(event) + if (duplicate_ && !opened_from_file_ && location_.parentCollection()) { + // this editor is supposed to duplicate its current location + QTimer::singleShot(250, this, SLOT(duplicateCurrentLocation())); } - return(QETMainWindow::event(event)); } /** diff --git a/sources/titleblock/qettemplateeditor.h b/sources/titleblock/qettemplateeditor.h index 60367886e..fd1557ea7 100644 --- a/sources/titleblock/qettemplateeditor.h +++ b/sources/titleblock/qettemplateeditor.h @@ -89,7 +89,7 @@ class QETTitleBlockTemplateEditor : public QETMainWindow { protected: bool canClose(); - bool event(QEvent *); + virtual void firstActivation(QEvent *); void closeEvent(QCloseEvent *); private: