Add new options to profile settings (#2256)

Add new options to profile settings. Re-order profile settings.
This commit is contained in:
Bob Swift
2023-07-13 15:55:50 -06:00
committed by GitHub
parent 9f2eb548ba
commit cdbddade3c
3 changed files with 196 additions and 113 deletions

View File

@@ -50,30 +50,59 @@ class UserProfileGroups():
SettingDesc("analyze_new_files", N_("Automatically scan all new files"), ["analyze_new_files"]), SettingDesc("analyze_new_files", N_("Automatically scan all new files"), ["analyze_new_files"]),
SettingDesc("cluster_new_files", N_("Automatically cluster all new files"), ["cluster_new_files"]), SettingDesc("cluster_new_files", N_("Automatically cluster all new files"), ["cluster_new_files"]),
SettingDesc("ignore_file_mbids", N_("Ignore MBIDs when loading new files"), ["ignore_file_mbids"]), SettingDesc("ignore_file_mbids", N_("Ignore MBIDs when loading new files"), ["ignore_file_mbids"]),
SettingDesc("check_for_updates", N_("Check for updates during startup"), ["check_for_updates"]),
SettingDesc("update_check_days", N_("Days between update checks"), ["update_check_days"]),
SettingDesc("update_level", N_("Updates to check"), ["update_level"]),
], ],
} }
SETTINGS_GROUPS["metadata"] = { SETTINGS_GROUPS["metadata"] = {
"title": N_("Metadata"), "title": N_("Metadata"),
"settings": [ "settings": [
SettingDesc("va_name", N_("Various Artists name"), ["va_name"]), # Main Metadata Page
SettingDesc("nat_name", N_("Standalone recordings name"), ["nat_name"]),
SettingDesc("translate_artist_names", N_("Translate artist names"), ["translate_artist_names"]), SettingDesc("translate_artist_names", N_("Translate artist names"), ["translate_artist_names"]),
SettingDesc("artist_locales", N_("Translation locales"), ["selected_locales"]), SettingDesc("artist_locales", N_("Translation locales"), ["selected_locales"]),
SettingDesc("translate_artist_names_script_exception", N_("Translate artist names exception"), ["translate_artist_names_script_exception"]), SettingDesc("translate_artist_names_script_exception", N_("Translate artist names exception"), ["translate_artist_names_script_exception"]),
SettingDesc("script_exceptions", N_("Translation script exceptions"), ["selected_scripts"]), SettingDesc("script_exceptions", N_("Translation script exceptions"), ["selected_scripts"]),
SettingDesc("release_ars", N_("Use release relationships"), ["release_ars"]),
SettingDesc("track_ars", N_("Use track relationships"), ["track_ars"]),
SettingDesc("convert_punctuation", N_("Convert Unicode punctuation characters to ASCII"), ["convert_punctuation"]),
SettingDesc("standardize_artists", N_("Use standardized artist names"), ["standardize_artists"]), SettingDesc("standardize_artists", N_("Use standardized artist names"), ["standardize_artists"]),
SettingDesc("standardize_instruments", N_("Use standardized instrument and vocal credits"), ["standardize_instruments"]), SettingDesc("standardize_instruments", N_("Use standardized instrument and vocal credits"), ["standardize_instruments"]),
SettingDesc("convert_punctuation", N_("Convert Unicode punctuation characters to ASCII"), ["convert_punctuation"]),
SettingDesc("release_ars", N_("Use release relationships"), ["release_ars"]),
SettingDesc("track_ars", N_("Use track relationships"), ["track_ars"]),
SettingDesc("guess_tracknumber_and_title", N_("Guess track number and title from filename if empty"), ["guess_tracknumber_and_title"]), SettingDesc("guess_tracknumber_and_title", N_("Guess track number and title from filename if empty"), ["guess_tracknumber_and_title"]),
SettingDesc("va_name", N_("Various Artists name"), ["va_name"]),
SettingDesc("nat_name", N_("Standalone recordings name"), ["nat_name"]),
# Preferred Releases Page
SettingDesc("release_type_scores", N_("Release type preferences"), ["type_group"]),
SettingDesc("preferred_release_countries", N_("Preferred release countries"), ["country_group"]),
SettingDesc("preferred_release_formats", N_("Preferred release formats"), ["format_group"]),
# Genres Page
SettingDesc("use_genres", N_("Use genres from MusicBrainz"), []), # No highlight specified because the "use_genres"
# object is a QGroupBox and it highlights all sub
# options, even if the sub options are not selected.
SettingDesc("only_my_genres", N_("Use only my genres"), ["only_my_genres"]),
SettingDesc("artists_genres", N_("Use album artist genres"), ["artists_genres"]),
SettingDesc("folksonomy_tags", N_("Use folksonomy tags as genre"), ["folksonomy_tags"]),
SettingDesc("min_genre_usage", N_("Minimal genre usage"), ["min_genre_usage"]),
SettingDesc("max_genres", N_("Maximum number of genres"), ["max_genres"]),
SettingDesc("join_genres", N_("Join multiple genres with"), ["join_genres"]),
SettingDesc("genres_filter", N_("Genres to include or exclude"), ["genres_filter"]),
# Ratings Page
SettingDesc("enable_ratings", N_("Enable track ratings"), []), # No highlight specified because the "enable_ratings"
# object is a QGroupBox and it highlights all sub options,
# even if the sub options are not selected.
SettingDesc("rating_user_email", N_("Email to use when submitting ratings"), ["rating_user_email"]),
SettingDesc("submit_ratings", N_("Submit ratings to MusicBrainz"), ["submit_ratings"]),
], ],
} }
SETTINGS_GROUPS["tags"] = { SETTINGS_GROUPS["tags"] = {
"title": N_("Tags"), "title": N_("Tags"),
"settings": [ "settings": [
# Main Tags Page
SettingDesc("dont_write_tags", N_("Don't write tags"), ["write_tags"]), SettingDesc("dont_write_tags", N_("Don't write tags"), ["write_tags"]),
SettingDesc("preserve_timestamps", N_("Preserve timestamps of tagged files"), ["preserve_timestamps"]), SettingDesc("preserve_timestamps", N_("Preserve timestamps of tagged files"), ["preserve_timestamps"]),
SettingDesc("clear_existing_tags", N_("Clear existing tags"), ["clear_existing_tags"]), SettingDesc("clear_existing_tags", N_("Clear existing tags"), ["clear_existing_tags"]),
@@ -82,15 +111,23 @@ class UserProfileGroups():
SettingDesc("remove_ape_from_mp3", N_("Remove APEv2 tags from MP3 files"), ["remove_ape_from_mp3"]), SettingDesc("remove_ape_from_mp3", N_("Remove APEv2 tags from MP3 files"), ["remove_ape_from_mp3"]),
SettingDesc("fix_missing_seekpoints_flac", N_("Fix missing seekpoints for FLAC files"), ["fix_missing_seekpoints_flac"]), SettingDesc("fix_missing_seekpoints_flac", N_("Fix missing seekpoints for FLAC files"), ["fix_missing_seekpoints_flac"]),
SettingDesc("preserved_tags", N_("Preserved tags list"), ["preserved_tags"]), SettingDesc("preserved_tags", N_("Preserved tags list"), ["preserved_tags"]),
SettingDesc("aac_save_ape", N_("Save APEv2 tags to AAC"), ["aac_save_ape", "aac_no_tags"]),
SettingDesc("remove_ape_from_aac", N_("Remove APEv2 tags from AAC files"), ["remove_ape_from_aac"]), # ID3 Tags Page
SettingDesc("ac3_save_ape", N_("Save APEv2 tags to AC3"), ["ac3_save_ape", "ac3_no_tags"]), SettingDesc("write_id3v23", N_("ID3v2 version to write"), ["write_id3v23", "write_id3v24"]),
SettingDesc("remove_ape_from_ac3", N_("Remove APEv2 tags from AC3 files"), ["remove_ape_from_ac3"]),
SettingDesc("write_id3v1", N_("Write ID3v1 tags"), ["write_id3v1"]),
SettingDesc("write_id3v23", N_("Write ID3v2.3 tags"), ["write_id3v23", "write_id3v24"]),
SettingDesc("id3v2_encoding", N_("ID3v2 text encoding"), ["enc_utf8", "enc_utf16", "enc_iso88591"]), SettingDesc("id3v2_encoding", N_("ID3v2 text encoding"), ["enc_utf8", "enc_utf16", "enc_iso88591"]),
SettingDesc("id3v23_join_with", N_("ID3v2.3 join character"), ["id3v23_join_with"]), SettingDesc("id3v23_join_with", N_("ID3v2.3 join character"), ["id3v23_join_with"]),
SettingDesc("itunes_compatible_grouping", N_("Save iTunes compatible grouping and work"), ["itunes_compatible_grouping"]), SettingDesc("itunes_compatible_grouping", N_("Save iTunes compatible grouping and work"), ["itunes_compatible_grouping"]),
SettingDesc("write_id3v1", N_("Write ID3v1 tags"), ["write_id3v1"]),
# AAC Tags Page
SettingDesc("aac_save_ape", N_("Save APEv2 tags to AAC"), ["aac_save_ape", "aac_no_tags"]),
SettingDesc("remove_ape_from_aac", N_("Remove APEv2 tags from AAC files"), ["remove_ape_from_aac"]),
# AC3 Tags Page
SettingDesc("ac3_save_ape", N_("Save APEv2 tags to AC3"), ["ac3_save_ape", "ac3_no_tags"]),
SettingDesc("remove_ape_from_ac3", N_("Remove APEv2 tags from AC3 files"), ["remove_ape_from_ac3"]),
# WAVE Tags Page
SettingDesc("write_wave_riff_info", N_("Write RIFF INFO tags to WAVE files"), ["write_wave_riff_info"]), SettingDesc("write_wave_riff_info", N_("Write RIFF INFO tags to WAVE files"), ["write_wave_riff_info"]),
SettingDesc("remove_wave_riff_info", N_("Remove existing RIFF INFO tags from WAVE files"), ["remove_wave_riff_info"]), SettingDesc("remove_wave_riff_info", N_("Remove existing RIFF INFO tags from WAVE files"), ["remove_wave_riff_info"]),
SettingDesc("wave_riff_info_encoding", N_("RIFF INFO text encoding"), ["wave_riff_info_enc_cp1252", "wave_riff_info_enc_utf8"]), SettingDesc("wave_riff_info_encoding", N_("RIFF INFO text encoding"), ["wave_riff_info_enc_cp1252", "wave_riff_info_enc_utf8"]),
@@ -114,15 +151,22 @@ class UserProfileGroups():
SETTINGS_GROUPS["filerenaming"] = { SETTINGS_GROUPS["filerenaming"] = {
"title": N_("File Naming"), "title": N_("File Naming"),
"settings": [ "settings": [
SettingDesc("windows_compatibility", N_("Windows compatibility"), ["windows_compatibility"]), # Main File Naming Page
SettingDesc("ascii_filenames", N_("Replace non-ASCII characters"), ["ascii_filenames"]),
SettingDesc("rename_files", N_("Rename files"), ["rename_files"]),
SettingDesc("move_files", N_("Move files"), ["move_files"]), SettingDesc("move_files", N_("Move files"), ["move_files"]),
SettingDesc("move_files_to", N_("Destination directory"), ["move_files_to"]), SettingDesc("move_files_to", N_("Destination directory"), ["move_files_to"]),
SettingDesc("move_additional_files", N_("Move additional files"), ["move_additional_files"]), SettingDesc("move_additional_files", N_("Move additional files"), ["move_additional_files"]),
SettingDesc("move_additional_files_pattern", N_("Additional file patterns"), ["move_additional_files_pattern"]), SettingDesc("move_additional_files_pattern", N_("Additional file patterns"), ["move_additional_files_pattern"]),
SettingDesc("delete_empty_dirs", N_("Delete empty directories"), ["delete_empty_dirs"]), SettingDesc("delete_empty_dirs", N_("Delete empty directories"), ["delete_empty_dirs"]),
SettingDesc("rename_files", N_("Rename files"), ["rename_files"]),
SettingDesc("selected_file_naming_script_id", N_("Selected file naming script"), ["naming_script_selector"]), SettingDesc("selected_file_naming_script_id", N_("Selected file naming script"), ["naming_script_selector"]),
# File Naming Compatibility Page
SettingDesc("ascii_filenames", N_("Replace non-ASCII characters"), ["ascii_filenames"]),
SettingDesc("windows_compatibility", N_("Windows compatibility"), ["windows_compatibility"]),
SettingDesc("win_compat_replacements", N_("Replacement characters used for Windows compatibility"), ["win_compat_replacements"]),
SettingDesc("windows_long_paths", N_("Windows long path support"), ["windows_long_paths"]),
SettingDesc("replace_spaces_with_underscores", N_("Replace spaces with underscores"), ["replace_spaces_with_underscores"]),
SettingDesc("replace_dir_separator", N_("Replacement character to use for directory separators"), ["replace_dir_separator"]),
], ],
} }
@@ -137,19 +181,37 @@ class UserProfileGroups():
SETTINGS_GROUPS["interface"] = { SETTINGS_GROUPS["interface"] = {
"title": N_("User Interface"), "title": N_("User Interface"),
"settings": [ "settings": [
# Main User Interface Page
SettingDesc("toolbar_show_labels", N_("Show text labels under icons"), ["toolbar_show_labels"]),
SettingDesc("show_menu_icons", N_("Show icons in menus"), ["show_menu_icons"]),
SettingDesc("ui_language", N_("User interface language"), ["ui_language"]),
SettingDesc("ui_theme", N_("User interface color theme"), ["ui_theme"]),
SettingDesc("toolbar_multiselect", N_("Allow selection of multiple directories"), ["toolbar_multiselect"]), SettingDesc("toolbar_multiselect", N_("Allow selection of multiple directories"), ["toolbar_multiselect"]),
SettingDesc("builtin_search", N_("Use builtin search rather than looking in browser"), ["builtin_search"]), SettingDesc("builtin_search", N_("Use builtin search rather than looking in browser"), ["builtin_search"]),
SettingDesc("use_adv_search_syntax", N_("Use builtin search rather than looking in browser"), ["use_adv_search_syntax"]), SettingDesc("use_adv_search_syntax", N_("Use advanced search syntax"), ["use_adv_search_syntax"]),
SettingDesc("show_new_user_dialog", N_("Show a usage warning dialog when Picard starts"), ["new_user_dialog"]),
SettingDesc("quit_confirmation", N_("Show a quit confirmation dialog for unsaved changes"), ["quit_confirmation"]), SettingDesc("quit_confirmation", N_("Show a quit confirmation dialog for unsaved changes"), ["quit_confirmation"]),
SettingDesc("file_save_warning", N_("Show a confirmation dialog when saving files"), ["file_save_warning"]),
SettingDesc("filebrowser_horizontal_autoscroll", N_("Adjust horizontal position in file browser automatically"), ["filebrowser_horizontal_autoscroll"]), SettingDesc("filebrowser_horizontal_autoscroll", N_("Adjust horizontal position in file browser automatically"), ["filebrowser_horizontal_autoscroll"]),
SettingDesc("starting_directory", N_("Begin browsing in a specific directory"), ["starting_directory"]), SettingDesc("starting_directory", N_("Begin browsing in a specific directory"), ["starting_directory"]),
SettingDesc("starting_directory_path", N_("Directory to begin browsing"), ["starting_directory_path"]), SettingDesc("starting_directory_path", N_("Directory to begin browsing"), ["starting_directory_path"]),
# User Interface Colors Page
SettingDesc("interface_colors", N_("Colors to use for standard theme"), ["colors"]),
SettingDesc("interface_colors_dark", N_("Colors to use for dark theme"), ["colors"]),
# User Interface Top Tags Page
SettingDesc("metadatabox_top_tags", N_("Tags to show at the top"), ["top_tags_groupBox"]),
# User Interface Action Toolbar Page
SettingDesc("toolbar_layout", N_("Layout of the tool bar"), ["toolbar_layout_list"]),
], ],
} }
SETTINGS_GROUPS["advanced"] = { SETTINGS_GROUPS["advanced"] = {
"title": N_("Advanced"), "title": N_("Advanced"),
"settings": [ "settings": [
# Main Advanced Options Page
SettingDesc("ignore_regex", N_("Ignore file paths matching a regular expression"), ["ignore_regex"]), SettingDesc("ignore_regex", N_("Ignore file paths matching a regular expression"), ["ignore_regex"]),
SettingDesc("ignore_hidden_files", N_("Ignore hidden files"), ["ignore_hidden_files"]), SettingDesc("ignore_hidden_files", N_("Ignore hidden files"), ["ignore_hidden_files"]),
SettingDesc("recursively_add_files", N_("Include sub-folders when adding files from folder"), ["recursively_add_files"]), SettingDesc("recursively_add_files", N_("Include sub-folders when adding files from folder"), ["recursively_add_files"]),
@@ -168,6 +230,27 @@ class UserProfileGroups():
SettingDesc("completeness_ignore_data", N_("Completeness check ignore: Data tracks"), ["completeness_ignore_data"]), SettingDesc("completeness_ignore_data", N_("Completeness check ignore: Data tracks"), ["completeness_ignore_data"]),
SettingDesc("completeness_ignore_silence", N_("Completeness check ignore: Silent tracks"), ["completeness_ignore_silence"]), SettingDesc("completeness_ignore_silence", N_("Completeness check ignore: Silent tracks"), ["completeness_ignore_silence"]),
SettingDesc("compare_ignore_tags", N_("Tags to ignore for comparison"), ["groupBox_2"]), SettingDesc("compare_ignore_tags", N_("Tags to ignore for comparison"), ["groupBox_2"]),
# Network Options Page
SettingDesc("use_proxy", N_("Use a web proxy server"), []), # No highlight specified because the "use_proxy"
# object is a QGroupBox and it highlights all sub
# options, even if the sub options are not selected.
SettingDesc("proxy_type", N_("type of proxy server"), ["proxy_type_socks", "proxy_type_http"]),
SettingDesc("proxy_server_host", N_("Proxy server address"), ["server_host"]),
SettingDesc("proxy_server_port", N_("Proxy server port"), ["server_port"]),
SettingDesc("proxy_username", N_("Proxy username"), ["username"]),
SettingDesc("proxy_password", N_("Proxy password"), ["password"]),
SettingDesc("network_transfer_timeout_seconds", N_("Request timeout in seconds"), ["transfer_timeout"]),
SettingDesc("browser_integration", N_("Browser integration"), []), # No highlight specified because the "browser_integration"
# object is a QGroupBox and it highlights all sub options,
# even if the sub options are not selected.
SettingDesc("browser_integration_port", N_("Default listening port"), ["browser_integration_port"]),
SettingDesc("browser_integration_localhost_only", N_("Listen only on localhost"), ["browser_integration_localhost_only"]),
# Matching Options Page
SettingDesc("file_lookup_threshold", N_("Minimal similarity for file lookups"), ["file_lookup_threshold"]),
SettingDesc("cluster_lookup_threshold", N_("Minimal similarity for cluster lookups"), ["cluster_lookup_threshold"]),
SettingDesc("track_matching_threshold", N_("Minimal similarity for matching files to tracks"), ["track_matching_threshold"]),
], ],
} }

View File

@@ -1,38 +1,38 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Automatically generated - don't edit. # Automatically generated - don't edit.
# Use `python setup.py build_ui` to update it. # Use `python setup.py build_ui` to update it.
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_InterfaceTopTagsOptionsPage(object): class Ui_InterfaceTopTagsOptionsPage(object):
def setupUi(self, InterfaceTopTagsOptionsPage): def setupUi(self, InterfaceTopTagsOptionsPage):
InterfaceTopTagsOptionsPage.setObjectName("InterfaceTopTagsOptionsPage") InterfaceTopTagsOptionsPage.setObjectName("InterfaceTopTagsOptionsPage")
InterfaceTopTagsOptionsPage.resize(418, 310) InterfaceTopTagsOptionsPage.resize(418, 310)
self.vboxlayout = QtWidgets.QVBoxLayout(InterfaceTopTagsOptionsPage) self.vboxlayout = QtWidgets.QVBoxLayout(InterfaceTopTagsOptionsPage)
self.vboxlayout.setContentsMargins(9, 9, 9, 9) self.vboxlayout.setContentsMargins(9, 9, 9, 9)
self.vboxlayout.setSpacing(6) self.vboxlayout.setSpacing(6)
self.vboxlayout.setObjectName("vboxlayout") self.vboxlayout.setObjectName("vboxlayout")
self.groupBox = QtWidgets.QGroupBox(InterfaceTopTagsOptionsPage) self.top_tags_groupBox = QtWidgets.QGroupBox(InterfaceTopTagsOptionsPage)
self.groupBox.setObjectName("groupBox") self.top_tags_groupBox.setObjectName("top_tags_groupBox")
self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox) self.verticalLayout = QtWidgets.QVBoxLayout(self.top_tags_groupBox)
self.verticalLayout.setObjectName("verticalLayout") self.verticalLayout.setObjectName("verticalLayout")
self.top_tags_list = TagListEditor(self.groupBox) self.top_tags_list = TagListEditor(self.top_tags_groupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.top_tags_list.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.top_tags_list.sizePolicy().hasHeightForWidth())
self.top_tags_list.setSizePolicy(sizePolicy) self.top_tags_list.setSizePolicy(sizePolicy)
self.top_tags_list.setObjectName("top_tags_list") self.top_tags_list.setObjectName("top_tags_list")
self.verticalLayout.addWidget(self.top_tags_list) self.verticalLayout.addWidget(self.top_tags_list)
self.vboxlayout.addWidget(self.groupBox) self.vboxlayout.addWidget(self.top_tags_groupBox)
self.retranslateUi(InterfaceTopTagsOptionsPage) self.retranslateUi(InterfaceTopTagsOptionsPage)
QtCore.QMetaObject.connectSlotsByName(InterfaceTopTagsOptionsPage) QtCore.QMetaObject.connectSlotsByName(InterfaceTopTagsOptionsPage)
def retranslateUi(self, InterfaceTopTagsOptionsPage): def retranslateUi(self, InterfaceTopTagsOptionsPage):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
self.groupBox.setTitle(_("Show the below tags above all other tags in the metadata view")) self.top_tags_groupBox.setTitle(_("Show the below tags above all other tags in the metadata view"))
from picard.ui.widgets.taglisteditor import TagListEditor from picard.ui.widgets.taglisteditor import TagListEditor

View File

@@ -1,60 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>InterfaceTopTagsOptionsPage</class> <class>InterfaceTopTagsOptionsPage</class>
<widget class="QWidget" name="InterfaceTopTagsOptionsPage"> <widget class="QWidget" name="InterfaceTopTagsOptionsPage">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>418</width> <width>418</width>
<height>310</height> <height>310</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout"> <layout class="QVBoxLayout">
<property name="spacing"> <property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<property name="leftMargin"> <property name="leftMargin">
<number>9</number> <number>9</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>9</number> <number>9</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>9</number> <number>9</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>9</number> <number>9</number>
</property> </property>
<item> <item>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="top_tags_groupBox">
<property name="title"> <property name="title">
<string>Show the below tags above all other tags in the metadata view</string> <string>Show the below tags above all other tags in the metadata view</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="TagListEditor" name="top_tags_list" native="true"> <widget class="TagListEditor" name="top_tags_list" native="true">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding"> <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>
<class>TagListEditor</class> <class>TagListEditor</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header>picard.ui.widgets.taglisteditor</header> <header>picard.ui.widgets.taglisteditor</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>