1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-02-01 21:52:12 +01:00

354 Commits

Author SHA1 Message Date
Cristian Maglie
aef6d2ac98 Filter ContributedPlatformReleases after fully building them 2021-05-11 14:34:14 +02:00
Martino Facchin
cec4f41dd7 Board Manager: searching returns also near matches
The original filter would only populate the contribution list with perfect matches.

Previously, if a core was installed but didn't match the search it wouldn't appear in the results (due to a board being added or the description changed);
the user could then install (not upgrade) the core, triggering a confusing situation.

When moving to arduino-cli backend we should take care of this issue, at least visually (the cli logic would correctly update/downgrade the core)
2021-05-11 14:31:21 +02:00
Cristian Maglie
8ceb6c29f8
Merge pull request #11508 from cmaglie/deprecation_field
Added basic "deprecation" support for platforms
2021-05-10 16:06:08 +02:00
Cristian Maglie
7a9db6ccf8 Show maintainer instead of author in lib manager 2021-05-10 15:55:54 +02:00
Cristian Maglie
12cb3f0dc9 Added 'deprecated' label 2021-05-10 10:06:39 +02:00
Cristian Maglie
24556e7bf2 Deprioritize deprecated contributions 2021-05-10 09:59:16 +02:00
Cristian Maglie
cecc61c7eb Propagate deprecated flag in ContributedPlatformReleases 2021-05-10 09:59:16 +02:00
Cristian Maglie
c82005c2c0 Do not delete unused 3rd party index files 2021-05-06 10:27:27 +02:00
Adrian Hughes
3f0699a949
Optimize applyFilter() to Avoid Redundant String Operations (#11284)
if 'showingHint' == true, then many potentially expensive String operations are being executed on an empty string. This change wraps these operations in an if block which will only run them when needed.
2021-04-09 13:36:32 +02:00
Cristian Maglie
10bee204e6 Lib manager: added getContribModel() as in Boards manager 2020-07-23 12:10:45 +02:00
Cristian Maglie
851b5b14b1 Lib manager GUI is updated after installing/upgrading library 2020-07-23 12:10:45 +02:00
Cristian Maglie
a81772afc6 Boards Manager: update UI after an install/remove 2020-07-23 12:10:45 +02:00
Cristian Maglie
1361bce6bc Board manager: Update filters UI only if categories changes 2020-07-23 12:10:45 +02:00
Cristian Maglie
b66ed5e5d7 LibraryManager: correctly apply "type" and "category" filters together
Previously changing "Category" would filter libraries by the selected
category but without applying the "Type" previously selected.
For instance selecting Type="Installed" and Category="Communication"
will display *all* the libraries belonging to "communication" instead of
the installed only.

This commit fix this behavior.
2020-06-29 17:27:11 +02:00
Cristian Maglie
3263967893 Removed unused include and clueless whitespaces 2020-06-29 17:13:43 +02:00
Cristian Maglie
42865229c2 Library manager: update filters combo box only if there are changes
The filters content is unlikely to change, so just prevent it from live
updating it because it has some side effects:

- it's slow
- it changes the selection back to the default and it's very tricky to
  make it re-select the previous selection.

Fixes #10439
2020-06-29 16:58:25 +02:00
Martino Facchin
6f943ea4a8
Merge pull request #9843 from cmaglie/fix-proxy-prefs
Fixed user/pass preferences save for "manual" proxy settings.
2020-03-23 12:06:16 +01:00
Matthijs Kooijman
2659875078 Set foreground color on board/library titles in managers
In commit 93581b03d (Set foreground color in library/board manager), the
foreground color was set in addition to the background color, to make
sure that the library and board manager would remain readable even with
a non-standard color scheme (e.g. a dark theme).

When that commit was created, this worked properly. However, between
creating that commit and merging it as part of #9272, the title
rendering was changed from being part of the description (which had its
color set up properly) to being part of the title border (which used
default colors) in #9262.

This commit fixes this again by applying the foreground color also to
the TitledBorder component.

In ContributedPlatformTableCellJPanel this also moves the creation of
the TitledBorder into the constructor, and for
ContributedLibraryTableCellJPanel upwards in the constructor (where it
is run unconditionally), so the property can be final.
2020-03-14 13:07:46 +01:00
Cristian Maglie
fcb53ba6e1 Fixed user/pass preferences save for "manual" proxy settings.
There was an error in the following constants:

  PREF_PROXY_AUTO_USERNAME = "proxy.manual.username"
  PREF_PROXY_AUTO_PASSWORD = "proxy.manual.password"

they should be set to "auto" and not "manual":

  PREF_PROXY_AUTO_USERNAME = "proxy.auto.username"
  PREF_PROXY_AUTO_PASSWORD = "proxy.auto.password"

Changing the constants to the correct value now will fix the problem for
future installations of the IDE but will produce an annoying side-effect
for users upgrading from previous version of the IDE: they will lose
their saved user and pass (because it was saved as "proxy.manual.*")
and the IDE will suddenly stop working without any clear reason.

To avoid this I've left the value to "proxy.manual.*" and removed
the distinction from AUTO and MANUAL, so now we have only:

  PREF_PROXY_USERNAME = "proxy.manual.username"
  PREF_PROXY_PASSWORD = "proxy.manual.password"

The corresponding textbox in the preference dialog will be filled based on
the PROXY_TYPE selection.
2020-03-06 18:55:50 +01:00
Cristian Maglie
8793a6d351 Fix libraries comparator logic
Previously it could lead to contract violations for example consider
this:

A = Library{ Name:"A", Types: ["Sensors"] }
B = Library{ Name:"B", Types: null        }
C = Library{ Name:"C", Types: ["Arduino"] }

it results in:

A<B (because B has Types==null and compare("A","B")<0)
B<C (because B has Types==null and compare("B","C")<0)
C<A (becuase C has Types=="Arduino" and the comparator returns -1)

This commit fix this behavior
2020-02-12 09:54:38 +01:00
Matthijs Kooijman
93581b03d7 Set foreground color in library/board manager
Previously, only the background color was changed to white or light
grey. This worked well for the default theme with a black or dark text,
but not for a dark theme with white or light text.

This commit fixes this by also overriding the text color to be black.
Since the colors are set on the JPanel table cell, but the actual text
is rendered by the description JTextPane, the `setForeground` method is
overridden to forward the foreground color to the description pane.

Note that this commit only touches the table cell and description
inside, the dropdowns and buttons have neither background nor foreground
color set (thus these use both colors from the system theme). It might
be more consistent to also override these, but such native UI components
are typically tricky to colorize properly, so best let the system handle
that normally.

An alternative solution would be only use the default colors, which
would actually preserve the dark theme colors in these managers as well
(rather than forcing black-on-white/grey as now). There are default
colors for selected and non-selected table cells that could be used, but
these are different from the current colors. Additionally, the current
odd/even alternating colors are then also no longer available.
2019-10-16 17:30:40 +02:00
Matthijs Kooijman
7d625181f6 In the board/library manager, create the description component only once
Previously,`makeNewDescription` was called in the constructor and then
again later in the `update` method (board manager) or later in the
constructor (library manager) to recreate the description JTextPane so
it can be filled with text. In all cases, the pane would be created
equal, so there is no point in recreating it.

Now, it is created only once and stored in an instance variable for
later reference. Additionally, `makeNewDescription` now only creates the
JTextPane, the constructor handles adding it (like for other
components).

This change slightly simplifies code, but also prepares for allowing
to change the description text color externally in a later commit.

For the library manager it is not currently strictly needed to have an
instance variable (since the description is only used inside the
constructor), but the instance variable is added for consistency and to
prepare for this same upcoming change.
2019-10-16 17:30:40 +02:00
Matthijs Kooijman
778f681c2f Remove unneeded color-setting code in the boards and library manager
Previously, for the boards manager:
 - InstallerJDialog would set the "selection background" color on the
   table, using the "status.notice.bgcolor" the color (default blueish
   green). This color is not used directly, but made available for cell
   renderers to use.
   a1448876a1/app/src/cc/arduino/contributions/ui/InstallerJDialog.java (L183)
 - For each cell, either a ContributedPlatformTableCellEditor or
   ContributedPlatformTableCellRenderer is used, depending on whether
   the cell is being edited (i.e. when selected).
 - Both of these create a ContributedPlatformTableCellJPanel, and call
   its `update` method, which creates the components for the cell.
 - The `update` method als sets the background color of the description
   to white, which does not actually have any effect because the
   description is not opaque.
   a1448876a1/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java (L271)
   a1448876a1/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java (L309)
   https://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setBackground(java.awt.Color)
 - The `update` method also sets its colors of itself (JPanel) to the FG
   and BG color, or the selected FG and BG color of the table depending
   on the selected status of the cell. These seem to default to black on
   white for non-selected and white on blue-ish for selected cells.
   However, InstallJDialog has replaced the selected BG with a blueish
   green, as shown above.
   Of these, only the BG colors actually seem to take effect. The fg
   color of the description component is actually used (default black).
   a1448876a1/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java (L282-L288)
 - After calling `update`, ContributedPlatformTableCellEditor overrides
   the JPanel background color with a fixed grey color. Similarly,
   ContributedPlatformTableCellRenderer sets an alternating white and
   (slightly lighter) grey background color. Together, this means that
   the background color set by ContributedPlatformTableCellJPanel is
   never actually used.
   a1448876a1/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellEditor.java (L132-L133)
   a1448876a1/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellRenderer.java (L47-L53)

For the library manager, pretty much the same happens.

Effectively, the only colors that were actually used were the background
colors set by ContributedPlatformTableCellEditor and
ContributedPlatformTableCellRenderer. This is problematic because:
 - There is a lot of other confusing and unused code
 - The foreground color is never set. This is fine when it is black or
   another dark color, but when the system is configured with a dark
   theme, the default foreground color will be white, which is
   problematic on a white background.

This commit remove the unneeded code, setting the foreground color
is left for later. It also removes the (now unused) `isSelected` from
`ContributedPlatformTableCellJPanel::update`. For the library manager,
the corresponding argument is still used to decide the "author" color.
2019-10-16 17:30:40 +02:00
Joe Wegner
227bae4f6d Remove the board name from the cell, only in the title. 2019-10-01 08:06:41 -04:00
Joe Wegner
b9265a42b1 Add boarders to the teble items so screen readers will read while walking through the table 2019-09-27 10:29:19 -04:00
Joe Wegner
52c0f6ec60 Add a TitledBorder to panels in bord manager. This really helps the screen reader users. 2019-09-18 09:47:54 -04:00
Joe Wegner
b9c3f008b0 When deleting set modal to false so editor can resume 2019-08-26 10:47:48 +02:00
Joe Wegner
1b515b1767 [Board/Lib manager] When the ide.accessible setting is enabled use buttons instead of links 2019-08-22 09:49:19 +02:00
Joe Wegner
199a943177 Set accessibility description of filter field so screenreaders can tell users where they are 2019-08-22 09:49:19 +02:00
Martino Facchin
a7400216ee Fix UpdateNotification string for boards+libraries 2019-08-21 12:32:27 +02:00
Joe Wegner
710667d15b Remove duplicate code in Preferences 2019-08-21 10:26:53 +02:00
Joe Wegner
2b4c4b57d8 Make UpdateNotification popup accessible
When accessible use buttons instead of links in in Updates Available dialog
Handle buttons and prevent auto-close for accessible dialog box
2019-08-21 10:25:23 +02:00
Joe Wegner
88bda6eb4e Add Accessibility checkbox on Preferences panel 2019-08-21 10:25:01 +02:00
Joe Wegner
6bcd0529c1 Add in accessibility support for screen readers:
ContributedLibraryTableCellJPanel.java: Add description to accessibility context
   ContributedPlatformTableCellJPanel.java: Add description to accessibility context

   ProgressJProgressBar.java:
      Add status to accessibility context
      make progress bar focusable so screen reader can access
2019-08-15 07:14:08 -04:00
Cristian Maglie
2f68d2af1b Remove Base dependency from AstractTextMonitor
See https://github.com/arduino/Arduino/pull/8704#issuecomment-477585720
2019-07-18 10:38:37 +02:00
Cristian Maglie
1cacd79689 Make the dialog appear in the correct position 2019-07-18 10:37:36 +02:00
Cristian Maglie
4dc5176c0f Fix some linter suggestions 2019-07-18 10:37:36 +02:00
Cristian Maglie
ed81292b14 Added library dependencies install dialog 2019-07-18 10:37:36 +02:00
Cristian Maglie
07e1518b28 Now libraries are installed with all the dependencies
This is the base for the GUI that will be introduced in the
next commits.
2019-07-18 10:37:36 +02:00
Cristian Maglie
67e38bc80a LibraryInstaller now autodetects if a library is being replaced
It's no more required to pass this information from outside,
just library that is being installed is now sufficient.
2019-07-18 10:37:36 +02:00
Martino Facchin
e92d5948fe
Merge pull request #8672 from Pieter12345/contextual-menus
Add contextual menus to input fields
2019-04-18 10:00:19 +02:00
Martino Facchin
26f428384b Preferences: remove outdated preferences 2019-04-02 16:20:58 +02:00
Martino Facchin
4c8ac04727 Preferences: allow smaller window since checkboxes take less space
Fixes #8238
2019-04-02 16:20:58 +02:00
Martino Facchin
b1253e2f0a Preferences: arrange checkboxes into two columns 2019-04-02 16:20:58 +02:00
Pieter12345
941050ecf0 Add contextual menus to input fields
- Add contextual menus to text-based monitors (serial / network monitor).
- Add contextual menu to installer dialog search filter fields (library manager / contribution manager).
- Make installer dialogs focus the search filter field on window-open. This prevents pastes from ending up elsewhere in the case that they are performed before the field has been focussed at least once.
Fixes #8423.
2019-03-29 02:26:41 +01:00
Pieter12345
1a6d55480c Make text monitor output area font size dynamically adjustable
Add CTRL +/- and CTRL scroll shortcuts to increase/decrease serial/network monitor output text size. This font size is shared with the editor and adjusting either will update both.
Partially fixes #8615
2019-03-26 17:18:11 +01:00
Cristian Maglie
a5e866f731 makeup: using some lambdas where possible 2019-03-06 13:18:53 +01:00
Martino Facchin
8f5f4f594d [LibManager] Restore "search on type" with 1 second grace period 2019-02-15 10:44:56 +01:00
Martino Facchin
f3d521d820 [Lib Manager] Avoid updating the UI at every keystroke
Fixes #8282
2019-02-14 15:34:21 +01:00
Cristian Maglie
f5f8b7f29c Renamed wrong named variable 2019-01-14 16:53:47 +01:00