aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--doc/optionsdialog.html1
-rw-r--r--img/add_i.pngbin0 -> 254 bytes
-rw-r--r--img/addfolder_i.pngbin0 -> 962 bytes
-rw-r--r--img/channel_i.pngbin0 -> 305 bytes
-rw-r--r--img/clear_i.pngbin0 -> 361 bytes
-rw-r--r--img/down_i.pngbin0 -> 316 bytes
-rw-r--r--img/effects_i.pngbin0 -> 774 bytes
-rw-r--r--img/kb.pngbin0 -> 10948 bytes
-rw-r--r--img/list_i.pngbin0 -> 256 bytes
-rw-r--r--img/load_i.pngbin0 -> 890 bytes
-rw-r--r--img/next_i.pngbin0 -> 632 bytes
-rw-r--r--img/pause_i.pngbin0 -> 237 bytes
-rw-r--r--img/play_i.pngbin0 -> 577 bytes
-rw-r--r--img/prev_i.pngbin0 -> 672 bytes
-rw-r--r--img/remove_i.pngbin0 -> 191 bytes
-rw-r--r--img/repeat-all_i.pngbin0 -> 1176 bytes
-rw-r--r--img/repeat-base_i.pngbin0 -> 865 bytes
-rw-r--r--img/repeat-non_i.pngbin0 -> 951 bytes
-rw-r--r--img/repeat-one_i.pngbin0 -> 956 bytes
-rw-r--r--img/save_i.pngbin0 -> 1072 bytes
-rw-r--r--img/save_i.svg523
-rw-r--r--img/settings_i.pngbin0 -> 919 bytes
-rw-r--r--img/shuffle-off_i.pngbin0 -> 910 bytes
-rw-r--r--img/shuffle_i.pngbin0 -> 819 bytes
-rw-r--r--img/stop_i.pngbin0 -> 242 bytes
-rw-r--r--img/up_i.pngbin0 -> 312 bytes
-rw-r--r--img/visualization_i.pngbin0 -> 302 bytes
-rw-r--r--qmidiplayer-desktop/qmpmainwindow.cpp28
-rw-r--r--qmidiplayer-desktop/qmpmainwindow.hpp5
-rw-r--r--qmidiplayer-desktop/qmpplistwindow.cpp16
-rw-r--r--qmidiplayer-desktop/qmpsettingswindow.cpp15
-rw-r--r--qmidiplayer-desktop/qmpsettingswindow.ui66
-rw-r--r--qmidiplayer-desktop/resources.qrc24
-rw-r--r--qmidiplayer-desktop/translations/qmp_zh_CN.ts172
35 files changed, 755 insertions, 99 deletions
diff --git a/ChangeLog b/ChangeLog
index 0a1e254..a77475a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-09-23 0.8.3 alpha
+Add a set of icons for dark themes and a option to
+change the icon theme.
+
2016-09-16 0.8.3 alpha
Minor bug fix. Update documentation.
diff --git a/doc/optionsdialog.html b/doc/optionsdialog.html
index efa5baf..c512447 100644
--- a/doc/optionsdialog.html
+++ b/doc/optionsdialog.html
@@ -72,6 +72,7 @@
<li>Save parameters in effects window</li>
<li>Persistent fluidsynth instance*: If checked, the synthesizer engine will keep running
through the whole session. Otherwise it is restarted every time when a new song is played.</li>
+ <li>Icon Theme: Leave it unchanged unless you can't see the icons on those buttons.</li>
</ul>
<img src="../img/options5.png"><br>
Plugin manager. View details of plugins, enable or disable them here.<br>
diff --git a/img/add_i.png b/img/add_i.png
new file mode 100644
index 0000000..5143396
--- /dev/null
+++ b/img/add_i.png
Binary files differ
diff --git a/img/addfolder_i.png b/img/addfolder_i.png
new file mode 100644
index 0000000..1c784f3
--- /dev/null
+++ b/img/addfolder_i.png
Binary files differ
diff --git a/img/channel_i.png b/img/channel_i.png
new file mode 100644
index 0000000..30bba80
--- /dev/null
+++ b/img/channel_i.png
Binary files differ
diff --git a/img/clear_i.png b/img/clear_i.png
new file mode 100644
index 0000000..671b7b7
--- /dev/null
+++ b/img/clear_i.png
Binary files differ
diff --git a/img/down_i.png b/img/down_i.png
new file mode 100644
index 0000000..e77d19f
--- /dev/null
+++ b/img/down_i.png
Binary files differ
diff --git a/img/effects_i.png b/img/effects_i.png
new file mode 100644
index 0000000..b655c5f
--- /dev/null
+++ b/img/effects_i.png
Binary files differ
diff --git a/img/kb.png b/img/kb.png
new file mode 100644
index 0000000..832bee4
--- /dev/null
+++ b/img/kb.png
Binary files differ
diff --git a/img/list_i.png b/img/list_i.png
new file mode 100644
index 0000000..73a0ab5
--- /dev/null
+++ b/img/list_i.png
Binary files differ
diff --git a/img/load_i.png b/img/load_i.png
new file mode 100644
index 0000000..7b2de7f
--- /dev/null
+++ b/img/load_i.png
Binary files differ
diff --git a/img/next_i.png b/img/next_i.png
new file mode 100644
index 0000000..7e32146
--- /dev/null
+++ b/img/next_i.png
Binary files differ
diff --git a/img/pause_i.png b/img/pause_i.png
new file mode 100644
index 0000000..499ef4c
--- /dev/null
+++ b/img/pause_i.png
Binary files differ
diff --git a/img/play_i.png b/img/play_i.png
new file mode 100644
index 0000000..e38e1a9
--- /dev/null
+++ b/img/play_i.png
Binary files differ
diff --git a/img/prev_i.png b/img/prev_i.png
new file mode 100644
index 0000000..b4b0312
--- /dev/null
+++ b/img/prev_i.png
Binary files differ
diff --git a/img/remove_i.png b/img/remove_i.png
new file mode 100644
index 0000000..50dfc42
--- /dev/null
+++ b/img/remove_i.png
Binary files differ
diff --git a/img/repeat-all_i.png b/img/repeat-all_i.png
new file mode 100644
index 0000000..6984458
--- /dev/null
+++ b/img/repeat-all_i.png
Binary files differ
diff --git a/img/repeat-base_i.png b/img/repeat-base_i.png
new file mode 100644
index 0000000..80c4532
--- /dev/null
+++ b/img/repeat-base_i.png
Binary files differ
diff --git a/img/repeat-non_i.png b/img/repeat-non_i.png
new file mode 100644
index 0000000..050952e
--- /dev/null
+++ b/img/repeat-non_i.png
Binary files differ
diff --git a/img/repeat-one_i.png b/img/repeat-one_i.png
new file mode 100644
index 0000000..fa1cc35
--- /dev/null
+++ b/img/repeat-one_i.png
Binary files differ
diff --git a/img/save_i.png b/img/save_i.png
new file mode 100644
index 0000000..11959f6
--- /dev/null
+++ b/img/save_i.png
Binary files differ
diff --git a/img/save_i.svg b/img/save_i.svg
new file mode 100644
index 0000000..c021f8f
--- /dev/null
+++ b/img/save_i.svg
@@ -0,0 +1,523 @@
+<?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:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2985"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="save_i.svg"
+ inkscape:export-filename="/home/chrisoft/devel/qmidiplayer/qmidiplayer/img/save.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <title
+ id="title3080">Save all</title>
+ <defs
+ id="defs2987">
+ <linearGradient
+ y2="-5.9535513"
+ x2="24.285765"
+ y1="14.716651"
+ x1="9.7099533"
+ gradientTransform="matrix(1.117647,0,0,1.1,-290.08518,-48.65)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5471"
+ xlink:href="#linearGradient6056"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="7.8355665"
+ x2="16.552481"
+ y1="2.9626985"
+ x1="16.552481"
+ gradientTransform="matrix(0.9803921,0,0,1.1,-287.3793,-48.3)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5467"
+ xlink:href="#linearGradient6108"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-288.67342,-47.5)"
+ y2="3.6734154"
+ x2="14.04664"
+ y1="6.504528"
+ x1="18.963779"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5464"
+ xlink:href="#linearGradient4916"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="3.7493312"
+ x2="18.561535"
+ y1="4.5279388"
+ x1="17.68836"
+ gradientTransform="matrix(1.3472897,0,0,1.3356241,-295.4037,-49.007697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5462"
+ xlink:href="#linearGradient6076"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5897">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1;"
+ offset="0"
+ id="stop5899" />
+ <stop
+ style="stop-color:#729fcf;stop-opacity:0;"
+ offset="1"
+ id="stop5901" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4916">
+ <stop
+ style="stop-color:#888a85;stop-opacity:1"
+ offset="0"
+ id="stop4918" />
+ <stop
+ style="stop-color:#5d5f5b;stop-opacity:0;"
+ offset="1"
+ id="stop4920" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6108">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop6110" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop6112" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6076">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop6078" />
+ <stop
+ style="stop-color:#cbcbcb;stop-opacity:1"
+ offset="1"
+ id="stop6080" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6056">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop6058" />
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="1"
+ id="stop6060" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6056"
+ id="linearGradient6062"
+ x1="9.7099533"
+ y1="14.716651"
+ x2="24.285765"
+ y2="-5.9535513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.117647,0,0,1.1,-1.4117645,-1.15)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6076"
+ id="linearGradient6082"
+ x1="17.68836"
+ y1="4.5279388"
+ x2="18.561535"
+ y2="3.7493312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3472897,0,0,1.3356241,-6.7302791,-1.5076969)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6108"
+ id="linearGradient6114"
+ x1="16.552481"
+ y1="2.9626985"
+ x2="16.552481"
+ y2="7.8355665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9803921,0,0,1.1,1.2941182,-0.8000001)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4916"
+ id="linearGradient4922"
+ x1="18.963779"
+ y1="6.504528"
+ x2="14.04664"
+ y2="3.6734154"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5897"
+ id="linearGradient5903"
+ x1="4.1902652"
+ y1="25.646143"
+ x2="14.649404"
+ y2="12.007792"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5897"
+ id="linearGradient5929"
+ gradientUnits="userSpaceOnUse"
+ x1="4.1902652"
+ y1="25.646143"
+ x2="14.649404"
+ y2="12.007792" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="19.035276"
+ x2="21.347517"
+ y1="16.874674"
+ x1="19.28145"
+ id="linearGradient6051"
+ xlink:href="#linearGradient6045"
+ inkscape:collect="always"
+ gradientTransform="matrix(0.9168831,0,0,0.9169468,1.6694447,1.4811158)" />
+ <linearGradient
+ gradientTransform="matrix(0.2947292,0,0,0.2947292,9.2434959,8.1106157)"
+ gradientUnits="userSpaceOnUse"
+ y2="22.40896"
+ x2="52.986004"
+ y1="17.590158"
+ x1="48.690983"
+ id="linearGradient5914"
+ xlink:href="#linearGradient5908"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.4140801,0,0,0.4496565,2.2850397,5.3289509)"
+ gradientUnits="userSpaceOnUse"
+ y2="18.158607"
+ x2="56.384373"
+ y1="14.8742"
+ x1="53.454674"
+ id="linearGradient4930"
+ xlink:href="#linearGradient4924"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.7214926,0,0,0.7210249,4.4502003,-1.0759528)"
+ gradientUnits="userSpaceOnUse"
+ y2="23.074486"
+ x2="19.445436"
+ y1="28.73134"
+ x1="25.279068"
+ id="linearGradient5933"
+ xlink:href="#linearGradient5927"
+ inkscape:collect="always" />
+ <radialGradient
+ r="12.5"
+ fy="16.093563"
+ fx="48.178337"
+ cy="16.093563"
+ cx="48.178337"
+ gradientTransform="matrix(0.117808,0.165688,-0.160285,0.113967,37.8996,24.60705)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3740"
+ xlink:href="#linearGradient2812"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientTransform="matrix(0.710234,0.703965,-0.828897,0.836278,-17.34172,-12.95082)"
+ gradientUnits="userSpaceOnUse"
+ r="12.5"
+ fy="17.172701"
+ fx="18.389807"
+ cy="17.172701"
+ cx="18.389807"
+ id="radialGradient2818"
+ xlink:href="#linearGradient2812"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-21.33061,6.070707)"
+ gradientUnits="userSpaceOnUse"
+ y2="23.00688"
+ x2="42.993927"
+ y1="18.054306"
+ x1="42.993927"
+ id="linearGradient2802"
+ xlink:href="#linearGradient2796"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientTransform="matrix(1.515341,0.01822282,-0.01854671,1.542275,-9.89215,-9.850491)"
+ gradientUnits="userSpaceOnUse"
+ r="9.5"
+ fy="17.498907"
+ fx="19.825111"
+ cy="17.498907"
+ cx="19.825111"
+ id="radialGradient2794"
+ xlink:href="#linearGradient2788"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.176471,0,13.58824)"
+ r="8.5"
+ fy="16.5"
+ fx="9.5"
+ cy="16.5"
+ cx="9.5"
+ id="radialGradient3221"
+ xlink:href="#linearGradient3215"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3215"
+ inkscape:collect="always">
+ <stop
+ id="stop3217"
+ offset="0"
+ style="stop-color:#2e3436;stop-opacity:1;" />
+ <stop
+ id="stop3219"
+ offset="1"
+ style="stop-color:#2e3436;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2788">
+ <stop
+ id="stop2790"
+ offset="0"
+ style="stop-color:#729fcf;stop-opacity:1;" />
+ <stop
+ id="stop2792"
+ offset="1"
+ style="stop-color:white;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2796"
+ inkscape:collect="always">
+ <stop
+ id="stop2798"
+ offset="0"
+ style="stop-color:#204a87;stop-opacity:1;" />
+ <stop
+ id="stop2800"
+ offset="1"
+ style="stop-color:#1a3c6e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2812">
+ <stop
+ id="stop2814"
+ offset="0"
+ style="stop-color:#3070ce;stop-opacity:1" />
+ <stop
+ id="stop2816"
+ offset="1"
+ style="stop-color:#1a3c6e;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5927"
+ inkscape:collect="always">
+ <stop
+ id="stop5929"
+ offset="0"
+ style="stop-color:#c17d11;stop-opacity:1;" />
+ <stop
+ id="stop5931"
+ offset="1"
+ style="stop-color:#c17d11;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4924"
+ inkscape:collect="always">
+ <stop
+ id="stop4926"
+ offset="0"
+ style="stop-color:#ef2929;stop-opacity:1" />
+ <stop
+ id="stop4928"
+ offset="1"
+ style="stop-color:#cc0000;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5908"
+ inkscape:collect="always">
+ <stop
+ id="stop5910"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop5912"
+ offset="1"
+ style="stop-color:#888a85;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6045"
+ inkscape:collect="always">
+ <stop
+ id="stop6047"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop6049"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6045"
+ id="linearGradient6018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9168831,0,0,0.9169468,3.9818882,-0.8641132)"
+ x1="19.28145"
+ y1="16.874674"
+ x2="21.347517"
+ y2="19.035276" />
+ <linearGradient
+ id="linearGradient5222">
+ <stop
+ id="stop5224"
+ offset="0"
+ style="stop-color:#7ea5d6;stop-opacity:1;" />
+ <stop
+ id="stop5226"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5269">
+ <stop
+ id="stop5271"
+ offset="0"
+ style="stop-color:#c6c6c6;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0.5"
+ id="stop5277" />
+ <stop
+ id="stop5273"
+ offset="1"
+ style="stop-color:#a5a5a5;stop-opacity:1;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#000000"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7"
+ inkscape:cx="113.01836"
+ inkscape:cy="50.04465"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="2544"
+ inkscape:window-height="1344"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata2990">
+ <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>Save all</dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:creator>
+ <dc:description>Based on Jakub Steiner &quot;Floppy&quot; icon from GTK sock icon</dc:description>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/LGPL/2.1/" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ transform="translate(0,16)">
+ <g
+ id="g4210"
+ transform="matrix(1.2253938,0,0,1.2253938,-8.5703354,-3.1493052)">
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.4865638;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ d="m 17.53,0.558 1.41e-4,26.466099 3.364721,3.364721 27.791138,1.8e-4 0,0 0,-29.830652 0,-3.48e-4 -31.156,0 z"
+ id="path4236"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate"
+ d="M 44.988152,4.3184227 44.988,16.196 l 0,0 -23.785,0 0,0 1.29e-4,-11.8775773 z"
+ id="path4240"
+ sodipodi:nodetypes="ccccccc" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate"
+ id="rect4242"
+ width="23.785023"
+ height="4.4596915"
+ x="21.203129"
+ y="-0.15622033" />
+ <rect
+ y="2.8169074"
+ x="21.203129"
+ height="1.4865638"
+ width="23.785023"
+ id="rect4244"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate"
+ id="rect4246"
+ width="23.785023"
+ height="1.4865638"
+ x="21.203129"
+ y="-0.15622033" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate"
+ id="rect4248"
+ width="17.838766"
+ height="1.4865639"
+ x="24.176258"
+ y="7.2765989" />
+ <rect
+ y="11.736291"
+ x="24.176258"
+ height="1.4865639"
+ width="17.838766"
+ id="rect4250"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:1.4865638;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ d="M 41.271742,30.318339 41.272,18.426 l 0,0 -17.839,0 0,0 -2.5e-5,11.892339 z"
+ id="path4254"
+ sodipodi:nodetypes="ccccccc" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:1.4865638;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ id="rect4258"
+ width="2.9731278"
+ height="5.8533459"
+ x="27.892668"
+ y="21.491867" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc"
+ id="path4260"
+ d="M 39.899528,28.938976 39.9,19.912 l 0,0 -15.095,0 0,0 1.87e-4,9.026976 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.34482763;fill:none;stroke:#cccccc;stroke-width:1.48699999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ </g>
+ </g>
+</svg>
diff --git a/img/settings_i.png b/img/settings_i.png
new file mode 100644
index 0000000..ca682b7
--- /dev/null
+++ b/img/settings_i.png
Binary files differ
diff --git a/img/shuffle-off_i.png b/img/shuffle-off_i.png
new file mode 100644
index 0000000..9f2206f
--- /dev/null
+++ b/img/shuffle-off_i.png
Binary files differ
diff --git a/img/shuffle_i.png b/img/shuffle_i.png
new file mode 100644
index 0000000..6c3a61d
--- /dev/null
+++ b/img/shuffle_i.png
Binary files differ
diff --git a/img/stop_i.png b/img/stop_i.png
new file mode 100644
index 0000000..cf30c28
--- /dev/null
+++ b/img/stop_i.png
Binary files differ
diff --git a/img/up_i.png b/img/up_i.png
new file mode 100644
index 0000000..0ff90c0
--- /dev/null
+++ b/img/up_i.png
Binary files differ
diff --git a/img/visualization_i.png b/img/visualization_i.png
new file mode 100644
index 0000000..b1a7a93
--- /dev/null
+++ b/img/visualization_i.png
Binary files differ
diff --git a/qmidiplayer-desktop/qmpmainwindow.cpp b/qmidiplayer-desktop/qmpmainwindow.cpp
index 48dd531..1927350 100644
--- a/qmidiplayer-desktop/qmpmainwindow.cpp
+++ b/qmidiplayer-desktop/qmpmainwindow.cpp
@@ -126,6 +126,15 @@ void qmpMainWindow::init()
connect(timer,SIGNAL(timeout()),chnlw,SLOT(channelWindowsUpdate()));
connect(timer,SIGNAL(timeout()),infow,SLOT(updateInfo()));
if(havemidi)on_pbPlayPause_clicked();
+ 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")));
}
int qmpMainWindow::pharseArgs()
@@ -243,7 +252,7 @@ void qmpMainWindow::updateWidgets()
delete playerTh;playerTh=NULL;
if(singleFS)player->playerPanic(true);
chnlw->on_pbUnmute_clicked();chnlw->on_pbUnsolo_clicked();
- ui->pbPlayPause->setIcon(QIcon(":/img/play.png"));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.png")));
ui->hsTimer->setValue(0);
ui->lnPolyphone->display("00000-00000");
ui->lbCurTime->setText("00:00");
@@ -419,7 +428,7 @@ void qmpMainWindow::on_pbPlayPause_clicked()
player->setTCpaused(!playing);
for(int i=0;i<16;++i)if(VIs[i])VIs[i]->pause();
}
- ui->pbPlayPause->setIcon(QIcon(playing?":/img/pause.png":":/img/play.png"));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(playing?":/img/pause.png":":/img/play.png")));
}
void qmpMainWindow::on_hsTimer_sliderPressed()
@@ -489,7 +498,7 @@ 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(":/img/play.png"));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/play.png")));
ui->hsTimer->setValue(0);
ui->lnPolyphone->display("00000-00000");
ui->lbCurTime->setText("00:00");
@@ -584,7 +593,7 @@ void qmpMainWindow::on_pbNext_clicked()
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);
+ SetThreadPriority(playerTh->native_handle(),THREAD_PRIORITY_TIME_CRITICAL);
#endif
st=std::chrono::steady_clock::now();offset=0;
timer->start(UPDATE_INTERVAL);
@@ -593,7 +602,7 @@ void qmpMainWindow::on_pbNext_clicked()
void qmpMainWindow::selectionChanged()
{
stopped=false;playing=true;
- ui->pbPlayPause->setIcon(QIcon(":/img/pause.png"));
+ ui->pbPlayPause->setIcon(QIcon(getThemedIcon(":/img/pause.png")));
timer->stop();player->playerDeinit();
for(int i=0;i<16;++i)if(VIs[i])VIs[i]->stop();
if(playerTh){playerTh->join();delete playerTh;playerTh=NULL;}
@@ -671,6 +680,15 @@ void qmpMainWindow::unregisterVisualizationIntf(int handle)
VIs[handle]=NULL;
}
+bool qmpMainWindow::isDarkTheme()
+{
+ if(!qmpSettingsWindow::getSettingsIntf()->value("Behavior/IconTheme",0).toInt())
+ {
+ return ui->centralWidget->palette().color(QPalette::Background).lightness()<128;
+ }
+ else return 2-qmpSettingsWindow::getSettingsIntf()->value("Behavior/IconTheme",0).toInt();
+}
+
void qmpMainWindow::onfnA1()
{
infow->show();
diff --git a/qmidiplayer-desktop/qmpmainwindow.hpp b/qmidiplayer-desktop/qmpmainwindow.hpp
index 8408409..71161c2 100644
--- a/qmidiplayer-desktop/qmpmainwindow.hpp
+++ b/qmidiplayer-desktop/qmpmainwindow.hpp
@@ -24,6 +24,8 @@
#include "qmpsettingswindow.hpp"
#include "qmphelpwindow.hpp"
+#define getThemedIcon(x) (qmpMainWindow::getInstance()->isDarkTheme()?QString(x).insert(QString(x).lastIndexOf('.'),"_i"):QString(x))
+
namespace Ui {
class qmpMainWindow;
}
@@ -70,6 +72,7 @@ class qmpMainWindow:public QMainWindow
int pharseArgs();
int registerVisualizationIntf(qmpVisualizationIntf* intf);
void unregisterVisualizationIntf(int handle);
+ bool isDarkTheme();
private slots:
void on_pbPlayPause_clicked();
@@ -94,7 +97,7 @@ class qmpMainWindow:public QMainWindow
void on_pbVisualization_clicked();
- public slots:
+ public slots:
void dialogClosed();
void selectionChanged();
diff --git a/qmidiplayer-desktop/qmpplistwindow.cpp b/qmidiplayer-desktop/qmpplistwindow.cpp
index e8fc9d8..00eec59 100644
--- a/qmidiplayer-desktop/qmpplistwindow.cpp
+++ b/qmidiplayer-desktop/qmpplistwindow.cpp
@@ -37,32 +37,38 @@ qmpPlistWindow::qmpPlistWindow(QWidget *parent) :
switch(shuffle)
{
case 1:
- ui->pbShuffle->setIcon(QIcon(":/img/shuffle.png"));
+ ui->pbShuffle->setIcon(QIcon(getThemedIcon(":/img/shuffle.png")));
ui->pbShuffle->setText("Shuffle On");
break;
case 0:
default:
- ui->pbShuffle->setIcon(QIcon(":/img/shuffle-off.png"));
+ ui->pbShuffle->setIcon(QIcon(getThemedIcon(":/img/shuffle-off.png")));
ui->pbShuffle->setText("Shuffle Off");
break;
}
switch(repeat)
{
case 0:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-non.png"));
+ ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-non.png")));
ui->pbRepeat->setText("Repeat Off");
break;
case 1:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-one.png"));
+ ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-one.png")));
ui->pbRepeat->setText("Repeat One");
break;
case 2:
- ui->pbRepeat->setIcon(QIcon(":/img/repeat-all.png"));
+ ui->pbRepeat->setIcon(QIcon(getThemedIcon(":/img/repeat-all.png")));
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")));
}
qmpPlistWindow::~qmpPlistWindow()
diff --git a/qmidiplayer-desktop/qmpsettingswindow.cpp b/qmidiplayer-desktop/qmpsettingswindow.cpp
index 67bfbb2..72d1cb5 100644
--- a/qmidiplayer-desktop/qmpsettingswindow.cpp
+++ b/qmidiplayer-desktop/qmpsettingswindow.cpp
@@ -24,6 +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")));
}
qmpSettingsWindow::~qmpSettingsWindow()
@@ -181,6 +185,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/IconTheme",settings->value("Behavior/IconTheme",0));
+ ui->cbIconTheme->setCurrentIndex(settings->value("Behavior/IconTheme",0).toInt());
+
settings->sync();
delete_fluid_settings(fsettings);
}
@@ -216,6 +223,7 @@ void qmpSettingsWindow::settingsUpdate()
settings->setValue("Audio/BankSelect",ui->cbBSMode->currentText());
settings->setValue("SoundFonts/SFCount",ui->twSoundfont->rowCount());
+
for(int i=0;i<ui->twSoundfont->rowCount();++i)
{
settings->setValue("SoundFonts/SF"+QString::number(i+1),ui->twSoundfont->item(i,1)->text());
@@ -227,6 +235,11 @@ void qmpSettingsWindow::settingsUpdate()
settings->setValue("Behavior/LoadFolder",ui->cbLoadFolder->isChecked()?1:0);
settings->setValue("Behavior/DialogStatus",ui->cbDialogStatus->isChecked()?1:0);
+
+ settings->setValue("Behavior/SingleInstance",ui->cbPersistentfs->isChecked()?1:0);
+
+ settings->setValue("Behavior/IconTheme",ui->cbIconTheme->currentIndex());
+
if(!ui->cbDialogStatus->isChecked())
{
settings->remove("DialogStatus/MainW");
@@ -256,8 +269,6 @@ void qmpSettingsWindow::settingsUpdate()
settings->remove("Effects/ChorusType");
}
- settings->setValue("Behavior/SingleInstance",ui->cbPersistentfs->isChecked()?1:0);
-
for(int i=0;i<ui->twPluginList->rowCount();++i)
settings->setValue(
QString("PluginSwitch/")+ui->twPluginList->item(i,1)->text(),
diff --git a/qmidiplayer-desktop/qmpsettingswindow.ui b/qmidiplayer-desktop/qmpsettingswindow.ui
index cc39292..aa96869 100644
--- a/qmidiplayer-desktop/qmpsettingswindow.ui
+++ b/qmidiplayer-desktop/qmpsettingswindow.ui
@@ -539,6 +539,12 @@
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="cbRestorePlaylist">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>Restore last playlist on startup</string>
</property>
@@ -546,6 +552,12 @@
</item>
<item>
<widget class="QCheckBox" name="cbLoadFolder">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>Load files in the same folder</string>
</property>
@@ -553,6 +565,12 @@
</item>
<item>
<widget class="QCheckBox" name="cbDialogStatus">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>Save dialog status</string>
</property>
@@ -560,6 +578,12 @@
</item>
<item>
<widget class="QCheckBox" name="cbSaveEfxParam">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>Save parameters in effects window</string>
</property>
@@ -567,11 +591,53 @@
</item>
<item>
<widget class="QCheckBox" name="cbPersistentfs">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>Persistent fluidsynth instance</string>
</property>
</widget>
</item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Icon Theme</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cbIconTheme">
+ <item>
+ <property name="text">
+ <string>Auto</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Dark</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Light</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</widget>
<widget class="QWidget" name="tab_5">
diff --git a/qmidiplayer-desktop/resources.qrc b/qmidiplayer-desktop/resources.qrc
index b3348f4..044acd8 100644
--- a/qmidiplayer-desktop/resources.qrc
+++ b/qmidiplayer-desktop/resources.qrc
@@ -25,6 +25,30 @@
<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>../doc/index_internal.html</file>
diff --git a/qmidiplayer-desktop/translations/qmp_zh_CN.ts b/qmidiplayer-desktop/translations/qmp_zh_CN.ts
index 8d313d2..f7f79df 100644
--- a/qmidiplayer-desktop/translations/qmp_zh_CN.ts
+++ b/qmidiplayer-desktop/translations/qmp_zh_CN.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.1" language="zh_CN">
+<TS version="2.0" language="zh_CN">
<context>
<name>qmpChannelEditor</name>
<message>
@@ -41,7 +41,7 @@
<message>
<location filename="../qmpchanneleditor.ui" line="135"/>
<source>Filters</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">滤波器</translation>
</message>
<message>
<location filename="../qmpchanneleditor.ui" line="192"/>
@@ -111,7 +111,7 @@
<message>
<location filename="../qmpchanneleditor.ui" line="275"/>
<source>Mixer</source>
- <translation type="unfinished"></translation>
+ <translation>混音</translation>
</message>
<message>
<location filename="../qmpchanneleditor.ui" line="332"/>
@@ -134,32 +134,32 @@
<message>
<location filename="../qmpchannelswindow.ui" line="26"/>
<source>Channels</source>
- <translation type="unfinished">通道</translation>
+ <translation>通道</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="72"/>
<source>A</source>
- <translation type="unfinished"></translation>
+ <translation>活动</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="77"/>
<source>M</source>
- <translation type="unfinished"></translation>
+ <translation>静音</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="82"/>
<source>S</source>
- <translation type="unfinished"></translation>
+ <translation>独奏</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="87"/>
<source>Device</source>
- <translation type="unfinished"></translation>
+ <translation>输出设备</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="92"/>
<source>Preset</source>
- <translation type="unfinished">乐器</translation>
+ <translation>乐器</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="97"/>
@@ -169,22 +169,22 @@
<message>
<location filename="../qmpchannelswindow.ui" line="114"/>
<source>Save</source>
- <translation type="unfinished">保存播放列表</translation>
+ <translation>保存播放列表</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="127"/>
<source>Load</source>
- <translation type="unfinished">打开播放列表</translation>
+ <translation>打开播放列表</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="134"/>
<source>Unmute All</source>
- <translation type="unfinished">取消全部静音</translation>
+ <translation>取消全部静音</translation>
</message>
<message>
<location filename="../qmpchannelswindow.ui" line="141"/>
<source>Unsolo All</source>
- <translation type="unfinished">取消全部独奏</translation>
+ <translation>取消全部独奏</translation>
</message>
</context>
<context>
@@ -192,53 +192,53 @@
<message>
<location filename="../qmpefxwindow.ui" line="26"/>
<source>Effects</source>
- <translation type="unfinished">效果</translation>
+ <translation>效果</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="32"/>
<source>Reverb</source>
- <translation type="unfinished">混响</translation>
+ <translation>混响</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="121"/>
<source>Room</source>
- <translation type="unfinished">房间大小</translation>
+ <translation>房间大小</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="147"/>
<source>Damp</source>
- <translation type="unfinished">衰减</translation>
+ <translation>衰减</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="176"/>
<source>Width</source>
- <translation type="unfinished">声场</translation>
+ <translation>声场</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="202"/>
<location filename="../qmpefxwindow.ui" line="376"/>
<source>Level</source>
- <translation type="unfinished">音量</translation>
+ <translation>音量</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="226"/>
<source>Chorus</source>
- <translation type="unfinished">和声</translation>
+ <translation>和声</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="321"/>
<source>Feedback</source>
- <translation type="unfinished">和声数量</translation>
+ <translation>和声数量</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="347"/>
<source>Rate</source>
- <translation type="unfinished">频率</translation>
+ <translation>频率</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="363"/>
<source>Depth</source>
- <translation type="unfinished">延迟</translation>
+ <translation>延迟</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="424"/>
@@ -248,12 +248,12 @@
<message>
<location filename="../qmpefxwindow.ui" line="437"/>
<source>Sine</source>
- <translation type="unfinished">正弦</translation>
+ <translation>正弦</translation>
</message>
<message>
<location filename="../qmpefxwindow.ui" line="450"/>
<source>Trian&amp;gle</source>
- <translation type="unfinished"></translation>
+ <translation>三角波(&amp;g)</translation>
</message>
</context>
<context>
@@ -261,7 +261,7 @@
<message>
<location filename="../qmphelpwindow.ui" line="20"/>
<source>Help</source>
- <translation type="unfinished">帮助</translation>
+ <translation>帮助</translation>
</message>
</context>
<context>
@@ -269,47 +269,47 @@
<message>
<location filename="../qmpinfowindow.ui" line="20"/>
<source>File Information</source>
- <translation type="unfinished">文件信息</translation>
+ <translation>文件信息</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="26"/>
<source>File name: </source>
- <translation type="unfinished">文件名:</translation>
+ <translation>文件名:</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="35"/>
<source>Tempo: </source>
- <translation type="unfinished">速度:</translation>
+ <translation>速度:</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="42"/>
<source>Key Sig.: </source>
- <translation type="unfinished">调式:</translation>
+ <translation>调式:</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="49"/>
<source>Time Sig.:</source>
- <translation type="unfinished">节拍:</translation>
+ <translation>节拍:</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="58"/>
<source>Title: </source>
- <translation type="unfinished">标题:</translation>
+ <translation>标题:</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="65"/>
<source>Copyright: </source>
- <translation type="unfinished">作者:</translation>
+ <translation>作者:</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="74"/>
<source>Note count: </source>
- <translation type="unfinished">音符数:</translation>
+ <translation>音符数:</translation>
</message>
<message>
<location filename="../qmpinfowindow.ui" line="81"/>
<source>File standard: </source>
- <translation type="unfinished">文件标准:</translation>
+ <translation>文件标准:</translation>
</message>
</context>
<context>
@@ -327,32 +327,32 @@
<message>
<location filename="../qmpmainwindow.ui" line="126"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Poly&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;复音&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;复音&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../qmpmainwindow.ui" line="390"/>
<source>Channels</source>
- <translation type="unfinished">通道</translation>
+ <translation>通道</translation>
</message>
<message>
<location filename="../qmpmainwindow.ui" line="419"/>
<source>Playlist</source>
- <translation type="unfinished">播放列表</translation>
+ <translation>播放列表</translation>
</message>
<message>
<location filename="../qmpmainwindow.ui" line="454"/>
<source>Effects</source>
- <translation type="unfinished">效果</translation>
+ <translation>效果</translation>
</message>
<message>
<location filename="../qmpmainwindow.ui" line="483"/>
<source>Visualization</source>
- <translation type="unfinished">可视化</translation>
+ <translation>可视化</translation>
</message>
<message>
<location filename="../qmpmainwindow.ui" line="539"/>
<source>Master</source>
- <translation type="unfinished">主音量</translation>
+ <translation>主音量</translation>
</message>
<message>
<location filename="../qmpmainwindow.ui" line="105"/>
@@ -368,17 +368,17 @@
<message>
<location filename="../qmpmainwindow.cpp" line="72"/>
<source>File Information</source>
- <translation type="unfinished">文件信息</translation>
+ <translation>文件信息</translation>
</message>
<message>
<location filename="../qmpmainwindow.cpp" line="73"/>
<source>Render to Wave</source>
- <translation type="unfinished">输出到wav文件</translation>
+ <translation>输出到wav文件</translation>
</message>
<message>
<location filename="../qmpmainwindow.cpp" line="74"/>
<source>Panic</source>
- <translation type="unfinished">关闭所有音符</translation>
+ <translation>关闭所有音符</translation>
</message>
</context>
<context>
@@ -386,79 +386,79 @@
<message>
<location filename="../qmpplistwindow.ui" line="29"/>
<source>Playlist</source>
- <translation type="unfinished">播放列表</translation>
+ <translation>播放列表</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="97"/>
<source>Add</source>
- <translation type="unfinished">添加</translation>
+ <translation>添加</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="225"/>
<source>Add Folder</source>
- <translation type="unfinished">添加文件夹</translation>
+ <translation>添加文件夹</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="161"/>
<location filename="../qmpplistwindow.cpp" line="188"/>
<location filename="../qmpplistwindow.cpp" line="296"/>
<source>Repeat Off</source>
- <translation type="unfinished">循环关</translation>
+ <translation>循环关</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="257"/>
<location filename="../qmpplistwindow.cpp" line="213"/>
<location filename="../qmpplistwindow.cpp" line="289"/>
<source>Shuffle Off</source>
- <translation type="unfinished">随机关</translation>
+ <translation>随机关</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="65"/>
<source>Save</source>
- <translation type="unfinished">保存列表</translation>
+ <translation>保存列表</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="129"/>
<source>Load</source>
- <translation type="unfinished">加载列表</translation>
+ <translation>加载列表</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="193"/>
<source>Remove</source>
- <translation type="unfinished">移除</translation>
+ <translation>移除</translation>
</message>
<message>
<location filename="../qmpplistwindow.ui" line="289"/>
<source>Clear</source>
- <translation type="unfinished">清空</translation>
+ <translation>清空</translation>
</message>
<message>
<location filename="../qmpplistwindow.cpp" line="192"/>
<location filename="../qmpplistwindow.cpp" line="300"/>
<source>Repeat One</source>
- <translation type="unfinished">循环当前</translation>
+ <translation>循环当前</translation>
</message>
<message>
<location filename="../qmpplistwindow.cpp" line="196"/>
<location filename="../qmpplistwindow.cpp" line="304"/>
<source>Repeat All</source>
- <translation type="unfinished">循环全部</translation>
+ <translation>循环全部</translation>
</message>
<message>
<location filename="../qmpplistwindow.cpp" line="208"/>
<location filename="../qmpplistwindow.cpp" line="284"/>
<source>Shuffle On</source>
- <translation type="unfinished">随机开</translation>
+ <translation>随机开</translation>
</message>
<message>
<location filename="../qmpplistwindow.cpp" line="259"/>
<source>Save playlist</source>
- <translation type="unfinished">保存播放列表</translation>
+ <translation>保存播放列表</translation>
</message>
<message>
<location filename="../qmpplistwindow.cpp" line="272"/>
<source>Load playlist</source>
- <translation type="unfinished">加载播放列表</translation>
+ <translation>加载播放列表</translation>
</message>
</context>
<context>
@@ -466,27 +466,27 @@
<message>
<location filename="../qmppresetselect.ui" line="26"/>
<source>Preset Selection</source>
- <translation type="unfinished">乐器选择</translation>
+ <translation>乐器选择</translation>
</message>
<message>
<location filename="../qmppresetselect.ui" line="39"/>
<source>Bank</source>
- <translation type="unfinished">乐器库</translation>
+ <translation>乐器库</translation>
</message>
<message>
<location filename="../qmppresetselect.ui" line="66"/>
<source>Preset</source>
- <translation type="unfinished">乐器</translation>
+ <translation>乐器</translation>
</message>
<message>
<location filename="../qmppresetselect.ui" line="114"/>
<source>OK</source>
- <translation type="unfinished">确定</translation>
+ <translation>确定</translation>
</message>
<message>
<location filename="../qmppresetselect.ui" line="101"/>
<source>Cancel</source>
- <translation type="unfinished">取消</translation>
+ <translation>取消</translation>
</message>
</context>
<context>
@@ -494,17 +494,17 @@
<message>
<location filename="../qmpsettingswindow.ui" line="20"/>
<source>Settings</source>
- <translation type="unfinished">选项</translation>
+ <translation>选项</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="30"/>
<source>Midi</source>
- <translation type="unfinished">MIDI选项</translation>
+ <translation>MIDI选项</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="44"/>
<source>Default Output Device</source>
- <translation type="unfinished">默认输出设备</translation>
+ <translation>默认输出设备</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="58"/>
@@ -514,22 +514,22 @@
<message>
<location filename="../qmpsettingswindow.ui" line="74"/>
<source>Disable Midi Mapping</source>
- <translation type="unfinished">只使用默认输出设备</translation>
+ <translation>只使用默认输出设备</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="87"/>
<source>Send SysEx</source>
- <translation type="unfinished">发送SysEx指令</translation>
+ <translation>发送SysEx指令</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="100"/>
<source>Wait for remaining voices before stopping</source>
- <translation type="unfinished">停止前等待复音数降为0</translation>
+ <translation>停止前等待复音数降为0</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="115"/>
<source>Text Encoding</source>
- <translation type="unfinished">MIDI文本编码</translation>
+ <translation type="unfinished">MIDI内文本编码</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="129"/>
@@ -594,12 +594,12 @@
<message>
<location filename="../qmpsettingswindow.ui" line="196"/>
<source>Audio Buffer Count</source>
- <translation type="unfinished">音频缓冲区数量</translation>
+ <translation>音频缓冲区数量</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="203"/>
<source>Audio Buffer Size</source>
- <translation type="unfinished">音频缓冲区大小</translation>
+ <translation>音频缓冲区大小</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="217"/>
@@ -645,7 +645,7 @@
<message>
<location filename="../qmpsettingswindow.ui" line="260"/>
<source>Audio Frequency</source>
- <translation type="unfinished">采样频率</translation>
+ <translation>采样频率</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="271"/>
@@ -675,7 +675,7 @@
<message>
<location filename="../qmpsettingswindow.ui" line="304"/>
<source>Audio Driver</source>
- <translation type="unfinished">音频驱动</translation>
+ <translation>音频驱动</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="312"/>
@@ -710,22 +710,22 @@
<message>
<location filename="../qmpsettingswindow.ui" line="355"/>
<source>Audio Format</source>
- <translation type="unfinished">音频格式</translation>
+ <translation>音频格式</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="375"/>
<source>Max Polyphony</source>
- <translation type="unfinished">最大复音数</translation>
+ <translation>最大复音数</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="382"/>
<source>Auto bank select mode</source>
- <translation type="unfinished">自动乐器库选择方式</translation>
+ <translation>自动确定乐器库选择方式</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="389"/>
<source>Bank select mode</source>
- <translation type="unfinished">乐器库选择方式</translation>
+ <translation>乐器库选择方式</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="400"/>
@@ -750,42 +750,42 @@
<message>
<location filename="../qmpsettingswindow.ui" line="423"/>
<source>CPU Cores</source>
- <translation type="unfinished">合成器线程数</translation>
+ <translation>合成器线程数</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="441"/>
<source>Soundfonts</source>
- <translation type="unfinished">音源</translation>
+ <translation>音源</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="527"/>
<source>Behavior</source>
- <translation type="unfinished">行为设定</translation>
+ <translation>行为设定</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="533"/>
<source>Restore last playlist on startup</source>
- <translation type="unfinished">启动时,恢复上次的播放列表</translation>
+ <translation>启动时,恢复上次的播放列表</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="540"/>
<source>Load files in the same folder</source>
- <translation type="unfinished">添加同一文件夹下的所有文件</translation>
+ <translation>添加同一文件夹下的所有文件</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="547"/>
<source>Save dialog status</source>
- <translation type="unfinished">保存对话框状态</translation>
+ <translation>保存对话框状态</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="554"/>
<source>Save parameters in effects window</source>
- <translation type="unfinished">保存效果窗口内的设定</translation>
+ <translation>保存效果窗口内的设定</translation>
</message>
<message>
<location filename="../qmpsettingswindow.ui" line="561"/>
<source>Persistent fluidsynth instance</source>
- <translation type="unfinished">单一fluidsynth实例</translation>
+ <translation>单一fluidsynth实例</translation>
</message>
</context>
</TS>