Move the recompute dialog to after Gui opens instead of per document signal.

This commit is contained in:
bgbsww
2024-09-18 15:42:34 -04:00
committed by Chris Hennes
parent 81d3690397
commit 85082b72d4
3 changed files with 6 additions and 7 deletions

View File

@@ -378,8 +378,6 @@ Application::Application(bool GUIenabled)
std::bind(&Gui::Application::slotRelabelDocument, this, sp::_1));
App::GetApplication().signalShowHidden.connect(
std::bind(&Gui::Application::slotShowHidden, this, sp::_1));
App::GetApplication().signalFinishRestoreDocument.connect(
std::bind(&Gui::Application::slotFinishRestoreDocument, this, sp::_1));
// NOLINTEND
// install the last active language
ParameterGrp::handle hPGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp");
@@ -634,6 +632,7 @@ void Application::open(const char* FileName, const char* Module)
Command::doCommand(Command::App,
"FreeCAD.openDocument('%s')",
unicodepath.c_str());
Gui::Application::checkForRecomputes();
}
}
else {
@@ -979,8 +978,7 @@ void Application::slotShowHidden(const App::Document& Doc)
signalShowHidden(*doc->second);
}
void Application::slotFinishRestoreDocument([[maybe_unused]] const App::Document& Doc) {
// Quietly gnore the doc parameter and check across all documents.
void Application::checkForRecomputes() {
std::vector<App::Document *> docs;
for (auto doc: App::GetApplication().getDocuments()) {
if (doc->testStatus(App::Document::RecomputeOnRestore)) {

View File

@@ -74,6 +74,8 @@ public:
void exportTo(const char* FileName, const char* DocName, const char* Module);
/// Reload a partial opened document
App::Document *reopen(App::Document *doc);
/// Prompt about recomputing if needed
static void checkForRecomputes();
//@}
@@ -131,8 +133,6 @@ public:
boost::signals2::signal<void ()> signalRefreshWorkbenches;
/// signal on show hidden items
boost::signals2::signal<void (const Gui::Document&)> signalShowHidden;
/// signal on document restore complete
boost::signals2::signal<void (const Gui::Document&)> signalFinishRestoreDocument;
/// signal on activating view
boost::signals2::signal<void (const Gui::MDIView*)> signalActivateView;
/// signal on entering in edit mode
@@ -153,7 +153,6 @@ protected:
void slotRenameDocument(const App::Document&);
void slotActiveDocument(const App::Document&);
void slotShowHidden(const App::Document&);
void slotFinishRestoreDocument(const App::Document&);
void slotNewObject(const ViewProvider&);
void slotDeletedObject(const ViewProvider&);
void slotChangedObject(const ViewProvider&, const App::Property& Prop);

View File

@@ -360,6 +360,7 @@ void StartView::openExistingFile() const
{
auto originalDocument = Gui::Application::Instance->activeDocument();
Gui::Application::Instance->commandManager().runCommandByName("Std_Open");
Gui::Application::checkForRecomputes();
if (Gui::Application::Instance->activeDocument() != originalDocument) {
// Only run this if the user chose a new document to open (that is, they didn't cancel the
// open file dialog)
@@ -436,6 +437,7 @@ void StartView::fileCardSelected(const QModelIndex& index)
auto command = std::string("FreeCAD.loadFile('") + escapedstr + "')";
try {
Base::Interpreter().runString(command.c_str());
Gui::Application::checkForRecomputes();
postStart(PostStartBehavior::doNotSwitchWorkbench);
}
catch (Base::PyException& e) {