Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .vscode_shared/CistemDev/workspace.code-workspace
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"folders": [
{
"path": "../"
"path": "/workspaces/cisTEM"
}
],
"settings": {
Expand Down
4 changes: 2 additions & 2 deletions regenerate_containers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ fi
# somewhere near vscode 1.98 the devcontainers extension stopped recognizing softlinks to .devcontainer.json
# this is acknowedged as a bug (https://github.com/microsoft/vscode-remote-release/issues/10536)
# As a workaround we create a softlink to .devcontainer.json in the current directory
mkdir -p .devcontainer.json
cd .devcontainer.json
mkdir -p .devcontainer
cd .devcontainer
if [[ ! -L .devcontainer.json ]] ; then
ln -s ../.vscode/devcontainer.json .devcontainer.json
fi
Expand Down
3 changes: 1 addition & 2 deletions scripts/containers/top_image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,7 @@ RUN if [[ "x${build_type}" != "xstatic" ]]; then echo "export LD_RUN_PATH=/opt/l
# RUN ls /usr/local/cuda/lib64/lib*_static.a | grep -v cufft_static.a | while read a; do rm -rf /usr/local/cuda/lib64/$(basename $a); done && \
# rm -rf /usr/local/cuda/lib64/libcufft_static_nocallback.a


RUN echo "set filename-display basename" > /home/cisTEMdev/.gdbinit

USER cisTEMdev
WORKDIR /home/cisTEMdev

32 changes: 23 additions & 9 deletions src/gui/MainFrame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ void MyMainFrame::ResetAllPanels( ) {
picking_results_panel->Clear( );
refine2d_results_panel->Clear( );
refinement_results_panel->Clear( );
match_template_results_panel->Clear( );

align_movies_panel->Reset( );
findctf_panel->Reset( );
Expand All @@ -285,7 +286,6 @@ void MyMainFrame::ResetAllPanels( ) {
generate_3d_panel->Reset( );
sharpen_3d_panel->Reset( );
match_template_panel->Reset( );
match_template_results_panel->Clear( );
refine_template_panel->Reset( );

DirtyEverything( );
Expand Down Expand Up @@ -338,9 +338,8 @@ void MyMainFrame::DirtyImageGroups( ) {
picking_results_panel->group_combo_is_dirty = true;

if ( current_workflow == "Template Matching" ) {
match_template_panel->group_combo_is_dirty = true;
match_template_results_panel->group_combo_is_dirty = true;
refine_template_panel->group_combo_is_dirty = true;
match_template_panel->group_combo_is_dirty = true;
refine_template_panel->group_combo_is_dirty = true;
}
}

Expand All @@ -366,10 +365,11 @@ void MyMainFrame::DirtyTemplateMatchesPackages( ) {
}

void MyMainFrame::DirtyRefinements( ) {
refine_3d_panel->input_params_combo_is_dirty = true;
refine_ctf_panel->input_params_combo_is_dirty = true;
refinement_results_panel->input_params_are_dirty = true;
generate_3d_panel->input_params_combo_is_dirty = true;
refine_3d_panel->input_params_combo_is_dirty = true;
refine_ctf_panel->input_params_combo_is_dirty = true;
refinement_results_panel->input_params_are_dirty = true;
generate_3d_panel->input_params_combo_is_dirty = true;
match_template_results_panel->group_combo_is_dirty = true;
}

void MyMainFrame::DirtyClassifications( ) {
Expand Down Expand Up @@ -695,8 +695,10 @@ void MyMainFrame::OpenProject(wxString project_filename) {
// current_project.database.AddCTFIcinessColumnIfNecessary();
my_dialog->Update(8, "Opening project (loading Match Template Results...)");

// If this is in the if block, then by default it will never get filled as we default to Single Particle
match_template_results_panel->FillBasedOnSelectCommand("SELECT DISTINCT IMAGE_ASSET_ID FROM TEMPLATE_MATCH_LIST");

if ( current_workflow == "Template Matching" ) {
match_template_results_panel->FillBasedOnSelectCommand("SELECT DISTINCT IMAGE_ASSET_ID FROM TEMPLATE_MATCH_LIST");
my_dialog->Update(9, "Opening project (loading atomic coordinates assets...)");
atomic_coordinates_asset_panel->ImportAllFromDatabase( );
my_dialog->Update(10, "Opening project (loading Template Matches Packages...)");
Expand Down Expand Up @@ -739,6 +741,12 @@ void MyMainFrame::OpenProject(wxString project_filename) {
}
else {
current_workflow = current_project.database.ReturnSingleStringFromSelectCommand("select CURRENT_WORKFLOW from MASTER_SETTINGS");

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Odd that this is not returning the proper string...I know I was checking with print logging at some point, but perhaps that was in a different part of the code.

// FIXME: this should never execute, but if somehow current_workflow is empty, log that it was and set a default.
// This is a bandaid on something that is otherwise broken (we aren't storing the workflow somewhere properly)
if ( current_workflow.IsEmpty( ) ) {
wxLogWarning("The current workflow returned empty from the database call; returning Single Particle as default to prevent errors.");
current_workflow = "Single Particle";
}
}
current_project.database.RecordCurrentWorkflowInDB(current_workflow);
SwitchWorkflowPanels(current_workflow);
Expand Down Expand Up @@ -978,6 +986,12 @@ void MyMainFrame::SwitchWorkflowPanels(const wxString& workflow_name) {
actions_panel->Layout( );
MenuBook->Layout( );
Layout( );

// After creating the new panels, ensure they have correct dirty state
if ( current_project.is_open ) {
DirtyEverything( ); // This will set all panels to dirty state
}

Thaw( );
}

Expand Down
2 changes: 0 additions & 2 deletions src/gui/MainFrame.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,6 @@ class MyMainFrame : public MainFrame, public SocketCommunicator, public UpdatePr
template <class FrameTypeFrom, class FrameTypeTo>
void UpdateWorkflow(FrameTypeFrom* input_frame, FrameTypeTo* output_frame, wxString frame_name);

void SetSingleParticleWorkflow(bool triggered_by_gui_event = false);
void SetTemplateMatchingWorkflow(bool triggered_by_gui_event = false);
void SwitchWorkflowPanels(const wxString& workflow_name);

inline void ManuallyUpdateWorkflowMenuCheckBox( ) {
Expand Down
2 changes: 1 addition & 1 deletion src/gui/workflows/SpaWorkflow.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ struct SpaWorkflowRegister {
actions_panel->ActionsBook->AddPage(generate_3d_panel, "Generate 3D", false, 8);
actions_panel->ActionsBook->AddPage(sharpen_3d_panel, "Sharpen 3D", false, 9);

return actions_panel;
return actions_panel;
};
// TODO: define a results panel function as well
WorkflowRegistry::Instance( ).RegisterWorkflow(def);
Expand Down
2 changes: 0 additions & 2 deletions src/gui/workflows/TmWorkflow.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ struct TmWorkflowRegister {
actions_panel = static_cast<ActionsPanelParent*>(actions_panel_tm);
align_movies_panel = new MyAlignMoviesPanel(actions_panel->ActionsBook);
findctf_panel = new MyFindCTFPanel(actions_panel->ActionsBook);
match_template_results_panel = new MatchTemplateResultsPanel(actions_panel->ActionsBook);
match_template_panel = new MatchTemplatePanel(actions_panel->ActionsBook);
refine_template_panel = new RefineTemplatePanel(actions_panel->ActionsBook);
generate_3d_panel = new Generate3DPanel(actions_panel->ActionsBook);
Expand All @@ -49,7 +48,6 @@ struct TmWorkflowRegister {
actions_panel->ActionsBook->AddPage(findctf_panel, "Find CTF", false, 1);
actions_panel->ActionsBook->AddPage(match_template_panel, "Match Templates", false, 2);
actions_panel->ActionsBook->AddPage(refine_template_panel, "Refine Template", false, 3);
actions_panel->ActionsBook->AddPage(match_template_results_panel, "MT Results", false, 2);
actions_panel->ActionsBook->AddPage(generate_3d_panel, "Generate 3D", false, 4);
actions_panel->ActionsBook->AddPage(sharpen_3d_panel, "Sharpen 3D", false, 5);

Expand Down
24 changes: 13 additions & 11 deletions src/programs/projectx/projectx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ RefineCTFPanel* refine_ctf_panel;
Generate3DPanel* generate_3d_panel;
Sharpen3DPanel* sharpen_3d_panel;

MyOverviewPanel* overview_panel;
ActionsPanelParent* actions_panel;
MyOverviewPanel* overview_panel;
ActionsPanelParent* actions_panel;
AssetsPanel* assets_panel;
MyResultsPanel* results_panel;
SettingsPanel* settings_panel;
Expand Down Expand Up @@ -141,17 +141,18 @@ bool MyGuiApp::OnInit( ) {

refinement_package_asset_panel = new MyRefinementPackageAssetPanel(assets_panel->AssetsBook);

// See src/gui/workflows/SpaWorkflow.h for instantiation of the SPA workflow panels
// See src/gui/workflows/SpaWorkflow.h for instantiation of the SPA workflow panels

actions_panel = static_cast<ActionsPanelParent*>(WorkflowRegistry::Instance( ).CreateActionsPanel("Single Particle", main_frame->MenuBook));

movie_results_panel = new MyMovieAlignResultsPanel(results_panel->ResultsBook);
ctf_results_panel = new MyFindCTFResultsPanel(results_panel->ResultsBook);
picking_results_panel = new MyPickingResultsPanel(results_panel->ResultsBook);
refine2d_results_panel = new Refine2DResultsPanel(results_panel->ResultsBook);
refinement_results_panel = new MyRefinementResultsPanel(results_panel->ResultsBook);
movie_results_panel = new MyMovieAlignResultsPanel(results_panel->ResultsBook);
ctf_results_panel = new MyFindCTFResultsPanel(results_panel->ResultsBook);
picking_results_panel = new MyPickingResultsPanel(results_panel->ResultsBook);
refine2d_results_panel = new Refine2DResultsPanel(results_panel->ResultsBook);
refinement_results_panel = new MyRefinementResultsPanel(results_panel->ResultsBook);
match_template_results_panel = new MatchTemplateResultsPanel(results_panel->ResultsBook);

// See src/gui/workflows/TmWorkflow.h for instantiation of Template Matching workflow panels.
// See src/gui/workflows/TmWorkflow.h for instantiation of Template Matching workflow panels.

#ifdef EXPERIMENTAL
refine_template_dev_panel = new RefineTemplateDevPanel(experimental_panel->ExperimentalBook);
Expand Down Expand Up @@ -230,7 +231,7 @@ bool MyGuiApp::OnInit( ) {

SettingsBookIconImages->Add(run_profiles_icon_bmp);

// See src/gui/workflows headers for assignment of wxImageList to Actions Panel
// See src/gui/workflows headers for assignment of wxImageList to Actions Panel
main_frame->MenuBook->AssignImageList(MenuBookIconImages);
assets_panel->AssetsBook->AssignImageList(AssetsBookIconImages);
results_panel->ResultsBook->AssignImageList(ResultsBookIconImages);
Expand Down Expand Up @@ -259,13 +260,14 @@ bool MyGuiApp::OnInit( ) {
assets_panel->AssetsBook->AddPage(volume_asset_panel, "3D Volumes", false, 3);
assets_panel->AssetsBook->AddPage(refinement_package_asset_panel, "Refine Pkgs.", false, 4);
assets_panel->AssetsBook->AddPage(atomic_coordinates_asset_panel, "Atomic Coordinates", false, 5);
assets_panel->AssetsBook->AddPage(template_matches_package_asset_panel, "MT Pkgs.", false, 4);
assets_panel->AssetsBook->AddPage(template_matches_package_asset_panel, "TM Pkgs.", false, 4); // re-using icon FIXME

results_panel->ResultsBook->AddPage(movie_results_panel, "Align Movies", true, 0);
results_panel->ResultsBook->AddPage(ctf_results_panel, "Find CTF", false, 1);
results_panel->ResultsBook->AddPage(picking_results_panel, "Find Particles", false, 2);
results_panel->ResultsBook->AddPage(refine2d_results_panel, "2D Classify", false, 3);
results_panel->ResultsBook->AddPage(refinement_results_panel, "3D Refinement", false, 4);
results_panel->ResultsBook->AddPage(match_template_results_panel, "TM Results", false, 2); // re-using icon FIXME

settings_panel->SettingsBook->AddPage(run_profiles_panel, "Run Profiles", true, 0);

Expand Down
Loading