Commit Graph

297 Commits

Author SHA1 Message Date
Federico Fissore 0b4a4fb0b5 No need to use static variables 2015-05-20 11:42:44 +02:00
Chris--A b2f8b9b6c1 IDE: prevent multiple bad name notifications.
This patch will prevent the IDE from informing the user about a bad
sketch folder name multiple times.

Now the user is informed once at start up only, or once when it is
detected during a rescan of the folders.
2015-05-20 11:35:46 +02:00
Chris--A af812a551b Added support for .hh and .hpp libraries 2015-05-20 01:36:11 +10:00
Federico Fissore 9191442aea Libraries: fixed incorrect handling of null types 2015-05-19 16:26:03 +02:00
Federico Fissore 42b07f0337 Libraries bundled with cores will take the type of that core, instead of relying on an undocumented 'types' property. Fixes #2875 2015-05-19 12:24:11 +02:00
Federico Fissore 4c3de26631 Don't export sketch if the underlying core does not support it. Fixes #3171 2015-05-18 13:34:29 +02:00
Federico Fissore d008d9de81 Merge pull request #3141 from cmaglie/fix-recursive-delete
Fix for FileUtils.recursiveDelete() when dealing with symbolic links
2015-05-15 16:50:22 +02:00
Federico Fissore 7816ee3f10 New Preferences window: renders fine on every OS and it's easier to adapt using NetBeans as visual editor. Fixes #3140 2015-05-15 15:52:52 +02:00
Cristian Maglie 971bd77058 Removed redundant call to File.deleteIfExists()
file is already checked for being not null, no need to check again.
2015-05-14 19:36:37 +02:00
Cristian Maglie 956ddda98e Removed buggy redundant check in FileUtils.deleteIfExists()
The documentation for File.delete() says that the method return true
if the the file is successfully deleted, otherwise false is returned.
An exception is thrown only when the file is not accessible (for
permission problem).

Removing the extra check solves another problem, for example in a
folder with the following situation:

    linkToFileA -> FileA
    FileA

if we remove FileA, we remain with a broken link that can't be removed
using FileUtils.deleteIfExists() because calling File.exists() on a
broken link returns *false*. This commit solve this problem.
2015-05-14 19:18:24 +02:00
PaulStoffregen 0210c6b53a Fix Uncategorized warning message 2015-05-13 14:00:30 -07:00
Federico Fissore 74ace6674a Better naming and use of File constructor (avoids hardcoding system dependent path separator) 2015-05-13 10:21:57 +02:00
Federico Fissore 90a533b82c Using FileUtils.copyFile instead of dealing with raw streams 2015-05-13 10:16:09 +02:00
Federico Fissore 96b7c5ec6b MacOSX: fixed some failing tests 2015-05-12 15:23:22 +02:00
Federico Fissore e8c4980c4e Added BaseNoGui.VERSION_NAME_LONG: it includes "Hourly Build DATE" in case of a hourly build 2015-05-11 10:48:52 +02:00
Federico Fissore 5064af486f Added .editorconfig files http://editorconfig.org/ 2015-05-08 10:18:43 +02:00
ricardo.jl.rufino c3e1a9443c simple code refactor on PdePreprocessor 2015-05-07 17:15:49 +02:00
Arnav Gupta 4d029de000 saveHex: rename recipe.hex -> recipe.output
Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
2015-05-07 11:57:12 +02:00
Arnav Gupta 78936541b7 update Sketch menu, add Save hex option
* Moving Upload options from "File" menu to "Sketch" menu as those
     are sketch actions more than file actions.

Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
2015-05-07 11:57:12 +02:00
Federico Fissore 11327bb3a6 Starting 1.6.5 2015-05-07 11:56:38 +02:00
Federico Fissore d0d9aa82d1 Merge pull request #3017 from cmaglie/programmer-pref-override
programmer.txt definitions must have priority over platforms.txt tools definitions
2015-05-06 15:49:33 +02:00
Federico Fissore e2bf41ddd9 MacOSX: fixed error when clicking on https urls. Fixes #3083 2015-05-06 09:11:00 +02:00
Federico Fissore 03a43370b7 Added missing license headers to files added with the last commits 2015-05-05 14:29:15 +02:00
Federico Fissore 85b2298ca7 When IDE is started and built in core is newer than installed one and this check hasn't been notified before, show "please update" modal 2015-05-05 13:03:28 +02:00
Federico Fissore de95ef6c41 Predicates: extracting anonymous inner classes for better reuse 2015-05-05 11:56:56 +02:00
Federico Fissore 9b58812d1d Preparing the ground for rewriting Preferences GUI code (and hopefully fixing the tiny-pref-window bug on macosx) 2015-05-05 10:02:12 +02:00
Federico Fissore 7e7a9d0fe8 Disabling uncertified boards warning even in java code, for good measure 2015-05-05 09:17:50 +02:00
Federico Fissore 060ec30e1c GPGSignatureVerification: better error handling when reading signature 2015-05-05 08:49:01 +02:00
Federico Fissore 0c123d7d14 Deleting json files if they are some how corrupted. Fixes #3015 2015-05-04 17:44:16 +02:00
Federico Fissore 875a775e93 Mitigates #3074 by avoiding NPE. Making the IDE work with system toolchains remains to be fixed 2015-05-04 17:28:39 +02:00
Federico Fissore cd49d29e52 Lots of unclosed input and output streams now properly closed. They were preventing Boards Manager from working on Windows 2015-05-04 15:44:34 +02:00
Federico Fissore 19bb40cbb1 ContributionInstaller: downloadIndex -> download 2015-05-04 12:54:12 +02:00
Federico Fissore a214564952 Boards Manager: platforms listed in non-signed package index files goes under "Contributed" category 2015-05-04 12:05:50 +02:00
Federico Fissore cddfa2891e Boards Manager: package index file with name starting with "test_package_" are preserved 2015-05-04 12:05:50 +02:00
Federico Fissore ecf432fadc Boards Manager: downloading additional files as specified in preference 'boardsmanager.additional.urls' 2015-05-04 12:05:50 +02:00
Federico Fissore 1f1f5b5c0e Copying bundled signature file if missing from user's preferences folder 2015-05-04 12:05:50 +02:00
Federico Fissore cf1879f948 Introducing GPG signature verification when loading main package_index file 2015-05-04 12:05:50 +02:00
Federico Fissore 804480ce53 ContributionIndexer now loads and merges content of files named package_SOMETHING_index.json 2015-05-04 12:05:49 +02:00
Federico Fissore 7552636bd1 File.listFiles() can return null 2015-04-29 11:57:27 +02:00
Federico Fissore b10417505f Windows: added comment to DoubleQuotedArgumentsOnWindowsCommandLine to explain the need for such a char replacement 2015-04-24 12:20:42 +02:00
Federico Fissore f54851ecfa Windows: Compiler wasn't supplying Windows command line with the correct double quotes 2015-04-24 12:03:41 +02:00
Federico Fissore d805fb4e1f Renamed compiler.warning_flags pref to compiler.warning_level
Provided a default value for compiler.warning_flags
Releasing avr core 1.6.5
2015-04-24 09:27:28 +02:00
Federico Fissore 4cf77cd90d If previously downloaded package_index.json is older than the bundled one, the bundled one wins 2015-04-23 11:10:54 +02:00
Cristian Maglie a7e6a39f4e programmer.txt has now priority over platforms.txt tools definitions
This allows properties defined in programmers.txt to override generic
configurations in platform.txt where needed, for example in the
following configuration:

programmers.txt:

   myprog.name=My New Programmer
   [...]
   myprog.program.tool=avrdude
   myprog.config.path={runtime.platform.path}/myprog_avrdude.conf
   [...]

platform.txt:

   tools.avrdude.path={runtime.tools.avrdude.path}
   tools.avrdude.cmd.path={path}/bin/avrdude
   tools.avrdude.config.path={path}/etc/avrdude.conf
   [...]
   tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D "-Uflash:w:{build.path}/{build.project_name}.hex:i"

the generic tools.avrdude.config.path value

   {path}/etc/avrdude.conf

is replaced by the more specific myprog.config.path used in "myprog" programmer

   {runtime.plaform.path}/myprog_avrdude.conf
2015-04-22 14:33:20 +02:00
Cristian Maglie 5af390b5e2 Added missing eclipse classpath entries 2015-04-21 18:28:26 +02:00
Federico Fissore 96c4576962 Added --preserve-temp-files command line option 2015-04-15 11:00:01 +02:00
Federico Fissore 3465fcf97b File.deleteOnExit is not recursive. Replaced by DeleteFilesOnShutdown shutdown hook. Fixes #2971 2015-04-15 10:21:37 +02:00
Federico Fissore eacddd6120 Block discovery threads until packages is not null, otherwise boards discovered during startup will miss model name 2015-04-13 15:36:17 +02:00
Federico Fissore 350adb99cb Also SerialDiscovery was affected by bug found at 40535dfc55. Fixes #2892 2015-04-13 13:38:55 +02:00
Federico Fissore 40535dfc55 NetworkDiscovery was silently failing because packages werenìt ready yet. Fixes #2837 2015-04-13 13:29:05 +02:00
Federico Fissore b42c6667e1 Better preference for setting warnings level. See 61592d78fa (commitcomment-10668365) 2015-04-13 12:22:37 +02:00
Federico Fissore c740f251f4 SAM boards stop compiling due to way of handling params with spaces on different OSs. Fixed 2015-04-13 12:05:00 +02:00
Federico Fissore 4c9e5fc564 Restored error messages. Got rid of MessageSyphon as ther were losing some error messages. Fixes #2737 2015-04-10 17:44:13 +02:00
Federico Fissore 61592d78fa New preference: enable all compiler warnings, off by default. Fixes #1728 and #2415. Also affects #2634 and #2207 2015-04-10 15:29:15 +02:00
Federico Fissore 7d0ffe92b2 Lib/Board Manager CRC check is now case insensitive. Fixes #2953 2015-04-10 09:52:31 +02:00
Federico Fissore 3c67e74382 Library Manager: better error message 2015-04-09 16:04:56 +02:00
Federico Fissore b35ab60ea2 Library Manager: some lib names end with numbers, hence separate version with 'version' 2015-04-09 15:56:15 +02:00
Federico Fissore f0cc644d8f Library installer: made messages play nicer with i18n 2015-04-09 15:30:40 +02:00
Kristian Sloth Lauszus 26ae4d13b8 Don't throw exception if library is already installed 2015-04-09 14:56:24 +02:00
Kristian Sloth Lauszus ada7b41063 Print library name when installing library via library manager 2015-04-09 14:47:58 +02:00
Federico Fissore 87e2e68b85 CLI: Board and Lib Manager, syntax change: --install-boards (plural) and arduino:avr:1.6.2 (with the arch, not the name of the selected platform) 2015-04-09 13:03:43 +02:00
Federico Fissore 6d46bd0bde Useless DropdownBuiltInLibrariesItem removed
Moved LibraryInstaller from app to arduino-core
Moved InstallerJDialogUncaughtExceptionHandler to the generic contributions.ui package
2015-04-09 12:17:56 +02:00
Federico Fissore a7024791cd download.php was used to distribute downloads across multiple server. we use dns round robin now 2015-04-09 12:12:10 +02:00
Federico Fissore 6b6866370a Preliminary support to online help/reference 2015-04-08 16:38:36 +02:00
Federico Fissore ba3ecff13c Added missing license headers 2015-04-08 15:38:22 +02:00
Federico Fissore dd3f9fe66c CLI: board manager install latest if version is not specified 2015-04-08 15:35:03 +02:00
Federico Fissore 09255254d7 Preliminary command line support to boards manager and library manager 2015-04-08 15:15:41 +02:00
Federico Fissore 643d9515ac Starting 1.6.4 2015-04-07 17:47:52 +02:00
Federico Fissore b9a90f69d5 Invalid versions don't cause IDE to crash and exit any more. They are reported and contributions are considered missing version. Fixes #2926 2015-04-07 12:05:05 +02:00
Federico Fissore 99fa19c36c Letting postInstallScript fails gracefully 2015-04-02 11:20:53 +02:00
Federico Fissore 3a916633b1 https links were not working properly on mac and win 2015-04-02 09:51:26 +02:00
Federico Fissore 7a97be43a5 Uniformly using versions parsed through semver 2015-04-01 17:11:48 +02:00
Federico Fissore d94e279fdf Showing post install script errors AFTER the installation is completed 2015-04-01 13:23:57 +02:00
Federico Fissore f76d1d5678 Merge pull request #2850 from PaulStoffregen/duplicate-library-detect
Advise of duplicate libraries after compiling
2015-04-01 09:31:10 +02:00
Federico Fissore 5dd49352df Don't add keys (and display a warning) if the missing key doesn't make sense in target platform.txt. For a key to make sense, two tree level must be present already, eg: tools.avrdude 2015-04-01 09:03:17 +02:00
Federico Fissore 6e9d0e5f99 Ignoring rewrite rules if rewriting=disabled is present in target platform.txt 2015-04-01 09:01:31 +02:00
Federico Fissore 29cb42eb50 Bundled core is again inside the hardware folder.
Fixed a handful of glitches when dealing with multiple installed cores
2015-03-31 17:42:41 +02:00
PaulStoffregen b5367bcdbe Advise of duplicate libraries after compiling 2015-03-30 10:24:18 -07:00
Federico Fissore 1fcd6ff1ce ArchiveExtractor was not making symlinks the right way 2015-03-30 17:12:38 +02:00
Federico Fissore ecde17b6e2 Platform.txt in-memory rewrite rules: whenever loaded, if a property is set to a value known to be wrong/old, that property is replaced with the current/right value.
This happens in-memory, no platform.txt file were harmed during rewriting
Mitigate #2838
2015-03-30 16:18:08 +02:00
Federico Fissore ea5155656a Starting 1.6.3
Updated toolchains: linux statically compiled, added gcc lto plugin (disabled)
2015-03-30 15:06:59 +02:00
Federico Fissore fe739de2ad Getting rid of other unused jna stuff 2015-03-30 13:55:48 +02:00
Federico Fissore b65b576eb0 Getting rid of native stuff. Avoid native stuff: it will break. Fixes #2828, #2829, #2830 2015-03-30 10:46:37 +02:00
Federico Fissore c21b8b7445 Versions: replacing ending "b" with .1 2015-03-27 14:51:20 +01:00
Federico Fissore 3bcbf22a2a Libraries under "contributed" in lib menu are those that have types "contributed" 2015-03-27 14:51:20 +01:00
Federico Fissore 6e498ee5b9 LibraryManager: better type filtering 2015-03-27 14:51:19 +01:00
Federico Fissore 74a8ccdeb4 Introducing bundled_library_index.json 2015-03-27 14:51:19 +01:00
Federico Fissore a1d99b9a9b LibraryManager: category is now topic, type added to list official/contributed/recommended libs 2015-03-27 14:51:19 +01:00
Federico Fissore b0a357f5d3 Library Manager: added Type filter dropdown 2015-03-27 14:51:19 +01:00
Federico Fissore 6679393b7a Assuming the bundled version is an AVR bundle, force unpacking the default package if it's missing 2015-03-27 14:51:19 +01:00
Federico Fissore 9b5fa9fb9a Added commons-compress license 2015-03-27 14:51:19 +01:00
Federico Fissore ac4aea47b0 json deserializer: don't fail on unknown props, thus allowing us to upgrade the schemas without breaking running IDEs 2015-03-27 14:51:18 +01:00
Federico Fissore 24b32422e2 Fixed a bunch of code inspection warnings 2015-03-27 14:51:18 +01:00
Federico Fissore ed3d467329 DownloadableContributionsDownloader: fixed wrong math when downloading partially downloaded files 2015-03-27 14:51:18 +01:00
Federico Fissore e646ca2525 ContributionInstaller OS check: MacOSX now uses real arch rather than JVM one 2015-03-27 14:51:18 +01:00
Federico Fissore a19cdf1492 ArchiveExtractor: allowing symlinks with absolute paths, still printing a warning 2015-03-27 14:51:18 +01:00
Federico Fissore 02b7fa87eb Leave relative symlinks as they are 2015-03-27 14:51:17 +01:00
Federico Fissore 59b8177916 Separate HTTPS proxy support (server and port) 2015-03-27 14:51:17 +01:00
Federico Fissore 29d20f297c Fixed missing symlinks after extraction 2015-03-27 14:51:17 +01:00
Federico Fissore fc4179f1f7 Cores manager:
added post install script support
absolute path symlinks are converted to relative to the local folder and a warning is printed
2015-03-27 14:51:16 +01:00
Federico Fissore 6b5244eafe Some ArchiveExtractor bugs fixed and its code formatted 2015-03-27 14:51:16 +01:00
Federico Fissore 323458c8d8 Added HTTPS proxy properties 2015-03-27 14:51:16 +01:00
Federico Fissore b32dc93506 Ported UX of library manager to core manager 2015-03-27 14:51:16 +01:00
Federico Fissore 17d3729426 Package names refactoring: contributions is the main package, libs and cores are subpackages 2015-03-27 14:51:16 +01:00
Federico Fissore fe85083f0b Setting preferences.txt permissions to 600 on linux and mac 2015-03-27 14:51:16 +01:00
Federico Fissore 4db6c737be Preferences: added proxy settings 2015-03-27 14:51:16 +01:00
Federico Fissore 103f2e433a Continuing improving library manager 2015-03-27 14:51:15 +01:00
Federico Fissore 8e5a04f6a9 Various improvements on library manager 2015-03-27 14:51:15 +01:00
Federico Fissore 6d55c6ea03 FileDownloader: made it play nice with 301 status code 2015-03-27 14:51:15 +01:00
Federico Fissore 0489585c3e Now using semantic versioning 2015-03-27 14:51:14 +01:00
Federico Fissore 251bb76ece Splashscreen 2015-03-27 14:51:13 +01:00
Federico Fissore e5e5880a15 HostDependentDownloadableContribution better handles Macosx 2015-03-27 14:51:13 +01:00
Federico Fissore d050c4ee4a AVR bundle: by default the IDE is built bundled with the avr toolchain and cores
By passing -Dlight_bundle=1 to ant, an light/empty IDE is built
2015-03-27 14:51:13 +01:00
Cristian Maglie 2c234a09f1 Libraries Installer UI refactor 2015-03-27 14:51:12 +01:00
Federico Fissore f833ff84a7 Base and BaseNoGui: removed uncaught exception handler
ContributionManagerUI: after install/upgrade/remove, cell updated and not in edit mode
2015-03-27 14:51:12 +01:00
Cristian Maglie 1f564d6709 Cores Installer UI refactor (WIP) 2015-03-27 14:51:12 +01:00
Federico Fissore 56b9fd7d93 LibraryIndex: removed cateogories field, generating it every time
LibrariesIndexer: setting category to Uncategorized when missing
2015-03-27 14:51:11 +01:00
Federico Fissore 86f84c8a3e Changed package_index and library_index json urls to use download.php proxy
Installed a ESC key listener: it allows to close the dialog pressing the ESC key
2015-03-27 14:51:11 +01:00
Federico Fissore 589f514a47 ContributedPlatform.getResolvedTools returns a copy of the original list (otherwise violating inner state) 2015-03-27 14:51:11 +01:00
Federico Fissore 6007403834 Removed some printStackTrace in favour of throwing RuntimeExceptions. DefaultUncoughtExceptionHandler will handle them 2015-03-27 14:51:11 +01:00
Federico Fissore fe6718ce4f Removing previously installed platform on upgrade 2015-03-27 14:51:11 +01:00
Cristian Maglie b1e0249a4f Tools path are now always available through preferences
The preference key is:
{runtime.tools.TOOLNAME.path}
{runtime.tools.TOOLNAME-VERSION.path}

For example the tool "avrdude" is now available through

{runtime.tools.avrdude.path}

or if a specific version is needed:

{runtime.tools.avrdude-5.11.path}
2015-03-27 14:51:11 +01:00
Cristian Maglie 12a2d872d6 Added empty library_index.json if default is not available. 2015-03-27 14:51:10 +01:00
Cristian Maglie 98fec7222b Use Downloader* helper classes on ContributionInstaller.
This rationalize and simplify a lot of code.
2015-03-27 14:51:10 +01:00
Cristian Maglie 0755c7c004 Library installer UI 2015-03-27 14:51:10 +01:00
Cristian Maglie 0b9223c158 Added Contributions for libraries 2015-03-27 14:51:10 +01:00
Cristian Maglie 75d1cb874d Available boards are updated right after closing "Boards Installer"
Boards menu list has been moved into Base class where it looks a more
appropriate place to reduce interactions between Editor class and Base
class.

Probably shared menus can be moved in a separate, specific, class.
2015-03-27 14:51:10 +01:00
Cristian Maglie 0783f40ba5 Added VersionComparator to be used for comparing versions numbers (WIP) 2015-03-27 14:51:10 +01:00
Cristian Maglie fe2d087ebd Implemented "Update List" button of Boards Installer. 2015-03-27 14:51:10 +01:00
Cristian Maglie 5d1e4e3f70 Inverted MVC logic on installer to get a cleaner code.
Part of the control logic was moved from listeners to GUI class methods.
This goes against a pure MVC but makes the code much more cleaner.
2015-03-27 14:51:10 +01:00
Cristian Maglie 56ae061d7e Improved platforms installer GUI. Platforms are now downloaded from network. 2015-03-27 14:51:09 +01:00
Cristian Maglie b249be46c7 Added FileDownloader 2015-03-27 14:51:09 +01:00
Cristian Maglie 915c9d6f8f Introducing 'Progress' interface. 2015-03-27 14:51:09 +01:00
Cristian Maglie 2a8c742453 Added Contribution installer, install and remove correctly.
Tested on linux
2015-03-27 14:51:09 +01:00
Cristian Maglie 373a625903 GUI for platform installer, first draft 2015-03-27 14:51:09 +01:00
Cristian Maglie 100dd21bd0 Added Contributed Platforms.
- TargetPackage / TargetPlatform / TargetBoard are now interfaces
- Contributions installed are detected during init time
- Tools must be referenced through "path" property (automatically set
  by the IDE to the contributed tool path)
2015-03-27 14:51:09 +01:00
Cristian Maglie 183c386e8c PGP Digital signature verifier class 2015-03-27 14:51:09 +01:00
Cristian Maglie 8c49ee4206 Added class ArchiveExtractor 2015-03-27 14:51:09 +01:00
Cristian Maglie 7d5d7a8b31 Added FileNativeUtils class (for Linux, Windows and Mac)
Provides the following native methods:
- chmod
- link
- symlink
2015-03-27 14:51:09 +01:00
Cristian Maglie 38aefb2ab4 Added FileHash utility class 2015-03-27 14:51:09 +01:00
Cristian Maglie 0588790f5b Added JARs Bouncy Castle, Jackson, Common-compress 2015-03-27 14:51:08 +01:00
Cristian Maglie 48ad7ed769 Added FileUtils.createTempFolderIn(folder) method 2015-03-27 14:51:08 +01:00
Federico Fissore a8b29d48a5 MacOSX: it looks like filtering cu* ports was not a good choice. Filtering tty* instead 2015-03-27 14:46:30 +01:00
Federico Fissore bf0a0dc566 MacOSX: disabling loading of Quaqua LaF 2015-03-26 12:07:51 +01:00
Federico Fissore f183966296 Added GTKLookAndFeelFixer, courtesy Klaus Reimer
https://www.ailis.de/~k/archives/67-Workaround-for-borderless-Java-Swing-menus-on-Linux.html
It makes menu separators visible on linux with the GTK look and feel
2015-03-25 10:16:07 +01:00
Federico Fissore 70bbe398ab Network and Serial board ports discovery is now asynchronous, hence it does not block "tools" menu any more.
Fixes #2788
2015-03-24 13:41:10 +01:00
Federico Fissore ad72e41aa0 Introducing CollectStdOut and CollectStdOutStderrExecutor, handy classes for executing external execs and collecting their outputs 2015-03-19 10:17:10 +01:00
Martino Facchin 2222e0f2cd Merge pull request #2709 from projectgus/master
Fix auto-reset on Leonardo-derived boards from Linux hosts
2015-03-16 15:29:47 +01:00
Richard Wackerbarth 0644bdc51c Convert to action pattern to allow multiple actions 2015-03-11 10:28:32 -05:00
Richard Wackerbarth 2f65f5fdc1 Provide Hooks before and after the build process
Closes #2732
2015-03-11 10:28:32 -05:00