aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2017-02-12 23:33:41 +0800
committerGravatar Chris Xiong <chirs241097@gmail.com> 2017-02-12 23:33:41 +0800
commit3312e495cf54a8bd6451552216f5aeea1a06d486 (patch)
tree2de25e8b53ba2747c613451fa16c3203578fbd93
parentd779d32c8c32e0e0c22662046498620b11fa46de (diff)
downloadQMidiPlayer-3312e495cf54a8bd6451552216f5aeea1a06d486.tar.xz
UI revolution cont'd. Powered by @BLumia.
Expose new APIs to plugin developer. Use svg icons.
-rw-r--r--ChangeLog5
-rw-r--r--core/qmpmidiread.cpp2
-rw-r--r--img/add.pngbin287 -> 0 bytes
-rw-r--r--img/add_i.pngbin254 -> 0 bytes
-rw-r--r--img/add_i.svg39
-rw-r--r--img/addfolder.pngbin1032 -> 0 bytes
-rw-r--r--img/addfolder_i.pngbin962 -> 0 bytes
-rw-r--r--img/addfolder_i.svg48
-rw-r--r--img/channel.pngbin310 -> 0 bytes
-rw-r--r--img/channel.svg48
-rw-r--r--img/channel_i.pngbin305 -> 0 bytes
-rw-r--r--img/channel_i.svg100
-rw-r--r--img/clear.pngbin398 -> 0 bytes
-rw-r--r--img/clear_i.pngbin361 -> 0 bytes
-rw-r--r--img/clear_i.svg71
-rwxr-xr-ximg/convpng7
-rw-r--r--img/down.pngbin350 -> 0 bytes
-rw-r--r--img/down_i.pngbin316 -> 0 bytes
-rw-r--r--img/down_i.svg72
-rw-r--r--img/effects.pngbin837 -> 0 bytes
-rw-r--r--img/effects_i.pngbin774 -> 0 bytes
-rw-r--r--img/effects_i.svg76
-rw-r--r--img/info.svg67
-rw-r--r--img/info_i.svg67
-rw-r--r--img/ledoff.pngbin385 -> 0 bytes
-rw-r--r--img/ledon.pngbin558 -> 0 bytes
-rw-r--r--img/list.pngbin283 -> 0 bytes
-rw-r--r--img/list_i.pngbin256 -> 0 bytes
-rw-r--r--img/list_i.svg82
-rw-r--r--img/load.pngbin968 -> 0 bytes
-rw-r--r--img/load_i.pngbin890 -> 0 bytes
-rw-r--r--img/load_i.svg73
-rw-r--r--img/next.pngbin511 -> 0 bytes
-rw-r--r--img/next_i.pngbin632 -> 0 bytes
-rw-r--r--img/next_i.svg75
-rw-r--r--img/open.svg75
-rw-r--r--img/open_i.svg75
-rw-r--r--img/panic.svg69
-rw-r--r--img/panic_i.svg69
-rw-r--r--img/pause.pngbin278 -> 0 bytes
-rw-r--r--img/pause_i.pngbin237 -> 0 bytes
-rw-r--r--img/pause_i.svg79
-rw-r--r--img/play.pngbin641 -> 0 bytes
-rw-r--r--img/play_i.pngbin577 -> 0 bytes
-rw-r--r--img/play_i.svg67
-rw-r--r--img/prev.pngbin511 -> 0 bytes
-rw-r--r--img/prev_i.pngbin672 -> 0 bytes
-rw-r--r--img/prev_i.svg74
-rw-r--r--img/remove.pngbin208 -> 0 bytes
-rw-r--r--img/remove_i.pngbin191 -> 0 bytes
-rw-r--r--img/remove_i.svg72
-rw-r--r--img/render.svg90
-rw-r--r--img/render_i.svg90
-rw-r--r--img/repeat-all.pngbin1212 -> 0 bytes
-rw-r--r--img/repeat-all_i.pngbin1176 -> 0 bytes
-rw-r--r--img/repeat-all_i.svg89
-rw-r--r--img/repeat-base.pngbin915 -> 0 bytes
-rw-r--r--img/repeat-base_i.pngbin865 -> 0 bytes
-rw-r--r--img/repeat-base_i.svg78
-rw-r--r--img/repeat-non.pngbin1042 -> 0 bytes
-rw-r--r--img/repeat-non_i.pngbin951 -> 0 bytes
-rw-r--r--img/repeat-non_i.svg84
-rw-r--r--img/repeat-one.pngbin994 -> 0 bytes
-rw-r--r--img/repeat-one_i.pngbin956 -> 0 bytes
-rw-r--r--img/repeat-one_i.svg90
-rw-r--r--img/save.pngbin1034 -> 0 bytes
-rw-r--r--img/save_i.pngbin1072 -> 0 bytes
-rw-r--r--img/settings.pngbin985 -> 0 bytes
-rw-r--r--img/settings.svg116
-rw-r--r--img/settings_i.pngbin919 -> 0 bytes
-rw-r--r--img/settings_i.svg88
-rw-r--r--img/settings_s.svg96
-rw-r--r--img/shuffle-off.pngbin904 -> 0 bytes
-rw-r--r--img/shuffle-off_i.pngbin910 -> 0 bytes
-rw-r--r--img/shuffle-off_i.svg94
-rw-r--r--img/shuffle.pngbin833 -> 0 bytes
-rw-r--r--img/shuffle_i.pngbin819 -> 0 bytes
-rw-r--r--img/shuffle_i.svg89
-rw-r--r--img/stop.pngbin279 -> 0 bytes
-rw-r--r--img/stop_i.pngbin242 -> 0 bytes
-rw-r--r--img/stop_i.svg70
-rw-r--r--img/up.pngbin349 -> 0 bytes
-rw-r--r--img/up_i.pngbin312 -> 0 bytes
-rw-r--r--img/up_i.svg72
-rw-r--r--img/visualization.pngbin330 -> 0 bytes
-rw-r--r--img/visualization_i.pngbin302 -> 0 bytes
-rw-r--r--img/visualization_i.svg103
-rw-r--r--include/qmpcorepublic.hpp4
-rw-r--r--midifmt-plugin/midifmtplugin.cpp2
-rw-r--r--qmidiplayer-desktop/qmpchannelswindow.cpp4
-rw-r--r--qmidiplayer-desktop/qmpchannelswindow.hpp2
-rw-r--r--qmidiplayer-desktop/qmpefxwindow.cpp2
-rw-r--r--qmidiplayer-desktop/qmpefxwindow.ui2
-rw-r--r--qmidiplayer-desktop/qmpinfowindow.cpp2
-rw-r--r--qmidiplayer-desktop/qmpmainwindow.cpp96
-rw-r--r--qmidiplayer-desktop/qmpmainwindow.hpp1
-rw-r--r--qmidiplayer-desktop/qmpmainwindow.ui646
-rw-r--r--qmidiplayer-desktop/qmpplistwindow.cpp53
-rw-r--r--qmidiplayer-desktop/qmpplistwindow.hpp2
-rw-r--r--qmidiplayer-desktop/qmpplistwindow.ui16
-rw-r--r--qmidiplayer-desktop/qmpplugin.cpp6
-rw-r--r--qmidiplayer-desktop/qmpsettingswindow.cpp17
-rw-r--r--qmidiplayer-desktop/qmpsettingswindow.ui33
-rw-r--r--qmidiplayer-desktop/resources.qrc108
-rw-r--r--visualization/qmpvisualization.cpp2
105 files changed, 3135 insertions, 524 deletions
diff --git a/ChangeLog b/ChangeLog
index 6688519..e4abb40 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
2017-02-12 0.8.5 indev
+UI revolution cont'd. Powered by @BLumia.
+Expose new APIs to plugin developer.
+Use svg icons.
+
+2017-02-12 0.8.5 indev
New functionality API. Port built-in features to the
new API.
Start the revamp of the main Window. Credit of the
diff --git a/core/qmpmidiread.cpp b/core/qmpmidiread.cpp
index 478ec82..5add648 100644
--- a/core/qmpmidiread.cpp
+++ b/core/qmpmidiread.cpp
@@ -241,7 +241,7 @@ CMidiFile* CSMFReader::readFile(const char* fn)
fclose(f);f=NULL;
std::sort(ret->eventList.begin(),ret->eventList.end());
}
- catch(std::runtime_error&){fprintf(stderr,"E: %s is not a supported file.\n",fn);ret->valid=0;fclose(f);f=NULL;}
+ catch(std::runtime_error&){fprintf(stderr,"E: %s is not a supported file.\n",fn);ret->valid=0;if(f)fclose(f);f=NULL;}
return ret;
}
CSMFReader::~CSMFReader()
diff --git a/img/add.png b/img/add.png
deleted file mode 100644
index c9689f5..0000000
--- a/img/add.png
+++ /dev/null
Binary files differ
diff --git a/img/add_i.png b/img/add_i.png
deleted file mode 100644
index 5143396..0000000
--- a/img/add_i.png
+++ /dev/null
Binary files differ
diff --git a/img/add_i.svg b/img/add_i.svg
new file mode 100644
index 0000000..a72ba32
--- /dev/null
+++ b/img/add_i.svg
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 63.999998 63.999996"
+ height="64"
+ width="64">
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-988.3622)"
+ id="layer1">
+ <g
+ id="text4134"
+ style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1">
+ <path
+ id="path4136"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.99999237px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff"
+ d="m 33.831772,1018.6203 10.168223,0 0,3.5322 -10.168223,0 0,10.2097 -3.663551,0 0,-10.2097 -10.168223,0 0,-3.5322 10.168223,0 0,-10.2581 3.663551,0 0,10.2581 z" />
+ </g>
+ </g>
+</svg>
diff --git a/img/addfolder.png b/img/addfolder.png
deleted file mode 100644
index 7f3f713..0000000
--- a/img/addfolder.png
+++ /dev/null
Binary files differ
diff --git a/img/addfolder_i.png b/img/addfolder_i.png
deleted file mode 100644
index 1c784f3..0000000
--- a/img/addfolder_i.png
+++ /dev/null
Binary files differ
diff --git a/img/addfolder_i.svg b/img/addfolder_i.svg
new file mode 100644
index 0000000..44c0185
--- /dev/null
+++ b/img/addfolder_i.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 64.000001 64.000001"
+ height="64"
+ width="64">
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-988.36216)"
+ id="layer1">
+ <path
+ id="path4136"
+ d="m 16.278644,1006.8891 0,24.7998 32.799838,0 0,-17.5999 -16.799917,0 -3.199984,-7.1999 z"
+ style="fill:#909090;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.59999216;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
+ <path
+ id="path4138"
+ d="m 16.278644,1031.5589 -3.999981,-14.2699 32.799839,0 3.99998,14.627 z"
+ style="fill:#6c6c6c;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.59999216;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
+ <g
+ id="text4134"
+ style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ transform="matrix(0.66666667,0,0,0.66666667,21.587627,355.20009)">
+ <path
+ id="path4136-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.99999237px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff"
+ d="m 33.831772,1018.6203 10.168223,0 0,3.5322 -10.168223,0 0,10.2097 -3.663551,0 0,-10.2097 -10.168223,0 0,-3.5322 10.168223,0 0,-10.2581 3.663551,0 0,10.2581 z" />
+ </g>
+ </g>
+</svg>
diff --git a/img/channel.png b/img/channel.png
deleted file mode 100644
index e7d10a4..0000000
--- a/img/channel.png
+++ /dev/null
Binary files differ
diff --git a/img/channel.svg b/img/channel.svg
index a42702e..b51f8d7 100644
--- a/img/channel.svg
+++ b/img/channel.svg
@@ -14,7 +14,7 @@
viewBox="0 0 63.999998 63.999996"
id="svg2"
version="1.1"
- inkscape:version="0.91 r13725"
+ inkscape:version="0.92.0 r"
sodipodi:docname="channel.svg"
inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/stop.png"
inkscape:export-xdpi="45"
@@ -28,17 +28,17 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="1"
- inkscape:cx="90.391041"
- inkscape:cy="8.4527205"
+ inkscape:zoom="8"
+ inkscape:cx="-3.880007"
+ inkscape:cy="29.243941"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
- inkscape:window-width="1366"
- inkscape:window-height="694"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
inkscape:window-x="0"
- inkscape:window-y="0"
+ inkscape:window-y="32"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
@@ -48,7 +48,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -64,25 +64,25 @@
cy="1011.3622"
r="2.4418602" />
<rect
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.89972395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.87127483;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4136"
- width="31.100273"
- height="3.1002755"
- x="20.949858"
- y="1009.8121" />
+ width="29.128725"
+ height="3.1040936"
+ x="22.435637"
+ y="1009.7979" />
<circle
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.11627889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ style="opacity:1;fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:1.11627889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4134-9"
cx="14.999998"
cy="1021.3622"
r="2.44186" />
<rect
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.89972401;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.87127489;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4136-9"
- width="31.100269"
- height="3.1002755"
- x="20.949858"
- y="1019.8121" />
+ width="29.128721"
+ height="3.1040936"
+ x="22.435637"
+ y="1019.8102" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.11627889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4134-2"
@@ -90,11 +90,11 @@
cy="1031.3622"
r="2.44186" />
<rect
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.89972401;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.87127489;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4136-7"
- width="31.100269"
- height="3.1002755"
- x="20.949858"
- y="1029.812" />
+ width="29.128721"
+ height="3.1040936"
+ x="22.435637"
+ y="1029.8224" />
</g>
</svg>
diff --git a/img/channel_i.png b/img/channel_i.png
deleted file mode 100644
index 30bba80..0000000
--- a/img/channel_i.png
+++ /dev/null
Binary files differ
diff --git a/img/channel_i.svg b/img/channel_i.svg
new file mode 100644
index 0000000..f0bf57f
--- /dev/null
+++ b/img/channel_i.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="channel_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/stop.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="-3.880007"
+ inkscape:cy="29.243941"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <circle
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.11627889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4134"
+ cx="14.999998"
+ cy="1011.3622"
+ r="2.4418602" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.87127483;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136"
+ width="29.128725"
+ height="3.1040936"
+ x="22.435637"
+ y="1009.7979" />
+ <circle
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:1.11627889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4134-9"
+ cx="14.999998"
+ cy="1021.3622"
+ r="2.44186" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.87127489;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136-9"
+ width="29.128721"
+ height="3.1040936"
+ x="22.435637"
+ y="1019.8102" />
+ <circle
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.11627889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4134-2"
+ cx="14.999998"
+ cy="1031.3622"
+ r="2.44186" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.87127489;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136-7"
+ width="29.128721"
+ height="3.1040936"
+ x="22.435637"
+ y="1029.8224" />
+ </g>
+</svg>
diff --git a/img/clear.png b/img/clear.png
deleted file mode 100644
index 092a885..0000000
--- a/img/clear.png
+++ /dev/null
Binary files differ
diff --git a/img/clear_i.png b/img/clear_i.png
deleted file mode 100644
index 671b7b7..0000000
--- a/img/clear_i.png
+++ /dev/null
Binary files differ
diff --git a/img/clear_i.svg b/img/clear_i.svg
new file mode 100644
index 0000000..5463581
--- /dev/null
+++ b/img/clear_i.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="clear_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/clear.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6568544"
+ inkscape:cx="-52.690675"
+ inkscape:cy="25.599706"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <g
+ style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text4134"
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,-712.13245,321.48458)">
+ <path
+ d="m 33.831772,1018.6203 10.168223,0 0,3.5322 -10.168223,0 0,10.2097 -3.663551,0 0,-10.2097 -10.168223,0 0,-3.5322 10.168223,0 0,-10.2581 3.663551,0 0,10.2581 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.99999237px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff"
+ id="path4136"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/img/convpng b/img/convpng
deleted file mode 100755
index 18cdd31..0000000
--- a/img/convpng
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-for i in *.svg
-do
-inkscape $i --export-png=`echo "$i" | sed 's/.\{4\}$//'`.png --export-area-page --export-dpi=90
-done
-i=qmidiplyr.svg
-inkscape $i --export-png=`echo "$i" | sed 's/.\{4\}$//'`.png --export-area-page --export-width=64 \ No newline at end of file
diff --git a/img/down.png b/img/down.png
deleted file mode 100644
index 6b4b68f..0000000
--- a/img/down.png
+++ /dev/null
Binary files differ
diff --git a/img/down_i.png b/img/down_i.png
deleted file mode 100644
index e77d19f..0000000
--- a/img/down_i.png
+++ /dev/null
Binary files differ
diff --git a/img/down_i.svg b/img/down_i.svg
new file mode 100644
index 0000000..584ac3a
--- /dev/null
+++ b/img/down_i.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="down_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/down.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8284272"
+ inkscape:cx="-246.87972"
+ inkscape:cy="15.50142"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 31.999996,1006.991 0,25.8094"
+ id="path4134"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 23.999997,1024.319 7.999999,8 7.999999,-8"
+ id="path4136"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/img/effects.png b/img/effects.png
deleted file mode 100644
index 6679577..0000000
--- a/img/effects.png
+++ /dev/null
Binary files differ
diff --git a/img/effects_i.png b/img/effects_i.png
deleted file mode 100644
index b655c5f..0000000
--- a/img/effects_i.png
+++ /dev/null
Binary files differ
diff --git a/img/effects_i.svg b/img/effects_i.svg
new file mode 100644
index 0000000..7ad173a
--- /dev/null
+++ b/img/effects_i.svg
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="effects_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/list.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="32.507943"
+ inkscape:cy="9.6689291"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <g
+ style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text4202"
+ transform="matrix(0.70799976,0,0,0.99613674,8.3985438,4.7944643)">
+ <path
+ d="m 14.779489,1035.5684 -4.042968,0 0,-32.1241 17.951659,0 0,3.5596 -13.908691,0 0,11.3818 13.051757,0 0,3.5376 -13.051757,0 0,13.6451 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:44.99999619px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff"
+ id="path4207"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 55.934271,1035.5684 -4.592285,0 -8.503417,-13.9527 -8.635253,13.9527 -4.284668,0 10.67871,-16.7432 -9.997557,-15.3809 4.504394,0 7.86621,12.5904 7.932128,-12.5904 4.262695,0 -9.93164,15.293 10.700683,16.8311 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:44.99999619px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff"
+ id="path4209"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/img/info.svg b/img/info.svg
new file mode 100644
index 0000000..0d4b9cb
--- /dev/null
+++ b/img/info.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 16.933333 16.933334"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="info.svg">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.9195959"
+ inkscape:cx="69.567787"
+ inkscape:cy="13.719674"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ showguides="false"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-280.06665)">
+ <g
+ aria-label="i"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text4487" />
+ <path
+ id="path4634"
+ style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9.1739996,284.95898 a 0.67599946,0.67599952 0 0 1 -0.6759995,0.676 0.67599946,0.67599952 0 0 1 -0.6759994,-0.676 0.67599946,0.67599952 0 0 1 0.6759994,-0.676 0.67599946,0.67599952 0 0 1 0.6759995,0.676 z m -2.9332588,2.56766 v -0.78135 h 2.7657227 v 5.33921 h 1.7549315 v 0.78134 H 6.0485045 v -0.78134 h 1.9409668 v -4.55786 z" />
+ </g>
+</svg>
diff --git a/img/info_i.svg b/img/info_i.svg
new file mode 100644
index 0000000..1486e58
--- /dev/null
+++ b/img/info_i.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 16.933333 16.933334"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="info_i.svg">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.9195959"
+ inkscape:cx="69.567787"
+ inkscape:cy="13.719674"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ showguides="false"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-280.06665)">
+ <g
+ aria-label="i"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text4487" />
+ <path
+ id="path4634"
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9.1739996,284.95898 a 0.67599946,0.67599952 0 0 1 -0.6759995,0.676 0.67599946,0.67599952 0 0 1 -0.6759994,-0.676 0.67599946,0.67599952 0 0 1 0.6759994,-0.676 0.67599946,0.67599952 0 0 1 0.6759995,0.676 z m -2.9332588,2.56766 v -0.78135 h 2.7657227 v 5.33921 h 1.7549315 v 0.78134 H 6.0485045 v -0.78134 h 1.9409668 v -4.55786 z" />
+ </g>
+</svg>
diff --git a/img/ledoff.png b/img/ledoff.png
deleted file mode 100644
index 4c86677..0000000
--- a/img/ledoff.png
+++ /dev/null
Binary files differ
diff --git a/img/ledon.png b/img/ledon.png
deleted file mode 100644
index b06f015..0000000
--- a/img/ledon.png
+++ /dev/null
Binary files differ
diff --git a/img/list.png b/img/list.png
deleted file mode 100644
index 1cb81c6..0000000
--- a/img/list.png
+++ /dev/null
Binary files differ
diff --git a/img/list_i.png b/img/list_i.png
deleted file mode 100644
index 73a0ab5..0000000
--- a/img/list_i.png
+++ /dev/null
Binary files differ
diff --git a/img/list_i.svg b/img/list_i.svg
new file mode 100644
index 0000000..3d98288
--- /dev/null
+++ b/img/list_i.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="list_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/channel.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6568542"
+ inkscape:cx="-19.651066"
+ inkscape:cy="23.83739"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.00516474;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136"
+ width="38.994831"
+ height="3.0861244"
+ x="12.502581"
+ y="1009.8648" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.00516486;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136-9"
+ width="38.994827"
+ height="3.0861244"
+ x="12.502581"
+ y="1019.8192" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.00516486;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136-7"
+ width="38.994827"
+ height="3.0861244"
+ x="12.502581"
+ y="1029.7734" />
+ </g>
+</svg>
diff --git a/img/load.png b/img/load.png
deleted file mode 100644
index 3e6f044..0000000
--- a/img/load.png
+++ /dev/null
Binary files differ
diff --git a/img/load_i.png b/img/load_i.png
deleted file mode 100644
index 7b2de7f..0000000
--- a/img/load_i.png
+++ /dev/null
Binary files differ
diff --git a/img/load_i.svg b/img/load_i.svg
new file mode 100644
index 0000000..a17c0a0
--- /dev/null
+++ b/img/load_i.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64.000001 64.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="load_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/load.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.2"
+ inkscape:cx="30.599736"
+ inkscape:cy="21.633393"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36216)">
+ <path
+ style="fill:#909090;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 13.300053,1004.5642 0,31 41,0 0,-22 -21,0 -4,-9 z"
+ id="path4136"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#6c6c6c;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 13.300053,1035.4017 -5.0000003,-17.8375 41.0000003,0 5,18.2838 z"
+ id="path4138"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/img/next.png b/img/next.png
deleted file mode 100644
index fdb505b..0000000
--- a/img/next.png
+++ /dev/null
Binary files differ
diff --git a/img/next_i.png b/img/next_i.png
deleted file mode 100644
index 7e32146..0000000
--- a/img/next_i.png
+++ /dev/null
Binary files differ
diff --git a/img/next_i.svg b/img/next_i.svg
new file mode 100644
index 0000000..db3e0dc
--- /dev/null
+++ b/img/next_i.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="next_s.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/prev.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.0000001"
+ inkscape:cx="-136.62529"
+ inkscape:cy="13.400568"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 12.499999,1001.3622 0,36 33.999996,-18 z"
+ id="path4225"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.55193388;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4812"
+ width="1.4480658"
+ height="35.448063"
+ x="-49.29266"
+ y="1001.6382"
+ transform="scale(-1,1)" />
+ </g>
+</svg>
diff --git a/img/open.svg b/img/open.svg
new file mode 100644
index 0000000..3c5e8bc
--- /dev/null
+++ b/img/open.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="open.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/play.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.0000002"
+ inkscape:cx="67.479381"
+ inkscape:cy="-5.1802551"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8882398px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 49.926039,1031.9181 H 13.734865 l 18.095587,-26.6833 z"
+ id="path4225"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.56581366;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4812"
+ width="1.434186"
+ height="36.434185"
+ x="1037.1451"
+ y="-50.217094"
+ transform="rotate(90)" />
+ </g>
+</svg>
diff --git a/img/open_i.svg b/img/open_i.svg
new file mode 100644
index 0000000..b04d72b
--- /dev/null
+++ b/img/open_i.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="open_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/play.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.0000002"
+ inkscape:cx="67.479381"
+ inkscape:cy="-5.1802551"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.8882398px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 49.926039,1031.9181 H 13.734865 l 18.095587,-26.6833 z"
+ id="path4225"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.56581366;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4812"
+ width="1.434186"
+ height="36.434185"
+ x="1037.1451"
+ y="-50.217094"
+ transform="rotate(90)" />
+ </g>
+</svg>
diff --git a/img/panic.svg b/img/panic.svg
new file mode 100644
index 0000000..9dc253c
--- /dev/null
+++ b/img/panic.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 16.933333 16.933334"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="panic.svg">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.2"
+ inkscape:cx="5.6060667"
+ inkscape:cy="60.491895"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-280.06665)">
+ <g
+ aria-label="!"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text4487"
+ transform="translate(-0.1519285,0.97001333)">
+ <path
+ d="m 9.0048175,289.83946 h -0.84646 l -0.3689697,-7.59643 h 1.5843994 z m -1.352889,2.17765 q 0,-0.47749 0.2315104,-0.73071 0.2387451,-0.26045 0.6872966,-0.26045 0.4485514,0 0.6800618,0.26769 0.2387451,0.26045 0.2387451,0.72347 0,0.46302 -0.2459798,0.73794 -0.2387451,0.27492 -0.6728271,0.27492 -0.4413168,0 -0.6800619,-0.26769 -0.2387451,-0.26768 -0.2387451,-0.74517 z"
+ style="font-size:14.8166666px;stroke-width:0.26458332px"
+ id="path4489"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/img/panic_i.svg b/img/panic_i.svg
new file mode 100644
index 0000000..bf2bee4
--- /dev/null
+++ b/img/panic_i.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 16.933333 16.933334"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="panic_i.svg">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.2"
+ inkscape:cx="5.6060667"
+ inkscape:cy="60.491895"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-280.06665)">
+ <g
+ aria-label="!"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text4487"
+ transform="translate(-0.1519285,0.97001333)">
+ <path
+ d="m 9.0048175,289.83946 h -0.84646 l -0.3689697,-7.59643 h 1.5843994 z m -1.352889,2.17765 q 0,-0.47749 0.2315104,-0.73071 0.2387451,-0.26045 0.6872966,-0.26045 0.4485514,0 0.6800618,0.26769 0.2387451,0.26045 0.2387451,0.72347 0,0.46302 -0.2459798,0.73794 -0.2387451,0.27492 -0.6728271,0.27492 -0.4413168,0 -0.6800619,-0.26769 -0.2387451,-0.26768 -0.2387451,-0.74517 z"
+ style="font-size:14.8166666px;stroke-width:0.26458332px;fill:#ffffff"
+ id="path4489"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/img/pause.png b/img/pause.png
deleted file mode 100644
index 9808fc4..0000000
--- a/img/pause.png
+++ /dev/null
Binary files differ
diff --git a/img/pause_i.png b/img/pause_i.png
deleted file mode 100644
index 499ef4c..0000000
--- a/img/pause_i.png
+++ /dev/null
Binary files differ
diff --git a/img/pause_i.svg b/img/pause_i.svg
new file mode 100644
index 0000000..999f1ee
--- /dev/null
+++ b/img/pause_i.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="pause_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/pause.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4142136"
+ inkscape:cx="-131.82193"
+ inkscape:cy="77.42247"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.44353294;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136"
+ width="11.556466"
+ height="35.556461"
+ x="37.221764"
+ y="1001.584"
+ rx="0"
+ ry="0" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.44353285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136-5"
+ width="11.556466"
+ height="35.556461"
+ x="15.221765"
+ y="1001.584"
+ rx="0"
+ ry="0" />
+ </g>
+</svg>
diff --git a/img/play.png b/img/play.png
deleted file mode 100644
index 5be2b25..0000000
--- a/img/play.png
+++ /dev/null
Binary files differ
diff --git a/img/play_i.png b/img/play_i.png
deleted file mode 100644
index e38e1a9..0000000
--- a/img/play_i.png
+++ /dev/null
Binary files differ
diff --git a/img/play_i.svg b/img/play_i.svg
new file mode 100644
index 0000000..f48fd30
--- /dev/null
+++ b/img/play_i.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="play_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/pause.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8.0000002"
+ inkscape:cx="-7.1276402"
+ inkscape:cy="33.931527"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 14.999998,1001.3622 0,36 33.999996,-18 z"
+ id="path4225"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/img/prev.png b/img/prev.png
deleted file mode 100644
index 7a14d17..0000000
--- a/img/prev.png
+++ /dev/null
Binary files differ
diff --git a/img/prev_i.png b/img/prev_i.png
deleted file mode 100644
index b4b0312..0000000
--- a/img/prev_i.png
+++ /dev/null
Binary files differ
diff --git a/img/prev_i.svg b/img/prev_i.svg
new file mode 100644
index 0000000..c108b98
--- /dev/null
+++ b/img/prev_i.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="prev_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/play.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.0000001"
+ inkscape:cx="-132.62529"
+ inkscape:cy="13.400568"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 49.568626,1001.3622 0,36 -33.999996,-18 z"
+ id="path4225"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.55193388;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4812"
+ width="1.4480658"
+ height="35.448063"
+ x="12.775966"
+ y="1001.6382" />
+ </g>
+</svg>
diff --git a/img/remove.png b/img/remove.png
deleted file mode 100644
index ef7cb76..0000000
--- a/img/remove.png
+++ /dev/null
Binary files differ
diff --git a/img/remove_i.png b/img/remove_i.png
deleted file mode 100644
index 50dfc42..0000000
--- a/img/remove_i.png
+++ /dev/null
Binary files differ
diff --git a/img/remove_i.svg b/img/remove_i.svg
new file mode 100644
index 0000000..b564361
--- /dev/null
+++ b/img/remove_i.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="remove_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/remove.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.0000001"
+ inkscape:cx="-68.375753"
+ inkscape:cy="14.402243"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ showguides="false" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <g
+ style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text4134">
+ <path
+ d="m 43.999995,1018.6203 0,3.5322 c -7.999999,0 -15.999998,0 -23.999997,0 l 0,-3.5322 c 7.999999,0 15.999998,0 23.999997,0 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.99999237px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff"
+ id="path4136"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ </g>
+</svg>
diff --git a/img/render.svg b/img/render.svg
new file mode 100644
index 0000000..8a330d7
--- /dev/null
+++ b/img/render.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 16.933333 16.933334"
+ version="1.1"
+ id="svg4682"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="render.svg">
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="-61.887162"
+ inkscape:cy="49.382695"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <defs
+ id="defs4676" />
+ <metadata
+ id="metadata4679">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-280.06665)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <g
+ id="g4748"
+ transform="matrix(1.0900568,0,0,1.1670479,-2.1145738,-47.775435)"
+ style="stroke-width:0.5864535;stroke-miterlimit:4;stroke-dasharray:none">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000;fill-opacity:0.02784813;stroke:#000000;stroke-width:0.5864535;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5.8208338,288.53319 c 0.4535713,-0.95082 0.9071427,-1.89139 1.360714,-2.48457 0.4535714,-0.59316 0.9071427,-0.8248 1.3607139,-0.61362 0.4535717,0.21116 0.907143,0.86288 1.3607156,1.71936 0.4535707,0.85647 0.9071427,1.90082 1.3607147,2.75768 0.453571,0.85686 0.907142,1.50738 1.360714,1.71937 0.453571,0.21198 0.907143,-0.0212 1.360714,-0.61363 0.453572,-0.5925 0.907143,-1.53377 1.360714,-2.48459"
+ title="sin(x)"
+ id="path4736" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4744"
+ d="M 4.2333333,288.53521 H 16.802932 v -0.0737"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5864535;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4781"
+ transform="matrix(0,0.53539813,-0.53539813,0,157.0061,284.29444)"
+ style="stroke-width:0.98836106;stroke-miterlimit:4;stroke-dasharray:none">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4134"
+ d="m 2.1001297,291.7569 v -6.82873"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.98836106;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path4136"
+ d="m -0.01653622,287.1722 2.11666592,-2.11666 2.116667,2.11666"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.98836106;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/img/render_i.svg b/img/render_i.svg
new file mode 100644
index 0000000..c3d6786
--- /dev/null
+++ b/img/render_i.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 16.933333 16.933334"
+ version="1.1"
+ id="svg4682"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="render_i.svg">
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="-14.60099"
+ inkscape:cy="32.426189"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <defs
+ id="defs4676" />
+ <metadata
+ id="metadata4679">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-280.06665)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <g
+ id="g4748"
+ transform="matrix(1.0900568,0,0,1.1670479,-2.1145738,-47.775435)"
+ style="stroke-width:0.5864535;stroke-miterlimit:4;stroke-dasharray:none;fill:#ffffff;stroke:#ffffff">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:0.02784813;stroke:#ffffff;stroke-width:0.5864535;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5.8208338,288.53319 c 0.4535713,-0.95082 0.9071427,-1.89139 1.360714,-2.48457 0.4535714,-0.59316 0.9071427,-0.8248 1.3607139,-0.61362 0.4535717,0.21116 0.907143,0.86288 1.3607156,1.71936 0.4535707,0.85647 0.9071427,1.90082 1.3607147,2.75768 0.453571,0.85686 0.907142,1.50738 1.360714,1.71937 0.453571,0.21198 0.907143,-0.0212 1.360714,-0.61363 0.453572,-0.5925 0.907143,-1.53377 1.360714,-2.48459"
+ title="sin(x)"
+ id="path4736" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4744"
+ d="M 4.2333333,288.53521 H 16.802932 v -0.0737"
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.5864535;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4781"
+ transform="matrix(0,0.53539813,-0.53539813,0,157.0061,284.29444)"
+ style="stroke-width:0.98836106;stroke-miterlimit:4;stroke-dasharray:none;fill:#ffffff;stroke:#ffffff;fill-opacity:0">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4134"
+ d="m 2.1001297,291.7569 v -6.82873"
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.98836106;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path4136"
+ d="m -0.01653622,287.1722 2.11666592,-2.11666 2.116667,2.11666"
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.98836106;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0" />
+ </g>
+ </g>
+</svg>
diff --git a/img/repeat-all.png b/img/repeat-all.png
deleted file mode 100644
index 49c18bd..0000000
--- a/img/repeat-all.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-all_i.png b/img/repeat-all_i.png
deleted file mode 100644
index 6984458..0000000
--- a/img/repeat-all_i.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-all_i.svg b/img/repeat-all_i.svg
new file mode 100644
index 0000000..6ce0348
--- /dev/null
+++ b/img/repeat-all_i.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64.000001 64.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="repeat-all_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/repeat-all.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.839192"
+ inkscape:cx="-6.5311426"
+ inkscape:cy="27.438572"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ showguides="false" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36216)">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:0;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4159"
+ sodipodi:type="arc"
+ sodipodi:cx="32.975533"
+ sodipodi:cy="1020.2973"
+ sodipodi:rx="16.414978"
+ sodipodi:ry="16.414978"
+ sodipodi:start="3.6651914"
+ sodipodi:end="2.6179939"
+ d="m 18.759744,1012.0898 a 16.414978,16.414978 0 0 1 18.464297,-7.6481 16.414978,16.414978 0 0 1 12.16647,15.8556 16.414978,16.414978 0 0 1 -12.16647,15.8557 16.414978,16.414978 0 0 1 -18.464297,-7.6482"
+ sodipodi:open="true" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 17.679143,998.76929 0,13.89591 12.791714,0 0,-0.1958"
+ id="path4161"
+ inkscape:connector-curvature="0" />
+ <g
+ style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0"
+ id="text4156"
+ transform="translate(-1.1364216,-0.25253813)">
+ <path
+ d="m 40.633369,1029.8622 -2.578125,-6.6358 -8.496093,0 -2.548828,6.6358 -2.72461,0 8.364258,-21.5039 2.431641,0 8.349609,21.5039 -2.797852,0 z m -3.383789,-9.0235 -2.402343,-6.4892 -1.025391,-3.208 q -0.439453,1.7578 -0.922852,3.208 l -2.43164,6.4892 6.782226,0 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff;stroke:#ffffff;fill-opacity:1;stroke-opacity:0"
+ id="path4162"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/img/repeat-base.png b/img/repeat-base.png
deleted file mode 100644
index 9a7cd70..0000000
--- a/img/repeat-base.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-base_i.png b/img/repeat-base_i.png
deleted file mode 100644
index 80c4532..0000000
--- a/img/repeat-base_i.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-base_i.svg b/img/repeat-base_i.svg
new file mode 100644
index 0000000..9e0dea3
--- /dev/null
+++ b/img/repeat-base_i.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64.000001 64.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="repeat-base_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/load.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.2"
+ inkscape:cx="87.786532"
+ inkscape:cy="26.391232"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36216)">
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4159"
+ sodipodi:type="arc"
+ sodipodi:cx="32.975533"
+ sodipodi:cy="1020.2973"
+ sodipodi:rx="16.414978"
+ sodipodi:ry="16.414978"
+ sodipodi:start="3.6651914"
+ sodipodi:end="2.6179939"
+ d="m 18.759744,1012.0898 a 16.414978,16.414978 0 0 1 18.464297,-7.6481 16.414978,16.414978 0 0 1 12.16647,15.8556 16.414978,16.414978 0 0 1 -12.16647,15.8557 16.414978,16.414978 0 0 1 -18.464297,-7.6482"
+ sodipodi:open="true" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 17.679143,998.76929 0,13.89591 12.791714,0 0,-0.1958"
+ id="path4161"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/img/repeat-non.png b/img/repeat-non.png
deleted file mode 100644
index 765e876..0000000
--- a/img/repeat-non.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-non_i.png b/img/repeat-non_i.png
deleted file mode 100644
index 050952e..0000000
--- a/img/repeat-non_i.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-non_i.svg b/img/repeat-non_i.svg
new file mode 100644
index 0000000..0f868be
--- /dev/null
+++ b/img/repeat-non_i.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64.000001 64.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="repeat-non_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/repeat-non.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.9195959"
+ inkscape:cx="47.648809"
+ inkscape:cy="37.073193"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ showguides="false" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36216)">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:0;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4159"
+ sodipodi:type="arc"
+ sodipodi:cx="32.975533"
+ sodipodi:cy="1020.2973"
+ sodipodi:rx="16.414978"
+ sodipodi:ry="16.414978"
+ sodipodi:start="3.6651914"
+ sodipodi:end="2.6179939"
+ d="m 18.759744,1012.0898 a 16.414978,16.414978 0 0 1 18.464297,-7.6481 16.414978,16.414978 0 0 1 12.16647,15.8556 16.414978,16.414978 0 0 1 -12.16647,15.8557 16.414978,16.414978 0 0 1 -18.464297,-7.6482"
+ sodipodi:open="true" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 17.679143,998.76929 0,13.89591 12.791714,0 0,-0.1958"
+ id="path4161"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 13.707125,1041.6551 38.587782,-38.5898"
+ id="path4135"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/img/repeat-one.png b/img/repeat-one.png
deleted file mode 100644
index 32699e9..0000000
--- a/img/repeat-one.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-one_i.png b/img/repeat-one_i.png
deleted file mode 100644
index fa1cc35..0000000
--- a/img/repeat-one_i.png
+++ /dev/null
Binary files differ
diff --git a/img/repeat-one_i.svg b/img/repeat-one_i.svg
new file mode 100644
index 0000000..116c131
--- /dev/null
+++ b/img/repeat-one_i.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64.000001 64.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="repeat-one_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/repeat-one.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.919596"
+ inkscape:cx="-25.380521"
+ inkscape:cy="41.506609"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ showguides="false" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36216)">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:0;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4159"
+ sodipodi:type="arc"
+ sodipodi:cx="32.975533"
+ sodipodi:cy="1020.2973"
+ sodipodi:rx="16.414978"
+ sodipodi:ry="16.414978"
+ sodipodi:start="3.6651914"
+ sodipodi:end="2.6179939"
+ d="m 18.759744,1012.0898 a 16.414978,16.414978 0 0 1 18.464297,-7.6481 16.414978,16.414978 0 0 1 12.16647,15.8556 16.414978,16.414978 0 0 1 -12.16647,15.8557 16.414978,16.414978 0 0 1 -18.464297,-7.6482"
+ sodipodi:open="true" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 17.679143,998.76929 0,13.89591 12.791714,0 0,-0.1958"
+ id="path4161"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="27.414324"
+ y="1028.8105"
+ id="text4183"><tspan
+ sodipodi:role="line"
+ id="tspan4185"
+ x="27.414324"
+ y="1028.8105"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;font-family:'Noto Sans UI';-inkscape-font-specification:'Noto Sans UI';fill:#ffffff;stroke:#ffffff;fill-opacity:1;">1</tspan></text>
+ </g>
+</svg>
diff --git a/img/save.png b/img/save.png
deleted file mode 100644
index 0ecdc76..0000000
--- a/img/save.png
+++ /dev/null
Binary files differ
diff --git a/img/save_i.png b/img/save_i.png
deleted file mode 100644
index 11959f6..0000000
--- a/img/save_i.png
+++ /dev/null
Binary files differ
diff --git a/img/settings.png b/img/settings.png
deleted file mode 100644
index f238b9f..0000000
--- a/img/settings.png
+++ /dev/null
Binary files differ
diff --git a/img/settings.svg b/img/settings.svg
index d3123fa..4286603 100644
--- a/img/settings.svg
+++ b/img/settings.svg
@@ -1,6 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
@@ -9,58 +7,56 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="64"
- height="64"
- viewBox="0 0 63.999998 63.999996"
- id="svg2"
version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="settings-masked.svg"
- inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/settings.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
+ id="svg2"
+ viewBox="0 0 63.999998 63.999996"
+ height="64"
+ width="64"
+ sodipodi:docname="settings.svg"
+ inkscape:version="0.92.0 r">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ id="namedview12"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="15.788898"
+ inkscape:cy="26.936288"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
<defs
id="defs4">
<mask
- maskUnits="userSpaceOnUse"
- id="mask4163">
+ id="mask4163"
+ maskUnits="userSpaceOnUse">
<g
- id="g4165"
- transform="matrix(0.77443286,0.63265609,-0.63265609,0.77443286,0,0)">
+ transform="rotate(39.246357)"
+ id="g4165">
<rect
- y="993.69891"
- x="3.4457266"
- height="38.516716"
- width="39.234055"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:9.10745335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4167"
- style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:9.10745335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ width="39.234055"
+ height="38.516716"
+ x="3.4457266"
+ y="993.69891" />
<path
- id="path4169"
- d="m 26.048828,990.71376 -25.5878905,20.90434 5.8183594,7.1211 6.3164061,-5.1602 -1.238281,3.2676 8.939453,10.9414 13.943359,-2.2715 5.00586,-13.2109 -8.9375,-10.9395 -3.449219,0.5606 5.007813,-4.08989 -5.81836,-7.12305 z"
+ inkscape:connector-curvature="0"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.2294395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- inkscape:connector-curvature="0" />
+ d="m 26.048828,990.71376 -25.5878905,20.90434 5.8183594,7.1211 6.3164061,-5.1602 -1.238281,3.2676 8.939453,10.9414 13.943359,-2.2715 5.00586,-13.2109 -8.9375,-10.9395 -3.449219,0.5606 5.007813,-4.08989 z"
+ id="path4169" />
</g>
</mask>
</defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:zoom="5.6568542"
- inkscape:cx="15.80053"
- inkscape:cy="27.864703"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- units="px"
- inkscape:window-width="1366"
- inkscape:window-height="694"
- inkscape:window-x="0"
- inkscape:window-y="0"
- inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
@@ -73,24 +69,20 @@
</cc:Work>
</rdf:RDF>
</metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-988.3622)">
- <path
- transform="matrix(0.77443287,-0.6326561,0.6326561,0.77443287,0,0)"
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.44087267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- mask="url(#mask4163)"
- d="m -605.90217,805.51636 a 16.396597,16.396597 0 0 1 -16.3966,16.39659 16.396597,16.396597 0 0 1 -16.39659,-16.39659 16.396597,16.396597 0 0 1 16.39659,-16.3966 16.396597,16.396597 0 0 1 16.3966,16.3966 z"
- id="path4144" />
- <rect
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.97508562;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4148"
- width="9.0355597"
- height="44.994835"
- x="-626.81653"
- y="821.72467"
- transform="matrix(0.77443287,-0.6326561,0.6326561,0.77443287,0,0)" />
- </g>
+ <rect
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.97508562;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4148"
+ width="9.0355597"
+ height="44.994835"
+ x="-1.5231596"
+ y="56.304531"
+ transform="rotate(-39.246358)"
+ mask="none" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.44099998;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ mask="none"
+ d="m 40.384156,18.783426 c 5.729075,7.012947 4.688284,17.342393 -2.324663,23.071467 -7.012946,5.729074 -17.291131,4.646105 -23.071461,-2.324655 -4.09815,-4.942143 -3.811308,-10.29574 -3.811308,-10.29574 l 8.086264,12.695329 16.666461,-2.650585 5.924834,-15.708505 -8.940633,-10.09438 c 1.682767,0.588012 6.336496,3.918929 7.470506,5.307069 z"
+ id="path4144-3"
+ sodipodi:nodetypes="ssccccccs" />
</svg>
diff --git a/img/settings_i.png b/img/settings_i.png
deleted file mode 100644
index ca682b7..0000000
--- a/img/settings_i.png
+++ /dev/null
Binary files differ
diff --git a/img/settings_i.svg b/img/settings_i.svg
new file mode 100644
index 0000000..13dd825
--- /dev/null
+++ b/img/settings_i.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 63.999998 63.999996"
+ height="64"
+ width="64"
+ sodipodi:docname="settings_i.svg"
+ inkscape:version="0.92.0 r">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ id="namedview12"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="-2.3127969"
+ inkscape:cy="26.936288"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <defs
+ id="defs4">
+ <mask
+ id="mask4163"
+ maskUnits="userSpaceOnUse">
+ <g
+ transform="rotate(39.246357)"
+ id="g4165">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:9.10745335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4167"
+ width="39.234055"
+ height="38.516716"
+ x="3.4457266"
+ y="993.69891" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.2294395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 26.048828,990.71376 -25.5878905,20.90434 5.8183594,7.1211 6.3164061,-5.1602 -1.238281,3.2676 8.939453,10.9414 13.943359,-2.2715 5.00586,-13.2109 -8.9375,-10.9395 -3.449219,0.5606 5.007813,-4.08989 z"
+ id="path4169" />
+ </g>
+ </mask>
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.97508562;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4148"
+ width="9.0355597"
+ height="44.994835"
+ x="-1.5231596"
+ y="56.304531"
+ transform="rotate(-39.246358)"
+ mask="none" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.44099998;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ mask="none"
+ d="m 40.384156,18.783426 c 5.729075,7.012947 4.688284,17.342393 -2.324663,23.071467 -7.012946,5.729074 -17.291131,4.646105 -23.071461,-2.324655 -4.09815,-4.942143 -3.811308,-10.29574 -3.811308,-10.29574 l 8.086264,12.695329 16.666461,-2.650585 5.924834,-15.708505 -8.940633,-10.09438 c 1.682767,0.588012 6.336496,3.918929 7.470506,5.307069 z"
+ id="path4144-3"
+ sodipodi:nodetypes="ssccccccs" />
+</svg>
diff --git a/img/settings_s.svg b/img/settings_s.svg
new file mode 100644
index 0000000..d3123fa
--- /dev/null
+++ b/img/settings_s.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="settings-masked.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/settings.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask4163">
+ <g
+ id="g4165"
+ transform="matrix(0.77443286,0.63265609,-0.63265609,0.77443286,0,0)">
+ <rect
+ y="993.69891"
+ x="3.4457266"
+ height="38.516716"
+ width="39.234055"
+ id="rect4167"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:9.10745335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path4169"
+ d="m 26.048828,990.71376 -25.5878905,20.90434 5.8183594,7.1211 6.3164061,-5.1602 -1.238281,3.2676 8.939453,10.9414 13.943359,-2.2715 5.00586,-13.2109 -8.9375,-10.9395 -3.449219,0.5606 5.007813,-4.08989 -5.81836,-7.12305 z"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.2294395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ </mask>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6568542"
+ inkscape:cx="15.80053"
+ inkscape:cy="27.864703"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1366"
+ inkscape:window-height="694"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ transform="matrix(0.77443287,-0.6326561,0.6326561,0.77443287,0,0)"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.44087267;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ mask="url(#mask4163)"
+ d="m -605.90217,805.51636 a 16.396597,16.396597 0 0 1 -16.3966,16.39659 16.396597,16.396597 0 0 1 -16.39659,-16.39659 16.396597,16.396597 0 0 1 16.39659,-16.3966 16.396597,16.396597 0 0 1 16.3966,16.3966 z"
+ id="path4144" />
+ <rect
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.97508562;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4148"
+ width="9.0355597"
+ height="44.994835"
+ x="-626.81653"
+ y="821.72467"
+ transform="matrix(0.77443287,-0.6326561,0.6326561,0.77443287,0,0)" />
+ </g>
+</svg>
diff --git a/img/shuffle-off.png b/img/shuffle-off.png
deleted file mode 100644
index fe80c50..0000000
--- a/img/shuffle-off.png
+++ /dev/null
Binary files differ
diff --git a/img/shuffle-off_i.png b/img/shuffle-off_i.png
deleted file mode 100644
index 9f2206f..0000000
--- a/img/shuffle-off_i.png
+++ /dev/null
Binary files differ
diff --git a/img/shuffle-off_i.svg b/img/shuffle-off_i.svg
new file mode 100644
index 0000000..ec3bfdf
--- /dev/null
+++ b/img/shuffle-off_i.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64.000001 64.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="shuffle-off_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/shuffle-off.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4">
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect4266"
+ is_visible="true" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect4252"
+ is_visible="true" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.959798"
+ inkscape:cx="-182.33949"
+ inkscape:cy="31.468806"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ showguides="false" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36216)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:0"
+ d="m 10,1012.3622 c 18.132512,0 25.870396,16 44.089643,16 m -44.089286,0 c 18.181982,0 25.748614,-16 43.910358,-16"
+ id="path4274"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0"
+ d="m 49.690031,1009.2372 5.198145,3 -5.198145,3"
+ id="path4334"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0"
+ d="m 49.689928,1025.2371 5.198145,3 -5.198145,3"
+ id="path4334-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="M 10.820251,1041.1557 54.838108,997.13764"
+ id="path4138"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/img/shuffle.png b/img/shuffle.png
deleted file mode 100644
index 2d1835c..0000000
--- a/img/shuffle.png
+++ /dev/null
Binary files differ
diff --git a/img/shuffle_i.png b/img/shuffle_i.png
deleted file mode 100644
index 6c3a61d..0000000
--- a/img/shuffle_i.png
+++ /dev/null
Binary files differ
diff --git a/img/shuffle_i.svg b/img/shuffle_i.svg
new file mode 100644
index 0000000..9459a7d
--- /dev/null
+++ b/img/shuffle_i.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64.000001 64.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="shuffle_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/shuffle.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4">
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect4266"
+ is_visible="true" />
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect4252"
+ is_visible="true" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6"
+ inkscape:cx="-81.18951"
+ inkscape:cy="30.896345"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1"
+ showguides="false" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36216)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:0"
+ d="m 10,1012.3622 c 18.132512,0 25.870396,16 44.089643,16 m -44.089286,0 c 18.181982,0 25.748614,-16 43.910358,-16"
+ id="path4274"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0"
+ d="m 49.690031,1009.2372 5.198145,3 -5.198145,3"
+ id="path4334"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0"
+ d="m 49.689928,1025.2371 5.198145,3 -5.198145,3"
+ id="path4334-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/img/stop.png b/img/stop.png
deleted file mode 100644
index 7ae0858..0000000
--- a/img/stop.png
+++ /dev/null
Binary files differ
diff --git a/img/stop_i.png b/img/stop_i.png
deleted file mode 100644
index cf30c28..0000000
--- a/img/stop_i.png
+++ /dev/null
Binary files differ
diff --git a/img/stop_i.svg b/img/stop_i.svg
new file mode 100644
index 0000000..b53bf2e
--- /dev/null
+++ b/img/stop_i.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="stop_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/stop.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.0000001"
+ inkscape:cx="-24.866202"
+ inkscape:cy="30.198528"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74910158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4136-5"
+ width="33.250893"
+ height="35.250893"
+ x="15.374548"
+ y="1001.7368"
+ rx="0"
+ ry="0" />
+ </g>
+</svg>
diff --git a/img/up.png b/img/up.png
deleted file mode 100644
index 59c7f5c..0000000
--- a/img/up.png
+++ /dev/null
Binary files differ
diff --git a/img/up_i.png b/img/up_i.png
deleted file mode 100644
index 0ff90c0..0000000
--- a/img/up_i.png
+++ /dev/null
Binary files differ
diff --git a/img/up_i.svg b/img/up_i.svg
new file mode 100644
index 0000000..30ed794
--- /dev/null
+++ b/img/up_i.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="up_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/up.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8284272"
+ inkscape:cx="-244.05129"
+ inkscape:cy="15.50142"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 31.999996,1033.7332 0,-25.8094"
+ id="path4134"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ d="m 23.999997,1016.4052 7.999999,-8 7.999999,8"
+ id="path4136"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/img/visualization.png b/img/visualization.png
deleted file mode 100644
index 3df43c4..0000000
--- a/img/visualization.png
+++ /dev/null
Binary files differ
diff --git a/img/visualization_i.png b/img/visualization_i.png
deleted file mode 100644
index b1a7a93..0000000
--- a/img/visualization_i.png
+++ /dev/null
Binary files differ
diff --git a/img/visualization_i.svg b/img/visualization_i.svg
new file mode 100644
index 0000000..e011688
--- /dev/null
+++ b/img/visualization_i.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 63.999998 63.999996"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92.0 r"
+ sodipodi:docname="visualization_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/effects.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6568542"
+ inkscape:cx="-19.044468"
+ inkscape:cy="36.032772"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="2560"
+ inkscape:window-height="1367"
+ inkscape:window-x="0"
+ inkscape:window-y="32"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.60849458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4230"
+ width="39.391502"
+ height="3.391505"
+ x="10.304246"
+ y="1000.6664" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.60849464;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4230-0"
+ width="39.391502"
+ height="3.3915045"
+ x="10.304246"
+ y="1010.6664" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.3145327;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4230-0-5"
+ width="9.6854658"
+ height="3.6854661"
+ x="10.157265"
+ y="1038.5195" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.3145327;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4230-0-5-8"
+ width="9.6854649"
+ height="3.6854656"
+ x="20.157265"
+ y="1023.5195" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.3145327;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4230-0-5-8-9"
+ width="9.6854639"
+ height="3.6854651"
+ x="30.157263"
+ y="1031.5194" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.3145327;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4230-0-5-8-9-7"
+ width="9.685463"
+ height="3.6854646"
+ x="40.157261"
+ y="1023.5195" />
+ </g>
+</svg>
diff --git a/include/qmpcorepublic.hpp b/include/qmpcorepublic.hpp
index 67259e0..1d0a7a4 100644
--- a/include/qmpcorepublic.hpp
+++ b/include/qmpcorepublic.hpp
@@ -132,7 +132,11 @@ class qmpPluginAPI
virtual void commitEventChange(SEventCallBackData d);
//This function should be called from a file reader when it has read a new event
virtual void callEventReaderCB(SEventCallBackData d);
+ virtual void setFuncState(std::string name,bool state);
+ virtual void setFuncEnabled(std::string name,bool enable);
+ virtual void registerFunctionality(qmpFuncBaseIntf* i,std::string name,std::string desc,const char* icon,int iconlen,bool checkable);
+ virtual void unregisterFunctionality(std::string name);
virtual void registerVisualizationIntf(qmpVisualizationIntf* intf,std::string name,std::string desc,const char* icon,int iconlen);
virtual void unregisterVisualizationIntf(std::string name);
virtual int registerEventReaderIntf(IMidiCallBack* cb,void* userdata);
diff --git a/midifmt-plugin/midifmtplugin.cpp b/midifmt-plugin/midifmtplugin.cpp
index 0a0c75d..bd87d98 100644
--- a/midifmt-plugin/midifmtplugin.cpp
+++ b/midifmt-plugin/midifmtplugin.cpp
@@ -68,7 +68,7 @@ CMidiFile* CMidiStreamReader::readFile(const char *fn)
if(!RIFFHeaderReader())throw std::runtime_error("Wrong RIFF header");
if(!midsBodyReader())throw std::runtime_error("MIDS data error");
std::sort(ret->eventList.begin(),ret->eventList.end());
- }catch(std::runtime_error& e){fprintf(stderr,"MIDI Format plugin: E: %s is not a supported file. Cause: %s.\n",fn,e.what());ret->valid=0;fclose(f);f=NULL;}
+ }catch(std::runtime_error& e){fprintf(stderr,"MIDI Format plugin: E: %s is not a supported file. Cause: %s.\n",fn,e.what());ret->valid=0;if(f)fclose(f);f=NULL;}
return ret;
}
void CMidiStreamReader::discardCurrentEvent()
diff --git a/qmidiplayer-desktop/qmpchannelswindow.cpp b/qmidiplayer-desktop/qmpchannelswindow.cpp
index fc7c686..bd021f1 100644
--- a/qmidiplayer-desktop/qmpchannelswindow.cpp
+++ b/qmidiplayer-desktop/qmpchannelswindow.cpp
@@ -16,7 +16,7 @@ qmpChannelsWindow::qmpChannelsWindow(QWidget *parent) :
pselectw=new qmpPresetSelector(this);
ceditw=new qmpChannelEditor(this);
mapper=qmpMainWindow::getInstance()->getPlayer()->getMidiMapper();
- cha=new QPixmap(":/img/ledon.png");chi=new QPixmap(":/img/ledoff.png");
+ cha=new QIcon(":/img/ledon.svg");chi=new QIcon(":/img/ledoff.svg");
cb=new qmpCWNoteOnCB();fused=callbacksc=cbcnt=0;
qmpMainWindow::getInstance()->getPlayer()->setEventHandlerCB(cb,NULL);
connect(cb,SIGNAL(onNoteOn()),this,SLOT(updateChannelActivity()));
@@ -76,7 +76,7 @@ qmpChannelsWindow::qmpChannelsWindow(QWidget *parent) :
chnlf=new qmpChannelFunc(this),
std::string("Channel"),
tr("Channel").toStdString(),
- getThemedIconc(":/img/channel.png"),
+ getThemedIconc(":/img/channel.svg"),
0,
true
);
diff --git a/qmidiplayer-desktop/qmpchannelswindow.hpp b/qmidiplayer-desktop/qmpchannelswindow.hpp
index 4502b21..57be0ca 100644
--- a/qmidiplayer-desktop/qmpchannelswindow.hpp
+++ b/qmidiplayer-desktop/qmpchannelswindow.hpp
@@ -107,7 +107,7 @@ class qmpChannelsWindow:public QDialog
qmpPresetSelector *pselectw;
qmpChannelEditor *ceditw;
qmpMidiMapperRtMidi *mapper;
- QPixmap *cha,*chi;
+ QIcon *cha,*chi;
qmpCWNoteOnCB *cb;
qmpChannelFunc *chnlf;
//callback fuse... (avoid black midi blocking the main thread)
diff --git a/qmidiplayer-desktop/qmpefxwindow.cpp b/qmidiplayer-desktop/qmpefxwindow.cpp
index 04a7e8d..507880e 100644
--- a/qmidiplayer-desktop/qmpefxwindow.cpp
+++ b/qmidiplayer-desktop/qmpefxwindow.cpp
@@ -32,7 +32,7 @@ qmpEfxWindow::qmpEfxWindow(QWidget *parent) :
efxf=new qmpEfxFunc(this),
std::string("Effects"),
tr("Effects").toStdString(),
- getThemedIconc(":/img/effects.png"),
+ getThemedIconc(":/img/effects.svg"),
0,
true
);
diff --git a/qmidiplayer-desktop/qmpefxwindow.ui b/qmidiplayer-desktop/qmpefxwindow.ui
index d7e2245..97a0d58 100644
--- a/qmidiplayer-desktop/qmpefxwindow.ui
+++ b/qmidiplayer-desktop/qmpefxwindow.ui
@@ -50,7 +50,7 @@
<item>
<widget class="QCheckBox" name="cbEnabledR">
<property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
diff --git a/qmidiplayer-desktop/qmpinfowindow.cpp b/qmidiplayer-desktop/qmpinfowindow.cpp
index 03084c1..de853aa 100644
--- a/qmidiplayer-desktop/qmpinfowindow.cpp
+++ b/qmidiplayer-desktop/qmpinfowindow.cpp
@@ -19,7 +19,7 @@ qmpInfoWindow::qmpInfoWindow(QWidget *parent) :
infof=new qmpInfoFunc(this),
std::string("FileInfo"),
tr("File Information").toStdString(),
- NULL,
+ getThemedIconc(":/img/info.svg"),
0,
true
);
diff --git a/qmidiplayer-desktop/qmpmainwindow.cpp b/qmidiplayer-desktop/qmpmainwindow.cpp
index cbec3f5..fc7f850 100644
--- a/qmidiplayer-desktop/qmpmainwindow.cpp
+++ b/qmidiplayer-desktop/qmpmainwindow.cpp
@@ -54,11 +54,11 @@ qmpMainWindow::qmpMainWindow(QWidget *parent) :
ui(new Ui::qmpMainWindow)
{
ui->setupUi(this);
- ui->lnPolyphone->display("00000-00000");
+ ui->lbCurPoly->setText("00000");ui->lbMaxPoly->setText("00000");
ui->lbFileName->setText("");ref=this;ui->verticalLayout->setAlignment(ui->pushButton,Qt::AlignRight);
int w=size().width(),h=size().height();w=w*(logicalDpiX()/96.);h=h*(logicalDpiY()/96.);
setMaximumWidth(w);setMaximumHeight(h);setMinimumWidth(w);setMinimumHeight(h);
- setButtonHeight(ui->pbNext,36);setButtonHeight(ui->pbPlayPause,36);
+ setButtonHeight(ui->pbNext,36);setButtonHeight(ui->pbPlayPause,36);setButtonHeight(ui->pbAdd,36);
setButtonHeight(ui->pbPrev,36);setButtonHeight(ui->pbSettings,36);setButtonHeight(ui->pbStop,36);
//setButtonHeight(ui->pbChannels,36);setButtonHeight(ui->pbPList,36);
//setButtonHeight(ui->pbEfx,36);setButtonHeight(ui->pbVisualization,36);
@@ -93,9 +93,9 @@ void qmpMainWindow::init()
renderf=new qmpRenderFunc(this);
panicf=new qmpPanicFunc(this);
reloadsynf=new qmpReloadSynthFunc(this);
- registerFunctionality(renderf,"Render",tr("Render to wave").toStdString(),NULL,0,false);
- registerFunctionality(panicf,"Panic",tr("Panic").toStdString(),NULL,0,false);
- registerFunctionality(reloadsynf,"ReloadSynth",tr("Restart fluidsynth").toStdString(),NULL,0,false);
+ registerFunctionality(renderf,"Render",tr("Render to wave").toStdString(),getThemedIconc(":/img/render.svg"),0,false);
+ registerFunctionality(panicf,"Panic",tr("Panic").toStdString(),getThemedIconc(":/img/panic.svg"),0,false);
+ registerFunctionality(reloadsynf,"ReloadSynth",tr("Restart fluidsynth").toStdString(),getThemedIconc(":/img/repeat-base.svg"),0,false);
pmgr->scanPlugins();settingsw->updatePluginList(pmgr);pmgr->initPlugins();
if(singleFS){player->fluidPreInitialize();playerSetup();player->fluidInitialize();
for(int i=settingsw->getSFWidget()->rowCount()-1;i>=0;--i){if(!((QCheckBox*)settingsw->getSFWidget()->cellWidget(i,0))->isChecked())continue;
@@ -114,15 +114,12 @@ void qmpMainWindow::init()
connect(timer,SIGNAL(timeout()),this,SLOT(updateWidgets()));
connect(timer,SIGNAL(timeout()),chnlw,SLOT(channelWindowsUpdate()));
connect(timer,SIGNAL(timeout()),infow,SLOT(updateInfo()));
- ui->pbNext->setIcon(QIcon(getThemedIcon(":/img/next.png")));
- ui->pbPrev->setIcon(QIcon(getThemedIcon(":/img/prev.png")));
- ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.png")));
- ui->pbStop->setIcon(QIcon(getThemedIcon(":/img/stop.png")));
- //ui->pbChannels->setIcon(QIcon(getThemedIcon(":/img/channel.png")));
- //ui->pbEfx->setIcon(QIcon(getThemedIcon(":/img/effects.png")));
- //ui->pbPList->setIcon(QIcon(getThemedIcon(":/img/list.png")));
- //ui->pbVisualization->setIcon(QIcon(getThemedIcon(":/img/visualization.png")));
- ui->pbSettings->setIcon(QIcon(getThemedIcon(":/img/settings.png")));
+ ui->pbNext->setIcon(QIcon(getThemedIcon(":/img/next.svg")));
+ ui->pbPrev->setIcon(QIcon(getThemedIcon(":/img/prev.svg")));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.svg")));
+ ui->pbStop->setIcon(QIcon(getThemedIcon(":/img/stop.svg")));
+ ui->pbSettings->setIcon(QIcon(getThemedIcon(":/img/settings.svg")));
+ ui->pbAdd->setIcon(QIcon(getThemedIcon(":/img/open.svg")));
if(havemidi)on_pbPlayPause_clicked();
setupWidget();
}
@@ -246,9 +243,9 @@ void qmpMainWindow::updateWidgets()
delete playerTh;playerTh=NULL;
if(singleFS)player->playerPanic(true);
chnlw->on_pbUnmute_clicked();chnlw->on_pbUnsolo_clicked();
- ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.png")));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.svg")));
ui->hsTimer->setValue(0);
- ui->lnPolyphone->display("00000-00000");
+ ui->lbCurPoly->setText("00000");ui->lbMaxPoly->setText("00000");
ui->lbCurTime->setText("00:00");
}
else
@@ -283,20 +280,22 @@ void qmpMainWindow::updateWidgets()
char ts[100];
sprintf(ts,"%02d:%02d",(int)(elapsed.count()+offset)/60,(int)(elapsed.count()+offset)%60);
ui->lbCurTime->setText(ts);
- //sprintf(ts,"Poly: %d/%d",player->getPolyphone(),player->getMaxPolyphone());
- ui->lnPolyphone->display(QString("%1-%2").arg(player->getPolyphone(),5,10,QChar('0'))
- .arg(player->getMaxPolyphone(),5,10,QChar('0')));
+ ui->lbCurPoly->setText(QString("%1").arg(player->getPolyphone(),5,10,QChar('0')));
+ ui->lbMaxPoly->setText(QString("%1").arg(player->getMaxPolyphone(),5,10,QChar('0')));
}
}
QString qmpMainWindow::getFileName(){return ui->lbFileName->text();}
void qmpMainWindow::switchTrack(QString s)
{
- timer->stop();player->playerDeinit();playerTh->join();
- delete playerTh;playerTh=NULL;
- ui->hsTimer->setValue(0);
+ stopped=false;playing=true;
+ setFuncEnabled("Render",stopped);setFuncEnabled("ReloadSynth",stopped);
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/pause.svg")));
+ timer->stop();player->playerDeinit();
for(auto i=mfunc.begin();i!=mfunc.end();++i)if(i->second.isVisualization())((qmpVisualizationIntf*)(i->second.i()))->stop();
+ if(playerTh){playerTh->join();delete playerTh;playerTh=NULL;}
if(singleFS)player->playerPanic(true);
+ ui->hsTimer->setValue(0);
chnlw->on_pbUnmute_clicked();chnlw->on_pbUnsolo_clicked();
QString fns=s;setWindowTitle(QUrl::fromLocalFile(fns).fileName().left(QUrl::fromLocalFile(fns).fileName().lastIndexOf('.'))+" - QMidiPlayer");
ui->lbFileName->setText(QUrl::fromLocalFile(fns).fileName().left(QUrl::fromLocalFile(fns).fileName().lastIndexOf('.')));
@@ -383,7 +382,7 @@ void qmpMainWindow::on_pbPlayPause_clicked()
QString fns=plistw->getFirstItem();
if(!fns.length())
{
- plistw->on_pbAdd_clicked();
+ if(!plistw->on_pbAdd_clicked()){playing=false;return;}
fns=plistw->getFirstItem();
if(!fns.length())return(void)(playing=false);
}setWindowTitle(QUrl::fromLocalFile(fns).fileName().left(QUrl::fromLocalFile(fns).fileName().lastIndexOf('.'))+" - QMidiPlayer");
@@ -424,7 +423,7 @@ void qmpMainWindow::on_pbPlayPause_clicked()
player->setTCpaused(!playing);
for(auto i=mfunc.begin();i!=mfunc.end();++i)if(i->second.isVisualization())((qmpVisualizationIntf*)(i->second.i()))->pause();
}
- ui->pbPlayPause->setIcon(QIcon(getThemedIcon(playing?":/img/pause.png":":/img/play.png")));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(playing?":/img/pause.svg":":/img/play.svg")));
}
void qmpMainWindow::on_hsTimer_sliderPressed()
@@ -495,9 +494,9 @@ void qmpMainWindow::on_pbStop_clicked()
if(singleFS)player->playerPanic(true);chnlw->resetAcitivity();
if(playerTh){playerTh->join();delete playerTh;playerTh=NULL;}
chnlw->on_pbUnmute_clicked();chnlw->on_pbUnsolo_clicked();
- ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.png")));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.svg")));
ui->hsTimer->setValue(0);
- ui->lnPolyphone->display("00000-00000");
+ ui->lbCurPoly->setText("00000");ui->lbMaxPoly->setText("00000");
ui->lbCurTime->setText("00:00");
}
}
@@ -519,35 +518,7 @@ void qmpMainWindow::on_pbNext_clicked()
void qmpMainWindow::selectionChanged()
{
- stopped=false;playing=true;
- ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/pause.png")));
- timer->stop();player->playerDeinit();
- for(auto i=mfunc.begin();i!=mfunc.end();++i)if(i->second.isVisualization())((qmpVisualizationIntf*)(i->second.i()))->stop();
- if(playerTh){playerTh->join();delete playerTh;playerTh=NULL;}
- if(singleFS)player->playerPanic(true);
- ui->hsTimer->setValue(0);
- chnlw->on_pbUnmute_clicked();chnlw->on_pbUnsolo_clicked();
- QString fns=plistw->getSelectedItem();
- ui->lbFileName->setText(QUrl::fromLocalFile(fns).fileName().left(QUrl::fromLocalFile(fns).fileName().lastIndexOf('.')));
- setWindowTitle(QUrl::fromLocalFile(fns).fileName().left(QUrl::fromLocalFile(fns).fileName().lastIndexOf('.'))+" - QMidiPlayer");
- onfnChanged();
- LOAD_FILE;
- char ts[100];
- sprintf(ts,"%02d:%02d",(int)player->getFtime()/60,(int)player->getFtime()%60);
- ui->lbFinTime->setText(ts);
- player->playerInit();if(!singleFS){playerSetup();player->fluidInitialize();
- for(int i=settingsw->getSFWidget()->rowCount()-1;i>=0;--i){if(!((QCheckBox*)settingsw->getSFWidget()->cellWidget(i,0))->isChecked())continue;
- LOAD_SOUNDFONT;
- }}
- for(auto i=mfunc.begin();i!=mfunc.end();++i)if(i->second.isVisualization())((qmpVisualizationIntf*)(i->second.i()))->start();
- player->setGain(ui->vsMasterVol->value()/250.);efxw->sendEfxChange();
- player->setWaitVoice(qmpSettingsWindow::getSettingsIntf()->value("Midi/WaitVoice",1).toInt());
- playerTh=new std::thread(&CMidiPlayer::playerThread,player);
-#ifdef _WIN32
- SetThreadPriority(playerTh->native_handle(),THREAD_PRIORITY_TIME_CRITICAL);
-#endif
- st=std::chrono::steady_clock::now();offset=0;
- timer->start(UPDATE_INTERVAL);
+ switchTrack(plistw->getSelectedItem());
}
void qmpMainWindow::on_lbFileName_customContextMenuRequested(const QPoint &pos)
@@ -645,6 +616,9 @@ std::map<std::string,qmpFuncPrivate>& qmpMainWindow::getFunc()
void qmpMainWindow::setupWidget()
{
+ for(auto i=mfunc.begin();i!=mfunc.end();++i)
+ i->second.setAssignedControl((QReflectiveAction*)NULL),
+ i->second.setAssignedControl((QReflectivePushButton*)NULL);
QList<QWidget*>w=ui->buttonwidget->findChildren<QWidget*>("",Qt::FindDirectChildrenOnly);
for(unsigned i=0;i<w.size();++i)
delete w[i];
@@ -662,6 +636,12 @@ void qmpMainWindow::setupWidget()
enabled_buttons[i]
);
setButtonHeight(pb,32);
+ if(getSettingsWindow()->getSettingsIntf()->value("Behavior/ShowButtonLabel",0).toInt())
+ {
+ pb->setText(tr(mfunc[enabled_buttons[i]].desc().c_str()));
+ pb->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed);
+ }
+ else
setButtonWidth(pb,32);
ui->buttonwidget->layout()->addWidget(pb);
mfunc[enabled_buttons[i]].setAssignedControl(pb);
@@ -720,3 +700,9 @@ qmpFuncPrivate::qmpFuncPrivate(qmpFuncBaseIntf *i,std::string _desc,const char *
checked=false;
asgna=NULL;asgnb=NULL;
}
+
+void qmpMainWindow::on_pbAdd_clicked()
+{
+ if(plistw->on_pbAdd_clicked())
+ switchTrack(plistw->getLastItem());
+}
diff --git a/qmidiplayer-desktop/qmpmainwindow.hpp b/qmidiplayer-desktop/qmpmainwindow.hpp
index 395b833..9a80dec 100644
--- a/qmidiplayer-desktop/qmpmainwindow.hpp
+++ b/qmidiplayer-desktop/qmpmainwindow.hpp
@@ -166,6 +166,7 @@ class qmpMainWindow:public QMainWindow
void on_pbSettings_clicked();
void funcReflector(std::string reflt);
void on_pushButton_clicked();
+ void on_pbAdd_clicked();
public slots:
void dialogClosed();
diff --git a/qmidiplayer-desktop/qmpmainwindow.ui b/qmidiplayer-desktop/qmpmainwindow.ui
index 8f41b4b..9ed0849 100644
--- a/qmidiplayer-desktop/qmpmainwindow.ui
+++ b/qmidiplayer-desktop/qmpmainwindow.ui
@@ -6,20 +6,20 @@
<rect>
<x>0</x>
<y>0</y>
- <width>450</width>
- <height>245</height>
+ <width>495</width>
+ <height>200</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>450</width>
- <height>245</height>
+ <width>495</width>
+ <height>200</height>
</size>
</property>
<property name="maximumSize">
<size>
- <width>450</width>
- <height>245</height>
+ <width>495</width>
+ <height>200</height>
</size>
</property>
<property name="acceptDrops">
@@ -33,24 +33,30 @@
<normaloff>:/img/qmidiplyr.png</normaloff>:/img/qmidiplyr.png</iconset>
</property>
<widget class="QWidget" name="centralWidget">
- <layout class="QHBoxLayout" name="horizontalLayout">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>1</number>
+ </property>
<property name="leftMargin">
- <number>2</number>
+ <number>4</number>
</property>
<property name="topMargin">
- <number>2</number>
+ <number>0</number>
</property>
<property name="rightMargin">
- <number>2</number>
+ <number>4</number>
</property>
<property name="bottomMargin">
- <number>2</number>
+ <number>0</number>
</property>
<item>
- <layout class="QVBoxLayout" name="verticalLayout_2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
<item>
<widget class="QLabel" name="lbFileName">
<property name="sizePolicy">
@@ -71,401 +77,499 @@
<string>somefile.mid</string>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="margin">
+ <number>0</number>
</property>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
+ <property name="bottomMargin">
+ <number>3</number>
+ </property>
<item>
- <widget class="QLabel" name="lbCurTime">
+ <widget class="QLabel" name="lbPolyphone">
<property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
- <string>00:00</string>
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Poly&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
- <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+ <set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <property name="spacing">
- <number>0</number>
- </property>
- <item>
- <widget class="QLabel" name="lbPolyphone">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Poly&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignBottom|Qt::AlignHCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLCDNumber" name="lnPolyphone">
- <property name="maximumSize">
- <size>
- <width>84</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="frameShape">
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="digitCount">
- <number>11</number>
- </property>
- <property name="segmentStyle">
- <enum>QLCDNumber::Flat</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QLabel" name="lbFinTime">
+ <widget class="QLabel" name="lbCurPoly">
<property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>00:00</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing</set>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QClickableSlider" name="hsTimer">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximum">
- <number>100</number>
- </property>
- <property name="pageStep">
- <number>0</number>
- </property>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <property name="spacing">
- <number>0</number>
- </property>
- <item>
- <widget class="QPushButton" name="pbPlayPause">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
- <width>0</width>
- <height>36</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>36</height>
+ <width>64</width>
+ <height>0</height>
</size>
</property>
<property name="text">
- <string/>
+ <string>00000</string>
</property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/img/play.png</normaloff>:/img/play.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="pbStop">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
+ <widget class="QFrame" name="fPolyLine">
<property name="minimumSize">
<size>
<width>0</width>
- <height>36</height>
+ <height>3</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
- <height>36</height>
+ <height>3</height>
</size>
</property>
- <property name="text">
- <string/>
+ <property name="frameShape">
+ <enum>QFrame::HLine</enum>
</property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/img/stop.png</normaloff>:/img/stop.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="pbPrev">
+ <widget class="QLabel" name="lbMaxPoly">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
- <width>0</width>
- <height>36</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>36</height>
+ <width>64</width>
+ <height>0</height>
</size>
</property>
<property name="text">
- <string/>
+ <string>00000</string>
</property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/img/prev.png</normaloff>:/img/prev.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
</property>
</widget>
</item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
<item>
- <widget class="QPushButton" name="pbNext">
+ <widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>36</height>
- </size>
- </property>
<property name="maximumSize">
<size>
- <width>16777215</width>
- <height>36</height>
+ <width>21</width>
+ <height>21</height>
</size>
</property>
<property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/img/next.png</normaloff>:/img/next.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
+ <string>?</string>
</property>
</widget>
</item>
<item>
- <spacer name="horizontalSpacer">
+ <spacer name="verticalSpacer">
<property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
- <enum>QSizePolicy::Fixed</enum>
+ <enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>32</width>
- <height>32</height>
+ <width>20</width>
+ <height>40</height>
</size>
</property>
</spacer>
</item>
- <item>
- <widget class="QPushButton" name="pbSettings">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>36</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>36</height>
- </size>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/img/settings.png</normaloff>:/img/settings.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
- </property>
- <property name="checkable">
- <bool>true</bool>
- </property>
- </widget>
- </item>
</layout>
</item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="lbCurTime">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>00:00</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+ </property>
+ </widget>
+ </item>
<item>
- <widget class="QWidget" name="buttonwidget" native="true">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>32</height>
- </size>
+ <widget class="QLabel" name="lbFinTime">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>00:00</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing</set>
</property>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>6</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>6</number>
- </property>
- </layout>
</widget>
</item>
</layout>
</item>
<item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <property name="spacing">
+ <widget class="QClickableSlider" name="hsTimer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">QSlider::handle{border:none;background:none;color:none;}</string>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="pageStep">
<number>0</number>
</property>
- <property name="topMargin">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="spacing">
<number>0</number>
</property>
<item>
- <widget class="QPushButton" name="pushButton">
+ <widget class="QPushButton" name="pbPlayPause">
<property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
<property name="maximumSize">
<size>
- <width>21</width>
- <height>21</height>
+ <width>16777215</width>
+ <height>36</height>
</size>
</property>
<property name="text">
- <string>?</string>
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/img/play.svg</normaloff>:/img/play.svg</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
</property>
</widget>
</item>
<item>
- <widget class="QSlider" name="vsMasterVol">
+ <widget class="QPushButton" name="pbStop">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Expanding">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="maximum">
- <number>100</number>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
</property>
- <property name="value">
- <number>50</number>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>36</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/img/stop.svg</normaloff>:/img/stop.svg</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pbPrev">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>36</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/img/prev.svg</normaloff>:/img/prev.svg</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pbNext">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>36</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/img/next.svg</normaloff>:/img/next.svg</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
</property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
<property name="orientation">
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pbAdd">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>36</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/img/open.svg</normaloff>:/img/open.svg</iconset>
</property>
</widget>
</item>
<item>
- <widget class="QLabel" name="lbMasterVol">
+ <widget class="QPushButton" name="pbSettings">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>36</height>
+ </size>
+ </property>
<property name="text">
- <string>Master</string>
+ <string/>
</property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/img/settings.svg</normaloff>:/img/settings.svg</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Vol.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="vsMasterVol">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>50</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
+ <item>
+ <widget class="QWidget" name="buttonwidget" native="true">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>24</height>
+ </size>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>6</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>6</number>
+ </property>
+ </layout>
+ </widget>
+ </item>
</layout>
</widget>
</widget>
@@ -477,6 +581,16 @@
<header>qmpmainwindow.hpp</header>
</customwidget>
</customwidgets>
+ <tabstops>
+ <tabstop>pbPlayPause</tabstop>
+ <tabstop>pbStop</tabstop>
+ <tabstop>pbNext</tabstop>
+ <tabstop>pbPrev</tabstop>
+ <tabstop>pbSettings</tabstop>
+ <tabstop>hsTimer</tabstop>
+ <tabstop>vsMasterVol</tabstop>
+ <tabstop>pushButton</tabstop>
+ </tabstops>
<resources>
<include location="resources.qrc"/>
</resources>
diff --git a/qmidiplayer-desktop/qmpplistwindow.cpp b/qmidiplayer-desktop/qmpplistwindow.cpp
index b6b133e..d010198 100644
--- a/qmidiplayer-desktop/qmpplistwindow.cpp
+++ b/qmidiplayer-desktop/qmpplistwindow.cpp
@@ -36,43 +36,43 @@ qmpPlistWindow::qmpPlistWindow(QWidget *parent) :
switch(shuffle)
{
case 1:
- ui->pbShuffle->setIcon(QIcon(getThemedIcon(":/img/shuffle.png")));
+ ui->pbShuffle->setIcon(QIcon(getThemedIcon(":/img/shuffle.svg")));
ui->pbShuffle->setText("Shuffle On");
break;
case 0:
default:
- ui->pbShuffle->setIcon(QIcon(getThemedIcon(":/img/shuffle-off.png")));
+ ui->pbShuffle->setIcon(QIcon(getThemedIcon(":/img/shuffle-off.svg")));
ui->pbShuffle->setText("Shuffle Off");
break;
}
switch(repeat)
{
case 0:
- ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-non.png")));
+ ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-non.svg")));
ui->pbRepeat->setText("Repeat Off");
break;
case 1:
- ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-one.png")));
+ ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-one.svg")));
ui->pbRepeat->setText("Repeat One");
break;
case 2:
- ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-all.png")));
+ ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-all.svg")));
ui->pbRepeat->setText("Repeat All");
break;
}
delete plist;
}
- ui->pbAdd->setIcon(QIcon(getThemedIcon(":/img/add.png")));
- ui->pbRemove->setIcon(QIcon(getThemedIcon(":/img/remove.png")));
- ui->pbClear->setIcon(QIcon(getThemedIcon(":/img/clear.png")));
- ui->pbAddFolder->setIcon(QIcon(getThemedIcon(":/img/addfolder.png")));
- ui->pbSave->setIcon(QIcon(getThemedIcon(":/img/save.png")));
- ui->pbLoad->setIcon(QIcon(getThemedIcon(":/img/load.png")));
+ ui->pbAdd->setIcon(QIcon(getThemedIcon(":/img/add.svg")));
+ ui->pbRemove->setIcon(QIcon(getThemedIcon(":/img/remove.svg")));
+ ui->pbClear->setIcon(QIcon(getThemedIcon(":/img/clear.svg")));
+ ui->pbAddFolder->setIcon(QIcon(getThemedIcon(":/img/addfolder.svg")));
+ ui->pbSave->setIcon(QIcon(getThemedIcon(":/img/save.svg")));
+ ui->pbLoad->setIcon(QIcon(getThemedIcon(":/img/load.svg")));
qmpMainWindow::getInstance()->registerFunctionality(
plistf=new qmpPlistFunc(this),
std::string("Playlist"),
tr("Playlist").toStdString(),
- getThemedIconc(":/img/list.png"),
+ getThemedIconc(":/img/list.svg"),
0,
true
);
@@ -103,6 +103,7 @@ void qmpPlistWindow::showEvent(QShowEvent *event)
void qmpPlistWindow::closeEvent(QCloseEvent *event)
{
setVisible(false);
+ while(ui->lwFiles->count()>1)delete ui->lwFiles->item(0);
if(!qmpMainWindow::getInstance()->isFinalizing()&&qmpSettingsWindow::getSettingsIntf()->value("Behavior/DialogStatus","").toInt())
{
qmpSettingsWindow::getSettingsIntf()->setValue("DialogStatus/PListWShown",0);
@@ -159,21 +160,21 @@ void qmpPlistWindow::insertItems(QStringList il)
ui->lwFiles->addItems(il);
}
-void qmpPlistWindow::on_pbAdd_clicked()
+int qmpPlistWindow::on_pbAdd_clicked()
{
QStringList sl;
if(qmpSettingsWindow::getSettingsIntf()->value("Behavior/DialogStatus","").toInt())
sl=QFileDialog::getOpenFileNames(this,"Add File",qmpSettingsWindow::getSettingsIntf()->value("DialogStatus/FileDialogPath","").toString(),"Midi files (*.mid *.midi)");
else
sl=QFileDialog::getOpenFileNames(this,"Add File","","Midi files (*.mid *.midi *.rmi)");
- if(sl.empty())return;
+ if(sl.empty())return 0;
for(int i=0;i<sl.size();++i)
- {
ui->lwFiles->addItem(new QListWidgetItem(sl.at(i)));
- }
+ if(!isVisible())while(ui->lwFiles->count()>1)delete ui->lwFiles->item(0);
if(qmpSettingsWindow::getSettingsIntf()->value("Behavior/DialogStatus","").toInt())
qmpSettingsWindow::getSettingsIntf()->setValue("DialogStatus/FileDialogPath",
QUrl(sl.at(0)).toString(QUrl::RemoveFilename));
+ return 1;
}
void qmpPlistWindow::on_pbAddFolder_clicked()
@@ -213,15 +214,15 @@ void qmpPlistWindow::on_pbRepeat_clicked()
switch(repeat)
{
case 0:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-non.png"));
+ ui->pbRepeat->setIcon(QIcon(":/img/repeat-non.svg"));
ui->pbRepeat->setText(tr("Repeat Off"));
break;
case 1:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-one.png"));
+ ui->pbRepeat->setIcon(QIcon(":/img/repeat-one.svg"));
ui->pbRepeat->setText(tr("Repeat One"));
break;
case 2:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-all.png"));
+ ui->pbRepeat->setIcon(QIcon(":/img/repeat-all.svg"));
ui->pbRepeat->setText(tr("Repeat All"));
break;
}
@@ -233,12 +234,12 @@ void qmpPlistWindow::on_pbShuffle_clicked()
switch(shuffle)
{
case 1:
- ui->pbShuffle->setIcon(QIcon(":/img/shuffle.png"));
+ ui->pbShuffle->setIcon(QIcon(":/img/shuffle.svg"));
ui->pbShuffle->setText(tr("Shuffle On"));
break;
case 0:
default:
- ui->pbShuffle->setIcon(QIcon(":/img/shuffle-off.png"));
+ ui->pbShuffle->setIcon(QIcon(":/img/shuffle-off.svg"));
ui->pbShuffle->setText(tr("Shuffle Off"));
break;
}
@@ -317,27 +318,27 @@ void qmpPlistWindow::on_pbLoad_clicked()
switch(shuffle)
{
case 1:
- ui->pbShuffle->setIcon(QIcon(":/img/shuffle.png"));
+ ui->pbShuffle->setIcon(QIcon(":/img/shuffle.svg"));
ui->pbShuffle->setText(tr("Shuffle On"));
break;
case 0:
default:
- ui->pbShuffle->setIcon(QIcon(":/img/shuffle-off.png"));
+ ui->pbShuffle->setIcon(QIcon(":/img/shuffle-off.svg"));
ui->pbShuffle->setText(tr("Shuffle Off"));
break;
}
switch(repeat)
{
case 0:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-non.png"));
+ ui->pbRepeat->setIcon(QIcon(":/img/repeat-non.svg"));
ui->pbRepeat->setText(tr("Repeat Off"));
break;
case 1:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-one.png"));
+ ui->pbRepeat->setIcon(QIcon(":/img/repeat-one.svg"));
ui->pbRepeat->setText(tr("Repeat One"));
break;
case 2:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-all.png"));
+ ui->pbRepeat->setIcon(QIcon(":/img/repeat-all.svg"));
ui->pbRepeat->setText(tr("Repeat All"));
break;
}
diff --git a/qmidiplayer-desktop/qmpplistwindow.hpp b/qmidiplayer-desktop/qmpplistwindow.hpp
index 9e78a8a..9e1b501 100644
--- a/qmidiplayer-desktop/qmpplistwindow.hpp
+++ b/qmidiplayer-desktop/qmpplistwindow.hpp
@@ -51,7 +51,7 @@ class qmpPlistWindow : public QDialog
void selectionChanging();
public slots:
- void on_pbAdd_clicked();
+ int on_pbAdd_clicked();
private slots:
void on_pbAddFolder_clicked();
void on_pbRemove_clicked();
diff --git a/qmidiplayer-desktop/qmpplistwindow.ui b/qmidiplayer-desktop/qmpplistwindow.ui
index 7b4eaa5..4c4c786 100644
--- a/qmidiplayer-desktop/qmpplistwindow.ui
+++ b/qmidiplayer-desktop/qmpplistwindow.ui
@@ -66,7 +66,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/save.png</normaloff>:/img/save.png</iconset>
+ <normaloff>:/img/save.svg</normaloff>:/img/save.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -98,7 +98,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/add.png</normaloff>:/img/add.png</iconset>
+ <normaloff>:/img/add.svg</normaloff>:/img/add.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -130,7 +130,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/load.png</normaloff>:/img/load.png</iconset>
+ <normaloff>:/img/load.svg</normaloff>:/img/load.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -162,7 +162,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/repeat-non.png</normaloff>:/img/repeat-non.png</iconset>
+ <normaloff>:/img/repeat-non.svg</normaloff>:/img/repeat-non.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -194,7 +194,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/remove.png</normaloff>:/img/remove.png</iconset>
+ <normaloff>:/img/remove.svg</normaloff>:/img/remove.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -226,7 +226,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/addfolder.png</normaloff>:/img/addfolder.png</iconset>
+ <normaloff>:/img/addfolder.svg</normaloff>:/img/addfolder.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -258,7 +258,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/shuffle-off.png</normaloff>:/img/shuffle-off.png</iconset>
+ <normaloff>:/img/shuffle-off.svg</normaloff>:/img/shuffle-off.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -290,7 +290,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/clear.png</normaloff>:/img/clear.png</iconset>
+ <normaloff>:/img/clear.svg</normaloff>:/img/clear.svg</iconset>
</property>
<property name="iconSize">
<size>
diff --git a/qmidiplayer-desktop/qmpplugin.cpp b/qmidiplayer-desktop/qmpplugin.cpp
index 7ff305c..f93cddf 100644
--- a/qmidiplayer-desktop/qmpplugin.cpp
+++ b/qmidiplayer-desktop/qmpplugin.cpp
@@ -179,6 +179,8 @@ bool qmpPluginAPI::isDarkTheme(){return qmw?qmw->isDarkTheme():false;}
void qmpPluginAPI::discardCurrentEvent(){if(qmw&&qmw->getPlayer())qmw->getPlayer()->discardCurrentEvent();}
void qmpPluginAPI::commitEventChange(SEventCallBackData d){if(qmw&&qmw->getPlayer())qmw->getPlayer()->commitEventChange(d);}
void qmpPluginAPI::callEventReaderCB(SEventCallBackData d){if(qmw&&qmw->getPlayer())qmw->getPlayer()->callEventReaderCB(d);}
+void qmpPluginAPI::setFuncState(std::string name,bool state){if(qmw)qmw->setFuncState(name,state);}
+void qmpPluginAPI::setFuncEnabled(std::string name,bool enable){if(qmw)qmw->setFuncEnabled(name,enable);}
int qmpPluginAPI::registerEventHandlerIntf(IMidiCallBack *cb,void *userdata)
{return qmw->getPlayer()->setEventHandlerCB(cb,userdata);}
@@ -192,6 +194,10 @@ void qmpPluginAPI::registerVisualizationIntf(qmpVisualizationIntf* intf,std::str
{qmw->registerVisualizationIntf(intf,name,desc,icon,iconlen);}
void qmpPluginAPI::unregisterVisualizationIntf(std::string name)
{qmw->unregisterVisualizationIntf(name);}
+void qmpPluginAPI::registerFunctionality(qmpFuncBaseIntf *i,std::string name,std::string desc,const char *icon,int iconlen,bool checkable)
+{qmw->registerFunctionality(i,name,desc,icon,iconlen,checkable);}
+void qmpPluginAPI::unregisterFunctionality(std::string name)
+{qmw->unregisterFunctionality(name);}
int qmpPluginAPI::registerFileReadFinishedHandlerIntf(IMidiCallBack* cb,void* userdata)
{return qmw->getPlayer()->setFileReadFinishedCB(cb,userdata);}
void qmpPluginAPI::unregisterFileReadFinishedHandlerIntf(int intfhandle)
diff --git a/qmidiplayer-desktop/qmpsettingswindow.cpp b/qmidiplayer-desktop/qmpsettingswindow.cpp
index abd8213..3be0a3e 100644
--- a/qmidiplayer-desktop/qmpsettingswindow.cpp
+++ b/qmidiplayer-desktop/qmpsettingswindow.cpp
@@ -8,7 +8,7 @@
QSettings* qmpSettingsWindow::settings=NULL;
QComboBox* qmpSettingsWindow::outwidget=NULL;
-void qmpFluidForEachOpt(void* data,char* /*name*/,char* option)
+void qmpFluidForEachOpt(void* data,char*,char* option)
{
QComboBox *pcb=(QComboBox*)data;
pcb->addItem(option);
@@ -24,10 +24,10 @@ qmpSettingsWindow::qmpSettingsWindow(QWidget *parent) :
connect(this,SIGNAL(dialogClosing()),parent,SLOT(dialogClosed()));
settings=new QSettings(QDir::homePath()+QString("/.config/qmprc"),QSettings::IniFormat);
settingsInit();outwidget=ui->cbOutputDevice;
- ui->pbAdd->setIcon(QIcon(getThemedIcon(":/img/add.png")));
- ui->pbRemove->setIcon(QIcon(getThemedIcon(":/img/remove.png")));
- ui->pbDown->setIcon(QIcon(getThemedIcon(":/img/down.png")));
- ui->pbUp->setIcon(QIcon(getThemedIcon(":/img/up.png")));
+ ui->pbAdd->setIcon(QIcon(getThemedIcon(":/img/add.svg")));
+ ui->pbRemove->setIcon(QIcon(getThemedIcon(":/img/remove.svg")));
+ ui->pbDown->setIcon(QIcon(getThemedIcon(":/img/down.svg")));
+ ui->pbUp->setIcon(QIcon(getThemedIcon(":/img/up.svg")));
cw=new qmpCustomizeWindow(this);
}
@@ -52,6 +52,7 @@ QComboBox* qmpSettingsWindow::getDefaultOutWidget(){return outwidget;}
void qmpSettingsWindow::on_buttonBox_accepted()
{
settingsUpdate();
+ qmpMainWindow::getInstance()->setupWidget();
emit dialogClosing();
}
@@ -66,7 +67,6 @@ void qmpSettingsWindow::settingsInit()
fluid_settings_t *fsettings=new_fluid_settings();
settings->setValue("Midi/DefaultOutput",settings->value("Midi/DefaultOutput","Internal FluidSynth"));
- //this item is still a stub...
settings->setValue("Midi/DisableMapping",settings->value("Midi/DisableMapping",0));
ui->cbDisableMapping->setChecked(settings->value("Midi/DisableMapping",0).toInt());
@@ -187,6 +187,9 @@ void qmpSettingsWindow::settingsInit()
settings->setValue("Behavior/SingleInstance",settings->value("Behavior/SingleInstance",0));
ui->cbPersistentfs->setChecked(settings->value("Behavior/SingleInstance",0).toInt());
+ settings->setValue("Behavior/ShowButtonLabel",settings->value("Behavior/ShowButtonLabel",0));
+ ui->cbShowLabel->setChecked(settings->value("Behavior/ShowButtonLabel",0).toInt());
+
settings->setValue("Behavior/IconTheme",settings->value("Behavior/IconTheme",0));
ui->cbIconTheme->setCurrentIndex(settings->value("Behavior/IconTheme",0).toInt());
@@ -240,6 +243,8 @@ void qmpSettingsWindow::settingsUpdate()
settings->setValue("Behavior/SingleInstance",ui->cbPersistentfs->isChecked()?1:0);
+ settings->setValue("Behavior/ShowButtonLabel",ui->cbShowLabel->isChecked()?1:0);
+
settings->setValue("Behavior/IconTheme",ui->cbIconTheme->currentIndex());
if(!ui->cbDialogStatus->isChecked())
diff --git a/qmidiplayer-desktop/qmpsettingswindow.ui b/qmidiplayer-desktop/qmpsettingswindow.ui
index 6497d1c..ad359f7 100644
--- a/qmidiplayer-desktop/qmpsettingswindow.ui
+++ b/qmidiplayer-desktop/qmpsettingswindow.ui
@@ -23,7 +23,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
- <number>3</number>
+ <number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
@@ -467,7 +467,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/add.png</normaloff>:/img/add.png</iconset>
+ <normaloff>:/img/add.svg</normaloff>:/img/add.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -484,7 +484,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/remove.png</normaloff>:/img/remove.png</iconset>
+ <normaloff>:/img/remove.svg</normaloff>:/img/remove.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -501,7 +501,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/up.png</normaloff>:/img/up.png</iconset>
+ <normaloff>:/img/up.svg</normaloff>:/img/up.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -518,7 +518,7 @@
</property>
<property name="icon">
<iconset resource="resources.qrc">
- <normaloff>:/img/down.png</normaloff>:/img/down.png</iconset>
+ <normaloff>:/img/down.svg</normaloff>:/img/down.svg</iconset>
</property>
<property name="iconSize">
<size>
@@ -540,7 +540,7 @@
<item>
<widget class="QCheckBox" name="cbRestorePlaylist">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -553,7 +553,7 @@
<item>
<widget class="QCheckBox" name="cbLoadFolder">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -566,7 +566,7 @@
<item>
<widget class="QCheckBox" name="cbDialogStatus">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -579,7 +579,7 @@
<item>
<widget class="QCheckBox" name="cbSaveEfxParam">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -592,7 +592,7 @@
<item>
<widget class="QCheckBox" name="cbPersistentfs">
<property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -603,6 +603,19 @@
</widget>
</item>
<item>
+ <widget class="QCheckBox" name="cbShowLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Show label beside icon in toolbar buttons</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label">
diff --git a/qmidiplayer-desktop/resources.qrc b/qmidiplayer-desktop/resources.qrc
index 044acd8..1249307 100644
--- a/qmidiplayer-desktop/resources.qrc
+++ b/qmidiplayer-desktop/resources.qrc
@@ -1,56 +1,64 @@
<RCC>
<qresource prefix="/">
- <file>../img/add.png</file>
- <file>../img/list.png</file>
- <file>../img/addfolder.png</file>
- <file>../img/channel.png</file>
- <file>../img/prev.png</file>
+ <file>../img/add.svg</file>
+ <file>../img/list.svg</file>
+ <file>../img/addfolder.svg</file>
+ <file>../img/channel.svg</file>
+ <file>../img/prev.svg</file>
<file>../img/qmidiplyr.png</file>
- <file>../img/remove.png</file>
- <file>../img/clear.png</file>
- <file>../img/down.png</file>
- <file>../img/effects.png</file>
- <file>../img/repeat-all.png</file>
- <file>../img/repeat-base.png</file>
- <file>../img/repeat-non.png</file>
- <file>../img/load.png</file>
- <file>../img/next.png</file>
- <file>../img/repeat-one.png</file>
- <file>../img/save.png</file>
- <file>../img/settings.png</file>
- <file>../img/pause.png</file>
- <file>../img/play.png</file>
- <file>../img/shuffle-off.png</file>
- <file>../img/shuffle.png</file>
- <file>../img/stop.png</file>
- <file>../img/up.png</file>
- <file>../img/visualization.png</file>
- <file>../img/add_i.png</file>
- <file>../img/list_i.png</file>
- <file>../img/addfolder_i.png</file>
- <file>../img/channel_i.png</file>
- <file>../img/prev_i.png</file>
- <file>../img/remove_i.png</file>
- <file>../img/clear_i.png</file>
- <file>../img/down_i.png</file>
- <file>../img/effects_i.png</file>
- <file>../img/repeat-all_i.png</file>
- <file>../img/repeat-base_i.png</file>
- <file>../img/repeat-non_i.png</file>
- <file>../img/load_i.png</file>
- <file>../img/next_i.png</file>
- <file>../img/repeat-one_i.png</file>
- <file>../img/save_i.png</file>
- <file>../img/settings_i.png</file>
- <file>../img/pause_i.png</file>
- <file>../img/play_i.png</file>
- <file>../img/shuffle-off_i.png</file>
- <file>../img/shuffle_i.png</file>
- <file>../img/stop_i.png</file>
- <file>../img/up_i.png</file>
- <file>../img/visualization_i.png</file>
- <file>../img/ledon.png</file>
- <file>../img/ledoff.png</file>
+ <file>../img/remove.svg</file>
+ <file>../img/clear.svg</file>
+ <file>../img/down.svg</file>
+ <file>../img/effects.svg</file>
+ <file>../img/repeat-all.svg</file>
+ <file>../img/repeat-non.svg</file>
+ <file>../img/load.svg</file>
+ <file>../img/next.svg</file>
+ <file>../img/repeat-one.svg</file>
+ <file>../img/repeat-base.svg</file>
+ <file>../img/save.svg</file>
+ <file>../img/settings.svg</file>
+ <file>../img/pause.svg</file>
+ <file>../img/play.svg</file>
+ <file>../img/shuffle-off.svg</file>
+ <file>../img/shuffle.svg</file>
+ <file>../img/stop.svg</file>
+ <file>../img/up.svg</file>
+ <file>../img/visualization.svg</file>
+ <file>../img/add_i.svg</file>
+ <file>../img/list_i.svg</file>
+ <file>../img/addfolder_i.svg</file>
+ <file>../img/channel_i.svg</file>
+ <file>../img/prev_i.svg</file>
+ <file>../img/remove_i.svg</file>
+ <file>../img/clear_i.svg</file>
+ <file>../img/down_i.svg</file>
+ <file>../img/effects_i.svg</file>
+ <file>../img/repeat-all_i.svg</file>
+ <file>../img/repeat-non_i.svg</file>
+ <file>../img/load_i.svg</file>
+ <file>../img/next_i.svg</file>
+ <file>../img/repeat-one_i.svg</file>
+ <file>../img/repeat-base_i.svg</file>
+ <file>../img/save_i.svg</file>
+ <file>../img/settings_i.svg</file>
+ <file>../img/pause_i.svg</file>
+ <file>../img/play_i.svg</file>
+ <file>../img/shuffle-off_i.svg</file>
+ <file>../img/shuffle_i.svg</file>
+ <file>../img/stop_i.svg</file>
+ <file>../img/up_i.svg</file>
+ <file>../img/visualization_i.svg</file>
+ <file>../img/open.svg</file>
+ <file>../img/info.svg</file>
+ <file>../img/render.svg</file>
+ <file>../img/panic.svg</file>
+ <file>../img/open_i.svg</file>
+ <file>../img/info_i.svg</file>
+ <file>../img/render_i.svg</file>
+ <file>../img/panic_i.svg</file>
+ <file>../img/ledon.svg</file>
+ <file>../img/ledoff.svg</file>
<file>../doc/index_internal.html</file>
<file>../doc/version_internal.html</file>
<file>../doc/license_internal.html</file>
diff --git a/visualization/qmpvisualization.cpp b/visualization/qmpvisualization.cpp
index 9a8f675..86b8900 100644
--- a/visualization/qmpvisualization.cpp
+++ b/visualization/qmpvisualization.cpp
@@ -754,7 +754,7 @@ void qmpVisualization::init()
rendererTh=NULL;playing=false;
memset(spectra,0,sizeof(spectra));
memset(spectrar,0,sizeof(spectrar));
- api->registerVisualizationIntf(vi,"Visualization","Visualization",api->isDarkTheme()?":/img/visualization_i.png":":/img/visualization.png",0);
+ api->registerVisualizationIntf(vi,"Visualization","Visualization",api->isDarkTheme()?":/img/visualization_i.svg":":/img/visualization.svg",0);
herif=api->registerEventReaderIntf(cb,NULL);
hehif=api->registerEventHandlerIntf(hcb,NULL);
hfrf=api->registerFileReadFinishedHandlerIntf(frcb,NULL);