Files
transmission/qt/DetailsDialog.ui
Charles Kerr bfa1950fbe feat: native icons in Qt client (#7819)
* chore: savepoint

* chore: code style

* refactor: add std::string_view constructor for NativeIcon::Spec

* chore: add TODO comment

* feat: honor per-desktop HIG on when to show menu icons

* chore: remove Faenza system-run icon

unused since b58e95910b

* chore: remove Faenza view-refresh icon

not needed due to b58e95910b

* chore: remove Faenza media-playback-pause icon

not needed due to b58e95910b

* chore: remove Faenza media-playback-start icon

not needed due to b58e95910b

* chore: add a safeguard against merging with incomplete TODO items

* feat: add more icons

refactor: remove some tracer cerr statements

* refactor: remove IconCache use from MainWindow

* chore: remove Faenza icon set

* chore: re-enable remote session network icon

* fix: FTBFS on Windows

* refactor: use symbolic names for Segoe icons

* docs: add links to Segoe MDL2 Assets icon list

* chore: savepoint

segoe icons work

still a WIP; includes test code that should not ship

* feat: use segoe::FastForward for action_StartNow

feat: use segoe::Move for action_SetLocation

refactor: make it easier for devs to force a font at compile time for development work

segoe license does not allow bundling but does allow dev work

chore: code_style.sh

* refactor: remove unused addEmblem()

* docs: add code comment on how to force an icon font

* fix: Win 10, 11 icons play nicely with dark mode

* chore: savepoint

add draft of SF Symbol -> QPixmap loader

* chore: remove dangling font reference from qrc file

* fix: FTBFS

* refactor: use bribri code for NSImage -> QPixmap

* feat: support dark, light mode when rendering SF Symbol monochrome icons

* fixup! feat: support dark, light mode when rendering SF Symbol monochrome icons

fix: fail gracefully on macOS 11

* chore: code style

* chore: tweak some SF Symbol icon choices

* chore: consistent uppercase for hex segoe QChars

* chore: undefine DEV_FORCE_FONT_FAMILY and DEV_FORCE_FONT_RESOURCE

* chore: savepoint

* refactor: clean up NativeIcon impl

* refactor: remove unused MenuMode::Other

* refactor: DRY in FilterBar::createActivityCombo()

* chore: remove obsolete code comment

* refactor: rename icons::Facet as icons::Type

* fix: oops

* refactor: minor cleanup

* fix: tyop

* chore: remove unused #includes

* fix: add modes for some icons

* refactor: tweak some icon choices on macOS

* fix: ensure icons are visible on File, Help menus

fix: remove unused local variable

* refactor: tweak some icon choices for XDG

* refactor: remove the fallback QStyle::StandardPixmaps

These interfere with deciding whether an icon is well-defined and
unambiguous as per the macOS and Windows HIG guidelines.

If a standard or unambiguous icon exists in the native icon sets,
specify it with an SF Symbols name, a Segoe codepoint,
or XDG standard icon name. Otherwise, leave those fields blank.

* refactor: remove unused #includes

* docs: add "choosing icons" section in NativeIcons.cc

* refactor: simplify icons::shouldBeShownInMenu()

* refactor: reduce unnecessary code shear from main

* refactor: make TorrentDelegate::warning_emblem_ const

* refactor: extract-method MainWindow::updateActionIcons()

* feat: update MainWindow icons when light/dark theme changes

* feat: restore the QStyle::StandardPixmaps as fallbacks

Can be used on older Windows / macOS if Segoe or SF Symbols are unavailable

* refactor: add button text for add/edit/remove tracker buttons

QStyle::StandardPixmap doesn't have good icons for these,
so let's ensure that these buttons have visible text.

* fix: building NativeIconMac.mm on mac even if not clang

* chore: iwyu in new code

* docs: tweak the "Choosing Icons" comments again

* fix: handle changed QStyles in icons::icon()

do not cache point_sizes set between calls

refactor: const correctness

* fixup! refactor: simplify icons::shouldBeShownInMenu()

refactor: minor code tweak, declare vars in order that they are used
2025-11-30 10:09:20 -06:00

986 lines
34 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DetailsDialog</class>
<widget class="QDialog" name="DetailsDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>505</width>
<height>661</height>
</rect>
</property>
<property name="windowTitle">
<string>Torrent Properties</string>
</property>
<layout class="QVBoxLayout" name="dialogLayout">
<item>
<widget class="QTabWidget" name="tabs">
<property name="currentIndex">
<number>0</number>
</property>
<property name="elideMode">
<enum>Qt::ElideNone</enum>
</property>
<property name="usesScrollButtons">
<bool>false</bool>
</property>
<widget class="QWidget" name="infoTab">
<attribute name="title">
<string>Information</string>
</attribute>
<layout class="QVBoxLayout" name="infoTabLayout">
<item>
<widget class="QGroupBox" name="activitySection">
<property name="title">
<string>Activity</string>
</property>
<layout class="QGridLayout" name="activitySectionLayout" columnstretch="0,1">
<item row="0" column="0">
<widget class="QLabel" name="haveLabel">
<property name="text">
<string>Have:</string>
</property>
<property name="buddy">
<cstring>haveValueLabel</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="SqueezeLabel" name="haveValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="availabilityLabel">
<property name="text">
<string>Availability:</string>
</property>
<property name="buddy">
<cstring>availabilityValueLabel</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="SqueezeLabel" name="availabilityValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="uploadedLabel">
<property name="text">
<string>Uploaded:</string>
</property>
<property name="buddy">
<cstring>uploadedValueLabel</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="SqueezeLabel" name="uploadedValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="downloadedLabel">
<property name="text">
<string>Downloaded:</string>
</property>
<property name="buddy">
<cstring>downloadedValueLabel</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="SqueezeLabel" name="downloadedValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="stateLabel">
<property name="text">
<string>State:</string>
</property>
<property name="buddy">
<cstring>stateValueLabel</cstring>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="SqueezeLabel" name="stateValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="runningTimeLabel">
<property name="text">
<string>Running time:</string>
</property>
<property name="buddy">
<cstring>runningTimeValueLabel</cstring>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="SqueezeLabel" name="runningTimeValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="remainingTimeLabel">
<property name="text">
<string>Remaining time:</string>
</property>
<property name="buddy">
<cstring>remainingTimeValueLabel</cstring>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="SqueezeLabel" name="remainingTimeValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="lastActivityLabel">
<property name="text">
<string>Last activity:</string>
</property>
<property name="buddy">
<cstring>lastActivityValueLabel</cstring>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="SqueezeLabel" name="lastActivityValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="errorLabel">
<property name="text">
<string>Error:</string>
</property>
<property name="buddy">
<cstring>errorValueLabel</cstring>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="SqueezeLabel" name="errorValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="detailsSection">
<property name="title">
<string>Details</string>
</property>
<layout class="QGridLayout" name="detailsSectionLayout" columnstretch="0,1">
<item row="0" column="0">
<widget class="QLabel" name="sizeLabel">
<property name="text">
<string>Size:</string>
</property>
<property name="buddy">
<cstring>sizeValueLabel</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="SqueezeLabel" name="sizeValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="locationLabel">
<property name="text">
<string>Location:</string>
</property>
<property name="buddy">
<cstring>locationValueLabel</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="SqueezeLabel" name="locationValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="hashLabel">
<property name="text">
<string>Hash:</string>
</property>
<property name="buddy">
<cstring>hashValueLabel</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="SqueezeLabel" name="hashValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="privacyLabel">
<property name="text">
<string>Privacy:</string>
</property>
<property name="buddy">
<cstring>privacyValueLabel</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="SqueezeLabel" name="privacyValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="originLabel">
<property name="text">
<string>Origin:</string>
</property>
<property name="buddy">
<cstring>originValueLabel</cstring>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="SqueezeLabel" name="originValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="addedLabel">
<property name="text">
<string>Added:</string>
</property>
<property name="buddy">
<cstring>addedValueLabel</cstring>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="SqueezeLabel" name="addedValueLabel">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string notr="true">...</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="labelsLabel">
<property name="text">
<string>Labels:</string>
</property>
<property name="buddy">
<cstring>labelsTextEdit</cstring>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QPlainTextEdit" name="labelsTextEdit">
<property name="tabChangesFocus">
<bool>true</bool>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="commentLabel">
<property name="text">
<string>Comment:</string>
</property>
<property name="buddy">
<cstring>commentTextEdit</cstring>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QPlainTextEdit" name="commentTextEdit">
<property name="tabChangesFocus">
<bool>true</bool>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="peersTab">
<attribute name="title">
<string>Peers</string>
</attribute>
<layout class="QVBoxLayout" name="peersTabLayout">
<item>
<widget class="QTreeWidget" name="peersView">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<property name="uniformRowHeights">
<bool>true</bool>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<property name="columnCount">
<number>0</number>
</property>
<attribute name="headerShowSortIndicator" stdset="0">
<bool>true</bool>
</attribute>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="trackersTab">
<attribute name="title">
<string>Tracker</string>
</attribute>
<layout class="QGridLayout" name="trackersTabLayout">
<item row="0" column="0" rowspan="4">
<widget class="QListView" name="trackersView">
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="addTrackerButton">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="editTrackersButton">
<property name="text">
<string>Edit</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="removeTrackerButton">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
<item row="3" column="1">
<spacer name="trackerButtonsSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>1</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="showTrackerScrapesCheck">
<property name="text">
<string>Show &amp;more details</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="showBackupTrackersCheck">
<property name="text">
<string>Show &amp;backup trackers</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="filesTab">
<attribute name="title">
<string>Files</string>
</attribute>
<layout class="QVBoxLayout" name="filesTabLayout">
<item>
<widget class="FileTreeView" name="filesView">
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::EditKeyPressed</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="uniformRowHeights">
<bool>true</bool>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="optionsTab">
<attribute name="title">
<string>Options</string>
</attribute>
<layout class="QVBoxLayout" name="optionsTabLayout">
<item>
<widget class="QGroupBox" name="speedSection">
<property name="title">
<string>Speed</string>
</property>
<layout class="QGridLayout" name="speedSectionLayout" columnstretch="0,1">
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="sessionLimitCheck">
<property name="text">
<string>Honor global &amp;limits</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="singleUpCheck">
<property name="text">
<string>Limit &amp;upload speed:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="singleUpSpin">
<property name="enabled">
<bool>false</bool>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="singleDownCheck">
<property name="text">
<string>Limit &amp;download speed:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="singleDownSpin">
<property name="enabled">
<bool>false</bool>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="bandwidthPriorityLabel">
<property name="text">
<string>Torrent &amp;priority:</string>
</property>
<property name="buddy">
<cstring>bandwidthPriorityCombo</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="bandwidthPriorityCombo"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="seedingLimitsSection">
<property name="title">
<string>Seeding Limits</string>
</property>
<layout class="QGridLayout" name="seedingLimitsSectionLayout" columnstretch="0,1">
<item row="0" column="0">
<widget class="QLabel" name="ratioLabel">
<property name="text">
<string>&amp;Ratio:</string>
</property>
<property name="buddy">
<cstring>ratioCombo</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="seedingLimitsSectionRatioLayout" stretch="1,0">
<item>
<widget class="QComboBox" name="ratioCombo"/>
</item>
<item>
<widget class="QDoubleSpinBox" name="ratioSpin">
<property name="maximum">
<double>999999999.000000000000000</double>
</property>
<property name="singleStep">
<double>0.500000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="idleLabel">
<property name="text">
<string>&amp;Idle:</string>
</property>
<property name="buddy">
<cstring>idleCombo</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="seedingLimitsSectionIdleLayout" stretch="1,0">
<item>
<widget class="QComboBox" name="idleCombo"/>
</item>
<item>
<widget class="QSpinBox" name="idleSpin">
<property name="suffix">
<string notr="true"> minute(s)</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>40320</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="peerConnectionsSection">
<property name="title">
<string>Peer Connections</string>
</property>
<layout class="QGridLayout" name="peerConnectionsSectionLayout" columnstretch="0,1">
<item row="0" column="0">
<widget class="QLabel" name="peerLimitLabel">
<property name="text">
<string>&amp;Maximum peers:</string>
</property>
<property name="buddy">
<cstring>peerLimitSpin</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="peerLimitSpin">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>300</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="optionsTabBottomSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>1</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="dialogButtons">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Close</set>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>SqueezeLabel</class>
<extends>QLabel</extends>
<header>SqueezeLabel.h</header>
</customwidget>
<customwidget>
<class>FileTreeView</class>
<extends>QTreeView</extends>
<header>FileTreeView.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections>
<connection>
<sender>dialogButtons</sender>
<signal>accepted()</signal>
<receiver>DetailsDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>dialogButtons</sender>
<signal>rejected()</signal>
<receiver>DetailsDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>singleDownCheck</sender>
<signal>toggled(bool)</signal>
<receiver>singleDownSpin</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>singleUpCheck</sender>
<signal>toggled(bool)</signal>
<receiver>singleUpSpin</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
</connections>
</ui>