@@ -11,7 +11,7 @@ const settings = require('electron-settings');
11
11
const menus = require ( './menus' ) ;
12
12
13
13
const ELECTRON_VERSION = process . versions . electron ;
14
- const APP_NAME = app . getName ( ) ;
14
+ const APP_NAME = app . name ;
15
15
const APP_VERSION = app . getVersion ( ) ;
16
16
const APP_DESCRIPTION = 'Unofficial Basecamp GNU/Linux Desktop Client.' ;
17
17
const BASECAMP_URL = 'https://launchpad.37signals.com' ;
@@ -30,24 +30,25 @@ let unreadsNotified = false;
30
30
*/
31
31
const basecamp = {
32
32
buildApp ( url ) {
33
- basecamp . createWindow ( url ) ;
34
- basecamp . addAppMenu ( ) ;
35
- basecamp . addContextMenu ( ) ;
36
- basecamp . addTrayIcon ( ) ;
37
- basecamp . setIcons ( ) ;
33
+ this . createWindow ( url ) ;
34
+ this . addAppMenu ( ) ;
35
+ this . addContextMenu ( ) ;
36
+ this . addTrayIcon ( ) ;
37
+ this . setIcons ( ) ;
38
+ this . addWindowEvents ( ) ;
38
39
} ,
39
40
40
41
/**
41
42
* Creates the app window.
42
43
*/
43
44
createWindow ( url ) {
44
45
win = new BrowserWindow ( {
45
- y : settings . get ( 'posY' , 0 ) ,
46
- x : settings . get ( 'posX' , 0 ) ,
47
- width : settings . get ( 'width' , 770 ) ,
48
- height : settings . get ( 'height' , 700 ) ,
46
+ y : settings . getSync ( 'posY' , 0 ) ,
47
+ x : settings . getSync ( 'posX' , 0 ) ,
48
+ width : settings . getSync ( 'width' , 770 ) ,
49
+ height : settings . getSync ( 'height' , 700 ) ,
49
50
title : APP_NAME ,
50
- icon : basecamp . getIcon ( 'icon' ) ,
51
+ icon : this . getIcon ( 'icon' ) ,
51
52
autoHideMenuBar : true ,
52
53
backgroundColor : '#f5efe6' ,
53
54
webPreferences : {
@@ -56,28 +57,30 @@ const basecamp = {
56
57
} ,
57
58
} ) ;
58
59
59
- if ( settings . get ( 'isMaximized' , false ) ) {
60
+ if ( settings . getSync ( 'isMaximized' , false ) ) {
60
61
win . maximize ( ) ;
61
62
}
62
63
63
64
win . loadURL ( url ) ;
65
+ } ,
64
66
67
+ addWindowEvents ( ) {
65
68
win
66
69
. on ( 'close' , ( ) => {
67
70
const bounds = win . getBounds ( ) ;
68
- settings . set ( 'posX' , bounds . x ) ;
69
- settings . set ( 'posY' , bounds . y ) ;
70
- settings . set ( 'width' , bounds . width ) ;
71
- settings . set ( 'height' , bounds . height ) ;
72
- settings . set ( 'isMaximized' , win . isMaximized ( ) ) ;
71
+ settings . setSync ( 'posX' , bounds . x ) ;
72
+ settings . setSync ( 'posY' , bounds . y ) ;
73
+ settings . setSync ( 'width' , bounds . width ) ;
74
+ settings . setSync ( 'height' , bounds . height ) ;
75
+ settings . setSync ( 'isMaximized' , win . isMaximized ( ) ) ;
73
76
} )
74
77
. on ( 'closed' , ( ) => {
75
78
tray = null ;
76
79
win = null ;
77
80
} )
78
81
. on ( 'page-title-updated' , ( event , title ) => {
79
82
event . preventDefault ( ) ;
80
- basecamp . setTitles ( title ) ;
83
+ this . setTitles ( title ) ;
81
84
} ) ;
82
85
83
86
win . webContents
@@ -126,7 +129,7 @@ const basecamp = {
126
129
* Adds the tray icon.
127
130
*/
128
131
addTrayIcon ( ) {
129
- tray = new Tray ( basecamp . getIcon ( 'tray' ) ) ;
132
+ tray = new Tray ( this . getIcon ( 'tray' ) ) ;
130
133
tray . setToolTip ( APP_NAME ) ;
131
134
tray . setContextMenu ( menus . forTray ( ) ) ;
132
135
tray . on ( 'click' , ( ) => {
@@ -150,7 +153,7 @@ const basecamp = {
150
153
message : 'This will clear all data.\n\nDo you want to proceed?' ,
151
154
} , ( response ) => {
152
155
if ( response === 0 ) {
153
- basecamp . clearData ( ) ;
156
+ this . clearData ( ) ;
154
157
}
155
158
} ) ;
156
159
} ,
@@ -161,7 +164,7 @@ const basecamp = {
161
164
showAboutDialog ( ) {
162
165
dialog . showMessageBox ( win , {
163
166
type : 'info' ,
164
- icon : basecamp . getIcon ( 'logo' ) ,
167
+ icon : this . getIcon ( 'logo' ) ,
165
168
buttons : [ 'Ok' ] ,
166
169
defaultId : 0 ,
167
170
title : 'About' ,
@@ -207,13 +210,13 @@ const basecamp = {
207
210
unreadsNotified = true ;
208
211
}
209
212
210
- if ( settings . get ( 'showBadge' , DEFAULTS . showBadge ) ) {
211
- basecamp . setIcons ( `-unreads-${ ( unreads > 10 ? '10p' : unreads ) } ` ) ;
213
+ if ( settings . getSync ( 'showBadge' , DEFAULTS . showBadge ) ) {
214
+ this . setIcons ( `-unreads-${ ( unreads > 10 ? '10p' : unreads ) } ` ) ;
212
215
} else {
213
- basecamp . setIcons ( '-unreads' ) ;
216
+ this . setIcons ( '-unreads' ) ;
214
217
}
215
218
} else {
216
- basecamp . setIcons ( ) ;
219
+ this . setIcons ( ) ;
217
220
}
218
221
} ) ;
219
222
} ,
@@ -222,8 +225,8 @@ const basecamp = {
222
225
* Sets the app & tray icons.
223
226
*/
224
227
setIcons ( suffix ) {
225
- win . setIcon ( basecamp . getIcon ( `icon${ suffix ? '-unreads' : '' } ` ) ) ;
226
- tray . setImage ( basecamp . getIcon ( `tray${ suffix || '' } ` ) ) ;
228
+ win . setIcon ( this . getIcon ( `icon${ suffix ? '-unreads' : '' } ` ) ) ;
229
+ tray . setImage ( this . getIcon ( `tray${ suffix || '' } ` ) ) ;
227
230
} ,
228
231
229
232
/**
@@ -234,7 +237,7 @@ const basecamp = {
234
237
* @return {string }
235
238
*/
236
239
getIcon ( icon ) {
237
- const iconScheme = settings . get ( 'iconScheme' , DEFAULTS . iconScheme ) ;
240
+ const iconScheme = settings . getSync ( 'iconScheme' ) || DEFAULTS . iconScheme ;
238
241
return `${ ICONS_PATH } /${ iconScheme } /${ icon } .png` ;
239
242
} ,
240
243
@@ -256,7 +259,7 @@ const basecamp = {
256
259
* @param {string } color
257
260
*/
258
261
configureIconScheme ( color ) {
259
- settings . set ( 'iconScheme' , color ) ;
262
+ settings . setSync ( 'iconScheme' , color ) ;
260
263
win . reload ( ) ;
261
264
} ,
262
265
@@ -266,7 +269,7 @@ const basecamp = {
266
269
* @param {string } color
267
270
*/
268
271
configureShowBadge ( config ) {
269
- settings . set ( 'showBadge' , config ) ;
272
+ settings . setSync ( 'showBadge' , config ) ;
270
273
win . reload ( ) ;
271
274
} ,
272
275
} ;
0 commit comments