1315 Commits

Author SHA1 Message Date
Veloman Yunkan
99609644d0 Fixed the bug with closing of non-current tab 2024-03-20 19:38:47 +04:00
Veloman Yunkan
4c831f0228 TabBar::setCloseTabButton()
Deduplicated the code responsible for setting up the tab closing button.
2024-03-20 19:38:47 +04:00
Veloman Yunkan
bbceea3d5e KiwixApp::newTab()
It's more natural for the handling of the NewTabAction action to be
set up in `KiwixApp` rather than in `TabBar`.
2024-03-20 19:38:47 +04:00
Veloman Yunkan
837619cb55 TabBar::setNewTabButton() receives the action explicitly 2024-03-20 19:38:47 +04:00
Veloman Yunkan
9aa8cb4286 Made the function name match its semantics 2024-03-20 19:38:47 +04:00
Veloman Yunkan
486fc41ce1 Replaced if statements with conditional expression
Also raised a question in a rewritten comment
2024-03-20 19:38:47 +04:00
Veloman Yunkan
dcc41e2bc2 More concise handling of switch-to-tab#N shortcuts
Obtaining the value of the ALT+[0-9] shortcut from the action objects
would be justified if they were connected to the same (shared) handler.
But since handlers are distinct lambda objects the sought value can be
obtained via a captured variable.
2024-03-20 19:38:47 +04:00
Veloman Yunkan
b39597b501 Extracted TabBar::openOrSwitchToSettingsTab() 2024-03-20 19:38:47 +04:00
Veloman Yunkan
caa6195caa Tidied up TabBar::closeTabsByZimId() 2024-03-20 19:38:47 +04:00
Veloman Yunkan
f62fc3b626 Fully fool-proof TabBar::closeTab()
Made `TabBar::closeTab()` responsible for all the checks so that none of
them have to be performed before calling that function.
2024-03-20 19:38:47 +04:00
Veloman Yunkan
94d95b68ca Closing a tab doesn't change the current tab
Before this change, after a tab was closed its adjacent tab (the next
one or, in the absence of such, the previous one) became active, no
matter which tab was active before that. Now that logic applies only
if the currently active tab is closed.

The function responsible for that logic was removed because its name
was not a good one and its existence was not justified given that it
could be replaced by a oneliner and that it was used only once.
2024-03-12 15:28:47 +04:00
Veloman Yunkan
fb43b4338f Made middle-clicking the library tab a no-op
Before this change, an attempt to close the library tab via a
middle-click - although prevented by a dedicated check - had a
side-effect of switching to the tab next to the library tab.
2024-03-12 14:58:14 +04:00
Veloman Yunkan
693b7b1ea5
Merge pull request #1040 from kiwix/translatewiki
Localisation updates from https://translatewiki.net.
2024-03-09 16:12:28 +04:00
translatewiki.net
ff7e47c843 Localisation updates from https://translatewiki.net. 2024-03-09 16:06:43 +04:00
Matthieu Gautier
bd0f896644
Merge pull request #1049 from kiwix/refactoring 2024-03-08 15:48:19 +01:00
Veloman Yunkan
cb3bc65fcc Simpler ContentManager::getDownloadInfo()
Got rid of unneeded flexibility in ContentManager::getDownloadInfo()
2024-03-07 20:38:47 +04:00
Veloman Yunkan
95290bdf0b Less checks of download functionality availability
The only justified check for the availability of download functionality
is in the initiation of the download action
(`ContentManager::downloadBook()`) - if no download is started then
(assuming otherwise correct code) it should be impossible to pause,
resume or cancel one.
2024-03-07 20:38:47 +04:00
Veloman Yunkan
aa8e4c9650 Extracted getFaviconUrl() & getBookAttribute()
One small difference of getFaviconUrl() from the piece of code it was
created from is that, in case the book doesn't contain an illustration,
an empty string is returned directly rather than via a confusing
default-constructed Illustration object.
2024-03-07 20:38:47 +04:00
Veloman Yunkan
a197a6a907 Extracted getBookTags() 2024-03-07 20:38:47 +04:00
Veloman Yunkan
a0d4ed573d Removed faviconMimeType from ContentManager::getBookInfos()
"faviconMimeType" is not used anywhere but is responsible for some of the
too much clutter in ContentManager::getBookInfos().
2024-03-07 20:38:47 +04:00
Veloman Yunkan
98f4064c26 More readable access to the settings manager 2024-03-07 20:38:47 +04:00
Veloman Yunkan
d196ceb063 Fixed indirect accesses to the library object 2024-03-07 20:38:47 +04:00
Veloman Yunkan
622f9a0ff8 Extracted ContentManagerModel::getThumbnail() 2024-03-07 20:38:47 +04:00
Veloman Yunkan
32f839b192 Renamed ContentManagerModel::{iconMap -> m_iconMap}
... and stopped passing it (as the second parameter) into
ContentManagerModel::createNode().
2024-03-07 19:50:39 +04:00
Matthieu Gautier
75ecdeb03e
Merge pull request #1045 from kiwix/refactoring 2024-03-07 13:56:07 +01:00
Kelson
6c0325456e
Merge pull request #1046 from adamlamar/prepare-qt6
Initial Qt6 support
2024-03-04 08:20:28 +01:00
Adam Lamar
e543bbc446 Clean up print duplication and conditional compilation 2024-03-03 18:57:13 +00:00
Adam Lamar
d842a288f7 Initial Qt6 support 2024-03-01 22:12:06 +00:00
Veloman Yunkan
5d28f8a332 Changed the parameter type 2024-03-01 20:39:43 +04:00
Veloman Yunkan
b434833edc Dropped an obsolete return value 2024-03-01 20:39:43 +04:00
Veloman Yunkan
e0f79bf9f2 More elegant ContentManager::updateDownload() 2024-03-01 20:39:43 +04:00
Veloman Yunkan
defe52a246 ContentManager::removeDownload() 2024-03-01 20:39:43 +04:00
Veloman Yunkan
4153765b7b ContentManagerModel only reads from m_downloads 2024-03-01 20:39:43 +04:00
Veloman Yunkan
6f781a8e0e Got rid of ContentManager::updateDownloadInfo()
... by inlining it into ContentManager::updateDownload()
2024-03-01 20:39:43 +04:00
Veloman Yunkan
d089dced05 Eliminated indirect call to ContentManager::updateDownloadInfos()
Now ContentManager::updateDownloadInfos() is called directly by
ContentManager (rather than indirectly via ContentManagerModel).
2024-03-01 20:39:43 +04:00
Veloman Yunkan
b112c1b34c Bugfix: completed downloads are removed
The commit "Moved download deregistration to ContentManager" introduced
a bug - completed downloads were not properly deregistered.

Note that a simpler fix by adding a single `m_downloads.remove(bookId);`
line in `ContentManager::downloadCompleted()` didn't work (which means
that that function is not always called upon download completion). I am
not going to investigate that issue now, hoping that it will be
automatically resolved once the redesign of download management is
finished.
2024-03-01 20:39:43 +04:00
Veloman Yunkan
b288f287f2 Made DownloadState::update() a setter
DownloadState::update() no longer calls ContentManager::updateDownloadInfos()
2024-03-01 20:39:43 +04:00
Veloman Yunkan
a6359af1ab Merged ::DownloadInfo into DownloadState 2024-03-01 20:39:43 +04:00
Veloman Yunkan
8e3a783700 Got rid of the timer in DownloadState
Now there is a single timer in ContentManager shared by all pending downloads.
Temporarily, all active downloads are updated on every firing of the
timer and this happens in the main thread. This will be changed later.

The main objective of this change is to get rid of the timer in
DownloadState so that it can be converted to a dumb struct set by
ContentManager.
2024-03-01 20:39:43 +04:00
Veloman Yunkan
4ab2a89c03 Deleted an unused function 2024-03-01 20:39:43 +04:00
Veloman Yunkan
582dce0ced ContentManager::updateDownload() 2024-03-01 20:39:43 +04:00
Veloman Yunkan
d3c4361d60 Moved download deregistration to ContentManager 2024-03-01 20:39:43 +04:00
Veloman Yunkan
4842742e77 ContentManagerModel::removeDownload() 2024-03-01 20:39:43 +04:00
Veloman Yunkan
087881d510 Fixed download progress update for the first row 2024-03-01 20:39:43 +04:00
Veloman Yunkan
b53042edd5 Got rid of ContentManagerModel::startDownload()
Inlined ContentManagerModel::startDownload() into
ContentManager::downloadBook().
2024-03-01 20:39:43 +04:00
Veloman Yunkan
6ba6ad0ee8 ContentManager::startDownload() 2024-03-01 20:39:43 +04:00
Veloman Yunkan
4b773f4c1d Deleted a dubious piece of code
In theory, a book recorded in a local library may have only its url defined
(and no path to a ZIM file). Such a book qualifies as downloadable too.

That's why the call to `ContentManager::getRemoteOrLocalBook()` (which
may return a "local" book) perfectly makes sense in
`ContentManager::downloadBook()`.

However, it doesn't then make sense to raise an error if the returned
book turns out to be a "local" one. It would be more logical to request
only for a remote book and report an error if that operation fails.
2024-03-01 20:39:43 +04:00
Kelson
ef1489193e
Merge pull request #1044 from kiwix/maximum-dependency-version
Specify max dependence versions
2024-02-27 20:13:31 +01:00
Emmanuel Engelhart
1cc9dd1b88 Update dependences in deb 'control' 2024-02-27 20:13:22 +01:00
Emmanuel Engelhart
ae32843574 New libzim/libkiwix version reqs. in kiwix-desktop.pro 2024-02-27 20:13:22 +01:00