Browse Source

UI: Redo settings icons

Clayton Groeneveld 6 years ago
parent
commit
80875768ad
45 changed files with 337 additions and 39 deletions
  1. 1 0
      CI/install-dependencies-linux-ubuntu16.sh
  2. 1 0
      CI/install-dependencies-linux.sh
  3. 0 6
      README.rst
  4. 3 0
      UI/CMakeLists.txt
  5. 12 0
      UI/data/themes/Acri.qss
  6. 12 0
      UI/data/themes/Dark.qss
  7. 1 0
      UI/data/themes/Dark/settings/advanced.svg
  8. 1 0
      UI/data/themes/Dark/settings/audio.svg
  9. 61 0
      UI/data/themes/Dark/settings/general.svg
  10. 1 0
      UI/data/themes/Dark/settings/hotkeys.svg
  11. 5 0
      UI/data/themes/Dark/settings/output.svg
  12. 1 0
      UI/data/themes/Dark/settings/stream.svg
  13. 1 0
      UI/data/themes/Dark/settings/video.svg
  14. 12 0
      UI/data/themes/Default.qss
  15. 12 0
      UI/data/themes/Rachni.qss
  16. 16 16
      UI/forms/OBSBasicSettings.ui
  17. BIN
      UI/forms/images/settings/advanced.png
  18. 1 0
      UI/forms/images/settings/advanced.svg
  19. BIN
      UI/forms/images/settings/advanced_2x.png
  20. BIN
      UI/forms/images/settings/applications-system-2.png
  21. BIN
      UI/forms/images/settings/applications-system-2_2x.png
  22. 1 0
      UI/forms/images/settings/audio.svg
  23. BIN
      UI/forms/images/settings/decibel_audio_player.png
  24. BIN
      UI/forms/images/settings/decibel_audio_player_2x.png
  25. 61 0
      UI/forms/images/settings/general.svg
  26. 1 0
      UI/forms/images/settings/hotkeys.svg
  27. BIN
      UI/forms/images/settings/network-bluetooth.png
  28. BIN
      UI/forms/images/settings/network-bluetooth_2x.png
  29. BIN
      UI/forms/images/settings/network.png
  30. BIN
      UI/forms/images/settings/network_2x.png
  31. 5 0
      UI/forms/images/settings/output.svg
  32. BIN
      UI/forms/images/settings/preferences-desktop-keyboard-shortcuts.png
  33. BIN
      UI/forms/images/settings/preferences-desktop-keyboard-shortcuts_2x.png
  34. BIN
      UI/forms/images/settings/preferences-system-network-3.png
  35. BIN
      UI/forms/images/settings/preferences-system-network-3_2x.png
  36. 1 0
      UI/forms/images/settings/stream.svg
  37. BIN
      UI/forms/images/settings/system-settings-3.png
  38. BIN
      UI/forms/images/settings/system-settings-3_2x.png
  39. BIN
      UI/forms/images/settings/video-display-3.png
  40. BIN
      UI/forms/images/settings/video-display-3_2x.png
  41. 1 0
      UI/forms/images/settings/video.svg
  42. 7 16
      UI/forms/obs.qrc
  43. 35 0
      UI/window-basic-settings.cpp
  44. 22 0
      UI/window-basic-settings.hpp
  45. 62 1
      cmake/Modules/CopyMSVCBins.cmake

+ 1 - 0
CI/install-dependencies-linux-ubuntu16.sh

@@ -37,6 +37,7 @@ sudo apt-get install -y \
         pkg-config \
         python3-dev \
         qtbase5-dev \
+        libqt5svg5-dev \
         swig
 
 

+ 1 - 0
CI/install-dependencies-linux.sh

@@ -40,4 +40,5 @@ sudo apt-get install -y \
         pkg-config \
         python3-dev \
         qtbase5-dev \
+        libqt5svg5-dev \
         swig

+ 0 - 6
README.rst

@@ -63,9 +63,3 @@ Contributing
    you fully understand -- bad advice is worse than no advice.  When it
    comes to something that you don't fully know or understand, please
    defer to the official help or official channels.
-
-Credits
--------
- - Icons made by `Freepik <https://www.freepik.com>`_ from
-   `Flaticon <https://www.flaticon.com/>`_ are licensed under
-   `CC 3.0 BY <https://creativecommons.org/licenses/by/3.0/>`_.

+ 3 - 0
UI/CMakeLists.txt

@@ -46,6 +46,8 @@ configure_file(
 set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
 set(CMAKE_AUTOMOC TRUE)
 
+find_package(Qt5Svg ${FIND_MODE})
+
 find_package(FFmpeg REQUIRED COMPONENTS avcodec avutil avformat)
 
 if(APPLE)
@@ -330,6 +332,7 @@ endif()
 target_link_libraries(obs
 	libobs
 	Qt5::Widgets
+	Qt5::Svg
 	obs-frontend-api
 	${FFMPEG_LIBRARIES}
 	${LIBCURL_LIBRARIES}

+ 12 - 0
UI/data/themes/Acri.qss

@@ -915,3 +915,15 @@ FocusList::item {
 	font-weight: bold;
 	color: rgb(122,121,122);
 }
+
+/* Settings Icons */
+
+OBSBasicSettings {
+    qproperty-generalIcon: url(./Dark/settings/general.svg);
+    qproperty-streamIcon: url(./Dark/settings/stream.svg);
+    qproperty-outputIcon: url(./Dark/settings/output.svg);
+    qproperty-audioIcon: url(./Dark/settings/audio.svg);
+    qproperty-videoIcon: url(./Dark/settings/video.svg);
+    qproperty-hotkeysIcon: url(./Dark/settings/hotkeys.svg);
+    qproperty-advancedIcon: url(./Dark/settings/advanced.svg);
+}

+ 12 - 0
UI/data/themes/Dark.qss

@@ -706,3 +706,15 @@ QLabel#errorLabel {
     font-weight: bold;
     color: rgb(122,121,122);
 }
+
+/* Settings Icons */
+
+OBSBasicSettings {
+    qproperty-generalIcon: url(./Dark/settings/general.svg);
+    qproperty-streamIcon: url(./Dark/settings/stream.svg);
+    qproperty-outputIcon: url(./Dark/settings/output.svg);
+    qproperty-audioIcon: url(./Dark/settings/audio.svg);
+    qproperty-videoIcon: url(./Dark/settings/video.svg);
+    qproperty-hotkeysIcon: url(./Dark/settings/hotkeys.svg);
+    qproperty-advancedIcon: url(./Dark/settings/advanced.svg);
+}

+ 1 - 0
UI/data/themes/Dark/settings/advanced.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" fill="white" d="M4.48 7.27c.26.26 1.28 1.33 1.28 1.33l.56-.58-.88-.91 1.69-1.8s-.76-.74-.43-.45c.32-1.19.03-2.51-.87-3.44C4.93.5 3.66.2 2.52.51l1.93 2-.51 1.96-1.89.52-1.93-2C-.19 4.17.1 5.48 1 6.4c.94.98 2.29 1.26 3.48.87zm6.44 1.94l-2.33 2.3 3.84 3.98c.31.33.73.49 1.14.49.41 0 .82-.16 1.14-.49.63-.65.63-1.7 0-2.35l-3.79-3.93zM16 2.53L13.55 0 6.33 7.46l.88.91-4.31 4.46-.99.53-1.39 2.27.35.37 2.2-1.44.51-1.02L7.9 9.08l.88.91L16 2.53z"/></svg>

+ 1 - 0
UI/data/themes/Dark/settings/audio.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" fill="white" d="M12 8.02c0 1.09-.45 2.09-1.17 2.83l-.67-.67c.55-.56.89-1.31.89-2.16 0-.85-.34-1.61-.89-2.16l.67-.67A3.99 3.99 0 0 1 12 8.02zM7.72 2.28L4 6H2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2l3.72 3.72c.47.47 1.28.14 1.28-.53V2.81c0-.67-.81-1-1.28-.53zm5.94.08l-.67.67a6.996 6.996 0 0 1 2.06 4.98c0 1.94-.78 3.7-2.06 4.98l.67.67A7.973 7.973 0 0 0 16 8c0-2.22-.89-4.22-2.34-5.66v.02zm-1.41 1.41l-.69.67a5.05 5.05 0 0 1 1.48 3.58c0 1.39-.56 2.66-1.48 3.56l.69.67A5.971 5.971 0 0 0 14 8.02c0-1.65-.67-3.16-1.75-4.25z"/></svg>

+ 61 - 0
UI/data/themes/Dark/settings/general.svg

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 32 32"
+   version="1.1"
+   id="svg5"
+   sodipodi:docname="general.svg"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)">
+  <metadata
+     id="metadata11">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs9" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="998"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="5.53125"
+     inkscape:cx="21.333333"
+     inkscape:cy="21.333333"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg5" />
+  <g
+     id="surface1"
+     style="fill:#ffffff"
+     transform="matrix(1,0,0,1.1456034,0,-2.3279489)">
+    <path
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="M 32,17.542969 V 14.339844 L 27.566406,13.058594 26.539062,10.878906 28.546875,7.203125 25.964844,4.941406 21.828125,6.761719 19.335938,5.859375 17.761719,2.019531 H 14.101562 L 12.664062,5.898438 10.125,6.796875 5.921875,5.042969 3.335938,7.296875 l 2.082031,3.625 -1.03125,2.179687 L 0,14.457031 v 3.183594 l 4.433594,1.28125 1.027344,2.179687 -2.007813,3.679688 2.582031,2.261719 4.136719,-1.824219 2.492187,0.902344 1.574219,3.835937 H 17.875 l 1.4375,-3.878906 2.539062,-0.898437 4.207032,1.761718 2.582031,-2.261718 -2.101563,-3.621094 1.074219,-2.179688 L 32,17.5 Z M 16,22 c -3.792969,0 -6.855469,-2.679688 -6.855469,-6 0,-3.320312 3.0625,-6 6.855469,-6 3.792969,0 6.855469,2.679688 6.855469,6 0,3.320312 -3.0625,6 -6.855469,6 z m 0,0"
+       id="path2"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 1 - 0
UI/data/themes/Dark/settings/hotkeys.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" fill="white" d="M10 5H9V4h1v1zM3 6H2v1h1V6zm5-2H7v1h1V4zM4 4H2v1h2V4zm8 7h2v-1h-2v1zM8 7h1V6H8v1zm-4 3H2v1h2v-1zm8-6h-1v1h1V4zm2 0h-1v1h1V4zm-2 5h2V6h-2v3zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 0H1v9h14V3zM6 7h1V6H6v1zm0-3H5v1h1V4zM4 7h1V6H4v1zm1 4h6v-1H5v1zm5-4h1V6h-1v1zM3 8H2v1h1V8zm5 0v1h1V8H8zM6 8v1h1V8H6zM5 8H4v1h1V8zm5 1h1V8h-1v1z"/></svg>

+ 5 - 0
UI/data/themes/Dark/settings/output.svg

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M12,15L4,15C5.48,14.39 6.09,13.61 6.34,13L1,13C0.45,13 0,12.55 0,12L0,3C0,2.45 0.45,2 1,2L15,2C15.55,2 16,2.45 16,3L16,4.191L15,4.191L15,3L1,3L1,11L15,11L15,9.752L16,9.752L16,12C16,12.55 15.55,13 15,13L9.66,13C9.91,13.61 10.52,14.39 12,15ZM11.981,10.35L11.981,7.849L5.965,7.849L5.965,6.182L11.981,6.182L11.981,3.681L15.992,7.015L11.981,10.35Z" style="fill:white;"/>
+</svg>

+ 1 - 0
UI/data/themes/Dark/settings/stream.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" fill="white" d="M4.79 6.11c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 0 0-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.33.52a.651.651 0 0 0-.92 0C.48 1.48.01 2.74.01 3.99c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 0 0 .01-.93zm5.69 5.1A1.62 1.62 0 1 0 6.4 4c-.01.89.72 1.62 1.62 1.62zM14.59.53a.628.628 0 0 0-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 0 0 .92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0 0 14.59.53zM8.02 6.92c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.21 6.62c-.38.2-.78.3-1.19.3zm-.01.48L9.02 11h-2l.99-3.6zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 0 0 .9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 0 0-.9 0z"/></svg>

+ 1 - 0
UI/data/themes/Dark/settings/video.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" fill="white" d="M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z"/></svg>

+ 12 - 0
UI/data/themes/Default.qss

@@ -149,3 +149,15 @@ QLabel#errorLabel {
     font-weight: bold;
     color: rgb(122,121,122);
 }
+
+/* Settings Icons */
+
+OBSBasicSettings {
+    qproperty-generalIcon: url(:settings/images/settings/general.svg);
+    qproperty-streamIcon: url(:settings/images/settings/stream.svg);
+    qproperty-outputIcon: url(:settings/images/settings/output.svg);
+    qproperty-audioIcon: url(:settings/images/settings/audio.svg);
+    qproperty-videoIcon: url(:settings/images/settings/video.svg);
+    qproperty-hotkeysIcon: url(:settings/images/settings/hotkeys.svg);
+    qproperty-advancedIcon: url(:settings/images/settings/advanced.svg);
+}

+ 12 - 0
UI/data/themes/Rachni.qss

@@ -1271,3 +1271,15 @@ QToolTip {
 	font-weight: bold;
 	color: rgb(122,121,122);
 }
+
+/* Settings Icons */
+
+OBSBasicSettings {
+    qproperty-generalIcon: url(./Dark/settings/general.svg);
+    qproperty-streamIcon: url(./Dark/settings/stream.svg);
+    qproperty-outputIcon: url(./Dark/settings/output.svg);
+    qproperty-audioIcon: url(./Dark/settings/audio.svg);
+    qproperty-videoIcon: url(./Dark/settings/video.svg);
+    qproperty-hotkeysIcon: url(./Dark/settings/hotkeys.svg);
+    qproperty-advancedIcon: url(./Dark/settings/advanced.svg);
+}

+ 16 - 16
UI/forms/OBSBasicSettings.ui

@@ -44,8 +44,8 @@
        </property>
        <property name="iconSize">
         <size>
-         <width>48</width>
-         <height>48</height>
+         <width>32</width>
+         <height>32</height>
         </size>
        </property>
        <property name="currentRow">
@@ -57,7 +57,7 @@
         </property>
         <property name="icon">
          <iconset resource="obs.qrc">
-          <normaloff>:/settings/images/settings/system-settings-3.png</normaloff>:/settings/images/settings/system-settings-3.png</iconset>
+          <normaloff>:/settings/images/settings/general.svg</normaloff>:/settings/images/settings/general.svg</iconset>
         </property>
        </item>
        <item>
@@ -66,7 +66,7 @@
         </property>
         <property name="icon">
          <iconset resource="obs.qrc">
-          <normaloff>:/settings/images/settings/network.png</normaloff>:/settings/images/settings/network.png</iconset>
+          <normaloff>:/settings/images/settings/stream.svg</normaloff>:/settings/images/settings/stream.svg</iconset>
         </property>
        </item>
        <item>
@@ -75,7 +75,7 @@
         </property>
         <property name="icon">
          <iconset resource="obs.qrc">
-          <normaloff>:/settings/images/settings/network-bluetooth.png</normaloff>:/settings/images/settings/network-bluetooth.png</iconset>
+          <normaloff>:/settings/images/settings/output.svg</normaloff>:/settings/images/settings/output.svg</iconset>
         </property>
        </item>
        <item>
@@ -84,7 +84,7 @@
         </property>
         <property name="icon">
          <iconset resource="obs.qrc">
-          <normaloff>:/settings/images/settings/decibel_audio_player.png</normaloff>:/settings/images/settings/decibel_audio_player.png</iconset>
+          <normaloff>:/settings/images/settings/audio.svg</normaloff>:/settings/images/settings/audio.svg</iconset>
         </property>
        </item>
        <item>
@@ -93,7 +93,7 @@
         </property>
         <property name="icon">
          <iconset resource="obs.qrc">
-          <normaloff>:/settings/images/settings/video-display-3.png</normaloff>:/settings/images/settings/video-display-3.png</iconset>
+          <normaloff>:/settings/images/settings/video.svg</normaloff>:/settings/images/settings/video.svg</iconset>
         </property>
        </item>
        <item>
@@ -102,7 +102,7 @@
         </property>
         <property name="icon">
          <iconset resource="obs.qrc">
-          <normaloff>:/settings/images/settings/preferences-desktop-keyboard-shortcuts.png</normaloff>:/settings/images/settings/preferences-desktop-keyboard-shortcuts.png</iconset>
+          <normaloff>:/settings/images/settings/hotkeys.svg</normaloff>:/settings/images/settings/hotkeys.svg</iconset>
         </property>
        </item>
        <item>
@@ -111,7 +111,7 @@
         </property>
         <property name="icon">
          <iconset resource="obs.qrc">
-          <normaloff>:/settings/images/settings/advanced.png</normaloff>:/settings/images/settings/advanced.png</iconset>
+          <normaloff>:/settings/images/settings/advanced.svg</normaloff>:/settings/images/settings/advanced.svg</iconset>
         </property>
        </item>
       </widget>
@@ -144,9 +144,9 @@
             <property name="geometry">
              <rect>
               <x>0</x>
-              <y>-540</y>
-              <width>804</width>
-              <height>1264</height>
+              <y>0</y>
+              <width>808</width>
+              <height>989</height>
              </rect>
             </property>
             <layout class="QVBoxLayout" name="verticalLayout_19">
@@ -1154,8 +1154,8 @@
              <rect>
               <x>0</x>
               <y>0</y>
-              <width>890</width>
-              <height>791</height>
+              <width>747</width>
+              <height>808</height>
              </rect>
             </property>
             <layout class="QVBoxLayout" name="verticalLayout_21">
@@ -4269,8 +4269,8 @@
              <rect>
               <x>0</x>
               <y>0</y>
-              <width>867</width>
-              <height>1061</height>
+              <width>765</width>
+              <height>993</height>
              </rect>
             </property>
             <layout class="QVBoxLayout" name="verticalLayout_23">

BIN
UI/forms/images/settings/advanced.png


+ 1 - 0
UI/forms/images/settings/advanced.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.48 7.27c.26.26 1.28 1.33 1.28 1.33l.56-.58-.88-.91 1.69-1.8s-.76-.74-.43-.45c.32-1.19.03-2.51-.87-3.44C4.93.5 3.66.2 2.52.51l1.93 2-.51 1.96-1.89.52-1.93-2C-.19 4.17.1 5.48 1 6.4c.94.98 2.29 1.26 3.48.87zm6.44 1.94l-2.33 2.3 3.84 3.98c.31.33.73.49 1.14.49.41 0 .82-.16 1.14-.49.63-.65.63-1.7 0-2.35l-3.79-3.93zM16 2.53L13.55 0 6.33 7.46l.88.91-4.31 4.46-.99.53-1.39 2.27.35.37 2.2-1.44.51-1.02L7.9 9.08l.88.91L16 2.53z"/></svg>

BIN
UI/forms/images/settings/advanced_2x.png


BIN
UI/forms/images/settings/applications-system-2.png


BIN
UI/forms/images/settings/applications-system-2_2x.png


+ 1 - 0
UI/forms/images/settings/audio.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M12 8.02c0 1.09-.45 2.09-1.17 2.83l-.67-.67c.55-.56.89-1.31.89-2.16 0-.85-.34-1.61-.89-2.16l.67-.67A3.99 3.99 0 0 1 12 8.02zM7.72 2.28L4 6H2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2l3.72 3.72c.47.47 1.28.14 1.28-.53V2.81c0-.67-.81-1-1.28-.53zm5.94.08l-.67.67a6.996 6.996 0 0 1 2.06 4.98c0 1.94-.78 3.7-2.06 4.98l.67.67A7.973 7.973 0 0 0 16 8c0-2.22-.89-4.22-2.34-5.66v.02zm-1.41 1.41l-.69.67a5.05 5.05 0 0 1 1.48 3.58c0 1.39-.56 2.66-1.48 3.56l.69.67A5.971 5.971 0 0 0 14 8.02c0-1.65-.67-3.16-1.75-4.25z"/></svg>

BIN
UI/forms/images/settings/decibel_audio_player.png


BIN
UI/forms/images/settings/decibel_audio_player_2x.png


+ 61 - 0
UI/forms/images/settings/general.svg

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 32 32"
+   version="1.1"
+   id="svg5"
+   sodipodi:docname="general2.svg"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)">
+  <metadata
+     id="metadata11">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs9" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="998"
+     id="namedview7"
+     showgrid="false"
+     inkscape:zoom="5.53125"
+     inkscape:cx="21.333333"
+     inkscape:cy="21.333333"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg5" />
+  <g
+     id="surface1"
+     style="fill:#000000"
+     transform="matrix(1,0,0,1.1456034,0,-2.3279489)">
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="M 32,17.542969 V 14.339844 L 27.566406,13.058594 26.539062,10.878906 28.546875,7.203125 25.964844,4.941406 21.828125,6.761719 19.335938,5.859375 17.761719,2.019531 H 14.101562 L 12.664062,5.898438 10.125,6.796875 5.921875,5.042969 3.335938,7.296875 l 2.082031,3.625 -1.03125,2.179687 L 0,14.457031 v 3.183594 l 4.433594,1.28125 1.027344,2.179687 -2.007813,3.679688 2.582031,2.261719 4.136719,-1.824219 2.492187,0.902344 1.574219,3.835937 H 17.875 l 1.4375,-3.878906 2.539062,-0.898437 4.207032,1.761718 2.582031,-2.261718 -2.101563,-3.621094 1.074219,-2.179688 L 32,17.5 Z M 16,22 c -3.792969,0 -6.855469,-2.679688 -6.855469,-6 0,-3.320312 3.0625,-6 6.855469,-6 3.792969,0 6.855469,2.679688 6.855469,6 0,3.320312 -3.0625,6 -6.855469,6 z m 0,0"
+       id="path2"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 1 - 0
UI/forms/images/settings/hotkeys.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M10 5H9V4h1v1zM3 6H2v1h1V6zm5-2H7v1h1V4zM4 4H2v1h2V4zm8 7h2v-1h-2v1zM8 7h1V6H8v1zm-4 3H2v1h2v-1zm8-6h-1v1h1V4zm2 0h-1v1h1V4zm-2 5h2V6h-2v3zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 0H1v9h14V3zM6 7h1V6H6v1zm0-3H5v1h1V4zM4 7h1V6H4v1zm1 4h6v-1H5v1zm5-4h1V6h-1v1zM3 8H2v1h1V8zm5 0v1h1V8H8zM6 8v1h1V8H6zM5 8H4v1h1V8zm5 1h1V8h-1v1z"/></svg>

BIN
UI/forms/images/settings/network-bluetooth.png


BIN
UI/forms/images/settings/network-bluetooth_2x.png


BIN
UI/forms/images/settings/network.png


BIN
UI/forms/images/settings/network_2x.png


+ 5 - 0
UI/forms/images/settings/output.svg

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+    <path d="M12,15L4,15C5.48,14.39 6.09,13.61 6.34,13L1,13C0.45,13 0,12.55 0,12L0,3C0,2.45 0.45,2 1,2L15,2C15.55,2 16,2.45 16,3L16,4.191L15,4.191L15,3L1,3L1,11L15,11L15,9.752L16,9.752L16,12C16,12.55 15.55,13 15,13L9.66,13C9.91,13.61 10.52,14.39 12,15ZM11.981,10.35L11.981,7.849L5.965,7.849L5.965,6.182L11.981,6.182L11.981,3.681L15.992,7.015L11.981,10.35Z"/>
+</svg>

BIN
UI/forms/images/settings/preferences-desktop-keyboard-shortcuts.png


BIN
UI/forms/images/settings/preferences-desktop-keyboard-shortcuts_2x.png


BIN
UI/forms/images/settings/preferences-system-network-3.png


BIN
UI/forms/images/settings/preferences-system-network-3_2x.png


+ 1 - 0
UI/forms/images/settings/stream.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.79 6.11c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 0 0-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.33.52a.651.651 0 0 0-.92 0C.48 1.48.01 2.74.01 3.99c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 0 0 .01-.93zm5.69 5.1A1.62 1.62 0 1 0 6.4 4c-.01.89.72 1.62 1.62 1.62zM14.59.53a.628.628 0 0 0-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 0 0 .92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0 0 14.59.53zM8.02 6.92c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.21 6.62c-.38.2-.78.3-1.19.3zm-.01.48L9.02 11h-2l.99-3.6zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 0 0 .9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 0 0-.9 0z"/></svg>

BIN
UI/forms/images/settings/system-settings-3.png


BIN
UI/forms/images/settings/system-settings-3_2x.png


BIN
UI/forms/images/settings/video-display-3.png


BIN
UI/forms/images/settings/video-display-3_2x.png


+ 1 - 0
UI/forms/images/settings/video.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z"/></svg>

+ 7 - 16
UI/forms/obs.qrc

@@ -27,21 +27,12 @@
     <file>images/expand.png</file>
   </qresource>
   <qresource prefix="/settings">
-    <file>images/settings/advanced.png</file>
-    <file>images/settings/advanced_2x.png</file>
-    <file>images/settings/network.png</file>
-    <file>images/settings/network_2x.png</file>
-    <file>images/settings/video-display-3.png</file>
-    <file>images/settings/video-display-3_2x.png</file>
-    <file>images/settings/decibel_audio_player.png</file>
-    <file>images/settings/decibel_audio_player_2x.png</file>
-    <file>images/settings/applications-system-2.png</file>
-    <file>images/settings/applications-system-2_2x.png</file>
-    <file>images/settings/system-settings-3.png</file>
-    <file>images/settings/system-settings-3_2x.png</file>
-    <file>images/settings/network-bluetooth.png</file>
-    <file>images/settings/network-bluetooth_2x.png</file>
-    <file>images/settings/preferences-desktop-keyboard-shortcuts.png</file>
-    <file>images/settings/preferences-desktop-keyboard-shortcuts_2x.png</file>
+    <file>images/settings/output.svg</file>
+    <file>images/settings/stream.svg</file>
+    <file>images/settings/advanced.svg</file>
+    <file>images/settings/video.svg</file>
+    <file>images/settings/audio.svg</file>
+    <file>images/settings/general.svg</file>
+    <file>images/settings/hotkeys.svg</file>
   </qresource>
 </RCC>

+ 35 - 0
UI/window-basic-settings.cpp

@@ -4469,3 +4469,38 @@ void OBSBasicSettings::on_disableOSXVSync_clicked()
 	}
 #endif
 }
+
+void OBSBasicSettings::SetGeneralIcon(const QIcon &icon)
+{
+	ui->listWidget->item(0)->setIcon(icon);
+}
+
+void OBSBasicSettings::SetStreamIcon(const QIcon &icon)
+{
+	ui->listWidget->item(1)->setIcon(icon);
+}
+
+void OBSBasicSettings::SetOutputIcon(const QIcon &icon)
+{
+	ui->listWidget->item(2)->setIcon(icon);
+}
+
+void OBSBasicSettings::SetAudioIcon(const QIcon &icon)
+{
+	ui->listWidget->item(3)->setIcon(icon);
+}
+
+void OBSBasicSettings::SetVideoIcon(const QIcon &icon)
+{
+	ui->listWidget->item(4)->setIcon(icon);
+}
+
+void OBSBasicSettings::SetHotkeysIcon(const QIcon &icon)
+{
+	ui->listWidget->item(5)->setIcon(icon);
+}
+
+void OBSBasicSettings::SetAdvancedIcon(const QIcon &icon)
+{
+	ui->listWidget->item(6)->setIcon(icon);
+}

+ 22 - 0
UI/window-basic-settings.hpp

@@ -87,6 +87,20 @@ using OBSFFFormatDesc = std::unique_ptr<const ff_format_desc,
 
 class OBSBasicSettings : public QDialog {
 	Q_OBJECT
+	Q_PROPERTY(QIcon generalIcon WRITE SetGeneralIcon
+			NOTIFY SetGeneralIcon)
+	Q_PROPERTY(QIcon streamIcon WRITE SetStreamIcon
+			NOTIFY SetStreamIcon)
+	Q_PROPERTY(QIcon outputIcon WRITE SetOutputIcon
+			NOTIFY SetOutputIcon)
+	Q_PROPERTY(QIcon audioIcon WRITE SetAudioIcon
+			NOTIFY SetAudioIcon)
+	Q_PROPERTY(QIcon videoIcon WRITE SetVideoIcon
+			NOTIFY SetVideoIcon)
+	Q_PROPERTY(QIcon hotkeysIcon WRITE SetHotkeysIcon
+			NOTIFY SetHotkeysIcon)
+	Q_PROPERTY(QIcon advancedIcon WRITE SetAdvancedIcon
+			NOTIFY SetAdvancedIcon)
 
 private:
 	OBSBasic *main;
@@ -330,6 +344,14 @@ private slots:
 
 	OBSService SpawnTempService();
 
+	void SetGeneralIcon(const QIcon &icon);
+	void SetStreamIcon(const QIcon &icon);
+	void SetOutputIcon(const QIcon &icon);
+	void SetAudioIcon(const QIcon &icon);
+	void SetVideoIcon(const QIcon &icon);
+	void SetHotkeysIcon(const QIcon &icon);
+	void SetAdvancedIcon(const QIcon &icon);
+
 protected:
 	virtual void closeEvent(QCloseEvent *event);
 

+ 62 - 1
cmake/Modules/CopyMSVCBins.cmake

@@ -151,23 +151,36 @@ file(GLOB QT_DEBUG_BIN_FILES
 	"${Qt5Core_DIR}/../../../bin/Qt5Cored.dll"
 	"${Qt5Core_DIR}/../../../bin/Qt5Guid.dll"
 	"${Qt5Core_DIR}/../../../bin/Qt5Widgetsd.dll"
+	"${Qt5Core_DIR}/../../../bin/Qt5Svg.dll"
+	"${Qt5Core_DIR}/../../../bin/Qt5Xml.dll"
 	"${Qt5Core_DIR}/../../../bin/libGLESv2d.dll"
 	"${Qt5Core_DIR}/../../../bin/libEGLd.dll")
 file(GLOB QT_DEBUG_PLAT_BIN_FILES
 	"${Qt5Core_DIR}/../../../plugins/platforms/qwindowsd.dll")
 file(GLOB QT_DEBUG_STYLES_BIN_FILES
 	"${Qt5Core_DIR}/../../../plugins/styles/qwindowsvistastyled.dll")
+file(GLOB QT_DEBUG_ICONENGINE_BIN_FILES
+	"${Qt5Core_DIR}/../../../plugins/iconengines/qsvgicon.dll")	
+file(GLOB QT_DEBUG_IMAGEFORMATS_BIN_FILES
+	"${Qt5Core_DIR}/../../../plugins/imageformats/qsvg.dll")	
+
 
 file(GLOB QT_BIN_FILES
 	"${Qt5Core_DIR}/../../../bin/Qt5Core.dll"
 	"${Qt5Core_DIR}/../../../bin/Qt5Gui.dll"
 	"${Qt5Core_DIR}/../../../bin/Qt5Widgets.dll"
+	"${Qt5Core_DIR}/../../../bin/Qt5Svg.dll"
+	"${Qt5Core_DIR}/../../../bin/Qt5Xml.dll"
 	"${Qt5Core_DIR}/../../../bin/libGLESv2.dll"
 	"${Qt5Core_DIR}/../../../bin/libEGL.dll")
 file(GLOB QT_PLAT_BIN_FILES
 	"${Qt5Core_DIR}/../../../plugins/platforms/qwindows.dll")
 file(GLOB QT_STYLES_BIN_FILES
 	"${Qt5Core_DIR}/../../../plugins/styles/qwindowsvistastyle.dll")
+file(GLOB QT_ICONENGINE_BIN_FILES
+	"${Qt5Core_DIR}/../../../plugins/iconengines/qsvgicon.dll")	
+file(GLOB QT_IMAGEFORMATS_BIN_FILES
+	"${Qt5Core_DIR}/../../../plugins/imageformats/qsvg.dll")	
 
 file(GLOB QT_ICU_BIN_FILES
 	"${Qt5Core_DIR}/../../../bin/icu*.dll")
@@ -201,10 +214,24 @@ set(ALL_STYLES_REL_BIN_FILES
 set(ALL_STYLES_DBG_BIN_FILES
 	${QT_DEBUG_STYLES_BIN_FILES})
 
+set(ALL_ICONENGINE_BIN_FILES)
+set(ALL_ICONENGINE_REL_BIN_FILES
+	${QT_ICONENGINE_BIN_FILES})
+set(ALL_ICONENGINE_DBG_BIN_FILES
+	${QT_DEBUG_ICONENGINE_BIN_FILES})
+
+set(ALL_IMAGEFORMATS_BIN_FILES)
+set(ALL_IMAGEFORMATS_REL_BIN_FILES
+	${QT_IMAGEFORMATS_BIN_FILES})
+set(ALL_IMAGEFORMATS_DBG_BIN_FILES
+	${QT_DEBUG_ICONENGINE_BIN_FILES})
+
 foreach(list
 		ALL_BASE_BIN_FILES ALL_REL_BIN_FILES ALL_DBG_BIN_FILES
 		ALL_PLATFORM_BIN_FILES ALL_PLATFORM_REL_BIN_FILES ALL_PLATFORM_DBG_BIN_FILES
-		ALL_STYLES_BIN_FILES ALL_STYLES_REL_BIN_FILES ALL_STYLES_DBG_BIN_FILES)
+		ALL_STYLES_BIN_FILES ALL_STYLES_REL_BIN_FILES ALL_STYLES_DBG_BIN_FILES
+		ALL_ICONENGINE_BIN_FILES ALL_ICONENGINE_REL_BIN_FILES ALL_ICONENGINE_DGB_BIN_FILES
+		ALL_IMAGEFORMATS_BIN_FILES ALL_IMAGEFORMATS_REL_BIN_FILES ALL_IMAGEFORMATS_DGB_BIN_FILES)
 	if(${list})
 		list(REMOVE_DUPLICATES ${list})
 	endif()
@@ -221,9 +248,13 @@ message(STATUS "zlib files: ${ZLIB_BIN_FILES}")
 message(STATUS "QT Debug files: ${QT_DEBUG_BIN_FILES}")
 message(STATUS "QT Debug Platform files: ${QT_DEBUG_PLAT_BIN_FILES}")
 message(STATUS "QT Debug Styles files: ${QT_DEBUG_STYLES_BIN_FILES}")
+message(STATUS "QT Debug Iconengine files: ${QT_DEBUG_ICONENGINE_BIN_FILES}")
+message(STATUS "QT Debug Imageformat files: ${QT_DEBUG_IMAGEFORMATS_BIN_FILES}")
 message(STATUS "QT Release files: ${QT_BIN_FILES}")
 message(STATUS "QT Release Platform files: ${QT_PLAT_BIN_FILES}")
 message(STATUS "QT Release Styles files: ${QT_STYLES_BIN_FILES}")
+message(STATUS "QT Release Iconengine files: ${QT_REL_ICONENGINE_BIN_FILES}")
+message(STATUS "QT Release Imageformat files: ${QT_REL_IMAGEFORMATS_BIN_FILES}")
 message(STATUS "QT ICU files: ${QT_ICU_BIN_FILES}")
 
 foreach(BinFile ${ALL_BASE_BIN_FILES})
@@ -271,4 +302,34 @@ foreach(BinFile ${ALL_STYLES_DBG_BIN_FILES})
 	file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/styles/")
 endforeach()
 
+foreach(BinFile ${ALL_ICONENGINE_BIN_FILES})
+	make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/iconengines")
+	file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/iconengines/")
+endforeach()
+
+foreach(BinFile ${ALL_ICONENGINE_REL_BIN_FILES})
+	make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/iconengines")
+	file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/iconengines/")
+endforeach()
+
+foreach(BinFile ${ALL_ICONENGINE_DBG_BIN_FILES})
+	make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/iconengines")
+	file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/iconengines/")
+endforeach()
+
+foreach(BinFile ${ALL_IMAGEFORMATS_BIN_FILES})
+	make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/imageformats")
+	file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}/imageformats/")
+endforeach()
+
+foreach(BinFile ${ALL_IMAGEFORMATS_REL_BIN_FILES})
+	make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/imageformats")
+	file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}r/imageformats/")
+endforeach()
+
+foreach(BinFile ${ALL_IMAGEFORMATS_DBG_BIN_FILES})
+	make_directory("${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/imageformats")
+	file(COPY "${BinFile}" DESTINATION "${CMAKE_SOURCE_DIR}/additional_install_files/exec${_bin_suffix}d/imageformats/")
+endforeach()
+
 set(COPIED_DEPENDENCIES TRUE CACHE BOOL "Dependencies have been copied, set to false to copy again" FORCE)