👷 File extension guesser improved. Fixes #322

This commit is contained in:
Robert Honz
2025-01-12 17:42:09 +01:00
parent e723b81892
commit 2055606d0b
7 changed files with 106 additions and 73 deletions
+1 -1
View File
@@ -171,7 +171,7 @@ profile = "black"
multi_line_output = 3 multi_line_output = 3
indent = 4 indent = 4
color_output = true color_output = true
known_third_party = ["Crypto", "PySide6", "coloredlogs", "dataclasses_json", "ffmpeg", "m3u8", "mutagen", "pathvalidate", "requests", "rich", "tidalapi", "toml", "typer"] known_third_party = ["Crypto", "PySide6", "coloredlogs", "dataclasses_json", "ffmpeg", "helper", "m3u8", "mutagen", "pathvalidate", "requests", "rich", "tidalapi", "toml", "typer"]
[tool.mypy] [tool.mypy]
# https://mypy.readthedocs.io/en/latest/config_file.html#using-a-pyproject-toml-file # https://mypy.readthedocs.io/en/latest/config_file.html#using-a-pyproject-toml-file
+12 -3
View File
@@ -260,7 +260,9 @@ class Download:
result=result, url=url, path_segment=path_segment, id_segment=id_segment, error=error result=result, url=url, path_segment=path_segment, id_segment=id_segment, error=error
) )
def extension_guess(self, quality_audio: Quality, is_video: bool) -> AudioExtensions | VideoExtensions: def extension_guess(
self, quality_audio: Quality, metadata_tags: [str], is_video: bool
) -> AudioExtensions | VideoExtensions:
result: AudioExtensions | VideoExtensions result: AudioExtensions | VideoExtensions
if is_video: if is_video:
@@ -268,7 +270,12 @@ class Download:
else: else:
result = ( result = (
AudioExtensions.FLAC AudioExtensions.FLAC
if self.settings.data.extract_flac and quality_audio in (Quality.hi_res_lossless, Quality.high_lossless) if (
self.settings.data.extract_flac
and quality_audio in (Quality.hi_res_lossless, Quality.high_lossless)
)
or ("HIRES_LOSSLESS" not in metadata_tags and quality_audio not in (Quality.low_96k, Quality.low_320k))
or quality_audio == Quality.high_lossless
else AudioExtensions.M4A else AudioExtensions.M4A
) )
@@ -314,7 +321,9 @@ class Download:
return False, "" return False, ""
# Create file name and path # Create file name and path
file_extension_dummy: str = self.extension_guess(quality_audio, isinstance(media, Video)) file_extension_dummy: str = self.extension_guess(
quality_audio, metadata_tags=media.media_metadata_tags, is_video=isinstance(media, Video)
)
file_name_relative: str = format_path_media(file_template, media, self.settings.data.album_track_num_pad_min) file_name_relative: str = format_path_media(file_template, media, self.settings.data.album_track_num_pad_min)
path_media_dst: pathlib.Path = ( path_media_dst: pathlib.Path = (
pathlib.Path(self.path_base).expanduser() / (file_name_relative + file_extension_dummy) pathlib.Path(self.path_base).expanduser() / (file_name_relative + file_extension_dummy)
+25 -34
View File
@@ -49,6 +49,7 @@ import sys
import time import time
from collections.abc import Callable, Sequence from collections.abc import Callable, Sequence
from helper.gui import get_queue_download_quality_audio, get_queue_download_quality_video
from requests.exceptions import HTTPError from requests.exceptions import HTTPError
from tidalapi.session import LinkLogin from tidalapi.session import LinkLogin
@@ -58,7 +59,6 @@ from tidal_dl_ng.helper.gui import (
FilterHeader, FilterHeader,
HumanProxyModel, HumanProxyModel,
get_queue_download_media, get_queue_download_media,
get_queue_download_quality,
get_results_media_item, get_results_media_item,
get_user_list_media_item, get_user_list_media_item,
set_queue_download_media, set_queue_download_media,
@@ -697,7 +697,8 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
) -> QueueDownloadItem | bool: ) -> QueueDownloadItem | bool:
result: QueueDownloadItem | False result: QueueDownloadItem | False
name: str = "" name: str = ""
quality: Quality | QualityVideo | str = "" quality_audio: Quality = self.settings.data.quality_audio
quality_video: QualityVideo = self.settings.data.quality_video
explicit: str = "" explicit: str = ""
# Check if item is available on TIDAL. # Check if item is available on TIDAL.
@@ -713,31 +714,26 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
name = f"{name_builder_artist(media)} - {name_builder_title(media)}{explicit}" name = f"{name_builder_artist(media)} - {name_builder_title(media)}{explicit}"
elif isinstance(media, Playlist | Artist): elif isinstance(media, Playlist | Artist):
name = media.name name = media.name
quality = self.settings.data.quality_audio
elif isinstance(media, Album): elif isinstance(media, Album):
name = f"{name_builder_artist(media)} - {media.name}{explicit}" name = f"{name_builder_artist(media)} - {media.name}{explicit}"
elif isinstance(media, Mix): elif isinstance(media, Mix):
name = media.title name = media.title
quality = self.settings.data.quality_audio
# Determine actual quality. # Determine actual quality.
if isinstance(media, Track | Album): if isinstance(media, Track | Album):
quality_highest: str = quality_audio_highest(media) quality_highest: Quality = quality_audio_highest(media)
if ( if (
self.settings.data.quality_audio == quality_highest self.settings.data.quality_audio == quality_highest
or self.settings.data.quality_audio == Quality.hi_res_lossless or self.settings.data.quality_audio == Quality.hi_res_lossless
): ):
quality = quality_highest quality_audio = quality_highest
else:
quality = self.settings.data.quality_audio
elif isinstance(media, Video):
quality = self.settings.data.quality_video
if name: if name:
result = QueueDownloadItem( result = QueueDownloadItem(
name=name, name=name,
quality=quality, quality_audio=quality_audio,
quality_video=quality_video,
type_media=type(media).__name__, type_media=type(media).__name__,
status=QueueDownloadStatus.Waiting, status=QueueDownloadStatus.Waiting,
obj=media, obj=media,
@@ -956,7 +952,8 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
set_queue_download_media(child, queue_dl_item.obj) set_queue_download_media(child, queue_dl_item.obj)
child.setText(2, queue_dl_item.name) child.setText(2, queue_dl_item.name)
child.setText(3, queue_dl_item.type_media) child.setText(3, queue_dl_item.type_media)
child.setText(4, queue_dl_item.quality) child.setText(4, queue_dl_item.quality_audio)
child.setText(5, queue_dl_item.quality_video)
self.tr_queue_download.addTopLevelItem(child) self.tr_queue_download.addTopLevelItem(child)
def watcher_queue_download(self) -> None: def watcher_queue_download(self) -> None:
@@ -969,12 +966,12 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
result: QueueDownloadStatus result: QueueDownloadStatus
item: QtWidgets.QTreeWidgetItem = items[0] item: QtWidgets.QTreeWidgetItem = items[0]
media: Track | Album | Playlist | Video | Mix | Artist = get_queue_download_media(item) media: Track | Album | Playlist | Video | Mix | Artist = get_queue_download_media(item)
tmp_quality: str = get_queue_download_quality(item) quality_audio: Quality = get_queue_download_quality_audio(item)
quality: Quality | QualityVideo | None = tmp_quality if tmp_quality else None quality_video: QualityVideo = get_queue_download_quality_video(item)
try: try:
self.s_queue_download_item_downloading.emit(item) self.s_queue_download_item_downloading.emit(item)
result = self.on_queue_download(media, quality=quality) result = self.on_queue_download(media, quality_audio=quality_audio, quality_video=quality_video)
if result == QueueDownloadStatus.Finished: if result == QueueDownloadStatus.Finished:
self.s_queue_download_item_finished.emit(item) self.s_queue_download_item_finished.emit(item)
@@ -1002,7 +999,10 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
item.setText(0, status) item.setText(0, status)
def on_queue_download( def on_queue_download(
self, media: Track | Album | Playlist | Video | Mix | Artist, quality: Quality | QualityVideo | None = None self,
media: Track | Album | Playlist | Video | Mix | Artist,
quality_audio: Quality | None = None,
quality_video: QualityVideo | None = None,
) -> QueueDownloadStatus: ) -> QueueDownloadStatus:
result: QueueDownloadStatus result: QueueDownloadStatus
items_media: [Track | Album | Playlist | Video | Mix | Artist] items_media: [Track | Album | Playlist | Video | Mix | Artist]
@@ -1015,7 +1015,13 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
download_delay: bool = bool(isinstance(media, Track | Video) and self.settings.data.download_delay) download_delay: bool = bool(isinstance(media, Track | Video) and self.settings.data.download_delay)
for item_media in items_media: for item_media in items_media:
result = self.download(item_media, self.dl, delay_track=download_delay, quality=quality) result = self.download(
item_media,
self.dl,
delay_track=download_delay,
quality_audio=quality_audio,
quality_video=quality_video,
)
return result return result
@@ -1024,26 +1030,18 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
media: Track | Album | Playlist | Video | Mix | Artist, media: Track | Album | Playlist | Video | Mix | Artist,
dl: Download, dl: Download,
delay_track: bool = False, delay_track: bool = False,
quality: Quality | QualityVideo | None = None, quality_audio: Quality | None = None,
quality_video: QualityVideo | None = None,
) -> QueueDownloadStatus: ) -> QueueDownloadStatus:
result_dl: bool result_dl: bool
path_file: str path_file: str
result: QueueDownloadStatus result: QueueDownloadStatus
quality_audio: Quality | None
quality_video: QualityVideo | None
self.s_pb_reset.emit() self.s_pb_reset.emit()
self.s_statusbar_message.emit(StatusbarMessage(message="Download started...")) self.s_statusbar_message.emit(StatusbarMessage(message="Download started..."))
file_template = get_format_template(media, self.settings) file_template = get_format_template(media, self.settings)
if isinstance(media, Track | Video): if isinstance(media, Track | Video):
if isinstance(media, Track):
quality_audio = quality
quality_video = None
else:
quality_audio = None
quality_video = quality
result_dl, path_file = dl.item( result_dl, path_file = dl.item(
media=media, media=media,
file_template=file_template, file_template=file_template,
@@ -1052,13 +1050,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
quality_video=quality_video, quality_video=quality_video,
) )
elif isinstance(media, Album | Playlist | Mix): elif isinstance(media, Album | Playlist | Mix):
if isinstance(media, Album):
quality_audio = quality
quality_video = None
else:
quality_audio = None
quality_video = None
dl.items( dl.items(
media=media, media=media,
file_template=file_template, file_template=file_template,
+21 -1
View File
@@ -1,10 +1,13 @@
import re import re
from typing import cast
from PySide6 import QtCore, QtGui, QtWidgets from PySide6 import QtCore, QtGui, QtWidgets
from tidalapi import Album, Mix, Playlist, Track, UserPlaylist, Video from tidalapi import Album, Mix, Playlist, Track, UserPlaylist, Video
from tidalapi.artist import Artist from tidalapi.artist import Artist
from tidalapi.media import Quality from tidalapi.media import Quality
from tidal_dl_ng.constants import QualityVideo
def get_table_data( def get_table_data(
item: QtWidgets.QTreeWidgetItem, column: int item: QtWidgets.QTreeWidgetItem, column: int
@@ -46,8 +49,25 @@ def get_queue_download_media(
def get_queue_download_quality( def get_queue_download_quality(
item: QtWidgets.QTreeWidgetItem, item: QtWidgets.QTreeWidgetItem,
column: int,
) -> str:
result: str = get_table_text(item, column)
return result
def get_queue_download_quality_audio(
item: QtWidgets.QTreeWidgetItem,
) -> Quality: ) -> Quality:
result: Quality = get_table_text(item, 4) result: Quality = cast(Quality, get_queue_download_quality(item, 4))
return result
def get_queue_download_quality_video(
item: QtWidgets.QTreeWidgetItem,
) -> QualityVideo:
result: QualityVideo = cast(QualityVideo, get_queue_download_quality(item, 5))
return result return result
+4 -1
View File
@@ -2,6 +2,8 @@ from dataclasses import dataclass
from tidalapi.media import Quality from tidalapi.media import Quality
from tidal_dl_ng.constants import QualityVideo
try: try:
from PySide6 import QtCore from PySide6 import QtCore
@@ -42,5 +44,6 @@ class QueueDownloadItem:
status: str status: str
name: str name: str
type_media: str type_media: str
quality: Quality quality_audio: Quality
quality_video: QualityVideo
obj: object obj: object
+22 -17
View File
@@ -1,7 +1,7 @@
################################################################################ ################################################################################
## Form generated from reading UI file 'main.ui' ## Form generated from reading UI file 'main.ui'
## ##
## Created by: Qt User Interface Compiler version 6.7.0 ## Created by: Qt User Interface Compiler version 6.8.0
## ##
## WARNING! All changes made in this file will be lost when recompiling UI file! ## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################ ################################################################################
@@ -110,9 +110,9 @@ class Ui_MainWindow:
# if QT_CONFIG(accessibility) # if QT_CONFIG(accessibility)
self.tr_lists_user.setAccessibleDescription("") self.tr_lists_user.setAccessibleDescription("")
# endif // QT_CONFIG(accessibility) # endif // QT_CONFIG(accessibility)
self.tr_lists_user.setEditTriggers(QAbstractItemView.NoEditTriggers) self.tr_lists_user.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
self.tr_lists_user.setProperty("showDropIndicator", False) self.tr_lists_user.setProperty("showDropIndicator", False)
self.tr_lists_user.setSelectionMode(QAbstractItemView.ExtendedSelection) self.tr_lists_user.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection)
self.tr_lists_user.setIndentation(10) self.tr_lists_user.setIndentation(10)
self.tr_lists_user.setUniformRowHeights(True) self.tr_lists_user.setUniformRowHeights(True)
self.tr_lists_user.setSortingEnabled(True) self.tr_lists_user.setSortingEnabled(True)
@@ -196,7 +196,7 @@ class Ui_MainWindow:
self.cb_search_type.setAccessibleDescription("") self.cb_search_type.setAccessibleDescription("")
# endif // QT_CONFIG(accessibility) # endif // QT_CONFIG(accessibility)
self.cb_search_type.setCurrentText("") self.cb_search_type.setCurrentText("")
self.cb_search_type.setSizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow) self.cb_search_type.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContentsOnFirstShow)
self.cb_search_type.setPlaceholderText("") self.cb_search_type.setPlaceholderText("")
self.lh_search.addWidget(self.cb_search_type) self.lh_search.addWidget(self.cb_search_type)
@@ -226,11 +226,11 @@ class Ui_MainWindow:
self.tr_results = QTreeView(self.w_central) self.tr_results = QTreeView(self.w_central)
self.tr_results.setObjectName("tr_results") self.tr_results.setObjectName("tr_results")
self.tr_results.setEditTriggers(QAbstractItemView.NoEditTriggers) self.tr_results.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
self.tr_results.setProperty("showDropIndicator", False) self.tr_results.setProperty("showDropIndicator", False)
self.tr_results.setDragDropOverwriteMode(False) self.tr_results.setDragDropOverwriteMode(False)
self.tr_results.setAlternatingRowColors(False) self.tr_results.setAlternatingRowColors(False)
self.tr_results.setSelectionMode(QAbstractItemView.ExtendedSelection) self.tr_results.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection)
self.tr_results.setIndentation(10) self.tr_results.setIndentation(10)
self.tr_results.setSortingEnabled(True) self.tr_results.setSortingEnabled(True)
@@ -256,7 +256,9 @@ class Ui_MainWindow:
self.l_quality_audio.setAccessibleDescription("") self.l_quality_audio.setAccessibleDescription("")
# endif // QT_CONFIG(accessibility) # endif // QT_CONFIG(accessibility)
self.l_quality_audio.setText("Audio") self.l_quality_audio.setText("Audio")
self.l_quality_audio.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.l_quality_audio.setAlignment(
Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignTrailing | Qt.AlignmentFlag.AlignVCenter
)
self.lh_download.addWidget(self.l_quality_audio) self.lh_download.addWidget(self.l_quality_audio)
@@ -279,7 +281,7 @@ class Ui_MainWindow:
self.cb_quality_audio.setAccessibleDescription("") self.cb_quality_audio.setAccessibleDescription("")
# endif // QT_CONFIG(accessibility) # endif // QT_CONFIG(accessibility)
self.cb_quality_audio.setCurrentText("") self.cb_quality_audio.setCurrentText("")
self.cb_quality_audio.setSizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow) self.cb_quality_audio.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContentsOnFirstShow)
self.cb_quality_audio.setPlaceholderText("") self.cb_quality_audio.setPlaceholderText("")
self.cb_quality_audio.setFrame(True) self.cb_quality_audio.setFrame(True)
@@ -303,7 +305,9 @@ class Ui_MainWindow:
self.l_quality_video.setAccessibleDescription("") self.l_quality_video.setAccessibleDescription("")
# endif // QT_CONFIG(accessibility) # endif // QT_CONFIG(accessibility)
self.l_quality_video.setText("Video") self.l_quality_video.setText("Video")
self.l_quality_video.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.l_quality_video.setAlignment(
Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignTrailing | Qt.AlignmentFlag.AlignVCenter
)
self.lh_download.addWidget(self.l_quality_video) self.lh_download.addWidget(self.l_quality_video)
@@ -326,7 +330,7 @@ class Ui_MainWindow:
self.cb_quality_video.setAccessibleDescription("") self.cb_quality_video.setAccessibleDescription("")
# endif // QT_CONFIG(accessibility) # endif // QT_CONFIG(accessibility)
self.cb_quality_video.setCurrentText("") self.cb_quality_video.setCurrentText("")
self.cb_quality_video.setSizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow) self.cb_quality_video.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContentsOnFirstShow)
self.cb_quality_video.setPlaceholderText("") self.cb_quality_video.setPlaceholderText("")
self.lh_download.addWidget(self.cb_quality_video) self.lh_download.addWidget(self.cb_quality_video)
@@ -408,10 +412,10 @@ class Ui_MainWindow:
self.l_pm_cover.setSizePolicy(sizePolicy3) self.l_pm_cover.setSizePolicy(sizePolicy3)
self.l_pm_cover.setMaximumSize(QSize(280, 280)) self.l_pm_cover.setMaximumSize(QSize(280, 280))
self.l_pm_cover.setBaseSize(QSize(0, 0)) self.l_pm_cover.setBaseSize(QSize(0, 0))
self.l_pm_cover.setFrameShape(QFrame.NoFrame) self.l_pm_cover.setFrameShape(QFrame.Shape.NoFrame)
self.l_pm_cover.setPixmap(QPixmap("default_album_image.png")) self.l_pm_cover.setPixmap(QPixmap("default_album_image.png"))
self.l_pm_cover.setScaledContents(True) self.l_pm_cover.setScaledContents(True)
self.l_pm_cover.setAlignment(Qt.AlignHCenter | Qt.AlignTop) self.l_pm_cover.setAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop)
self.horizontalLayout_2.addWidget(self.l_pm_cover) self.horizontalLayout_2.addWidget(self.l_pm_cover)
@@ -436,12 +440,12 @@ class Ui_MainWindow:
__qtreewidgetitem4.setText(0, "\ud83e\uddd1\u200d\ud83d\udcbb\ufe0f") __qtreewidgetitem4.setText(0, "\ud83e\uddd1\u200d\ud83d\udcbb\ufe0f")
self.tr_queue_download.setHeaderItem(__qtreewidgetitem4) self.tr_queue_download.setHeaderItem(__qtreewidgetitem4)
self.tr_queue_download.setObjectName("tr_queue_download") self.tr_queue_download.setObjectName("tr_queue_download")
self.tr_queue_download.setEditTriggers(QAbstractItemView.NoEditTriggers) self.tr_queue_download.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
self.tr_queue_download.setTabKeyNavigation(False) self.tr_queue_download.setTabKeyNavigation(False)
self.tr_queue_download.setProperty("showDropIndicator", False) self.tr_queue_download.setProperty("showDropIndicator", False)
self.tr_queue_download.setDragDropOverwriteMode(False) self.tr_queue_download.setDragDropOverwriteMode(False)
self.tr_queue_download.setSelectionMode(QAbstractItemView.ExtendedSelection) self.tr_queue_download.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection)
self.tr_queue_download.setSelectionBehavior(QAbstractItemView.SelectRows) self.tr_queue_download.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
self.tr_queue_download.setRootIsDecorated(False) self.tr_queue_download.setRootIsDecorated(False)
self.tr_queue_download.setItemsExpandable(False) self.tr_queue_download.setItemsExpandable(False)
self.tr_queue_download.setSortingEnabled(False) self.tr_queue_download.setSortingEnabled(False)
@@ -533,7 +537,7 @@ class Ui_MainWindow:
# if QT_CONFIG(accessibility) # if QT_CONFIG(accessibility)
self.statusbar.setAccessibleDescription("") self.statusbar.setAccessibleDescription("")
# endif // QT_CONFIG(accessibility) # endif // QT_CONFIG(accessibility)
self.statusbar.setLayoutDirection(Qt.LeftToRight) self.statusbar.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
MainWindow.setStatusBar(self.statusbar) MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.m_file.menuAction()) self.menubar.addAction(self.m_file.menuAction())
@@ -575,7 +579,8 @@ class Ui_MainWindow:
self.l_pm_cover.setText("") self.l_pm_cover.setText("")
self.l_h_queue_download.setText(QCoreApplication.translate("MainWindow", "Download Queue", None)) self.l_h_queue_download.setText(QCoreApplication.translate("MainWindow", "Download Queue", None))
___qtreewidgetitem4 = self.tr_queue_download.headerItem() ___qtreewidgetitem4 = self.tr_queue_download.headerItem()
___qtreewidgetitem4.setText(4, QCoreApplication.translate("MainWindow", "Quality", None)) ___qtreewidgetitem4.setText(5, QCoreApplication.translate("MainWindow", "Quality Video", None))
___qtreewidgetitem4.setText(4, QCoreApplication.translate("MainWindow", "Quality Audio", None))
___qtreewidgetitem4.setText(3, QCoreApplication.translate("MainWindow", "Type", None)) ___qtreewidgetitem4.setText(3, QCoreApplication.translate("MainWindow", "Type", None))
___qtreewidgetitem4.setText(2, QCoreApplication.translate("MainWindow", "Name", None)) ___qtreewidgetitem4.setText(2, QCoreApplication.translate("MainWindow", "Name", None))
___qtreewidgetitem4.setText(1, QCoreApplication.translate("MainWindow", "obj", None)) ___qtreewidgetitem4.setText(1, QCoreApplication.translate("MainWindow", "obj", None))
+21 -16
View File
@@ -59,13 +59,13 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
<property name="editTriggers"> <property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set> <set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
</property> </property>
<property name="showDropIndicator" stdset="0"> <property name="showDropIndicator" stdset="0">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum> <enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum>
</property> </property>
<property name="indentation"> <property name="indentation">
<number>10</number> <number>10</number>
@@ -262,7 +262,7 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
<property name="sizeAdjustPolicy"> <property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContentsOnFirstShow</enum> <enum>QComboBox::SizeAdjustPolicy::AdjustToContentsOnFirstShow</enum>
</property> </property>
<property name="placeholderText"> <property name="placeholderText">
<string notr="true"/> <string notr="true"/>
@@ -296,7 +296,7 @@
<item> <item>
<widget class="QTreeView" name="tr_results"> <widget class="QTreeView" name="tr_results">
<property name="editTriggers"> <property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set> <set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
</property> </property>
<property name="showDropIndicator" stdset="0"> <property name="showDropIndicator" stdset="0">
<bool>false</bool> <bool>false</bool>
@@ -308,7 +308,7 @@
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum> <enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum>
</property> </property>
<property name="indentation"> <property name="indentation">
<number>10</number> <number>10</number>
@@ -341,7 +341,7 @@
<string notr="true">Audio</string> <string notr="true">Audio</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
@@ -372,7 +372,7 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
<property name="sizeAdjustPolicy"> <property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContentsOnFirstShow</enum> <enum>QComboBox::SizeAdjustPolicy::AdjustToContentsOnFirstShow</enum>
</property> </property>
<property name="placeholderText"> <property name="placeholderText">
<string notr="true"/> <string notr="true"/>
@@ -403,7 +403,7 @@
<string notr="true">Video</string> <string notr="true">Video</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
@@ -434,7 +434,7 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
<property name="sizeAdjustPolicy"> <property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContentsOnFirstShow</enum> <enum>QComboBox::SizeAdjustPolicy::AdjustToContentsOnFirstShow</enum>
</property> </property>
<property name="placeholderText"> <property name="placeholderText">
<string notr="true"/> <string notr="true"/>
@@ -543,7 +543,7 @@
</size> </size>
</property> </property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::Shape::NoFrame</enum>
</property> </property>
<property name="text"> <property name="text">
<string/> <string/>
@@ -555,7 +555,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignHCenter|Qt::AlignTop</set> <set>Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop</set>
</property> </property>
</widget> </widget>
</item> </item>
@@ -582,7 +582,7 @@
<item> <item>
<widget class="QTreeWidget" name="tr_queue_download"> <widget class="QTreeWidget" name="tr_queue_download">
<property name="editTriggers"> <property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set> <set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
</property> </property>
<property name="tabKeyNavigation"> <property name="tabKeyNavigation">
<bool>false</bool> <bool>false</bool>
@@ -594,10 +594,10 @@
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum> <enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum>
</property> </property>
<property name="selectionBehavior"> <property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum> <enum>QAbstractItemView::SelectionBehavior::SelectRows</enum>
</property> </property>
<property name="rootIsDecorated"> <property name="rootIsDecorated">
<bool>false</bool> <bool>false</bool>
@@ -639,7 +639,12 @@
</column> </column>
<column> <column>
<property name="text"> <property name="text">
<string>Quality</string> <string>Quality Audio</string>
</property>
</column>
<column>
<property name="text">
<string>Quality Video</string>
</property> </property>
</column> </column>
</widget> </widget>
@@ -752,7 +757,7 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
<property name="layoutDirection"> <property name="layoutDirection">
<enum>Qt::LeftToRight</enum> <enum>Qt::LayoutDirection::LeftToRight</enum>
</property> </property>
</widget> </widget>
<action name="a_preferences"> <action name="a_preferences">