[fwbuilder-commits] [SCM] Firewall Builder GUI and Policy Compilers Open Source Code branch, develo
Brought to you by:
mikehorn
From: <gi...@ir...> - 2011-01-28 06:00:37
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Firewall Builder GUI and Policy Compilers Open Source Code". The branch, development has been updated via 67c486194a2cd575b50ee52ea87bd7f3e8fa80a4 (commit) from 2d2267222b1e050e88e8c51b9253f20a3cc53f0f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 67c486194a2cd575b50ee52ea87bd7f3e8fa80a4 Author: Vadim Kurland <va...@sl...> Date: Thu Jan 27 22:00:22 2011 -0800 see #1998 : closing editor panel when user closes project panel, it seems gui crashes on mac only if editor panel is open at the time when user coses project panel diff --git a/src/libgui/FWWindow.cpp b/src/libgui/FWWindow.cpp index c560a9d..f8bae3b 100644 --- a/src/libgui/FWWindow.cpp +++ b/src/libgui/FWWindow.cpp @@ -1321,16 +1321,20 @@ bool FWWindow::event(QEvent *event) ev->accept(); return true; } + + case CLOSE_EDITOR_PANEL_EVENT: + { + hideEditor(); + ev->accept(); + return true; + } + } // dispatch event to all projectpanel windows foreach(QMdiSubWindow* sw, m_mainWindow->m_space->subWindowList()) QCoreApplication::sendEvent(sw->widget(), event); - // QList<QMdiSubWindow*> subWindowList = m_mainWindow->m_space->subWindowList(); - // for (int i = 0 ; i < subWindowList.size(); i++) - // QCoreApplication::sendEvent(subWindowList[i]->widget(), event); - event->accept(); return true; } diff --git a/src/libgui/FWWindow_editor.cpp b/src/libgui/FWWindow_editor.cpp index 8da5920..92df44e 100644 --- a/src/libgui/FWWindow_editor.cpp +++ b/src/libgui/FWWindow_editor.cpp @@ -76,6 +76,10 @@ void FWWindow::editorPanelTabChanged(int idx) } } +/***************************************************************** + * there are too many functions that open, close and hide editor panel. + * TODO: need to get rid of redundant ones + */ void FWWindow::showEditor() { m_mainWindow->objectEditorStack->setCurrentIndex(oe->getCurrentDialogIndex()); @@ -93,6 +97,15 @@ void FWWindow::closeEditor() m_mainWindow->editorDockWidget->close(); // editor } +void FWWindow::closeEditorPanel() +{ + m_mainWindow->editorDockWidget->hide(); // editor +} + +void FWWindow::openEditorPanel() +{ +} + void FWWindow::openEditor(FWObject *obj) { attachEditorToProjectPanel(activeProject()); @@ -256,15 +269,6 @@ ObjectEditor::OptType FWWindow::getOpenedOptEditor() return oe->getOpenedOpt(); } -void FWWindow::closeEditorPanel() -{ - m_mainWindow->editorDockWidget->hide(); // editor -} - -void FWWindow::openEditorPanel() -{ -} - void FWWindow::findObject(FWObject *o) { if (activeProject()) diff --git a/src/libgui/ProjectPanel.cpp b/src/libgui/ProjectPanel.cpp index 3148471..93a7cbc 100644 --- a/src/libgui/ProjectPanel.cpp +++ b/src/libgui/ProjectPanel.cpp @@ -1058,11 +1058,6 @@ void ProjectPanel::hideEvent(QHideEvent *ev) if (fwbdebug) qDebug() << "ProjectPanel::hideEvent " << this << "title " << mdiWindow->windowTitle(); - disconnect(m_panel->treeDockWidget, SIGNAL(topLevelChanged(bool)), - this, SLOT(topLevelChangedForTreePanel(bool))); - disconnect(m_panel->treeDockWidget, SIGNAL(visibilityChanged(bool)), - this, SLOT(visibilityChangedForTreePanel(bool))); - QWidget::hideEvent(ev); } @@ -1077,11 +1072,18 @@ void ProjectPanel::closeEvent(QCloseEvent * ev) return; } + disconnect(m_panel->treeDockWidget, SIGNAL(topLevelChanged(bool)), + this, SLOT(topLevelChangedForTreePanel(bool))); + disconnect(m_panel->treeDockWidget, SIGNAL(visibilityChanged(bool)), + this, SLOT(visibilityChangedForTreePanel(bool))); + saveState(); fileClose(); mw->updateWindowTitle(); + QCoreApplication::postEvent(mw, new closeEditorPanelEvent()); + QTimer::singleShot( 0, mw, SLOT(projectWindowClosed()) ); } diff --git a/src/libgui/events.h b/src/libgui/events.h index 996ad5d..e7ecead 100644 --- a/src/libgui/events.h +++ b/src/libgui/events.h @@ -67,7 +67,8 @@ enum EVENT_CODES { OPEN_LIBRARY_FOR_OBJECT_EVENT, UPDATE_SUBWINDOW_TITLES_EVENT, UPDATE_GUI_STATE_EVENT, - EXPAND_OBJECT_IN_TREE + EXPAND_OBJECT_IN_TREE, + CLOSE_EDITOR_PANEL_EVENT , }; @@ -373,7 +374,6 @@ public: {} }; - class expandObjectInTreeEvent : public fwbUpdateEvent { public: int parent_id; @@ -384,4 +384,13 @@ public: {} }; +class closeEditorPanelEvent : public fwbUpdateEvent { +public: + closeEditorPanelEvent() : + fwbUpdateEvent("", -1, + QEvent::Type(QEvent::User + CLOSE_EDITOR_PANEL_EVENT), + "closeEditorPanelEvent") + {} +}; + #endif ----------------------------------------------------------------------- Summary of changes: src/libgui/FWWindow.cpp | 12 ++++++++---- src/libgui/FWWindow_editor.cpp | 22 +++++++++++++--------- src/libgui/ProjectPanel.cpp | 12 +++++++----- src/libgui/events.h | 13 +++++++++++-- 4 files changed, 39 insertions(+), 20 deletions(-) hooks/post-receive -- Firewall Builder GUI and Policy Compilers Open Source Code |