Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions src/activateApp.nim
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import gintro/[gtk, gdk, glib, gobject, gio]
import os

import commonVars, clockTimer, resizeClock, loadCss
import commonVars, clockTimer, resizeClock, loadCss, settings

proc onDeleteEvent(w: ApplicationWindow; event: gdk.Event): bool =
saveSettings()
return EVENT_PROPAGATE

proc appActivateWithBuilder*(app: Application) =
discard builder.addFromFile(appdir & "main.glade")
mainWindow = builder.getApplicationWindow("window")
mainWindow.setApplication(app)
mainWindow.connect("delete_event", onDeleteEvent)
if existsFile(appdir / "../../zegarek-icon.svg"):
discard mainWindow.setIconFromFile(appdir / "../../zegarek-icon.svg")
elif existsFile(appdir / "../res/zegarek-icon.svg"):
Expand All @@ -18,7 +22,8 @@ proc appActivateWithBuilder*(app: Application) =
var button = builder.getButton("pause")
button.connect("clicked", pauseClock)

builder.getSpinButton("resolution").setSpinButton()
spinButton = builder.getSpinButton("resolution")
spinButton.setSpinButton()

builder.getToggleButton("12Hours").connect12HoursButton()
builder.getToggleButton("24Hours").connect24HoursButton()
Expand All @@ -27,4 +32,6 @@ proc appActivateWithBuilder*(app: Application) =

loadCss()

loadSettings()

showAll(mainWindow)
1 change: 1 addition & 0 deletions src/clockTimer.nim
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ var spinButton: SpinButton

proc spinButtonValueChanged(button: SpinButton) =
let value = button.getValue().toInt()
millisecondsResolutionValue = value
case value:
of 0:
millisecondsResolution = 5
Expand Down
3 changes: 2 additions & 1 deletion src/commonVars.nim
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ const gettextPackage* = "zegarek"
let appdir* = os.getAppDir() / "/"

let builder*: Builder = newBuilder()
var mainWindow*: ApplicationWindow
var mainWindow*: ApplicationWindow
var spinButton*: SpinButton
24 changes: 23 additions & 1 deletion src/settings.nim
Original file line number Diff line number Diff line change
@@ -1,6 +1,28 @@
import gintro/[gtk, glib]
import os, json, marshal

import commonVars

var millisecondsResolution* = 1
var millisecondsResolutionValue*: int

type timeFormat* = enum
timeFormat12,
timeFormat24
var currentTimeFormat* = timeFormat24
var currentTimeFormat* = timeFormat24

proc loadSettings*() =
var j = parseFile(userConfigDir()/"Zegarek"/"settings.json")
currentTimeFormat = j["currentTimeFormat"].to(timeFormat)
millisecondsResolutionValue = j["millisecondsResolutionValue"].to(int)
spinButton.setValue(millisecondsResolutionValue.cdouble())

proc saveSettings*() =
var j = %*
{ "currentTimeFormat": currentTimeFormat,
"millisecondsResolutionValue": millisecondsResolutionValue }

echo j
echo userConfigDir()
createDir(userConfigDir()/"Zegarek")
writeFile(userConfigDir()/"Zegarek"/"settings.json", $j)