Currently this is achieved by toggling the checked state twice
in a programmatic way. This ensures correct animations until
a better solution is found.
In addition, now both CollapsibleFrame and CollapsibleGroupBox
inherit their common methods from the abstract class CollapsibleBase.
Signals, if they carry the same datatype, can be chained simply
with `signal.connect(othersignal)` without the need to use a `lambda`
expression and `emit()`
TabWidget: Fix error because the `exit_app` signal was called directly
This change makes it more inline with how QScrollArea operates on a central widget.
Other changes include using a QFrame instead of a QWidget as a base and
adding a QLabel for the title instead of the horizontal line.
The advanced options were split into their own separate widget. Right now
their class operates only as a container with the logic remaining in the
InstallDialog.
Do not hide irrelevant options, show them as disabled instea.
This like the install directory are still informational despite
not being editable.
Also homogenize variable and widget naming.
Instead of connecting to the global `exit_app` signal, pass the signals
through their respective widgets. Because signals are queued by
default, this ensures that slots are executed in the order they are
connected. Makes it cleaner to do cleanup procedures where they should
make sense, unlike the global signal, where it has to be inferred by
the widget instantiating order.
When the closed through the WM's close button, `closeEvent()` is
used directly. In this case the dialog in the `on_exit_app`
slot was skipped.
There is a mishandled case. If coming from logout while there
is an active download (Yes to logout -> No to stop download)
we end up in a weird state which I haven't investigated yet.
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>