Commit Graph

700 Commits

Author SHA1 Message Date
Bart De Vries 402f8b565e Workaround for exact slider handle positioning 2023-01-01 15:10:19 +01:00
Bart De Vries b0b0550ce2 Add missing icon to CMakeLists.txt for inclusion in android 2022-12-27 19:00:29 +01:00
Devin Lin 93cdffd68c Use drawer height 2022-12-18 20:37:30 +01:00
Devin Lin d08dddd163 Use higher sidebar listview threshold 2022-12-18 20:37:30 +01:00
Devin Lin 2131186cb6 Fix footer and use list view for small heights 2022-12-18 20:37:30 +01:00
Devin Lin c035bcad92 Use display property 2022-12-18 20:37:30 +01:00
Devin Lin 7afc43f833 NavigationTabButton based sidebar 2022-12-18 20:37:30 +01:00
Devin Lin c30bfbb5a5 Use pageStack.popHiddenPages
This uses a new property in Kirigami to simplify the code.
2022-12-18 10:24:15 +00:00
Bart De Vries 44c54b664a Pass null as entry to chaptermodel if there is no current track
It previously passed undefined, but that will not be interpreted as
nullptr by the underlying C++ model.
2022-12-14 16:51:55 +01:00
Bart De Vries 906730c516 Fix missing checkbox state
The checkbox state for alwaysShowFeedTitles was not set based on the
current settings.
2022-12-14 14:55:32 +01:00
Bart De Vries 624e0b147f Prefer portrait orientation when using square window
BUG: 460859
2022-12-13 16:48:49 +01:00
Bart De Vries 19a6e382db Disable subscribe button when feed has been added
This disables the subscribe button once a feed has been added, i.e. when
the button has been clicked.
Additionally, when clicking on an already subscribed feed on the
discover page will now open the full details including the episode list.

BUG: 458560
2022-12-13 14:21:30 +01:00
Bart De Vries 16178b6441 Make chapter dialog larger 2022-12-13 13:04:51 +01:00
Bart De Vries 6217dbcc86 Add and use Chapter class 2022-12-12 20:16:12 +00:00
Tobias Fella 6a6962e2d3 Load chapter images from tags and show in user interface 2022-12-12 20:16:12 +00:00
Tobias Fella b273d5ffa9 Improve ChapterModel's gammarayability 2022-12-12 20:16:12 +00:00
Bart De Vries a07deae71d Fix RTL layout bugs
BUG: 461230
2022-12-12 19:54:09 +00:00
Bart De Vries 3898471f08 Move Error log from dialog overlay to dedicated settings page 2022-12-12 20:50:21 +01:00
Devin Lin 8e1b278539 Use more appropriate info icon 2022-12-12 10:31:12 +01:00
Devin Lin eda19fa0f8 Fix bracket 2022-11-30 10:38:17 -05:00
Bart De Vries 67040530fd Save settings to file whenever any setting changes 2022-11-30 15:49:50 +01:00
Bart De Vries 06ea1b36ea Fix typo in sync settings form 2022-11-30 14:34:08 +01:00
Devin Lin e98c6dfdef Fix separator behaviour 2022-11-30 14:34:08 +01:00
Devin Lin ee10727f6a Port synchronization settings page 2022-11-30 14:34:08 +01:00
Devin Lin 4db4664db3 Use trailing components in form 2022-11-30 14:34:08 +01:00
Devin Lin 6c8d0fa404 Port settings to MobileForm components 2022-11-30 14:34:08 +01:00
Bart De Vries 0e6cac16c9 Enable chapters also when streaming 2022-11-29 22:09:37 +01:00
Tobias Fella 5ec65d1b72 Cleanup aboutdata registration 2022-11-27 00:44:08 +01:00
Devin Lin cbd203272e Fix text in sleep dialog disregarding theming 2022-11-26 01:14:17 -05:00
Bart De Vries eb8856e45d Improve i18n messages on Queue page
BUG: 461024
2022-11-16 10:40:22 +01:00
Bart De Vries 8660ef46ea Fix appearance of streaming button on delegates and pages 2022-11-15 22:50:49 +01:00
Bart De Vries d192784e12 Improve check for existing podcasts
The feedExists method will now also take query parameters into account.

BUG: 461877
2022-11-15 19:13:24 +01:00
Bart De Vries 562c76c799 Implement streaming support
This implements support for streaming episodes rather than downloading them
first.
This introduces a new setting: prioritizeStreaming. If it's set to false
(default) then a streaming play button is only added to the EntryPage.  If
it is set to true, then the streaming play button will also appear on the
Entry delegates instead of the download button.
There is a separate setting to decide if streaming is also allowed on
metered connections.

FEATURE: 438864
2022-10-19 14:49:56 +02:00
Bart De Vries db802b6b17 Look for, and link to, Kirigami and QtSvg on all platforms
I don't know why they were historically only included for Android.  But
this fixes qt6 porting.
2022-10-06 19:07:55 +02:00
Ahmad Samir de42473d4e Use KDE_INSTALL_TARGETS_DEFAULT_ARGS
The KF_* variant is for KF repos

GIT_SILENT
2022-09-17 00:50:42 +02:00
Bart De Vries d6f60e037e Add missing icon to CMakeLists.txt 2022-09-09 10:34:58 +02:00
Devin Lin 3a6446dea5 Move page actions to bar, and consolidate podcast list and info pages 2022-09-07 19:03:07 +00:00
Devin Lin 9860c8b9e5 Only show single page at any time, and pop pages that aren't visible 2022-09-07 20:44:40 +02:00
Bart De Vries fdeb4c501a Set smaller default window size and save geometry on exit 2022-09-07 20:35:42 +02:00
Bart De Vries 5405a9d3d8 Fix for pages overlapping scrollbars in desktop view 2022-09-07 20:33:54 +02:00
Bart De Vries cbd57a6ef8 Fix pages overlapping miniplayer in mobile view with qqc2-breeze-style 2022-09-06 21:48:19 +02:00
Bart De Vries 64afd7b544 Remove collapse button from globaldrawer 2022-08-16 20:58:37 +02:00
Bart De Vries 9b97613898 Fix fallback when no image is available in id3 tag 2022-08-09 10:58:16 +02:00
Jose Flores 58032dd560 Doesn't add width to an html img without a width defined
This attempts to fix the issue described here: https://invent.kde.org/plasma-mobile/kasts/-/issues/20

There seemed to be a loop that occurs when setting an img width which causes the view to re-render which causes the window to grow which goes back to setting an img width causing an loop that keeps growing the img width and eventually crashing.

There are a few ways to fix this but I believe not setting a width on an img without a width both fixes it and behaves as expected (see context section). I'm not sure if this is a solution Kasts wants to go with but at the very least it adds more details to the issue. 

## Reproducing
The gist of that issue is that a crash occurs when you visit https://feed.zugfunk-podcast.de/podcastrss.xml, episode 53 and this is reproducible. 

I was able to get to the bottom of why that particular podcast episode crashes and can be reproduced with the following content

```html
<table style=\"width:30rem;\"><tbody><tr><td style=\"width:14rem;\">Some Text On Left </td><td><img src=\"https://invent.kde.org/plasma-mobile/kasts/-/raw/master/icons/128-apps-kasts.png\"></td></tr></tbody></table>
```

*(can repro by setting this string as a QStringLiteral in Entry.cpp, line 64 when the content is first set and then clicking on any episode)

## Context
The problem seems to be with `<img`s that don't have a width set. In those cases the code tries to set the image to the width of the component. The problem with this seems to be that this assumes that these images are on their own horizontal line and that they should take the whole width. So to repro (see content I used to repro above as an example):
* put an image tag next to some element that takes some width (like a table where there's a left column with some text and a right column in the right)
* img tag without a width

What ends up happening is that the `img width` gets updated to the size of the component width but because there's another element to the left of it, it will mean that the resulting view is bigger than the component width which causes `onWidthChanged`(`EntryPage.qml::88`) to be triggered and the `adjustedContent` function to be called again where this whole process happens again (img width is updated to component width -> rendered but it's larger than width -> causing onWidthChanged -> adjustedContent runs again -> rinse/repeat).

There are other ways to try to solve this but the three I looked at are: 
1. After `adjustedContent` is run, it should update the actual `m_content` so that the following runs can work off the last text update (this will mean that the problematic `else` wouldn't be run constantly).
    * You can do this by setting the content at the end of the function (`setContent(ret);`)
2. Checking for some reasonable width limit (if width > 10000 then width = 10000)
3. Not resizing an image without a width because we're not sure about the intention of the author 
    * in this case these were small icons for social media that shouldn't be scaled up
    * I think we shouldn't scale any images because of the same reason but the PR is conservative and just stops it in the case of a img without a width

For the PR I went with # 3 because the others led to the icons being scaled but it messed up the look of the page.

Closes #20
2022-08-08 11:10:51 +00:00
Bart De Vries ce45074c79 Fix minor typos 2022-07-14 16:46:52 +02:00
Bart De Vries c3df8d8714 Fix "database is locked" errors caused by concurrent writes 2022-07-14 15:32:58 +02:00
Bart De Vries 01cb685d54 Add option to mark custom amount of episodes as unplayed when adding new feed
FEATURE: 454553
2022-07-01 20:03:27 +00:00
Bart De Vries 67c96fdfbc [Sync] Enable pushing all local episode states to server
CCBUG: 454553
2022-07-01 20:03:27 +00:00
Bart De Vries 1043f4a63e Add app icons for windows build
Closes #26
2022-06-30 20:23:34 +00:00
Bart De Vries 5f94b4a357 Add sleep timer
FEATURE: 443400
2022-06-30 08:21:09 +00:00