bool NotifySelect(DropBox dropBox, DataRow row, Modifiers mods)
{
if(row)
- {
- for(prj : ide.workspace.projects)
- {
- for(cfg : prj.configurations)
- {
- if(cfg.name && !strcmp(cfg.name, row.string))
- {
- prj.config = cfg;
- break;
- }
- }
- }
- ide.UpdateToolBarActiveConfigs(true);
- ide.projectView.Update(null);
- }
+ ide.workspace.SelectActiveConfig(row.string);
return true;
}
};
}
}
- void RotateActiveConfig(bool forward)
+ void RotateActiveConfig(bool forward, bool syncAllProjects)
{
if(configurations.first && configurations.last != configurations.first)
{
cfg.Prev();
}
- property::config = cfg.data;
- ide.UpdateToolBarActiveConfigs(true);
- ide.workspace.modified = true;
- ide.projectView.Update(null);
+ if(syncAllProjects)
+ ide.workspace.SelectActiveConfig(cfg.data.name);
+ else
+ {
+ property::config = cfg.data;
+ ide.UpdateToolBarActiveConfigs(true);
+ ide.workspace.modified = true;
+ ide.projectView.Update(null);
+ }
}
}
}
break;
}
- case Key { space, shift = true }:
+ case Key { space, false, true }:
+ case Key { space, true, true }:
+ case Key { space, true }:
case space:
{
if(node.type == NodeTypes::project)
break;
}
}
- prj.RotateActiveConfig(!key.shift);
+ prj.RotateActiveConfig(!key.shift, key.ctrl);
if(prj == project)
ide.AdjustMenus();
return false;
delete project;
}
+ void SelectActiveConfig(char * configName)
+ {
+ bool change = false;
+ for(prj : ide.workspace.projects)
+ {
+ for(cfg : prj.configurations)
+ {
+ if(cfg.name && !strcmp(cfg.name, configName))
+ {
+ prj.config = cfg;
+ change = true;
+ break;
+ }
+ }
+ }
+ if(change)
+ {
+ modified = true;
+ ide.UpdateToolBarActiveConfigs(true);
+ ide.projectView.Update(null);
+ Save();
+ }
+ }
+
bool FindPath(ProjectNode node, char * path)
{
if(node.type == file)