ui changes

This commit is contained in:
leca 2024-05-19 16:07:40 +03:00
parent 021a6c67ea
commit 6e7bca2579
5 changed files with 457 additions and 5 deletions

78
assets/card_icon.svg Normal file
View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="90.163986mm"
height="112.68744mm"
viewBox="0 0 90.163986 112.68744"
version="1.1"
id="svg1"
sodipodi:docname="card_icon.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="true"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.3414773"
inkscape:cx="137.53494"
inkscape:cy="226.61583"
inkscape:window-width="1920"
inkscape:window-height="1014"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Japanese card"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-51.274923,-70.345579)">
<path
id="rect10"
style="fill:#929292;fill-opacity:1;stroke:none;stroke-width:4.89601;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
inkscape:label="card"
d="m 94.947693,70.345577 c -3.783115,0 -6.829041,2.837666 -6.829041,6.362919 v 10.504268 h 12.096418 c 5.00742,0 9.2754,3.87563 9.2754,8.810832 v 65.246664 h 25.11992 c 3.78311,0 6.82852,-2.83767 6.82852,-6.36292 V 76.708496 c 0,-3.525253 -3.04541,-6.362919 -6.82852,-6.362919 z m -6.829041,21.761979 v 62.799784 c 0,3.52525 3.045926,6.36292 6.829041,6.36292 h 9.647987 V 96.023596 c 0,-2.115297 -1.82179,-3.91604 -4.38061,-3.91604 z" />
<path
id="text1"
style="font-size:50.4312px;fill:#ff6600;stroke:none;stroke-width:0.588;stroke-linecap:round;fill-opacity:1;stroke-dasharray:none"
d="M 113.79204 94.128623 L 113.79204 110.51884 C 113.79204 113.58025 112.83421 118.83754 109.48997 124.07925 L 109.48997 130.21273 C 113.52372 125.47929 115.26381 120.64343 115.80897 117.83157 C 116.81759 122.72339 121.75994 134.32259 136.38497 139.87002 C 136.93972 138.81096 138.15001 137.24746 138.95691 136.39013 C 121.4573 130.1871 117.87654 116.26778 117.87654 110.46819 L 117.87654 94.128623 L 115.85961 94.128623 L 113.79204 94.128623 z M 132.6529 103.55957 C 130.93824 107.99751 127.8116 114.04902 125.29004 117.78093 L 128.46711 119.29401 C 131.08953 115.66297 134.31723 109.91344 136.73792 105.17291 L 132.6529 103.55957 z M 100.98248 103.66034 C 100.22602 109.2582 98.460574 114.8057 94.375651 117.83157 L 97.654004 120.05056 C 101.89417 116.81088 103.64815 111.14026 104.5957 105.46333 L 104.5957 104.43084 L 100.98248 103.66034 z M 104.5957 129.89853 C 101.741 132.5164 98.055253 134.89267 93.316801 136.69243 C 94.1237 137.54976 95.384426 139.06312 95.888737 139.87002 C 99.321538 138.4558 102.19275 136.73547 104.5957 134.87187 L 104.5957 129.89853 z " />
</g>
<g
inkscape:groupmode="layer"
id="g12"
inkscape:label="English card"
style="display:inline"
transform="translate(-51.274923,-70.345579)">
<g
id="rect12"
inkscape:label="card">
<path
style="color:#000000;fill:#929292;-inkscape-stroke:none"
d="m 60.551661,89.65992 h 39.662799 c 3.78312,0 6.82874,2.838023 6.82874,6.36328 v 78.19853 c 0,3.52526 -3.04562,6.36328 -6.82874,6.36328 H 60.551661 c -3.783118,0 -6.828734,-2.83802 -6.828734,-6.36328 V 96.0232 c 0,-3.525257 3.045616,-6.36328 6.828734,-6.36328 z"
id="path1" />
</g>
<text
xml:space="preserve"
style="font-size:27.469px;display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.3;stroke-linejoin:miter;stroke-dasharray:0.15, 0.15;stroke-dashoffset:0;stroke-opacity:1"
x="56.103771"
y="143.9433"
id="text19"><tspan
sodipodi:role="line"
id="tspan19"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.3;stroke-dasharray:0.15, 0.15;stroke-dashoffset:0;stroke-opacity:1"
x="56.103771"
y="143.9433">Fire</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

326
assets/hrk.svg Normal file
View File

@ -0,0 +1,326 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="170.11633mm"
height="159.7771mm"
viewBox="0 0 170.11633 159.7771"
version="1.1"
id="svg1"
inkscape:export-filename="hrk.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm" />
<defs
id="defs1">
<marker
style="overflow:visible"
id="ArrowWide"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path93" />
</marker>
<marker
style="overflow:visible"
id="ArrowWideRounded"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide, rounded arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round"
d="m -2.75,3 3,-3 -3,-3"
sodipodi:nodetypes="ccc"
id="path2" />
</marker>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-15.94387,-32.544143)">
<circle
style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:1.56449;stroke-linecap:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#ArrowWide);marker-mid:url(#ArrowWideRounded);marker-end:url(#ArrowWideRounded)"
id="path1"
cx="95.936882"
cy="130.48886"
r="56.356659" />
<g
id="g67"
inkscape:transform-center-x="60.401617"
inkscape:transform-center-y="11.970845"
transform="rotate(20.524935,98.801223,133.05533)"
style="display:none">
<path
style="fill:none;stroke:#0000ff;stroke-width:0.259914;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="M 47.784653,78.293317 V 242.59901"
id="path63" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.259914;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="m 47.784653,242.59901 c 0,0 0,0 0,0"
id="path64" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.259914;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="M 47.784653,78.293317 V 242.59901"
id="path65" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.259914;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="m 46.928756,183.2203 1.711795,1.71179 m 0,-1.71179 -1.711795,1.71179"
id="path66" />
<g
x="0"
y="0"
id="g63"
transform="matrix(0.25991425,0,0,0.25991425,55.181812,240.53269)">
<rect
style="fill:#333333;fill-opacity:0.5;stroke-width:0"
x="-25.440008"
y="-7.3800001"
width="56.88002"
height="13.38"
id="rect63" />
<text
xml:space="preserve"
style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:7.55906;stroke-dasharray:7.55906, 30.2362;stroke-dashoffset:0;stroke-opacity:1"
x="2"
y="2"
id="text63"><tspan
sodipodi:role="line"
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none"
id="tspan63"
x="2"
y="2">164.31 mm</tspan></text>
</g>
<g
x="0"
y="0"
id="g66"
transform="matrix(0.25991425,0,0,0.25991425,47.402579,248.33142)">
<rect
style="fill:#337f33;fill-opacity:0.5;stroke-width:0"
x="-12.840007"
y="-7.3899999"
width="31.680014"
height="13.39"
id="rect66" />
<text
xml:space="preserve"
style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:7.55906;stroke-dasharray:7.55906, 30.2362;stroke-dashoffset:0;stroke-opacity:1"
x="2"
y="2"
id="text66"><tspan
sodipodi:role="line"
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none"
id="tspan66"
x="2"
y="2">0.00 °</tspan></text>
</g>
</g>
<g
id="g71"
inkscape:transform-center-x="30.565858"
inkscape:transform-center-y="-19.827309"
transform="rotate(20.524935,98.801223,133.05533)"
style="display:none">
<path
style="fill:none;stroke:#0000ff;stroke-width:0.264583;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="M 98.648347,133.19544 71.219492,63.238599"
id="path68" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="M 71.219492,63.238599 C 17.367689,84.352951 6.5661811,155.84514 51.77649,191.92644"
id="path69" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.264583;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="m 98.648347,133.19544 -46.871857,58.731"
id="path70" />
<g
x="0"
y="0"
id="g68"
transform="matrix(0.26458333,0,0,0.26458333,78.809064,61.127224)">
<rect
style="fill:#333333;fill-opacity:0.5;stroke-width:0"
x="-22.805008"
y="-7.3200002"
width="51.610016"
height="13.32"
id="rect68" />
<text
xml:space="preserve"
style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:7.55906;stroke-dasharray:7.55906, 30.2362;stroke-dashoffset:0;stroke-opacity:1"
x="2"
y="2"
id="text68"><tspan
sodipodi:role="line"
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none"
id="tspan68"
x="2"
y="2">75.14 mm</tspan></text>
</g>
<g
x="0"
y="0"
id="g70"
transform="matrix(0.26458333,0,0,0.26458333,23.907844,122.51363)">
<rect
style="fill:#337f33;fill-opacity:0.5;stroke-width:0"
x="-18.360012"
y="-7.3899999"
width="42.720024"
height="13.39"
id="rect67" />
<text
xml:space="preserve"
style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:7.55906;stroke-dasharray:7.55906, 30.2362;stroke-dashoffset:0;stroke-opacity:1"
x="2"
y="2"
id="text67"><tspan
sodipodi:role="line"
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none"
id="tspan67"
x="2"
y="2">120.00 °</tspan></text>
</g>
</g>
<g
id="g76"
inkscape:transform-center-x="-8.5806806"
inkscape:transform-center-y="42.094739"
transform="rotate(20.524935,98.801223,133.05533)"
style="display:none">
<path
style="fill:none;stroke:#0000ff;stroke-width:0.264583;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="M 98.954166,133.08542 177.8,144.99167"
id="path72" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="m 177.8,144.99167 c -9.16635,60.70161 -80.611317,88.71191 -128.590655,50.4145"
id="path73" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.264583;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="M 98.954166,133.08542 49.209345,195.40617"
id="path74" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.264583;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5"
d="m 165.9544,142.4632 1.74255,1.74254 m 0,-1.74254 -1.74255,1.74254"
id="path75" />
<g
x="0"
y="0"
id="g72"
transform="matrix(0.26458333,0,0,0.26458333,185.38957,142.88823)">
<rect
style="fill:#333333;fill-opacity:0.5;stroke-width:0"
x="-22.805008"
y="-7.3800001"
width="51.610016"
height="13.38"
id="rect72" />
<text
xml:space="preserve"
style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:7.55906;stroke-dasharray:7.55906, 30.2362;stroke-dashoffset:0;stroke-opacity:1"
x="2"
y="2"
id="text72"><tspan
sodipodi:role="line"
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none"
id="tspan72"
x="2"
y="2">79.74 mm</tspan></text>
</g>
<g
x="0"
y="0"
id="g75"
transform="matrix(0.26458333,0,0,0.26458333,127.68251,207.86727)">
<rect
style="fill:#337f33;fill-opacity:0.5;stroke-width:0"
x="-20.215014"
y="-7.3899999"
width="46.430031"
height="13.39"
id="rect71" />
<text
xml:space="preserve"
style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:7.55906;stroke-dasharray:7.55906, 30.2362;stroke-dashoffset:0;stroke-opacity:1"
x="2"
y="2"
id="text71"><tspan
sodipodi:role="line"
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;text-align:center;letter-spacing:0;word-spacing:0;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none"
id="tspan71"
x="2"
y="2">-120.01 °</tspan></text>
</g>
</g>
<text
xml:space="preserve"
style="font-size:56.5097px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.77984;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
x="15.879345"
y="201.85991"
id="text88"
transform="scale(1.0601061,0.9433018)"><tspan
sodipodi:role="line"
id="tspan88"
style="fill:#ffffff;fill-opacity:1;stroke-width:1.77984;stroke-dasharray:none"
x="15.879345"
y="201.85991">A</tspan></text>
<text
xml:space="preserve"
style="font-size:56.5097px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.77984;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
x="123.53018"
y="199.27646"
id="text88-5"
transform="scale(1.0601061,0.9433018)"><tspan
sodipodi:role="line"
id="tspan88-3"
style="fill:#ffffff;fill-opacity:1;stroke-width:1.77984;stroke-dasharray:none"
x="123.53018"
y="199.27646">あ</tspan></text>
<text
xml:space="preserve"
style="font-size:56.5097px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.77984;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
x="61.696327"
y="76.469696"
id="text88-5-9"
transform="scale(1.0601061,0.9433018)"><tspan
sodipodi:role="line"
id="tspan88-3-1"
style="fill:#ffffff;fill-opacity:1;stroke-width:1.77984;stroke-dasharray:none"
x="61.696327"
y="76.469696">ア</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -2,23 +2,70 @@
<interface> <interface>
<template class="MenuScene" parent="GtkApplicationWindow"> <template class="MenuScene" parent="GtkApplicationWindow">
<property name="title">Menu</property> <property name="title">Menu</property>
<property name="height-request">1000</property>
<property name="width-request">1000</property>
<child> <child>
<object class="GtkBox" id="content"> <object class="GtkBox" id="content">
<property name="orientation">horizontal</property> <property name="orientation">horizontal</property>
<property name="halign">GTK_ALIGN_CENTER</property>
<child> <child>
<object class="GtkButton" id="hiragana_and_katakana"> <object class="GtkButton" id="hiragana_and_katakana">
<property name="label">Practice hiragana and katakana</property> <property name="valign">GTK_ALIGN_FILL</property>
<property name="halign">GTK_ALIGN_CENTER</property>
<property name="margin-top">375</property>
<property name="margin-bottom">375</property>
<style> <style>
<class name="hiragana_and_katakana" /> <class name="hiragana_and_katakana" />
</style> </style>
<child>
<object class="GtkBox">
<property name="homogeneous">true</property>
<child>
<object class="GtkImage">
<property name="file">assets/hrk.svg</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Practice hiragana and katakana</property>
<property name="width-chars">24</property>
<property name="wrap">true</property>
<property name="wrap-mode">PANGO_WRAP_WORD</property>
<property name="natural-wrap-mode">GTK_NATURAL_WRAP_WORD</property>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkButton" id="memory_cards"> <object class="GtkButton" id="memory_cards">
<property name="label">Practice vocabulary with memory cards</property> <property name="valign">GTK_ALIGN_FILL</property>
<property name="halign">GTK_ALIGN_CENTER</property>
<property name="margin-top">375</property>
<property name="margin-bottom">375</property>
<style> <style>
<class name="memory_cards" /> <class name="memory_cards" />
</style> </style>
<child>
<object class="GtkBox">
<property name="homogeneous">true</property>
<child>
<object class="GtkImage">
<property name="file">assets/card_icon.svg</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Practice vocabulary with memory cards</property>
<property name="width-chars">24</property>
<property name="wrap">true</property>
<property name="wrap-mode">PANGO_WRAP_WORD</property>
<property name="natural-wrap-mode">GTK_NATURAL_WRAP_WORD</property>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>

View File

@ -41,6 +41,8 @@ fn main() -> glib::ExitCode {
dictionary::import(&(get_program_home_path() + "/dictionary.txt")); // Read file, parse it, deduplicate and append to the database. dictionary::import(&(get_program_home_path() + "/dictionary.txt")); // Read file, parse it, deduplicate and append to the database.
let app: Application = Application::builder().application_id(APP_ID).build(); let app: Application = Application::builder().application_id(APP_ID).build();
app.connect_activate(build_ui); app.connect_activate(build_ui);

View File

@ -308,8 +308,7 @@ async fn new_card_setup<W: IsA<gtk::Window>>(window: Rc<W>) {
?2, ?2,
?3, ?3,
?4, ?4,
(SELECT is_learning FROM cards WHERE hieroglyph = ?2 OR TRUE (SELECT is_learning FROM cards WHERE hieroglyph = ?2 OR TRUE)
)
)", (&new_filename, &hieroglyph, &reading, &translation)).unwrap(); )", (&new_filename, &hieroglyph, &reading, &translation)).unwrap();
w.close(); w.close();
}), }),