mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-24 05:25:37 +00:00
97d08a5b2f
Definitions: Selection in QTreeView consist of two things: currentIndex -- is a (dotted) cell where user clicked last time. Note that it is a cell selectedIndexes -- is a set of cells (blue) of current selection. Checkboxes in torrent content lists are belong to COL_NAME column. Problem: The problem is that spacebar toggled checkbox only in currentIndex index. This has two consequences: 1. It is impossible to toggle checkboxes on multiple rows simultaneously. 2. If currentIndex is not in COL_NAME column a space key doesn't work at all. This problem is amplifyed by the fact that SelectionBehavior is set to SelectRows. So visually it is impossible to tell which column does it belong to. For end user it looks like "space doesn't work sometimes". This patch addresses the problem by implementing TorrentContentTreeView derived from QTreeView and overridding keyPressEvent(QKeyEvent*). The code of TorrentContentTreeView::keyPressEvent is written under inspiration from QAbstractItemView::keyPressEvent and QItemDelegate::editorEvent.
308 lines
8.1 KiB
XML
308 lines
8.1 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>AddNewTorrentDialog</class>
|
|
<widget class="QDialog" name="AddNewTorrentDialog">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>414</width>
|
|
<height>590</height>
|
|
</rect>
|
|
</property>
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>400</width>
|
|
<height>0</height>
|
|
</size>
|
|
</property>
|
|
<property name="maximumSize">
|
|
<size>
|
|
<width>800</width>
|
|
<height>16777215</height>
|
|
</size>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
|
<item>
|
|
<widget class="QGroupBox" name="groupBox">
|
|
<property name="title">
|
|
<string>Save as</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
<item>
|
|
<widget class="QComboBox" name="save_path_combo">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Ignored" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QCheckBox" name="default_save_path_cb">
|
|
<property name="text">
|
|
<string>Set as default save path</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QCheckBox" name="never_show_cb">
|
|
<property name="text">
|
|
<string>Never show again</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QToolButton" name="adv_button">
|
|
<property name="text">
|
|
<string notr="true">▼</string>
|
|
</property>
|
|
<property name="checkable">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="settings_group">
|
|
<property name="title">
|
|
<string>Torrent settings</string>
|
|
</property>
|
|
<layout class="QGridLayout" name="gridLayout_3" columnstretch="1,1">
|
|
<item row="0" column="0">
|
|
<widget class="QCheckBox" name="start_torrent_cb">
|
|
<property name="text">
|
|
<string>Start torrent</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<layout class="QGridLayout" name="gridLayout_2" columnstretch="0,1">
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label_5">
|
|
<property name="text">
|
|
<string>Label:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="label_combo">
|
|
<property name="editable">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="insertPolicy">
|
|
<enum>QComboBox::InsertAtTop</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QCheckBox" name="skip_check_cb">
|
|
<property name="text">
|
|
<string>Skip hash check</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="info_group">
|
|
<property name="title">
|
|
<string>Torrent Information</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<layout class="QGridLayout" name="gridLayout" rowstretch="0,0,0" columnstretch="0,1">
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label">
|
|
<property name="text">
|
|
<string>Size:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QLabel" name="size_lbl">
|
|
<property name="text">
|
|
<string notr="true">xx GB (xx GB available)</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="label_2">
|
|
<property name="text">
|
|
<string>Comment:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QLabel" name="comment_lbl">
|
|
<property name="text">
|
|
<string notr="true">comment</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="label_3">
|
|
<property name="text">
|
|
<string>Date:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<widget class="QLabel" name="date_lbl">
|
|
<property name="text">
|
|
<string notr="true">02/03/2012 20:30</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="TorrentContentTreeView" name="content_tree">
|
|
<property name="contextMenuPolicy">
|
|
<enum>Qt::CustomContextMenu</enum>
|
|
</property>
|
|
<property name="selectionMode">
|
|
<enum>QAbstractItemView::ExtendedSelection</enum>
|
|
</property>
|
|
<property name="sortingEnabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="buttonsHLayout">
|
|
<item>
|
|
<widget class="QProgressBar" name="progMetaLoading">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="value">
|
|
<number>-1</number>
|
|
</property>
|
|
<property name="textVisible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="format">
|
|
<string notr="true">%p%</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="lblMetaLoading">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="text">
|
|
<string notr="true"/>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="horizontalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item>
|
|
<widget class="QDialogButtonBox" name="buttonBox">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="standardButtons">
|
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
</layout>
|
|
<action name="actionNormal">
|
|
<property name="text">
|
|
<string>Normal</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionHigh">
|
|
<property name="text">
|
|
<string>High</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionMaximum">
|
|
<property name="text">
|
|
<string>Maximum</string>
|
|
</property>
|
|
</action>
|
|
<action name="actionNot_downloaded">
|
|
<property name="text">
|
|
<string>Do not download</string>
|
|
</property>
|
|
</action>
|
|
</widget>
|
|
<customwidgets>
|
|
<customwidget>
|
|
<class>TorrentContentTreeView</class>
|
|
<extends>QTreeView</extends>
|
|
<header>torrentcontenttreeview.h</header>
|
|
</customwidget>
|
|
</customwidgets>
|
|
<resources/>
|
|
<connections>
|
|
<connection>
|
|
<sender>buttonBox</sender>
|
|
<signal>accepted()</signal>
|
|
<receiver>AddNewTorrentDialog</receiver>
|
|
<slot>accept()</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>248</x>
|
|
<y>254</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>157</x>
|
|
<y>274</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
<connection>
|
|
<sender>buttonBox</sender>
|
|
<signal>rejected()</signal>
|
|
<receiver>AddNewTorrentDialog</receiver>
|
|
<slot>reject()</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>316</x>
|
|
<y>260</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>286</x>
|
|
<y>274</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
</connections>
|
|
</ui>
|