Fixed auto-loading when deleting a profile

This commit is contained in:
huangyuhui
2016-03-12 11:57:30 +08:00
parent e7d0624b96
commit cafcf458b8
3 changed files with 13 additions and 7 deletions

View File

@@ -46,7 +46,7 @@ public final class Profile {
} }
public Profile(String name) { public Profile(String name) {
this(name, IOUtils.currentDir().getPath()); this(name, new File(IOUtils.currentDir(), ".minecraft").getPath());
} }
public Profile(String name, String gameDir) { public Profile(String name, String gameDir) {

View File

@@ -58,8 +58,6 @@ public final class Settings {
DownloadType.setSuggestedDownloadType(SETTINGS.getDownloadSource()); DownloadType.setSuggestedDownloadType(SETTINGS.getDownloadSource());
if (!getProfiles().containsKey(DEFAULT_PROFILE)) if (!getProfiles().containsKey(DEFAULT_PROFILE))
getProfiles().put(DEFAULT_PROFILE, new Profile(DEFAULT_PROFILE)); getProfiles().put(DEFAULT_PROFILE, new Profile(DEFAULT_PROFILE));
if (!getProfiles().containsKey(HOME_PROFILE))
getProfiles().put(HOME_PROFILE, new Profile(HOME_PROFILE, MCUtils.getLocation().getPath()));
for (Map.Entry<String, Profile> entry : getProfiles().entrySet()) { for (Map.Entry<String, Profile> entry : getProfiles().entrySet()) {
Profile e = entry.getValue(); Profile e = entry.getValue();
@@ -85,8 +83,11 @@ public final class Settings {
} catch (IOException | JsonSyntaxException e) { } catch (IOException | JsonSyntaxException e) {
HMCLog.warn("Something happened wrongly when load settings.", e); HMCLog.warn("Something happened wrongly when load settings.", e);
} }
else else {
HMCLog.log("No settings file here, may be first loading."); HMCLog.log("No settings file here, may be first loading.");
if (!c.getConfigurations().containsKey(HOME_PROFILE))
c.getConfigurations().put(HOME_PROFILE, new Profile(HOME_PROFILE, MCUtils.getLocation().getPath()));
}
return c; return c;
} }
@@ -154,7 +155,13 @@ public final class Settings {
MessageBox.Show(C.i18n("settings.cannot_remove_default_config")); MessageBox.Show(C.i18n("settings.cannot_remove_default_config"));
return false; return false;
} }
return getProfiles().remove(ver) != null; boolean notify = false;
if (getLastProfile().getName().equals(ver))
notify = true;
boolean flag = getProfiles().remove(ver) != null;
if (notify && flag)
onProfileChanged();
return flag;
} }
public static final EventHandler<Profile> profileChangedEvent = new EventHandler(null); public static final EventHandler<Profile> profileChangedEvent = new EventHandler(null);

View File

@@ -949,8 +949,7 @@ public final class GameSettingsPanel extends AnimatedPanel implements DropTarget
private void btnRemoveProfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveProfileActionPerformed private void btnRemoveProfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveProfileActionPerformed
if (MessageBox.Show(C.i18n("ui.message.sure_remove", Settings.getLastProfile().getName()), MessageBox.YES_NO_OPTION) == MessageBox.NO_OPTION) if (MessageBox.Show(C.i18n("ui.message.sure_remove", Settings.getLastProfile().getName()), MessageBox.YES_NO_OPTION) == MessageBox.NO_OPTION)
return; return;
if (Settings.delProfile(Settings.getLastProfile())) Settings.delProfile(Settings.getLastProfile());
loadProfiles();
}//GEN-LAST:event_btnRemoveProfileActionPerformed }//GEN-LAST:event_btnRemoveProfileActionPerformed
private void cboVersionsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboVersionsItemStateChanged private void cboVersionsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboVersionsItemStateChanged