From 3312e495cf54a8bd6451552216f5aeea1a06d486 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sun, 12 Feb 2017 23:33:41 +0800 Subject: UI revolution cont'd. Powered by @BLumia. Expose new APIs to plugin developer. Use svg icons. --- ChangeLog | 5 + core/qmpmidiread.cpp | 2 +- img/add.png | Bin 287 -> 0 bytes img/add_i.png | Bin 254 -> 0 bytes img/add_i.svg | 39 ++ img/addfolder.png | Bin 1032 -> 0 bytes img/addfolder_i.png | Bin 962 -> 0 bytes img/addfolder_i.svg | 48 +++ img/channel.png | Bin 310 -> 0 bytes img/channel.svg | 48 +-- img/channel_i.png | Bin 305 -> 0 bytes img/channel_i.svg | 100 +++++ img/clear.png | Bin 398 -> 0 bytes img/clear_i.png | Bin 361 -> 0 bytes img/clear_i.svg | 71 ++++ img/convpng | 7 - img/down.png | Bin 350 -> 0 bytes img/down_i.png | Bin 316 -> 0 bytes img/down_i.svg | 72 ++++ img/effects.png | Bin 837 -> 0 bytes img/effects_i.png | Bin 774 -> 0 bytes img/effects_i.svg | 76 ++++ img/info.svg | 67 ++++ img/info_i.svg | 67 ++++ img/ledoff.png | Bin 385 -> 0 bytes img/ledon.png | Bin 558 -> 0 bytes img/list.png | Bin 283 -> 0 bytes img/list_i.png | Bin 256 -> 0 bytes img/list_i.svg | 82 ++++ img/load.png | Bin 968 -> 0 bytes img/load_i.png | Bin 890 -> 0 bytes img/load_i.svg | 73 ++++ img/next.png | Bin 511 -> 0 bytes img/next_i.png | Bin 632 -> 0 bytes img/next_i.svg | 75 ++++ img/open.svg | 75 ++++ img/open_i.svg | 75 ++++ img/panic.svg | 69 ++++ img/panic_i.svg | 69 ++++ img/pause.png | Bin 278 -> 0 bytes img/pause_i.png | Bin 237 -> 0 bytes img/pause_i.svg | 79 ++++ img/play.png | Bin 641 -> 0 bytes img/play_i.png | Bin 577 -> 0 bytes img/play_i.svg | 67 ++++ img/prev.png | Bin 511 -> 0 bytes img/prev_i.png | Bin 672 -> 0 bytes img/prev_i.svg | 74 ++++ img/remove.png | Bin 208 -> 0 bytes img/remove_i.png | Bin 191 -> 0 bytes img/remove_i.svg | 72 ++++ img/render.svg | 90 +++++ img/render_i.svg | 90 +++++ img/repeat-all.png | Bin 1212 -> 0 bytes img/repeat-all_i.png | Bin 1176 -> 0 bytes img/repeat-all_i.svg | 89 ++++ img/repeat-base.png | Bin 915 -> 0 bytes img/repeat-base_i.png | Bin 865 -> 0 bytes img/repeat-base_i.svg | 78 ++++ img/repeat-non.png | Bin 1042 -> 0 bytes img/repeat-non_i.png | Bin 951 -> 0 bytes img/repeat-non_i.svg | 84 ++++ img/repeat-one.png | Bin 994 -> 0 bytes img/repeat-one_i.png | Bin 956 -> 0 bytes img/repeat-one_i.svg | 90 +++++ img/save.png | Bin 1034 -> 0 bytes img/save_i.png | Bin 1072 -> 0 bytes img/settings.png | Bin 985 -> 0 bytes img/settings.svg | 116 +++--- img/settings_i.png | Bin 919 -> 0 bytes img/settings_i.svg | 88 ++++ img/settings_s.svg | 96 +++++ img/shuffle-off.png | Bin 904 -> 0 bytes img/shuffle-off_i.png | Bin 910 -> 0 bytes img/shuffle-off_i.svg | 94 +++++ img/shuffle.png | Bin 833 -> 0 bytes img/shuffle_i.png | Bin 819 -> 0 bytes img/shuffle_i.svg | 89 ++++ img/stop.png | Bin 279 -> 0 bytes img/stop_i.png | Bin 242 -> 0 bytes img/stop_i.svg | 70 ++++ img/up.png | Bin 349 -> 0 bytes img/up_i.png | Bin 312 -> 0 bytes img/up_i.svg | 72 ++++ img/visualization.png | Bin 330 -> 0 bytes img/visualization_i.png | Bin 302 -> 0 bytes img/visualization_i.svg | 103 +++++ include/qmpcorepublic.hpp | 4 + midifmt-plugin/midifmtplugin.cpp | 2 +- qmidiplayer-desktop/qmpchannelswindow.cpp | 4 +- qmidiplayer-desktop/qmpchannelswindow.hpp | 2 +- qmidiplayer-desktop/qmpefxwindow.cpp | 2 +- qmidiplayer-desktop/qmpefxwindow.ui | 2 +- qmidiplayer-desktop/qmpinfowindow.cpp | 2 +- qmidiplayer-desktop/qmpmainwindow.cpp | 96 ++--- qmidiplayer-desktop/qmpmainwindow.hpp | 1 + qmidiplayer-desktop/qmpmainwindow.ui | 646 ++++++++++++++++++------------ qmidiplayer-desktop/qmpplistwindow.cpp | 53 +-- qmidiplayer-desktop/qmpplistwindow.hpp | 2 +- qmidiplayer-desktop/qmpplistwindow.ui | 16 +- qmidiplayer-desktop/qmpplugin.cpp | 6 + qmidiplayer-desktop/qmpsettingswindow.cpp | 17 +- qmidiplayer-desktop/qmpsettingswindow.ui | 33 +- qmidiplayer-desktop/resources.qrc | 108 ++--- visualization/qmpvisualization.cpp | 2 +- 105 files changed, 3135 insertions(+), 524 deletions(-) delete mode 100644 img/add.png delete mode 100644 img/add_i.png create mode 100644 img/add_i.svg delete mode 100644 img/addfolder.png delete mode 100644 img/addfolder_i.png create mode 100644 img/addfolder_i.svg delete mode 100644 img/channel.png delete mode 100644 img/channel_i.png create mode 100644 img/channel_i.svg delete mode 100644 img/clear.png delete mode 100644 img/clear_i.png create mode 100644 img/clear_i.svg delete mode 100755 img/convpng delete mode 100644 img/down.png delete mode 100644 img/down_i.png create mode 100644 img/down_i.svg delete mode 100644 img/effects.png delete mode 100644 img/effects_i.png create mode 100644 img/effects_i.svg create mode 100644 img/info.svg create mode 100644 img/info_i.svg delete mode 100644 img/ledoff.png delete mode 100644 img/ledon.png delete mode 100644 img/list.png delete mode 100644 img/list_i.png create mode 100644 img/list_i.svg delete mode 100644 img/load.png delete mode 100644 img/load_i.png create mode 100644 img/load_i.svg delete mode 100644 img/next.png delete mode 100644 img/next_i.png create mode 100644 img/next_i.svg create mode 100644 img/open.svg create mode 100644 img/open_i.svg create mode 100644 img/panic.svg create mode 100644 img/panic_i.svg delete mode 100644 img/pause.png delete mode 100644 img/pause_i.png create mode 100644 img/pause_i.svg delete mode 100644 img/play.png delete mode 100644 img/play_i.png create mode 100644 img/play_i.svg delete mode 100644 img/prev.png delete mode 100644 img/prev_i.png create mode 100644 img/prev_i.svg delete mode 100644 img/remove.png delete mode 100644 img/remove_i.png create mode 100644 img/remove_i.svg create mode 100644 img/render.svg create mode 100644 img/render_i.svg delete mode 100644 img/repeat-all.png delete mode 100644 img/repeat-all_i.png create mode 100644 img/repeat-all_i.svg delete mode 100644 img/repeat-base.png delete mode 100644 img/repeat-base_i.png create mode 100644 img/repeat-base_i.svg delete mode 100644 img/repeat-non.png delete mode 100644 img/repeat-non_i.png create mode 100644 img/repeat-non_i.svg delete mode 100644 img/repeat-one.png delete mode 100644 img/repeat-one_i.png create mode 100644 img/repeat-one_i.svg delete mode 100644 img/save.png delete mode 100644 img/save_i.png delete mode 100644 img/settings.png delete mode 100644 img/settings_i.png create mode 100644 img/settings_i.svg create mode 100644 img/settings_s.svg delete mode 100644 img/shuffle-off.png delete mode 100644 img/shuffle-off_i.png create mode 100644 img/shuffle-off_i.svg delete mode 100644 img/shuffle.png delete mode 100644 img/shuffle_i.png create mode 100644 img/shuffle_i.svg delete mode 100644 img/stop.png delete mode 100644 img/stop_i.png create mode 100644 img/stop_i.svg delete mode 100644 img/up.png delete mode 100644 img/up_i.png create mode 100644 img/up_i.svg delete mode 100644 img/visualization.png delete mode 100644 img/visualization_i.png create mode 100644 img/visualization_i.svg diff --git a/ChangeLog b/ChangeLog index 6688519..e4abb40 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +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. 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 Binary files a/img/add.png and /dev/null differ diff --git a/img/add_i.png b/img/add_i.png deleted file mode 100644 index 5143396..0000000 Binary files a/img/add_i.png and /dev/null 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 @@ + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/img/addfolder.png b/img/addfolder.png deleted file mode 100644 index 7f3f713..0000000 Binary files a/img/addfolder.png and /dev/null differ diff --git a/img/addfolder_i.png b/img/addfolder_i.png deleted file mode 100644 index 1c784f3..0000000 Binary files a/img/addfolder_i.png and /dev/null 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 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/img/channel.png b/img/channel.png deleted file mode 100644 index e7d10a4..0000000 Binary files a/img/channel.png and /dev/null 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" /> @@ -48,7 +48,7 @@ image/svg+xml - + @@ -64,25 +64,25 @@ cy="1011.3622" r="2.4418602" /> + width="29.128725" + height="3.1040936" + x="22.435637" + y="1009.7979" /> + width="29.128721" + height="3.1040936" + x="22.435637" + y="1019.8102" /> + width="29.128721" + height="3.1040936" + x="22.435637" + y="1029.8224" /> diff --git a/img/channel_i.png b/img/channel_i.png deleted file mode 100644 index 30bba80..0000000 Binary files a/img/channel_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/img/clear.png b/img/clear.png deleted file mode 100644 index 092a885..0000000 Binary files a/img/clear.png and /dev/null differ diff --git a/img/clear_i.png b/img/clear_i.png deleted file mode 100644 index 671b7b7..0000000 Binary files a/img/clear_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + 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 Binary files a/img/down.png and /dev/null differ diff --git a/img/down_i.png b/img/down_i.png deleted file mode 100644 index e77d19f..0000000 Binary files a/img/down_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/effects.png b/img/effects.png deleted file mode 100644 index 6679577..0000000 Binary files a/img/effects.png and /dev/null differ diff --git a/img/effects_i.png b/img/effects_i.png deleted file mode 100644 index b655c5f..0000000 Binary files a/img/effects_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/ledoff.png b/img/ledoff.png deleted file mode 100644 index 4c86677..0000000 Binary files a/img/ledoff.png and /dev/null differ diff --git a/img/ledon.png b/img/ledon.png deleted file mode 100644 index b06f015..0000000 Binary files a/img/ledon.png and /dev/null differ diff --git a/img/list.png b/img/list.png deleted file mode 100644 index 1cb81c6..0000000 Binary files a/img/list.png and /dev/null differ diff --git a/img/list_i.png b/img/list_i.png deleted file mode 100644 index 73a0ab5..0000000 Binary files a/img/list_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/img/load.png b/img/load.png deleted file mode 100644 index 3e6f044..0000000 Binary files a/img/load.png and /dev/null differ diff --git a/img/load_i.png b/img/load_i.png deleted file mode 100644 index 7b2de7f..0000000 Binary files a/img/load_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/next.png b/img/next.png deleted file mode 100644 index fdb505b..0000000 Binary files a/img/next.png and /dev/null differ diff --git a/img/next_i.png b/img/next_i.png deleted file mode 100644 index 7e32146..0000000 Binary files a/img/next_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/img/pause.png b/img/pause.png deleted file mode 100644 index 9808fc4..0000000 Binary files a/img/pause.png and /dev/null differ diff --git a/img/pause_i.png b/img/pause_i.png deleted file mode 100644 index 499ef4c..0000000 Binary files a/img/pause_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/play.png b/img/play.png deleted file mode 100644 index 5be2b25..0000000 Binary files a/img/play.png and /dev/null differ diff --git a/img/play_i.png b/img/play_i.png deleted file mode 100644 index e38e1a9..0000000 Binary files a/img/play_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/img/prev.png b/img/prev.png deleted file mode 100644 index 7a14d17..0000000 Binary files a/img/prev.png and /dev/null differ diff --git a/img/prev_i.png b/img/prev_i.png deleted file mode 100644 index b4b0312..0000000 Binary files a/img/prev_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/remove.png b/img/remove.png deleted file mode 100644 index ef7cb76..0000000 Binary files a/img/remove.png and /dev/null differ diff --git a/img/remove_i.png b/img/remove_i.png deleted file mode 100644 index 50dfc42..0000000 Binary files a/img/remove_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/img/repeat-all.png b/img/repeat-all.png deleted file mode 100644 index 49c18bd..0000000 Binary files a/img/repeat-all.png and /dev/null differ diff --git a/img/repeat-all_i.png b/img/repeat-all_i.png deleted file mode 100644 index 6984458..0000000 Binary files a/img/repeat-all_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/img/repeat-base.png b/img/repeat-base.png deleted file mode 100644 index 9a7cd70..0000000 Binary files a/img/repeat-base.png and /dev/null differ diff --git a/img/repeat-base_i.png b/img/repeat-base_i.png deleted file mode 100644 index 80c4532..0000000 Binary files a/img/repeat-base_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/repeat-non.png b/img/repeat-non.png deleted file mode 100644 index 765e876..0000000 Binary files a/img/repeat-non.png and /dev/null differ diff --git a/img/repeat-non_i.png b/img/repeat-non_i.png deleted file mode 100644 index 050952e..0000000 Binary files a/img/repeat-non_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/img/repeat-one.png b/img/repeat-one.png deleted file mode 100644 index 32699e9..0000000 Binary files a/img/repeat-one.png and /dev/null differ diff --git a/img/repeat-one_i.png b/img/repeat-one_i.png deleted file mode 100644 index fa1cc35..0000000 Binary files a/img/repeat-one_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + 1 + + diff --git a/img/save.png b/img/save.png deleted file mode 100644 index 0ecdc76..0000000 Binary files a/img/save.png and /dev/null differ diff --git a/img/save_i.png b/img/save_i.png deleted file mode 100644 index 11959f6..0000000 Binary files a/img/save_i.png and /dev/null differ diff --git a/img/settings.png b/img/settings.png deleted file mode 100644 index f238b9f..0000000 Binary files a/img/settings.png and /dev/null 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 @@ - - + id="svg2" + viewBox="0 0 63.999998 63.999996" + height="64" + width="64" + sodipodi:docname="settings.svg" + inkscape:version="0.92.0 r"> + + id="mask4163" + maskUnits="userSpaceOnUse"> + transform="rotate(39.246357)" + id="g4165"> + width="39.234055" + height="38.516716" + x="3.4457266" + y="993.69891" /> + 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" /> - @@ -73,24 +69,20 @@ - - - - + + diff --git a/img/settings_i.png b/img/settings_i.png deleted file mode 100644 index ca682b7..0000000 Binary files a/img/settings_i.png and /dev/null 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 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/shuffle-off.png b/img/shuffle-off.png deleted file mode 100644 index fe80c50..0000000 Binary files a/img/shuffle-off.png and /dev/null differ diff --git a/img/shuffle-off_i.png b/img/shuffle-off_i.png deleted file mode 100644 index 9f2206f..0000000 Binary files a/img/shuffle-off_i.png and /dev/null 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 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/img/shuffle.png b/img/shuffle.png deleted file mode 100644 index 2d1835c..0000000 Binary files a/img/shuffle.png and /dev/null differ diff --git a/img/shuffle_i.png b/img/shuffle_i.png deleted file mode 100644 index 6c3a61d..0000000 Binary files a/img/shuffle_i.png and /dev/null 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 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/img/stop.png b/img/stop.png deleted file mode 100644 index 7ae0858..0000000 Binary files a/img/stop.png and /dev/null differ diff --git a/img/stop_i.png b/img/stop_i.png deleted file mode 100644 index cf30c28..0000000 Binary files a/img/stop_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/img/up.png b/img/up.png deleted file mode 100644 index 59c7f5c..0000000 Binary files a/img/up.png and /dev/null differ diff --git a/img/up_i.png b/img/up_i.png deleted file mode 100644 index 0ff90c0..0000000 Binary files a/img/up_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/img/visualization.png b/img/visualization.png deleted file mode 100644 index 3df43c4..0000000 Binary files a/img/visualization.png and /dev/null differ diff --git a/img/visualization_i.png b/img/visualization_i.png deleted file mode 100644 index b1a7a93..0000000 Binary files a/img/visualization_i.png and /dev/null 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + 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 @@ - + 0 0 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& qmpMainWindow::getFunc() void qmpMainWindow::setupWidget() { + for(auto i=mfunc.begin();i!=mfunc.end();++i) + i->second.setAssignedControl((QReflectiveAction*)NULL), + i->second.setAssignedControl((QReflectivePushButton*)NULL); QListw=ui->buttonwidget->findChildren("",Qt::FindDirectChildrenOnly); for(unsigned i=0;igetSettingsIntf()->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 @@ 0 0 - 450 - 245 + 495 + 200 - 450 - 245 + 495 + 200 - 450 - 245 + 495 + 200 @@ -33,24 +33,30 @@ :/img/qmidiplyr.png:/img/qmidiplyr.png - + + + 1 + - 2 + 4 - 2 + 0 - 2 + 4 - 2 + 0 - + 0 + + 0 + @@ -71,401 +77,499 @@ somefile.mid - Qt::AlignCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 0 - + 0 + + 3 + - + - + 0 0 - 00:00 + <html><head/><body><p>Poly</p></body></html> - Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + Qt::AlignCenter - - - 0 - - - - - - 0 - 0 - - - - <html><head/><body><p>Poly</p></body></html> - - - Qt::AlignBottom|Qt::AlignHCenter - - - - - - - - 84 - 16777215 - - - - QFrame::NoFrame - - - 11 - - - QLCDNumber::Flat - - - - - - - + - - 0 - 0 - - - - 00:00 - - - Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing - - - - - - - - - - 0 - 0 - - - - 100 - - - 0 - - - Qt::Horizontal - - - - - - - 0 - - - - - + 0 0 - 0 - 36 - - - - - 16777215 - 36 + 64 + 0 - + 00000 - - - :/img/play.png:/img/play.png - - - - 32 - 32 - + + Qt::AlignCenter - - - - 0 - 0 - - + 0 - 36 + 3 16777215 - 36 + 3 - - + + QFrame::HLine - - - :/img/stop.png:/img/stop.png - - - - 32 - 32 - + + QFrame::Sunken - + - + 0 0 - 0 - 36 - - - - - 16777215 - 36 + 64 + 0 - + 00000 - - - :/img/prev.png:/img/prev.png - - - - 32 - 32 - + + Qt::AlignCenter + + + + + + 0 + - + - + 0 0 - - - 0 - 36 - - - 16777215 - 36 + 21 + 21 - - - - - :/img/next.png:/img/next.png - - - - 32 - 32 - + ? - + - Qt::Horizontal + Qt::Vertical - QSizePolicy::Fixed + QSizePolicy::Expanding - 32 - 32 + 20 + 40 - - - - - 0 - 0 - - - - - 0 - 36 - - - - - 16777215 - 36 - - - - - - - - :/img/settings.png:/img/settings.png - - - - 32 - 32 - - - - true - - - + + + + + + 0 + + + + + + 0 + 0 + + + + 00:00 + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + - - - - 0 - 32 - + + + + 0 + 0 + + + + 00:00 + + + Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing - - - 0 - - - 6 - - - 0 - - - 6 - - - - + + + + 0 + 0 + + + + QSlider::handle{border:none;background:none;color:none;} + + + 100 + + 0 - + + Qt::Horizontal + + + + + + 0 - + - + 0 0 + + + 0 + 24 + + - 21 - 21 + 16777215 + 36 - ? + + + + + :/img/play.svg:/img/play.svg + + + + 32 + 32 + - + - + 0 0 - - 100 + + + 0 + 24 + - - 50 + + + 16777215 + 36 + + + + + + + + :/img/stop.svg:/img/stop.svg + + + + 32 + 32 + + + + + + + + + 0 + 0 + + + + + 0 + 24 + + + + + 16777215 + 36 + + + + + + + + :/img/prev.svg:/img/prev.svg + + + + 32 + 32 + + + + + + + + + 0 + 0 + + + + + 0 + 24 + + + + + 16777215 + 36 + + + + + + + + :/img/next.svg:/img/next.svg + + + + 32 + 32 + + + + + - Qt::Vertical + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 32 + 32 + + + + + + + + + 0 + 0 + + + + + 0 + 24 + + + + + 16777215 + 36 + + + + + + + + :/img/open.svg:/img/open.svg - + - + 0 0 + + + 0 + 24 + + + + + 16777215 + 36 + + - Master + - - Qt::AlignCenter + + + :/img/settings.svg:/img/settings.svg + + + + 32 + 32 + + + + true + + + + + + + + 0 + 0 + + + + Vol. + + + + + + + + 0 + 0 + + + + + + + 100 + + + 50 + + + Qt::Horizontal + + + + + 0 + 24 + + + + + 0 + + + 6 + + + 0 + + + 6 + + + + @@ -477,6 +581,16 @@
qmpmainwindow.hpp
+ + pbPlayPause + pbStop + pbNext + pbPrev + pbSettings + hsTimer + vsMasterVol + pushButton + 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;ilwFiles->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 @@ - :/img/save.png:/img/save.png + :/img/save.svg:/img/save.svg @@ -98,7 +98,7 @@ - :/img/add.png:/img/add.png + :/img/add.svg:/img/add.svg @@ -130,7 +130,7 @@ - :/img/load.png:/img/load.png + :/img/load.svg:/img/load.svg @@ -162,7 +162,7 @@ - :/img/repeat-non.png:/img/repeat-non.png + :/img/repeat-non.svg:/img/repeat-non.svg @@ -194,7 +194,7 @@ - :/img/remove.png:/img/remove.png + :/img/remove.svg:/img/remove.svg @@ -226,7 +226,7 @@ - :/img/addfolder.png:/img/addfolder.png + :/img/addfolder.svg:/img/addfolder.svg @@ -258,7 +258,7 @@ - :/img/shuffle-off.png:/img/shuffle-off.png + :/img/shuffle-off.svg:/img/shuffle-off.svg @@ -290,7 +290,7 @@ - :/img/clear.png:/img/clear.png + :/img/clear.svg:/img/clear.svg 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 @@ - 3 + 0 @@ -467,7 +467,7 @@ - :/img/add.png:/img/add.png + :/img/add.svg:/img/add.svg @@ -484,7 +484,7 @@ - :/img/remove.png:/img/remove.png + :/img/remove.svg:/img/remove.svg @@ -501,7 +501,7 @@ - :/img/up.png:/img/up.png + :/img/up.svg:/img/up.svg @@ -518,7 +518,7 @@ - :/img/down.png:/img/down.png + :/img/down.svg:/img/down.svg @@ -540,7 +540,7 @@ - + 0 0 @@ -553,7 +553,7 @@ - + 0 0 @@ -566,7 +566,7 @@ - + 0 0 @@ -579,7 +579,7 @@ - + 0 0 @@ -592,7 +592,7 @@ - + 0 0 @@ -602,6 +602,19 @@ + + + + + 0 + 0 + + + + Show label beside icon in toolbar buttons + + + 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 @@ - ../img/add.png - ../img/list.png - ../img/addfolder.png - ../img/channel.png - ../img/prev.png + ../img/add.svg + ../img/list.svg + ../img/addfolder.svg + ../img/channel.svg + ../img/prev.svg ../img/qmidiplyr.png - ../img/remove.png - ../img/clear.png - ../img/down.png - ../img/effects.png - ../img/repeat-all.png - ../img/repeat-base.png - ../img/repeat-non.png - ../img/load.png - ../img/next.png - ../img/repeat-one.png - ../img/save.png - ../img/settings.png - ../img/pause.png - ../img/play.png - ../img/shuffle-off.png - ../img/shuffle.png - ../img/stop.png - ../img/up.png - ../img/visualization.png - ../img/add_i.png - ../img/list_i.png - ../img/addfolder_i.png - ../img/channel_i.png - ../img/prev_i.png - ../img/remove_i.png - ../img/clear_i.png - ../img/down_i.png - ../img/effects_i.png - ../img/repeat-all_i.png - ../img/repeat-base_i.png - ../img/repeat-non_i.png - ../img/load_i.png - ../img/next_i.png - ../img/repeat-one_i.png - ../img/save_i.png - ../img/settings_i.png - ../img/pause_i.png - ../img/play_i.png - ../img/shuffle-off_i.png - ../img/shuffle_i.png - ../img/stop_i.png - ../img/up_i.png - ../img/visualization_i.png - ../img/ledon.png - ../img/ledoff.png + ../img/remove.svg + ../img/clear.svg + ../img/down.svg + ../img/effects.svg + ../img/repeat-all.svg + ../img/repeat-non.svg + ../img/load.svg + ../img/next.svg + ../img/repeat-one.svg + ../img/repeat-base.svg + ../img/save.svg + ../img/settings.svg + ../img/pause.svg + ../img/play.svg + ../img/shuffle-off.svg + ../img/shuffle.svg + ../img/stop.svg + ../img/up.svg + ../img/visualization.svg + ../img/add_i.svg + ../img/list_i.svg + ../img/addfolder_i.svg + ../img/channel_i.svg + ../img/prev_i.svg + ../img/remove_i.svg + ../img/clear_i.svg + ../img/down_i.svg + ../img/effects_i.svg + ../img/repeat-all_i.svg + ../img/repeat-non_i.svg + ../img/load_i.svg + ../img/next_i.svg + ../img/repeat-one_i.svg + ../img/repeat-base_i.svg + ../img/save_i.svg + ../img/settings_i.svg + ../img/pause_i.svg + ../img/play_i.svg + ../img/shuffle-off_i.svg + ../img/shuffle_i.svg + ../img/stop_i.svg + ../img/up_i.svg + ../img/visualization_i.svg + ../img/open.svg + ../img/info.svg + ../img/render.svg + ../img/panic.svg + ../img/open_i.svg + ../img/info_i.svg + ../img/render_i.svg + ../img/panic_i.svg + ../img/ledon.svg + ../img/ledoff.svg ../doc/index_internal.html ../doc/version_internal.html ../doc/license_internal.html 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); -- cgit v1.2.3