[vlc-devel] [PATCH 3/3] Add UI for setting subtitle charset detection on/off

pertuleha at gmail.com pertuleha at gmail.com
Sun Apr 7 20:38:26 CEST 2019


From: Aleksei Pertu <pertuleha at gmail.com>

---
 modules/gui/macosx/UI/SimplePreferences.xib   | 35 +++++++++++++------
 .../preferences/VLCSimplePrefsController.h    |  1 +
 .../preferences/VLCSimplePrefsController.m    |  2 ++
 .../gui/qt/components/simple_preferences.cpp  |  1 +
 modules/gui/qt/ui/sprefs_subtitles.ui         |  7 ++++
 5 files changed, 35 insertions(+), 11 deletions(-)

diff --git a/modules/gui/macosx/UI/SimplePreferences.xib b/modules/gui/macosx/UI/SimplePreferences.xib
index 1366b78cc7..d8f4d94c00 100644
--- a/modules/gui/macosx/UI/SimplePreferences.xib
+++ b/modules/gui/macosx/UI/SimplePreferences.xib
@@ -84,6 +84,7 @@
                 <outlet property="osdView" destination="2523" id="d1o-FZ-hXa"/>
                 <outlet property="osd_encodingLabel" destination="2531" id="yyW-qD-zJ0"/>
                 <outlet property="osd_encodingPopup" destination="2532" id="mBO-m6-lIV"/>
+                <outlet property="osd_encodingAutoDetectCheckbox" destination="epz-hm-jAM" id="mAn-id-Mmz"/>
                 <outlet property="osd_fontBox" destination="2537" id="OCf-KO-i4B"/>
                 <outlet property="osd_fontButton" destination="2543" id="UOT-87-z16"/>
                 <outlet property="osd_fontLabel" destination="2542" id="LD1-g4-6Ex"/>
@@ -1532,7 +1533,7 @@ Gw
             <point key="canvasLocation" x="883" y="158"/>
         </customView>
         <customView translatesAutoresizingMaskIntoConstraints="NO" id="2523" userLabel="Subtitles & OSD Settings">
-            <rect key="frame" x="0.0" y="-1" width="571" height="402"/>
+            <rect key="frame" x="0.0" y="-1" width="571" height="428"/>
             <subviews>
                 <box title="Display Settings" translatesAutoresizingMaskIntoConstraints="NO" id="2537">
                     <rect key="frame" x="17" y="16" width="537" height="214"/>
@@ -1770,13 +1771,13 @@ Gw
                     </view>
                 </box>
                 <box title="On Screen Display" translatesAutoresizingMaskIntoConstraints="NO" id="2524">
-                    <rect key="frame" x="17" y="328" width="537" height="54"/>
+                    <rect key="frame" x="17" y="352" width="537" height="56"/>
                     <view key="contentView" id="GNq-vl-Idl">
-                        <rect key="frame" x="3" y="3" width="531" height="36"/>
+                        <rect key="frame" x="3" y="3" width="531" height="38"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <button mirrorLayoutDirectionWhenInternationalizing="always" translatesAutoresizingMaskIntoConstraints="NO" id="2526">
-                                <rect key="frame" x="14" y="9" width="94" height="18"/>
+                                <rect key="frame" x="14" y="9" width="94" height="20"/>
                                 <buttonCell key="cell" type="check" title="Enable OSD" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="3494">
                                     <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
                                     <font key="font" metaFont="system"/>
@@ -1795,13 +1796,13 @@ Gw
                     </view>
                 </box>
                 <box title="SPU language" translatesAutoresizingMaskIntoConstraints="NO" id="1aw-Yd-yzY">
-                    <rect key="frame" x="17" y="235" width="537" height="88"/>
+                    <rect key="frame" x="17" y="235" width="537" height="112"/>
                     <view key="contentView" id="clp-fm-5xs">
-                        <rect key="frame" x="3" y="3" width="531" height="70"/>
+                        <rect key="frame" x="3" y="3" width="531" height="94"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2529">
-                                <rect key="frame" x="16" y="43" width="175" height="17"/>
+                                <rect key="frame" x="16" y="67" width="175" height="17"/>
                                 <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Preferred Subtitle Language" usesSingleLineMode="YES" id="3495">
                                     <font key="font" metaFont="system"/>
                                     <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -1809,7 +1810,7 @@ Gw
                                 </textFieldCell>
                             </textField>
                             <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2530">
-                                <rect key="frame" x="206" y="41" width="308" height="22"/>
+                                <rect key="frame" x="206" y="65" width="308" height="22"/>
                                 <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" continuous="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="3496">
                                     <font key="font" metaFont="system"/>
                                     <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -1821,7 +1822,7 @@ Gw
                                 </connections>
                             </textField>
                             <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2531">
-                                <rect key="frame" x="16" y="14" width="175" height="17"/>
+                                <rect key="frame" x="16" y="38" width="175" height="17"/>
                                 <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Default Encoding" usesSingleLineMode="YES" id="3497">
                                     <font key="font" metaFont="system"/>
                                     <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -1829,7 +1830,7 @@ Gw
                                 </textFieldCell>
                             </textField>
                             <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2532">
-                                <rect key="frame" x="204" y="9" width="313" height="25"/>
+                                <rect key="frame" x="204" y="33" width="313" height="25"/>
                                 <popUpButtonCell key="cell" type="push" bezelStyle="rounded" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="2665" id="3498">
                                     <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
                                     <font key="font" metaFont="menu"/>
@@ -1848,15 +1849,27 @@ Gw
                                     <action selector="osdSettingChanged:" target="-2" id="xeg-0v-Ab2"/>
                                 </connections>
                             </popUpButton>
+                            <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="epz-hm-jAM">
+                                <rect key="frame" x="16" y="10" width="193" height="18"/>
+                                <buttonCell key="cell" type="check" title="Try to auto-detect encoding" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="7Mx-so-6d6">
+                                    <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
+                                    <font key="font" metaFont="system"/>
+                                </buttonCell>
+                                <connections>
+                                    <action selector="osdSettingChanged:" target="-2" id="mAn-id-Yn1"/>
+                                </connections>
+                            </button>
                         </subviews>
                         <constraints>
                             <constraint firstItem="2529" firstAttribute="centerY" secondItem="2530" secondAttribute="centerY" id="HsK-i9-n2z"/>
-                            <constraint firstAttribute="bottom" secondItem="2532" secondAttribute="bottom" constant="12" id="LX5-YD-7vT"/>
+                            <constraint firstAttribute="bottom" secondItem="epz-hm-jAM" secondAttribute="bottom" constant="12" id="LX5-YD-7vT"/>
                             <constraint firstAttribute="trailing" secondItem="2530" secondAttribute="trailing" constant="17" id="NTc-Wd-fKW"/>
                             <constraint firstItem="2529" firstAttribute="leading" secondItem="clp-fm-5xs" secondAttribute="leading" constant="18" id="Q4r-4X-sJQ"/>
                             <constraint firstItem="2530" firstAttribute="leading" secondItem="2532" secondAttribute="leading" id="R1y-rp-flP"/>
                             <constraint firstItem="2532" firstAttribute="leading" secondItem="2531" secondAttribute="trailing" constant="17" id="Upg-N7-CHN"/>
                             <constraint firstItem="2530" firstAttribute="width" secondItem="2532" secondAttribute="width" id="VfS-JB-gci"/>
+                            <constraint firstItem="epz-hm-jAM" firstAttribute="top" secondItem="2531" secondAttribute="bottom" constant="12" id="aws-1g-8oU"/>
+                            <constraint firstItem="epz-hm-jAM" firstAttribute="leading" secondItem="2531" secondAttribute="leading" id="dZ3-mh-SN1"/>
                             <constraint firstItem="2531" firstAttribute="centerY" secondItem="2532" secondAttribute="centerY" id="lPF-fI-ol6"/>
                             <constraint firstItem="2529" firstAttribute="leading" secondItem="2531" secondAttribute="leading" id="vCh-Cd-x9H"/>
                             <constraint firstItem="2529" firstAttribute="top" secondItem="clp-fm-5xs" secondAttribute="top" constant="10" id="vT7-e0-BpD"/>
diff --git a/modules/gui/macosx/preferences/VLCSimplePrefsController.h b/modules/gui/macosx/preferences/VLCSimplePrefsController.h
index b7d0b49141..1dc0e73fb0 100644
--- a/modules/gui/macosx/preferences/VLCSimplePrefsController.h
+++ b/modules/gui/macosx/preferences/VLCSimplePrefsController.h
@@ -157,6 +157,7 @@
 @property (readwrite, weak) IBOutlet NSButton *osd_forceboldCheckbox;
 @property (readwrite, weak) IBOutlet NSBox *osd_osdBox;
 @property (readwrite, weak) IBOutlet NSButton *osd_osdCheckbox;
+ at property (readwrite, weak) IBOutlet NSButton *osd_encodingAutoDetectCheckbox;
 
 // video pane
 @property (readwrite, strong) IBOutlet NSView *videoView;
diff --git a/modules/gui/macosx/preferences/VLCSimplePrefsController.m b/modules/gui/macosx/preferences/VLCSimplePrefsController.m
index 26d9589022..24295f1854 100644
--- a/modules/gui/macosx/preferences/VLCSimplePrefsController.m
+++ b/modules/gui/macosx/preferences/VLCSimplePrefsController.m
@@ -714,6 +714,7 @@ static inline const char * __config_GetLabel(vlc_object_t *p_this, const char *p
 
     [self setupButton:_osd_encodingPopup forStringList: "subsdec-encoding"];
     [self setupField:_osd_langTextField forOption: "sub-language" ];
+    [self setupButton:_osd_encodingAutoDetectCheckbox forBoolValue: "sub-autodetect-charset"];
 
     [self setupField:_osd_fontTextField forOption: "freetype-font"];
     [self setupButton:_osd_font_colorPopup forIntList: "freetype-color"];
@@ -1009,6 +1010,7 @@ static inline void save_string_list(intf_thread_t * p_intf, id object, const cha
             config_PutPsz("subsdec-encoding", "");
 
         config_PutPsz("sub-language", [[_osd_langTextField stringValue] UTF8String]);
+        config_PutInt("sub-autodetect-charset", [_osd_encodingAutoDetectCheckbox state]);
 
         config_PutPsz("freetype-font", [[_osd_fontTextField stringValue] UTF8String]);
         SaveIntList(_osd_font_colorPopup, "freetype-color");
diff --git a/modules/gui/qt/components/simple_preferences.cpp b/modules/gui/qt/components/simple_preferences.cpp
index 914b92f07d..11556f38f9 100644
--- a/modules/gui/qt/components/simple_preferences.cpp
+++ b/modules/gui/qt/components/simple_preferences.cpp
@@ -851,6 +851,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                             encoding );
             CONFIG_GENERIC( "sub-language", String, ui.subLangLabel,
                             preferredLanguage );
+            CONFIG_BOOL( "sub-autodetect-charset", subDetectCharset );
 
             CONFIG_GENERIC( "freetype-rel-fontsize", IntegerList,
                             ui.fontSizeLabel, fontSize );
diff --git a/modules/gui/qt/ui/sprefs_subtitles.ui b/modules/gui/qt/ui/sprefs_subtitles.ui
index b9e851dc9d..12ab2d56d5 100644
--- a/modules/gui/qt/ui/sprefs_subtitles.ui
+++ b/modules/gui/qt/ui/sprefs_subtitles.ui
@@ -136,6 +136,13 @@
            </property>
           </widget>
          </item>
+         <item row="2" column="0">
+           <widget class="QCheckBox" name="subDetectCharset">
+             <property name="text">
+               <string>Try to auto-detect encoding</string>
+             </property>
+           </widget>
+         </item>
         </layout>
        </widget>
       </item>
-- 
2.20.1



More information about the vlc-devel mailing list