Unified · Split
| @@ -40,13 +40,6 @@ class app.Settings · 39 unmodified lines | ||
| 40 | 40 | @store.set TIPS_KEY, tips.join('/') |
| 41 | 41 | return |
| 42 | 42 | |
| 43 | − setDark: (value) -> | |
| 44 | − @store.set DARK_KEY, !!value | |
| 45 | − return | |
| 46 | − | |
| 47 | − getDark: -> | |
| 48 | − @store.get DARK_KEY | |
| 49 | − | |
| 50 | 43 | setLayout: (name, enable) -> |
| 51 | 44 | layout = (@store.get(LAYOUT_KEY) || '').split(' ') |
| 52 | 45 | $.arrayDelete(layout, '') |
| @@ -17,6 +17,16 @@ app.templates.settingsPage = (settings) -> """ · 16 unmodified lines | ||
| 17 | 17 | </div> |
| 18 | 18 | </div> |
| 19 | 19 | |
| 20 | + <div class="_settings-fieldset"> | |
| 21 | + <h2 class="_settings-legend">Scrolling:</h2> | |
| 22 | + | |
| 23 | + <div class="_settings-inputs"> | |
| 24 | + <label class="_settings-label"> | |
| 25 | + <input type="checkbox" name="smoothScroll" value="1"#{if settings.smoothScroll then ' checked' else ''}>Use smooth scrolling | |
| 26 | + </label> | |
| 27 | + </div> | |
| 28 | + </div> | |
| 29 | + | |
| 20 | 30 | <div class="_settings-fieldset"> |
| 21 | 31 | <h2 class="_settings-legend">Advanced:</h2> |
| 22 | 32 | |
| @@ -64,7 +64,10 @@ class app.views.Content extends app.View · 63 unmodified lines | ||
| 64 | 64 | return |
| 65 | 65 | |
| 66 | 66 | smoothScrollTo: (value) -> |
| 67 | − $.smoothScroll @scrollEl, value or 0 | |
| 67 | + if app.settings.get('fastScroll') | |
| 68 | + @scrollTo value | |
| 69 | + else | |
| 70 | + $.smoothScroll @scrollEl, value or 0 | |
| 68 | 71 | return |
| 69 | 72 | |
| 70 | 73 | scrollBy: (n) -> |
| @@ -13,7 +13,8 @@ class app.views.SettingsPage extends app.View · 12 unmodified lines | ||
| 13 | 13 | |
| 14 | 14 | currentSettings: -> |
| 15 | 15 | settings = {} |
| 16 | − settings.dark = app.settings.getDark() | |
| 16 | + settings.dark = app.settings.get('dark') | |
| 17 | + settings.smoothScroll = !app.settings.get('fastScroll') | |
| 17 | 18 | settings[layout] = app.settings.hasLayout(layout) for layout in LAYOUTS |
| 18 | 19 | settings |
| 19 | 20 | |
| @@ -25,7 +26,7 @@ class app.views.SettingsPage extends app.View · 5 unmodified lines | ||
| 25 | 26 | alt = css.getAttribute('data-alt') |
| 26 | 27 | css.setAttribute('data-alt', css.getAttribute('href')) |
| 27 | 28 | css.setAttribute('href', alt) |
| 28 | − app.settings.setDark(enable) | |
| 29 | + app.settings.set('dark', !!enable) | |
| 29 | 30 | app.appCache?.updateInBackground() |
| 30 | 31 | return |
| 31 | 32 | |
| @@ -35,6 +36,10 @@ class app.views.SettingsPage extends app.View · 3 unmodified lines | ||
| 35 | 36 | app.appCache?.updateInBackground() |
| 36 | 37 | return |
| 37 | 38 | |
| 39 | + toggleSmoothScroll: (enable) -> | |
| 40 | + app.settings.set('fastScroll', !enable) | |
| 41 | + return | |
| 42 | + | |
| 38 | 43 | onChange: (event) => |
| 39 | 44 | input = event.target |
| 40 | 45 | switch input.name |
| @@ -42,6 +47,8 @@ class app.views.SettingsPage extends app.View · 1 unmodified line | ||
| 42 | 47 | @toggleDark input.checked |
| 43 | 48 | when 'layout' |
| 44 | 49 | @toggleLayout input.value, input.checked |
| 50 | + when 'smoothScroll' | |
| 51 | + @toggleSmoothScroll input.checked | |
| 45 | 52 | return |
| 46 | 53 | |
| 47 | 54 | onRoute: (route) => |