more mpv hacks
[jrugr.git] / src / jcfg.cpp
blob82352d9dbe31ef4c558962feebed033bfd259932
1 ////////////////////////////////////////
2 // Copyright : GPL //
3 ////////////////////////////////////////
4 #include "jcfg.h"
7 ////////////////////////////////////////////////////////////////////////////////
8 JrugrCfg *JrugrCfg::load (const QString &fname) {
9 JrugrCfg *res = new JrugrCfg();
10 LayoutUnit lu;
11 QSettings qcfg(fname, QSettings::IniFormat);
13 qcfg.beginGroup("KeyLayout");
14 res->model = qcfg.value("model").toString();
15 if (res->model.isEmpty()) res->model = "pc104";
16 if (!qcfg.value("layout").toString().isEmpty()) {
17 QStringList
18 l = qcfg.value("layout").toString().split(","),
19 v = qcfg.value("variant").toString().split(",");
21 for (int f = 0; f < l.size(); ++f) {
22 lu.layout = l[f];
23 if (v.size() < f) lu.variant = ""; else lu.variant = v[f];
24 res->layouts.append(lu);
26 } else {
27 lu.layout = "us";
28 lu.variant = "";
29 res->layouts.append(lu);
31 if (!qcfg.value("option").toString().isEmpty()) res->options = qcfg.value("option").toString().split(",");
33 res->workMode = (JWorkMode)qcfg.value("workMode", ONLY_INDICATION).toInt();
34 if (res->workMode < ONLY_INDICATION || res->workMode > USE_XKB) res->workMode = ONLY_INDICATION;
36 res->switching = (JSwitchMode)qcfg.value("switching", GLOBAL_LAYOUT).toInt();
37 if (res->switching < GLOBAL_LAYOUT || res->switching > DESK_LAYOUT) res->switching = GLOBAL_LAYOUT;
39 res->showFlag = qcfg.value("showflag", true).toBool();
40 res->useSU = qcfg.value("useSU", true).toBool();
41 res->mplayerHack = qcfg.value("mplayerHack", false).toBool();
42 qcfg.endGroup();
43 return res;
47 bool JrugrCfg::save (const QString &fname) const {
48 LayoutUnit lu;
49 QSettings qcfg(fname, QSettings::IniFormat);
50 QString layout, variant;
52 qcfg.beginGroup("KeyLayout");
53 qcfg.setValue("model", model);
55 for (int f = 0; f < layouts.size(); ++f) {
56 layout += layouts[f].layout;
57 if (f < layouts.size()-1) layout += ",";
58 variant += layouts[f].variant;
59 if (f < layouts.size()-1) variant += ",";
61 qcfg.setValue("layout", layout);
62 qcfg.setValue("variant", variant);
63 qcfg.setValue("workMode", workMode);
64 qcfg.setValue("showflag", showFlag);
65 qcfg.setValue("switching", switching);
66 qcfg.setValue("useSU", useSU);
67 qcfg.setValue("mplayerHack", mplayerHack);
68 qcfg.setValue("option", options.join(","));
69 qcfg.endGroup();
70 return true;