2323import java .util .List ;
2424
2525import de .doubleslash .keeptime .model .settings .HeimatSettings ;
26+ import javafx .scene .paint .Color ;
2627import org .slf4j .Logger ;
2728import org .slf4j .LoggerFactory ;
2829import org .springframework .stereotype .Service ;
@@ -122,47 +123,60 @@ public void addNewProject(final Project project) {
122123 model .getProjectRepository ().saveAll (changedProjects );
123124 }
124125
125- public void updateHeimatSettings (final boolean active , String url , String pat ){
126- heimatSettings .setHeimatActive (active );
127- heimatSettings .setHeimatUrl (url );
128- heimatSettings .setHeimatPat (pat );
129- heimatSettings .save ();
130- }
131-
132- public void updateSettings (final Settings newValuedSettings ) {
133- settings .setTaskBarColor (newValuedSettings .getTaskBarColor ());
134- settings .setDefaultBackgroundColor (newValuedSettings .getDefaultBackgroundColor ());
135- settings .setDefaultFontColor (newValuedSettings .getDefaultFontColor ());
136- settings .setHoverBackgroundColor (newValuedSettings .getHoverBackgroundColor ());
137- settings .setHoverFontColor (newValuedSettings .getHoverFontColor ());
138- settings .setUseHotkey (newValuedSettings .isUseHotkey ());
139- settings .setDisplayProjectsRight (newValuedSettings .isDisplayProjectsRight ());
140- settings .setHideProjectsOnMouseExit (newValuedSettings .isHideProjectsOnMouseExit ());
141- settings .setSaveWindowPosition (newValuedSettings .isSaveWindowPosition ());
142- settings .setWindowXProportion (newValuedSettings .getWindowXProportion ());
143- settings .setWindowYProportion (newValuedSettings .getWindowYProportion ());
144- settings .setScreenHash (newValuedSettings .getScreenHash ());
145- settings .setRemindIfNotesAreEmpty (newValuedSettings .isRemindIfNotesAreEmpty ());
146- settings .setRemindIfNotesAreEmptyOnlyForWorkEntry (newValuedSettings .isRemindIfNotesAreEmptyOnlyForWorkEntry ());
147- settings .setConfirmClose (newValuedSettings .isConfirmClose ());
126+
127+ public void updateColorSettings (final Color hoverBackgroundColor ,final Color hoverFontColor ,final Color defaultBackgroundColor ,final Color defaultFontColor ,final Color taskBarColor ) {
128+ settings .setTaskBarColor (taskBarColor );
129+ settings .setDefaultBackgroundColor (defaultBackgroundColor );
130+ settings .setDefaultFontColor (defaultFontColor );
131+ settings .setHoverBackgroundColor (hoverBackgroundColor );
132+ settings .setHoverFontColor (hoverFontColor );
133+ settings .save ();
148134
149135 model .defaultBackgroundColor .set (settings .getDefaultBackgroundColor ());
150136 model .defaultFontColor .set (settings .getDefaultFontColor ());
151137 model .hoverBackgroundColor .set (settings .getHoverBackgroundColor ());
152138 model .hoverFontColor .set (settings .getHoverFontColor ());
153139 model .taskBarColor .set (settings .getTaskBarColor ());
154- model .useHotkey .set (settings .isUseHotkey ());
140+ }
141+
142+ public void updateLayoutSettings (final boolean displayProjectsRight ,final boolean hideProjectsOnMouseExit ,final double proportionalX ,final double proportionalY ,final int screenHash ,final boolean saveWindowPosition ) {
143+ settings .setDisplayProjectsRight (displayProjectsRight );
144+ settings .setHideProjectsOnMouseExit (hideProjectsOnMouseExit );
145+ settings .setSaveWindowPosition (saveWindowPosition );
146+ settings .setWindowXProportion (proportionalX );
147+ settings .setWindowYProportion (proportionalY );
148+ settings .setScreenHash (screenHash );
149+ settings .save ();
150+
155151 model .displayProjectsRight .set (settings .isDisplayProjectsRight ());
156152 model .hideProjectsOnMouseExit .set (settings .isHideProjectsOnMouseExit ());
157153 model .screenSettings .saveWindowPosition .set (settings .isSaveWindowPosition ());
158154 model .screenSettings .proportionalX .set (settings .getWindowXProportion ());
159155 model .screenSettings .proportionalY .set (settings .getWindowYProportion ());
160156 model .screenSettings .screenHash .set (settings .getScreenHash ());
157+ }
158+
159+ public void updateFeatureSettings (final boolean useHotkey ,final boolean emptyNoteReminder ,final boolean emptyNoteReminderOnlyForWorkEntry ,final boolean confirmClose ) {
160+ settings .setUseHotkey (useHotkey );
161+ settings .setRemindIfNotesAreEmpty (emptyNoteReminder );
162+ settings .setRemindIfNotesAreEmptyOnlyForWorkEntry (emptyNoteReminderOnlyForWorkEntry );
163+ settings .setConfirmClose (confirmClose );
164+ settings .save ();
165+
166+ model .useHotkey .set (settings .isUseHotkey ());
161167 model .remindIfNotesAreEmpty .set (settings .isRemindIfNotesAreEmpty ());
162168 model .remindIfNotesAreEmptyOnlyForWorkEntry .set (settings .isRemindIfNotesAreEmptyOnlyForWorkEntry ());
163169 model .confirmClose .set (settings .isConfirmClose ());
164170 }
165171
172+
173+ public void updateHeimatSettings (final boolean active , final String url , final String pat ){
174+ heimatSettings .setHeimatActive (active );
175+ heimatSettings .setHeimatUrl (url );
176+ heimatSettings .setHeimatPat (pat );
177+ heimatSettings .save ();
178+ }
179+
166180 @ PreDestroy
167181 public void shutdown () {
168182 LOG .info ("Controller shutdown" );
@@ -171,14 +185,11 @@ public void shutdown() {
171185 changeProject (model .getIdleProject (), 0 );
172186
173187 LOG .info ("Updating settings to persist local changes on shutdown." );
174- /*final Settings newSettings = new Settings(model.hoverBackgroundColor.get(), model.hoverFontColor.get(),
175- model.defaultBackgroundColor.get(), model.defaultFontColor.get(), model.taskBarColor.get(),
176- model.useHotkey.get(), model.displayProjectsRight.get(), model.hideProjectsOnMouseExit.get(),
177- model.screenSettings.proportionalX.get(), model.screenSettings.proportionalY.get(),
178- model.screenSettings.screenHash.get(), model.screenSettings.saveWindowPosition.get(),
179- model.remindIfNotesAreEmpty.get(), model.remindIfNotesAreEmptyOnlyForWorkEntry.get(),
180- model.confirmClose.get());
181- updateSettings(newSettings);*/
188+ // these are changed while dragging the windows - not via Settings-Dialog. Therefore, we need to save them separately.
189+ settings .setScreenHash (model .screenSettings .screenHash .get ());
190+ settings .setWindowXProportion (model .screenSettings .proportionalX .get ());
191+ settings .setWindowYProportion (model .screenSettings .proportionalY .get ());
192+ settings .save ();
182193 }
183194
184195 public void deleteProject (final Project p ) {
@@ -366,4 +377,6 @@ public long calcSeconds(final List<Work> workItems) {
366377
367378 return seconds ;
368379 }
380+
381+
369382}
0 commit comments