Skip to content

Commit f8a6a12

Browse files
author
jantje
committed
reduce the number of changes to the boardedescriptor
1 parent 57f2688 commit f8a6a12

File tree

5 files changed

+12
-5
lines changed

5 files changed

+12
-5
lines changed

io.sloeber.core/src/io/sloeber/core/Activator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ private static void registerListeners() {
182182
CCorePlugin.getIndexManager().addIndexerStateListener(myindexerListener);
183183
CoreModel singCoreModel = CoreModel.getDefault();
184184
singCoreModel.addCProjectDescriptionListener(new ConfigurationChangeListener(),
185-
CProjectDescriptionEvent.ALL);
185+
CProjectDescriptionEvent.ABOUT_TO_APPLY);
186186
}
187187

188188
private static void initializeImportantVariables() {

io.sloeber.core/src/io/sloeber/core/api/SloeberProject.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,14 @@ private static void removeAllEraseEnvironmentVariables(IContributedEnvironment c
400400
* @param confDesc
401401
* @param boardDescription
402402
*/
403-
public void setBoardDescription(ICConfigurationDescription confDesc, BoardDescription boardDescription) {
403+
public void setBoardDescription(ICConfigurationDescription confDesc, BoardDescription boardDescription,
404+
boolean force) {
405+
if (!force) {
406+
BoardDescription curBoardDesc = myBoardDescriptions.get(confDesc.getId());
407+
if (boardDescription.equals(curBoardDesc)) {
408+
return;
409+
}
410+
}
404411
try {
405412
IProject project = confDesc.getProjectDescription().getProject();
406413
boolean isRebuildNeeded = true;

io.sloeber.core/src/io/sloeber/core/listeners/ConfigurationChangeListener.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void handleEvent(CProjectDescriptionEvent event) {
3737
ICProjectDescription newProjDesc = event.getNewCProjectDescription();
3838
ICConfigurationDescription newConf = newProjDesc.getActiveConfiguration();
3939
BoardDescription newBoardDescriptor = sloebberProject.getBoardDescription(newConf);
40-
sloebberProject.setBoardDescription(newConf, newBoardDescriptor);
40+
sloebberProject.setBoardDescription(newConf, newBoardDescriptor, false);
4141
break;
4242
}
4343
case CProjectDescriptionEvent.COPY_CREATED: {

io.sloeber.tests/src/io/sloeber/core/RegressionTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public void issue555() {
112112
}
113113
SloeberProject arduinoProject = SloeberProject.getSloeberProject(theTestProject);
114114
ICProjectDescription cProjectDescription = CCorePlugin.getDefault().getProjectDescription(theTestProject);
115-
arduinoProject.setBoardDescription(cProjectDescription.getActiveConfiguration(), teensyBoardid);
115+
arduinoProject.setBoardDescription(cProjectDescription.getActiveConfiguration(), teensyBoardid, true);
116116

117117
Shared.waitForAllJobsToFinish();
118118
try {

io.sloeber.ui/src/io/sloeber/ui/project/properties/BoardSelectionPage.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ private void doOK() {
401401
BoardDescription boardDesc = curEntry.getValue();
402402
try {
403403
if ((curConfDesc != null) && (boardDesc != null)) {
404-
sProject.setBoardDescription(curConfDesc, boardDesc);
404+
sProject.setBoardDescription(curConfDesc, boardDesc, true);
405405
} else {
406406
Activator.log(new Status(IStatus.ERROR, Activator.getId(), Messages.error_adding_arduino_code));
407407
}

0 commit comments

Comments
 (0)