Commit Graph

290 Commits

Author SHA1 Message Date
Adriaan de Groot
c0fa212fa9 [welcome] Be slightly more verbose in reporting missed req's 2020-05-11 20:45:47 +02:00
Adriaan de Groot
7d00f7e0dc [welcome] Explain in the debug log what failed 2020-05-11 16:30:26 +02:00
Adriaan de Groot
fabe5ec439 [welcome] Config should not have its own RequirementsModel
- Use the one from ModuleManager
2020-05-11 16:30:26 +02:00
Adriaan de Groot
8306de731a [welcome] Setting requirements from own reqs is totally wrong
- The requirements are collected by ModuleManager, checked
  by an internal RequirementsChecker and changes to the
  requirements state are all signalled from ModuleManager.

By connecting the requirements in the welcome modules' Config
only to their own configs -- and immediately checking them,
which is bad on its own -- we end up with a disconnect between
what the ModuleManager says about requirements, and what
the welcome modules report on.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
0f5db0ba5e [libcalamares] Remove direct access to model internals
- This was just for the ResultsListWidget, which can also use
  normal role-based model access.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
5dc358093e [welcome] Apply coding style 2020-05-06 15:52:56 +02:00
Adriaan de Groot
713132d4af [welcome] Move GeoIP loading into Config
- The Config object can handle GeoIP loading on its own. Both
  View steps that used this had a derpy view->setCountry() that
  didn't really do anything with the view anymore.
2020-05-06 15:46:23 +02:00
Adriaan de Groot
6434374bf3 [welcome] Move languageIcon loading into the Config object
- The QML module had an additional check that the normal one
  did not; add it in the merged code.
2020-05-06 15:24:08 +02:00
Adriaan de Groot
120a2b0f03 [welcome] Move get-the-show*Url code into Config
- Since this is configuration-loading, put it in the Config
  class; reduces code duplication between welcome and welcomeq.
2020-05-06 15:08:31 +02:00
Adriaan de Groot
e65a0ee617 [welcome] Update welcome example
- donate **does** have a corresponding branding setting
- show that "false" is a valid setting
2020-05-06 14:37:59 +02:00
Adriaan de Groot
7d1800a0d7 [welcome] Apply coding style 2020-05-04 13:00:00 +02:00
Adriaan de Groot
70054e5db4 [welcome] Chase Branding API change 2020-05-04 12:52:14 +02:00
Adriaan de Groot
4786a91eb8 [welcome] Order get/setters consistently
- code styling OCD, all the other ones are get, then set
- getters can be in the header, they're boring
2020-04-30 17:41:17 +02:00
Adriaan de Groot
1f6752307d [welcome] Massage layout when banner is used
- simplify handling of image loading (if the image doesn't exist,
  Branding will bail out on startup)
- reduce space above the banner if it is in use
2020-04-22 14:53:55 +02:00
Adriaan de Groot
c3941b6e65 [welcome] Shuffle code
- things that can be done in the designer file should be there,
  not weirdly repeated in code elsewhere
- drop the insertion of an extra spacer (why not include it in the
  designer file?)
- shuffle all the connect() calls down to the end of the constructor
2020-04-22 14:53:55 +02:00
bill-auger
7bce58f6f2 [welcome] add optional branding banner to welcome page 2020-04-19 04:01:22 -04:00
Adriaan de Groot
fafc508d63 [welcome] Update the widget's notion of the locale
- when the locale changes, tell the widget so that the drop-down
  displays the right language.

FIXES #1361
2020-04-02 23:10:55 +02:00
Adriaan de Groot
5956c6678e [welcome] Don't const& POD
- simplify parameter types in some set-methods
- while here, shuffle methods to bring things together
2020-04-02 22:42:41 +02:00
Adriaan de Groot
d2f5185d49 [welcome] Remove unused m_configurationMap
- the configuration is split into specific properties, not
  stored generically.
2020-04-02 22:00:43 +02:00
Adriaan de Groot
39afbdb570 [welcome] Shuffle signals to conventional location
- signals after slots, before private
- while here give the *MessageChanged signals a parameter (the changed
  message)
2020-04-02 21:57:00 +02:00
Adriaan de Groot
9d97972a34 [welcome] Apply coding style 2020-04-02 21:53:02 +02:00
Adriaan de Groot
ca7733c8e4 [welcome] Drop RequirementsModel
- Use the one from libcalamares
- Massage warning message into Config after it was removed from the model
2020-04-02 21:52:05 +02:00
Adriaan de Groot
215bc46469 [welcome] Update copyright years in about-popup 2020-03-25 13:54:54 +01:00
Adriaan de Groot
2a93c7e236 [welcome] Chase changed API in master 2020-03-25 13:48:10 +01:00
Adriaan de Groot
ce244d8514 [welcome] Style in viewstep (unrelated to merge) 2020-03-25 13:46:27 +01:00
Adriaan de Groot
81912f9e7d [welcome] Style in Config 2020-03-25 12:00:41 +01:00
Adriaan de Groot
1ede7003c0 [welcome] Apply coding style 2020-03-25 11:41:39 +01:00
Camilo Higuita
b6b9f888fc correct typo 2020-03-24 10:39:29 -05:00
Camilo Higuita
1c0e69e1c2 wraning message is not from conf but form the requirements model 2020-03-24 09:33:09 -05:00
Camilo Higuita
2d09557297 update wlecome to latest 2020-03-24 09:26:24 -05:00
Adriaan de Groot
cf59e2884a [welcome] Reduce warnings from moc-generated code 2020-03-24 12:04:26 +01:00
Adriaan de Groot
2eb84e2de1 [partition] [tracking] [welcome] Missing Q_OBJECT
- These aren't strictly necessary for the code, but they
  help with translations.
2020-03-19 00:37:37 +01:00
Camilo Higuita
d26fa63ccd [welcomeq] initial work for welcomeview in qml 2020-03-11 14:48:14 +01:00
Camilo Higuita
d7f7c16958 [welcome] using config for both qcc2 or qwidgets 2020-03-11 14:48:06 +01:00
Adriaan de Groot
c5b038587e [welcome] Tidy up includes 2020-03-09 21:07:12 -05:00
Adriaan de Groot
ebb3f319cc [modules] Be more consistent in include punctuation
- Use <> for Qt, system, externals
 - Use double-quotes for Calamares headers
2020-03-09 21:05:15 -05:00
Adriaan de Groot
25e3f91754 [welcome] Remove the QML testing bits
- The welcomeq module has actual QML support
2020-02-19 13:39:24 +01:00
Adriaan de Groot
b044549013 [libcalamares] Merge PluginDllMacro.h into DllMacro.h
- Let's just have one header definining export- and visibility-
   macros for Calamares. They are still selected based on the
   export flags (*_PRO), just defined in one header instead of two.
2020-02-17 11:37:35 +01:00
Adriaan de Groot
53b6113c75 [welcome] Fix QML tests 2020-02-05 18:38:46 +01:00
Adriaan de Groot
eaea262449 Merge branch 'master' into qml 2020-02-05 18:03:31 +01:00
Adriaan de Groot
8f581ca861 [welcome] Coding style
- apply coding style, add {}
 - remove unneeded includes (moved to the widgets)
 - update copyright
2020-01-29 11:10:30 +01:00
Adriaan de Groot
6b77d5db4a [welcome] Add detail messages for root and screen checks
- these were empty, so the widgets were hidden in the details
   dialog of the requirements check; which looks really strange
   if the reason the check fails is because root is required,
   and you can't see that in the details.

This commit is on a branch because it changes strings, and I want
to do a release Real Soon and not annoy the translators.
2020-01-28 15:24:29 +01:00
Adriaan de Groot
ad4ac1d25c [welcome] Update copyrights 2020-01-28 14:23:38 +01:00
Adriaan de Groot
9d69d0a893 [welcome] Remove unused variables 2020-01-28 14:21:02 +01:00
Adriaan de Groot
1ac4786365 [welcome] Move all the translation work to the slot
- this needs to (re)check the satisfaction states to figure out the
   message, but that's useful if the state of the checks changes
   (e.g. in #1106)
2020-01-28 14:15:57 +01:00
Adriaan de Groot
221a79b64c [welcome] Simplify logic
- \not mandatorySatisfied \implies \not requirementsSatisfied,
   so the ifs can be combined and simplified
2020-01-28 13:58:08 +01:00
Adriaan de Groot
28d91979c3 [welcome] Make resultWidgets less error-prone
- instead of counting and needing to keep track of the predicate
   applied while creating the widgets, push nullptrs to the widget
   list instead reflecting "this entry did not satisfy the predicate
   for widget creation".
2020-01-28 13:50:23 +01:00
Adriaan de Groot
39534325e6 [welcome] Re-use widget creation code
- for the list, the code can be the same as for the dialog,
   only the predicate is different.
 - while here, implement retranslate() since there's no text on
   the list widgets otherwise.
2020-01-28 13:39:27 +01:00
Adriaan de Groot
38d58e5b16 [welcome] Hoist explanatory-label code
- Create the label once, and it's ok for it to respond to links
   even if there's none in the code.
 - Turn into a member variable in preparation for retranslation-refactor.
2020-01-28 13:32:53 +01:00
Adriaan de Groot
b476e4b386 [welcome] Refactor link-clicking
- remove intermediate lambda
 - rename dialog slot to one handling links in general (which now
   **only** does the dialog link)
2020-01-28 13:24:01 +01:00
Adriaan de Groot
ecc7719abd [welcome] Hoist checking for requirements-satisfied
- lift it out of the loop that creates the widgets
 - some lambda-wankery, but the compiler hammers this down to
   simple loops and you can read the resulting code as

	none_of  [the list]  isUnSatisfied
	none_of  [the list]  isMandatoryAndUnSatisfied
2020-01-28 13:13:09 +01:00
Adriaan de Groot
f5c0e57f17 [welcome] Improve variable naming
- these two are about whether all the checkEntries are satisfied
   (in general, and the mandatory ones) so make the names reflect that.
2020-01-28 13:02:39 +01:00
Adriaan de Groot
5795801be5 [welcome] Remove unneeded member variables.
- local to the constructor, only needed to be members because
   of the weird split between constructor and init()
2020-01-28 13:00:21 +01:00
Adriaan de Groot
5aae736ced [welcome] Create ResultWidget in separate method 2020-01-28 12:53:19 +01:00
Adriaan de Groot
bede280f91 [welcome] Refactor ResultsListWidget
- no point in having init() called immediately after the constructor,
   if it only makes sense to have one call to init() ever to create
   the widget.
 - while here, give it the same kind of structure as the dialog,
   holding on to a reference to the list.
2020-01-28 12:41:36 +01:00
Adriaan de Groot
320dcac946 [welcome] Drop unneeded member variable 2020-01-28 12:23:53 +01:00
Adriaan de Groot
ed1b3b576f [welcome] Refactor ResultsListDialog
- drop useless debugging
 - add documentation
 - move to its own spot in the file (not mixed in with ResultsListWidget)
2020-01-28 12:21:22 +01:00
Adriaan de Groot
41ac21bdcd [welcome] Refactor results-details dialog
- Factor out the "details" dialog into a separate class
   with a translation slot. This resolves the crash reported in #1307.
2020-01-27 19:35:41 +01:00
Adriaan de Groot
6c4efc1f9c [welcome] Add Branding object to QML demo 2019-12-13 18:23:01 +01:00
Adriaan de Groot
55f61fda35 [welcome] Create branding and settings objects 2019-12-13 18:18:02 +01:00
Adriaan de Groot
03ed308bd9 [welcome] Add QML model for translations 2019-12-13 14:31:42 +01:00
Adriaan de Groot
d41d8df2a5 [welcome] Put Config object into context 2019-12-13 13:19:38 +01:00
Adriaan de Groot
c59678594b [welcome] More QML support
- start of a class to hold configuration information; this can
   later be substituted into the WelcomeViewStep and filled from
   setConfigurationMap()

In the example application:
 - register the Config type
2019-12-13 12:37:09 +01:00
Adriaan de Groot
156d78feb3 [welcome] Add QML support
- test application to display the QML (this will be extended
   with adding the locale model to it)
 - sample QML that does nothing useful yet (will display the locale
   model once it's there)
2019-12-13 11:50:12 +01:00
Adriaan de Groot
5cb0ee6cc5 [welcome] Simplify code
- Kevin Kofler pointed out there was a redundant else-if
 - Only use size for comparison if it's valid
2019-12-02 11:42:32 +01:00
Adriaan de Groot
a70b7ad89e [welcome] Chase deprecations in Qt (screen geometry) 2019-11-29 00:17:02 +01:00
Adriaan de Groot
6dfcbd757b [welcome] Remove superfluous call to QColor::value() 2019-11-26 17:34:25 +01:00
bill-auger
ee85f6bfa7 replace hard-coded bg color of requirements failure notice with relative tint 2019-11-12 09:17:11 -05:00
Adriaan de Groot
52e72f4fb1 [welcome] Apply coding style 2019-09-05 03:23:28 -04:00
Adriaan de Groot
c7cbba3951 [welcome] Fix typo in tooltip 2019-08-30 22:54:28 +02:00
Adriaan de Groot
0aabc89449 [partition] [welcome] Simplify retranslation 2019-08-29 15:02:12 +02:00
Adriaan de Groot
535bf01475 [welcome] Refactor lambdas to full slots
- This helps give meaningful names to code chunks
 - Gives clang-format something to work with
 - Reduces indentation depth

I think this is a bit of a code-style opinion issue: big complicated
lambdas doing UI things just don't seem like a good idea.
2019-08-29 11:06:55 +02:00
Adriaan de Groot
fc5aa54cb2 [welcome] Fix code formatting
- the RETRANSLATE macro is a real challenge for astyle and clang-format
2019-08-29 11:01:02 +02:00
Adriaan de Groot
07bd22ba95
Merge pull request #1233 from bill-auger/patch-4
eliminate magic number in src/modules/welcome/WelcomePage.cpp
2019-08-29 04:46:18 -04:00
bill-auger
5642576cf3
cross-reference/clarify geoip documentation 2019-08-28 13:21:42 -04:00
bill-auger
4c3c6f3f91
eliminate magic number in src/modules/welcome/WelcomePage.cpp 2019-08-28 13:02:42 -04:00
Adriaan de Groot
b8bad1c0b4 [welcome] Drop unused includes 2019-08-22 16:16:29 +02:00
Adriaan de Groot
e065008631 [welcome] Switch to the network service
- simplify configuration
 - use existing ping- and hasInternet()
2019-08-20 10:57:34 -04:00
Adriaan de Groot
0b7dcf7c50 [welcome] Fix up tooltips
- the "Select language" tooltip was applied to the form, so it would
   show up inappropriately all over the place
 - the buttons didn't have useful tooltips.
2019-08-13 23:22:33 +02:00
Adriaan de Groot
c36f963954 [welcome] Adjust names of URLs to be consistent
- having show*Url and donateUrl seems inconsistent, although
   the show*Url settings were originally boolean-only.
 - add "show" to the Donate button setting, to make them
   all consistent (putting a boolean there will generate a
   warning and hide the button, that's all).
2019-08-13 23:10:56 +02:00
Adriaan de Groot
706cc73925 [branding] [welcome] Adjust documentation for welcome-overrides 2019-08-13 23:10:56 +02:00
Adriaan de Groot
341965c2b1 [welcome] Use setupButton for all four buttons
- the show* settings in welcome.conf are "upgraded" to allow
   setting the URL directly in the module configuration.
2019-08-13 23:10:56 +02:00
Adriaan de Groot
119f84d6c1 [welcome] Remove setupLinks() method, use generic
- the generic (enum-based) setupButton() can handle all four
   of the buttons, so setupLinks() can go away. Only the
   (re)translation of the text on the button needs to be
   done, so move that to the main RETRANSLATE.
2019-08-13 23:10:56 +02:00
Adriaan de Groot
64d4b0a46c [welcome] Switch API for buttons to an enum + string
- Handle buttons and their URL-opening in a more
   general way with an enum; drop existing three-boot
   method and special setupDonateButton()
 - Doesn't compile because consumers haven't changed.
2019-08-13 23:10:56 +02:00
Adriaan de Groot
03e506a826 [welcome] Add a donate button
FIXES #1197
2019-08-13 23:10:56 +02:00
Adriaan de Groot
b60ec123a0 [branding] [welcome] Document interrelationship of settings 2019-08-13 23:10:56 +02:00
Arnaud Ferraris
3929557a5a welcome: Fix requirements parsing
As the config files integer are now of type `QVariant::LongLong` instead
of `QVariant::Int`, requirements relying on this type were not parsed
correctly.

This patch fixes this, and adds an option to the python conversion to
take into account `QVariant::LongLong` types.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-12 15:48:48 +02:00
Adriaan de Groot
0f66a89236 [welcome] Only do GeoIP query if it's useful
- If badly-configured, then type is none; this is warned about
   in the constructor of Handler()
 - Only run the query if it's a useful type.
2019-06-18 12:34:52 +02:00
Adriaan de Groot
3967f6c5ae [welcome] Log where GeoIP information came from, if it's unusable
- This helps chase down broken GeoIP configurations, since you
   can check the URL and handler type shown in the log.
2019-06-18 12:24:30 +02:00
Adriaan de Groot
f54b7dee9f [welcome] Use convenience image loader from Branding 2019-05-31 17:27:11 +02:00
Adriaan de Groot
07c638ed48 [welcome] Allow theming the international language-select icon 2019-05-31 17:27:11 +02:00
Adriaan de Groot
81c4114de9 welcome: disable geoip by default (and document how)
FIXES #1148
2019-05-16 22:49:27 +02:00
Adriaan de Groot
f18f9dcd14 [welcome] Lookup GeoIP language and pass to language widget
- FIXES #934
 - Whether this is really wanted depends on the distro, and I'm not
   100% convinced the likely tags from Unicode are correct (or it'd
   take a lot more data). In any case, starting Calamares in "NL"
   gets me "nl_NL" as translation; presumably starting it in "BE"
   will get me that as well (what about Les Wallons?)
 - This also shows off that it's a real hack to have so much program
   logic in the *widget* parts of each ViewStep. Longer-term,
   a lot of functionality should go to the ViewStep itself, which
   will then control the UI.
2019-05-10 15:02:12 -04:00
Adriaan de Groot
1857952431 [libcalamares] Add convenience accessor for translations
- Which translations are available is a global property
   of Calamares itself, not of the plugins, so getting
   the model of available translations should live there.
   Move the relevant code (which is simple) from the
   Welcome module.
2019-05-10 12:07:24 -04:00
Adriaan de Groot
18ed4c74ef [libcalamares] Move more into the locale service
- Use namespace CalamaresUtils::Locale consistently for this service.
 - Move locale-related non-GUI support code from the Welcome module
   to libcalamares; these are generally useful. Both Label (naming a locale)
   and LabelModel (managing a bunch of those Labels) have been moved.
2019-05-10 11:46:20 -04:00
Adriaan de Groot
b490e30a5e [welcome] Use the new locale lookup after GeoIP gets a 2-letter code 2019-05-10 11:03:01 -04:00
Adriaan de Groot
69f05bd34a Merge branch 'master' into shuffle-geoip 2019-05-10 08:04:36 -04:00
Adriaan de Groot
2a448c057d [welcome] Provide API for updating the country
- Changing country will pre-select the language most likely
   for that country (it doesn't, yet, since we don't have the data).
2019-05-10 07:53:44 -04:00
Adriaan de Groot
cb7c38daba [welcome] Support GeoIP country lookup 2019-05-09 15:15:03 -04:00
Adriaan de Groot
502d43d111 [welcome] [partition] Rename GlobalStorage variable used for storage
- Change name passed into GS to use "GiB" instead of "GB", for
   consistency. This needs to be done in consumers as well.
2019-05-06 16:39:14 +02:00