The `Content-type` header isn't required since `URLSearchParams` is present.
The `method` property is preferred to be always specified for clarity.
The `cache: "no-store"` is preferred for most GET requests to avoid caching.
PR #21891.
Previously we would still download the file but it would contain the error response, resulting in an invalid file.
To test: export a .torrent file for a torrent that hasn't yet downloaded metadata
PR #21696.
Signed-off-by: Thomas Piccirello <thomas@piccirello.com>
The speed icons in the status bar look weird. Whenever I look at them, there seems to be something off with them. The circle seems to have been stretched. Also, the gap between the needle and the circle is not big enough to be clearly visible (at least on my display).
PR #21853.
Event delegation is now used to handle basic table events.
2 minor fixes were added to match GUI behavior:
* Clicking on the table body deselects everything
* Table rows are now scrolled into view when using up/down arrows
PR #21829.
Fixes bug where the first time visiting Execution Log view all log levels are deselected but log items with all levels are still displayed.
This requires you to select a log level and then deselect it to hide that log level.
PR #21812.
Thin scrollbars are now used if they are supported by user's browser. The main goal was to make them less intrusive in Chrome-likes on some platforms.
PR #21763.
---------
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
LocalPreferences class is now created using modern class syntax (minimal changes to remove Mootools bits). In addition, I removed redundant suffix from class name.
PR #21780.
This change displays the last detected IPv4 and/or IPv6 address(es) in the GUI and WebUI's status bar. This does not yet handle systems with multiple addresses of the same type (e.g. multiple IPv6 addresses).
PR #21383.
---------
Co-authored-by: Odin Vex <44311901+OdinVex@users.noreply.github.com>
Those are the `default` cases which are not expected to hit (nor reachable) normally.
When the code is compiled with release mode and it reaches `Q_UNREACHABLE()`, it becomes
undefined behavior. So it rely on the developers to catch the errors in debug mode.
The upside of this is that the `switch` statement will be more optimized than not using it.
This also means the statements after `Q_UNREACHABLE()` isn't important. It allow anything to
preserve the intention of the code.
This macro is preferred over C++23 `std::unreachable` because it will automatically insert a
`Q_ASSERT(false)` with it.
PR #21752.
This fixes a bug where the torrents table header menu
could not be closed by clicking on a table row.
This also fixes the same bug for other context menus.
PR #21731.
This PR relies on flexbox to ensure all WebUI tables are the correct height without overflowing. Table headers are now always visible and JS-based dynamic resizing is no longer needed.
PR #21652.
Compared to plain function, arrow function is simpler to understand (without bindings to `this`, `arguments`, `super`) and to read.
Now, plain function will only be used when this object is required.
PR #21691.
The required JS may not yet be loaded, resulting in an error when calling `window.qBittorrent.Rss.init()`.
Signed-off-by: Thomas Piccirello <thomas@piccirello.com>
PR #21689.
Auto resize can be triggered by:
1. Double clicking the column's resize handle (its rightmost edge)
2. The table header's context menu
Closes#21627.
PR #21655.
This fixes a bug where the file filter is only shown when the Content tab is switched to. The filter is not being shown if the Content tab is already selected on page load (due to being previously selected).
PR #21657.
Also, by switching to template we can avoid the cost of converting to some specific type and
perfectly forward the parameter to the final function.
PR #21572.
It is enough to set them up just once during initial load. Number of elements with copyToClipboard class is fixed - they are context menu items.
PR #21558.
Box-sizing: border-box is now applied globally. A lot of tiny changes were made but they were necessary to correct resulting inconsistencies. Everything should be pretty much as it was with just some minor exceptions.
Looks like this PR also indirectly fixed#21414.
PR #21464.
This PR adds following improvements:
* Remove unused tracker entries while processing sync data
* Take into account filter selection & terms when performing 'Start/stop/delete' context actions in filter lists
Now, only filtered torrents will be affected by them, just like in the GUI.
* Provide better feedback when performing 'Start/stop/delete' context actions in filter lists
Small improvement over GUI - now these actions will be disabled if it's not possible to use them.
* Add context menu to status filter list
* Fix error when toggling filter title
Fixup for small bug introduced in https://github.com/qbittorrent/qBittorrent/pull/21269
PR #21438.