Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

Workspace loading and Active Project

<< < (2/5) > >>

daniloz:

--- Quote from: jens on October 27, 2011, 04:23:38 pm ---
--- Quote from: MortenMacFly on October 27, 2011, 04:15:01 pm ---However, you can use the project activated event.

If you really need an event for the case "workspace completely loaded", provide a patch accordingly. It should be really simple to implement. Create an event in sdk_events{.cpp/.h} and instrument the method "ProjectManager::LoadWorkspace" accordingly.

--- End quote ---
If I see it right, cbEVT_WORKSPACE_CHANGED is send from EndLoadingWorkspace().

--- End quote ---

I bumped into this event, but I thought that it was related to changes done to the Workspace, like projects added or removed, rather than Finishing Loading. So maybe  that's what I'm looking for...

Btw, I assume that changing the name of this event to avoid future confusion (to something like cbEVT_WORKSPACE_OPEN) is out of question due to APU compatibility issues, right?  :oops:

Jenna:
I just looked into the events with my DisplayEvents-plugin, and I see it being triggered.
Here is a snippet of the log, if a workspace with two projects is loaded, each project has several targets (win, linux, debug, release ...)
No files are opened.

--- Code: ---16:29:19,888  =>  cbEVT_APP_ACTIVATED
16:29:19,891  =>  cbEVT_EDITOR_SWITCHED
16:29:19,891  =>  cbEVT_EDITOR_ACTIVATED
16:29:21,481  =>  cbEVT_WORKSPACE_CHANGED
16:29:21,507  =>  cbEVT_EDITOR_CLOSE
Loading workspace "/home/jens/src/src/SPS_Log.workspace"
Loading project file...
Parsing project file...
16:29:21,512  =>  cbEVT_PROJECT_RENAMED
16:29:21,512  =>  cbEVT_PROJECT_TARGETS_MODIFIED
16:29:21,513  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,513  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target Debug
16:29:21,513  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,514  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target Release
16:29:21,516  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,516  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target WinRelease
16:29:21,517  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,517  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target WinDebug
16:29:21,518  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,518  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target Release gcc-4.4
16:29:21,518  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,519  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target clang++ Debug
Loading project files...
16:29:21,519  =>  cbEVT_PROJECT_BEGIN_ADD_FILES
16:29:21,520  =>  cbEVT_PROJECT_END_ADD_FILES
2 files loaded
Done loading project in 10ms
Project's base path: /home/jens/src/src/libbeckhoff/
Project's common toplevel path: /home/jens/src/src/libbeckhoff/
16:29:21,522  =>  cbEVT_BUILDTARGET_SELECTED
Loading project file...
Parsing project file...
16:29:21,524  =>  cbEVT_PROJECT_RENAMED
16:29:21,525  =>  cbEVT_PROJECT_TARGETS_MODIFIED
16:29:21,525  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,525  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target Debug
16:29:21,526  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,526  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target Release
16:29:21,526  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,527  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target WinRelease
16:29:21,527  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,527  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target WinDebug
16:29:21,528  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,528  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target Release gcc-4.4
16:29:21,529  =>  cbEVT_BUILDTARGET_ADDED
16:29:21,529  =>  cbEVT_PROJECT_TARGETS_MODIFIED
Loading target clang++ Debug
Loading project files...
16:29:21,530  =>  cbEVT_PROJECT_BEGIN_ADD_FILES
16:29:21,531  =>  cbEVT_PROJECT_END_ADD_FILES
13 files loaded
Done loading project in 9ms
Project's base path: /home/jens/src/src/
Project's common toplevel path: /home/jens/src/src/
16:29:21,533  =>  cbEVT_BUILDTARGET_SELECTED
SPS_Log now depends on libbeckhoff (1 deps)
16:29:21,538  =>  cbEVT_PROJECT_ACTIVATE
16:29:21,539  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,541  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,541  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,542  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,542  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,548  =>  cbEVT_PROJECT_OPEN
16:29:21,548  =>  cbEVT_PROJECT_OPEN
16:29:21,549  =>  cbEVT_WORKSPACE_CHANGED
Passing list of files to batch-parser.
Header to parse with priority: '/usr/include/c++/4.6/cstddef'
Header to parse with priority: '/usr/include/wx-2.8/wx/defs.h'
Header to parse with priority: '/usr/include/wx-2.8/wx/dlimpexp.h'
Header to parse with priority: '/usr/include/wx-2.8/wx/toplevel.h'
Header to parse with priority: '/usr/include/boost/config.hpp'
Header to parse with priority: '/usr/include/boost/filesystem/config.hpp'
Add 6 priority parsing file(s) for project 'SPS_Log'...
Added 9 file(s) for project 'SPS_Log' to batch-parser...
Create new parser for project 'SPS_Log'
Starting batch parsing for project 'SPS_Log'...
Project 'SPS_Log' parsing stage done!
Project 'SPS_Log' parsing stage done (512 total parsed files, 26463 tokens in 0 minute(s), 2.260 seconds).
Updating class browser...
Class browser updated.
16:29:24,607  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:24,609  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:24,610  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:24,610  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:24,611  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:24,612  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
Add project (libbeckhoff) to parser
Done adding 1 files of project (libbeckhoff) to parser.
Add next project to parser.
Starting batch parsing for project 'libbeckhoff'...
Project 'libbeckhoff' parsing stage done!
Project 'libbeckhoff' parsing stage done (513 total parsed files, 26463 tokens in 0 minute(s), 0.021 seconds).
Updating class browser...
Class browser updated.

--- End code ---

daniloz:

--- Quote from: jens on October 27, 2011, 04:34:33 pm ---I just looked into the events with my DisplayEvents-plugin, and I see it being triggered.

--- End quote ---

Ok, but the interesting part from your log is:

--- Code: ---16:29:21,538  =>  cbEVT_PROJECT_ACTIVATE
16:29:21,539  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,541  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,541  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,542  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,542  =>  cbEVT_COMPILER_SET_BUILD_OPTIONS
16:29:21,548  =>  cbEVT_PROJECT_OPEN
16:29:21,548  =>  cbEVT_PROJECT_OPEN
16:29:21,549  =>  cbEVT_WORKSPACE_CHANGED

--- End code ---

It shows that the cbEVT_PROJECT_ACTIVATE event is triggered *before* both cbEVT_PROJECT_OPEN events. That's what I was referring to. I was expecting it to be triggered *after* ALL projects have been loaded.

But, I see that I can use the cbEVT_WORKSPACE_CHANGED, as expected.

MortenMacFly:

--- Quote from: daniloz on October 27, 2011, 04:43:07 pm ---But, I see that I can use the cbEVT_WORKSPACE_CHANGED, as expected.

--- End quote ---
Didn't digged deeper into it, but if this event is really only thrown if the WS is loaded we should consider renaming it, indeed. I would have thought that this event is also triggered in case I change WS settings, like project dependencies.

daniloz:

--- Quote from: MortenMacFly on October 27, 2011, 04:57:18 pm ---
--- Quote from: daniloz on October 27, 2011, 04:43:07 pm ---But, I see that I can use the cbEVT_WORKSPACE_CHANGED, as expected.

--- End quote ---
Didn't digged deeper into it, but if this event is really only thrown if the WS is loaded we should consider renaming it, indeed. I would have thought that this event is also triggered in case I change WS settings, like project dependencies.

--- End quote ---

Ok, I haven't dug into it neither, so I'm also not sure....

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version