v1.0.31: Update version to v1.0.31 Really update dependencies to include fix for multi-channel zones to .xlsx files, which was intended for v1.0.30. v1.0.30: Update version to v1.0.30 Pick up fix for creation of .xlsx files in radios with dual-channel zones. v1.0.29: Update version to v1.0.29 Update Dependencies Pick up fix to downloading the user db v1.0.28: Updae to version v1.0.28 new userdb option funcs v1.0.27: Version v1.0.27 Update dependencies This pulls in the fix for spreadsheet files on the Mac. Github issue 1. Update copyright dates v1.0.26: v1.0.26: Add support for MD-9600 and RT90 radios Thanks to Tyler Tidman Update dependencies Add more gitignore entries (vim swap and macOS breadcrumbs) Remove reference to freenode Add md380 factory firmware version D015.001 v1.0.25: v1.0.25: Update with correct version file Update .gitignore for 64-bit files v1.0.24: Add ability to build for 64-bit windows Also update dependencies debug: Explicitly call WindowsSaveDebuggingInfo Instead of using an init() function, the debug module now requires an explicit call to save the debugging info into a file. v1.0.23: Update dependencies Picked up this fix from the codeplug repository: Process imports on non-fatal parsing errors Previously, if parsing errors were detected on an imported file, the imported file was rejected silently. Bogus. Now, we proceed to use the file and then check for errors. Update contributors list Add Tyler Tidman, VA3DGN. v1.0.22: Update dependencies Makefile: Run "go mod tidy", and go mod vendor" Do these before each build. Also run "make clean" in order to force the build. Include tagged version commits in changelog v1.0.21: v1.0.21: Update dependencies Particularly incorporate fix for writing files to the curren directory, avoiding cross-filesystem link attempt. v1.0.20: v1.0.20: Fix spreadsheet import Include the codeplug module that has been updated with a fix for importing spreadsheets. Update dependencies userdb and go-cmp v1.0.19: Update version to v1.0.19 Update go dependencies to later qt Update .gitignore Update go dependencies Update userdb and dfu to v.1.0.18 Fix reference to the non-existent www.farnsworth.org/dale/editcp It's really at www.farnsworth.org/dale/codeplug/editcp Add the -d option to not use the standard go build process The standard go build process doesn't understand how to build with the QT framework we are using. Just download and then use make for building. v1.0.18: Update version to v1.0.18 Remove dmrRadio instructions from Makefile Update for changes in the userdb API Rework setting progress bar ranges Additional changes for therecipe api changes Now, when a call to enable a combobox widget is made, the widgets change function is called with an index of -1. Now we ignore those calls. These changes resolve the following error message: panic: runtime error: index out of range [-1] Merge pull request #12 from cxbrooks/cxbrooks/enh/11/darwinSupport Cxbrooks/enh/11/darwin support Added instructions for macOS/darwin. Added rules to build under macOS/darwin. Merge pull request #9 from williamh/module finish conversion to a go module finish conversion to a go module I saw that this directory had a go.mod file, but go.sum was missing. I found that go.sum was listed in .gitignore, so this commit removes it from there since it should be in vcs. I then created go.sum by running "go mod tidy" which also updated go.mod based on the imports in the source code. For more information see these blog posts from the go team. https://blog.golang.org/migrating-to-go-modules https://blog.golang.org/using-go-modules Merge pull request #8 from callhands/master Fix misformatted markdown Fix misformatted markdown v1.0.17: Update version to v1.0.17 Split the "codeplug" repo into subdir repos We split the github.com/dalefarnsworth/codeplug repository, based on subdirectories, into 13 repositories. These files from the subdirectory editcp are now found in the repository: github.com/dalefarnsworth-dmr/editcp Update for function signature changes in therecipe qt code Fix Makefile updating docker images with libusb-1.0. Also update the docs on docker qt installation. v1.0.16: Update version to v1.0.16 v1.0.15: Update version to v1.0.15 v1.0.14: Update version to v1.0.14 Add support for Retevis RT84 radio v1.0.13: Update version to v1.0.13 v1.0.12: Update version to v1.0.12 v1.0.11: Update version to v1.0.11 Update copyright notices to include 2019 v1.0.10: Update version to v1.0.10 MD-2017: Add Menu Control and Two Channel opts These two new checkboxes were recentely added to the General Settings window in the MD-2017 CPS. v1.0.9: Update version to v1.0.9 v1.0.8: Update version to v1.0.8 v1.0.7: Update version to v1.0.7 v1.0.6: Update version to v1.0.6 v1.0.5: Update version to v1.0.5 Avoid recursion when setting current record This fixes a panic while deleting a record Include known model names in write codeplug dialog In addition to the model name, e.g. DR780, contained in the codeplug header, include the user-known model names, e.g MD-380 / RT3> v1.0.4: Update version to v1.0.4 v1.0.3: Update version to v1.0.3 Enable General Settings column 3 for all models v1.0.2: Update version to v1.0.2 Reduce the height of the General Settings window To permit the General Settings window to fit in a screen that's 768 pixels high, this commit moves several fields from the second column to the third column. v1.0.1: Update version to v1.0.1 v1.0.0: Update version to v1.0.0 v0.16.11: Update version to v0.16.11 Turn off QT debugging on Linux v0.16.10: Update version to v0.16.10 v0.16.9: Update version to v0.16.9 v0.16.8: Update version to v0.16.8 Optimize updating of dependent field widgets Instead of scanning all of the widgets in a new window, scan only those that have dependent widgets. Also, when a widget changes, only update its dependent widgets. v0.16.7: Update version to v0.16.7 v0.16.6: Update version to v0.16.6 v0.16.5: Update version to v0.16.5 Remove test/debug code v0.16.4: Update version to v0.16.4 Separate radio models on factory firmware Display debugging and panic messages on Windows Debugging messages are displayed in popup windows. Panic messages are saved and displayed on the next invocation of editcp. v0.16.3: Update version to v0.16.3 v0.16.2: Update version to v0.16.2 v0.16.1: Update version to v0.16.1 v0.16.0: Update version to v0.16.0 Add possible radio types to the Basic Information Add the possible radio types to the Model Name field of the Basic Information page. Add ability to remove buttons from the main window The functions of the buttons are duplicated in the Edit menu. Optionally permit the buttons to be removed to save screen area. Remove Undo/Redo capability The burden of maintaining the undo/redo code is much greater than the perceived value. It was an interesting idea and I had fun doing the initial implementation, but now the complexity is higher. v0.15.12: Update version to v0.15.12 v0.15.11: Update version to v0.15.11 Avoid panic on cancel convert codeplug v0.15.10: Update version to v0.15.10 Clear window subscriptions for new records Add HBox.Clear() & VBox.Clear() Add a blank line to record lists Better handle GPS & non-GPS codeplugs Add option to require unique contact names I don't know why the original CPS doesn't require it. Make listIndex a string value Set log prefix to include filename v0.15.9: Update version to v0.15.9 v0.15.8: Update version to v0.15.8 v0.15.7: Update version to v0.15.7 Remove debug messages Avoid double-stuffing record windows Add BeginChange/EndChange internal API Fix copying records between codeplugs This used to fail. For example, if copying a zone, and the channels did not exist, the copy would fail. We now also copy all of the records the requested records depend on. Undo/redo of this operation does not preserve the order of the records. I'm still looking into this. I'm tempted to remove undo/redo entirely. Add ability to set button definitions v0.15.6: Update version to v0.15.6 v0.15.5: Update version to v0.15.5 Revert several commits to regain stability I made several changes without adequate testing, resulting in instability. I will revert these commits now: commit 8e744aa70c1fc92adcf69a076dd565b305cd170b Add ability to set button definitions commit 8e10281ef0d5f2364e7361927b31657b6080cb70 Clean up some UI functions commit e0dfdc35fc500c349cc6119f8fd8cf73395265d4 Fix copying records between codeplugs commit 4d418dcaaa25219e28b8b44da72f8921b8651b49 Remove Undo/Redo. See if anyone complains I'll add those fixes in later after better testing. v0.15.4: Update version to v0.15.4 v0.15.3: Update version to v0.15.3 Remove Undo/Redo. See if anyone complains v0.15.2: Update version to v0.15.2 Fix copying records between codeplugs This used to fail. For example, if copying a zone, and the channels did not exist, the copy would fail. We now also copy all of the records the requested records depend on. Undo/redo of this operation does not preserve the order of the records. I'm still looking into this. I'm tempted to remove undo/redo entirely. checkCodeplug: Rename "Update" to "Re-scan ..." Rename it to "Re-scan for invalid values". Some interpreted "Update" to mean that it would fix the listed invalid values. v0.15.1: Update version to v0.15.1 Fix app name back to 'Codeplug Editor' It accidentally got changed to 'Codeplug Editor x'. v0.15.0: Update version to v0.15.0 Add ability to set button definitions Add ability to edit text messages v0.14.9: Update version to v0.14.9 Makefile: Remove "upload" target Fix build of docker_usb images These recipes weren't complete before. Now "make docker_usb" should work right after installing docker. It can be run again to update the docker usb images. v0.14.8: Update version to v0.14.8 Enable changing multiple records at a time This commit adds a feature to provide for setting a field on multiple records. To use it, select multiple records in the record list oon the left. Any field changes made will be applied to all of the selected records. Add export text with one line per record While we're here, we'll also remove the index ([1]) after record and field names. It's not used and I think it confuses people who would want to edit the text file and reorder records or fields. Makefile: remove personal targets v0.14.7: Update version to v0.14.7 Unabbreviate countries/states for MD-UV380 usersdb There is no benefit to abbreviating the userdb for the MD-UV380 because 100 bytes are statically allocated for each entry. So, we use full country and state names. Remove error msg from popup title Makefile: Run "uploaded" after uploading The uploaded program will move the uploaded files to their final directories. v0.14.6: Update version to v0.14.6 v0.14.5: Update version to v0.14.5 Warn: MD-2017 & MD-UV380 userdb only work on CSV FW Add General Settings field to enable ContactsCSV v0.14.4: Update version to v0.14.4 Revise flash memory writing for MD-UV380 users db The MD-UV380 has the users db in the processor's flash memory, not in a separate SPI flash memory. This commit makes that happen. Add missing MD-2017 General Settings Update thanks popup message Set default values for fields. This is useful when converting from one codeplug type to another. Fields that didn't exist in the first type will now take on default values, instead of invalid ones. Fix codeplug radio type conversion When importing text files, match field names with or without a trailing "A". Also, when converting to a new codeplug type, clear all records before importing the new text records. Add an "experimental" preference and CLI flag This will be used to enable broken or experimental features. Currently, it has no effect. internal: rename functions using types, not models Several function names are no longer correct, rename them to match what they do. Clean up changelog generation script Makefile: Add target to upload without pushing v0.14.3: Update version to v0.14.3 v0.14.2: Update version to v0.14.2 Sort frequency ranges before showing to the user Generate a changelog on upload v0.14.1: Update version to v0.14.1 v0.14.0: Update version to v0.14.0 Add conversion of codeplug to a new radio type userdb: Add users support for MD-2017 and MD-UV380 radio: Change funcs to take io.reader/io.writer Move "Write factory firmware" up a menu level Initial support for the MD-UV380 & MD-2017 radios debug: Print dprint args with "%#v" Added a Dup option to record lists Dup is like Add, but places the new records immediately after the records they were copied from. v0.13.1: Update version to v0.13.1 Add option to download the KD4Z mods to md380tools v0.13.0: Update version to v0.13.0 Update menu bar after checking codeplug validity v0.12.9: Update version to v0.12.9 radio: Validate codeplug when reading/writing it Check the codeplug for errors after reading it from the radio as well as before writing it to the radio. Show a popup if errors are found. v0.12.8: Update version to v0.12.8 v0.12.7: Update version to v0.12.7 Enable full stack backtrace on panic() The recover() that was previously added was ill considered. Debugging is helped by having the stack backtrace. Update menubar after preferences are edited codeplug: Maintain a slice of warning strings Use this slice to show which fields have invalid values internal: remove ignoreWarnings parameter Remove setting to suppress warnings Add menu item to show invalid fields We now don't list invalid fields when loading or saving a codeplug. Instead when there are errors, we refer the user to this menu item. channel: Show Tx Offset instead of Tx Frequency internal: Revamp AddFieldRow(s) functions channel: Add Emergency System field We still need to add the Page to define the available emergency system. v0.12.6: Update version to v0.12.6 Add installer for windows version of dmrRadio Add warning before updating codeplug or user db Corruption may occur if a signal is received while writing to the radio. We add a warning to turn to an unprogrammed channel. v0.12.5: Update version to v0.12.5 Oops: Add privacySettings.go to repository v0.12.4: Update version to v0.12.4 Add the ability to edit privacy settings generalSettings: Add Keypad Tones field v0.12.3: Update version to v0.12.3 Fix progress functions and quiet down the linter Makefile: Only tag commits updating version v0.12.2: Update version to v0.12.2 v0.12.1: Update version to v0.12.1 dmrRadio: Add dmrRadio targets to Makefile v0.11.9: Update copyright to 2017-2018 cleanup: Remove unused variable: downloadChecked Update version to 0.11.9 Add writing of original firmware version D14.04 Used on the newest MD380s makefile: Do a git-push on "make upload" v0.11.8: Update to version 0.11.8 windows: Do uninstall silently, without a popup window v0.11.7: Update version to 0.11.7 userdb: Remove "european" option Sensitive data has been removed from the source database for EU hams, this option is no longer needed. Makefile: "make upload" now implies "make tag" v0.11.6: Update version to v0.11.6 v0.11.5: Update version to 0.11.5 v0.11.4: Update version to 0.11.4 v0.11.3: Update version to 0.11.3 userdb: Default to existing db if < 12 hours old The user can force a download of a new db by checking a box. Update version to 0.11.2 v0.11.1: Update version to v0.11.1 Add image files for logo v0.11.0: Update version to 0.11.0 v0.10.18: Update version v0.10.18 Add "Menu Items" editing window v0.10.17: Update version to v0.10.17 v0.10.16: Update version to v0.10.16 v0.10.15: Update version to v0.10.15 Fix firmware URL downloaded if default is selected This bug was introduced in commit 91d93926d03a5aa16f1888f578e33841eee6a917. v0.10.14: Update version to v0.10.14 Download from correct original firmware URL v0.10.13: Update version to v0.10.13 v0.10.12: Update version to 0.10.12 v0.10.11: Update version to 0.10.11 v0.10.10: Update version to v0.10.10 v0.10.9: Update version to v0.10.9 Add CiInCallCriteria field Clarify European user db option Rename 'Group List' to 'RX Group List' Add filename to userdb dialog Update year in copyright notice Fix error messages on downloading the User DB Correct contributor name in thanks() v0.10.8: Update version to v0.10.8 Add a Help->Thanks menu entry Acknowledge those who have helped develop editcp. Add a icon for editcp.exe This icon was kindly provided by Jose Melo (CT4TX). Add ability to suppress invalid field warnings Add a preference checkbox that will silently ignore invalid fields when reading and writing codeplug files. Save File: Handle Ingore Warnings correctly While saving a file, if the user selects the "Ignore" button after being shown warning messages, go ahead and save the file. v0.10.7: Update version to v0.10.7 Update Makefile to supply 99-md380.rules udev file Also add a message when installing to copy that file to /etc/udev/rules.d v0.10.6: Update verion to v0.10.6 v0.10.5: Update version to v0.10.5 v0.10.4: Update version to v0.10.4 Revert "Update dll files to latest version from ST Micro" This reverts commit 0a93906ee3f9974b6e952c550dc67d7ded8d1bec. Apparently the latest (smaller) versions of these dll files fail under some circumstances. We'll go back to the versions currently used by the various CPS programs. v0.10.3: Update version to v0.10.3 v0.10.2: Update version to v0.10.2 Makefile: add stdfu/*.go as dependencies Makefile: make win installer depend on dll files Update dll files to latest version from ST Micro Bonus: The new files are significantly smaller than the ones I previouslly used. v0.10.1: Update version to v0.10.1 v0.10.0: Update version to v0.10.0 Update usersDB dl checkbox on euro checkbox change Ensure we close the files we create Catch panics so we can display an error on windows Provide windows-specific log functions For unknown reasons, building with QT on windows doesn't permit writing to stdout. We'll use a message box instead. Use the STDFU.dll driver for windows Using the same driver as the CPS avoids having to switch between libusb and the "standard" windows driver for the MD-380. v0.9.8: Update version to v0.9.8 radio: Fix firmware url for default model selected v0.9.7: Update version to v0.9.7 Add write of md380tools firmware Editcp: Add write userdb dialog Editcp: Update progress messages Reorder File menu, move Revert after opens Change "Ok" button in preferences pop-up to "Save" Create Radio menu, move Preferences to Edit menu Move "Write codeplug to radio" and "Read codeplug from radio" to the new Radio menu. trivial: Have clobber remove installers first Change Windows shortcut names to EditCp v0.9.6: Update version to v0.9.6 Change README to include getting libraries Usb: go get github.com/google/gousb Spreadsheet: go get github.com/tealeg/xlsx Add gpsSystem.go Oops, forgot this earlier. v0.9.5: Update version to v0.9.5 Add support for GPS version of md380 and md390 v0.9.4: Update version to v0.9.4 Don't set codeplug directory if non-existent v0.9.3: Update version to v0.9.3 Rename field types ChannelMember and ContactMember They are now just Channel and Contact v0.9.2: Update version to v0.9.2 Fix gui spacing/expansion in windows Remove superfluous calls to SetContentsMargins Don't insert duplicate names into recent file list Trivial Change import menu descriptions Sort exported text and spreadsheet file output Records and Fields will be sorted in the order they are layed out in codeplugs.json. Add import/export of spreadsheet (.xlsx) files Add capability to export the codeplug as JSON Fix close of initial window without codeplug It would crash. Not now. Rename several record type names This will make existing codeplug text files incompatible, but I believe it's an improvement going forward. Rename importFrom>importText, ExportTo>ExportText v0.9.1: Update version to v0.9.1 source: build docker images with usb Update instructions for updating the docker images to include the libusb-1.0-0-dev package. Fix windows menu when no codeplug has been opened v0.9.0: Update version to v0.9.0 Add capability to read and write radio over USB The USB code in dfu/dfu.go began as a transliteration of the python code from https://github.com/travisgoodspeed/md380tools. Fix remove of autosave file on normal exit Update version to v0.8.13 v0.8.12: Update version to v0.8.12 Don't add auto-generated name to recent file list Change TimeStamp to LastProgramedTime If only one model, don't present model options Change Variant to FrequencyRange v0.8.11: Update version to v0.8.11 Add Basic Information button/window Remove obsolete md40GsRecord() v0.8.10: Update to version v0.8.10 Change preferences window to be modal Don't attempt autosave if editor has no codeplug Disable recentFiles menu if no recent files Don't close editor when save file is cancelled Change file menu order: import, export, then revert Major update, import text without loading codeplug Permit importing text to succeed on value errors. Added multiple error/warning messages on importing text. Consolidate warning & error into a single value We always return either an error or a warning. Introduce a new error type, codeplug.Warning. Import without creating a new codeplug Correct the name for text file opens v0.8.9: Update to version v0.8.9 Fix ZoneInformation for md390 v0.8.8: Update to version v0.8.8 v0.8.7: Update to version v0.8.7 v0.8.6: Update version to v0.8.6 v0.8.5: Update to version v0.8.5 v0.8.4: Update version to v0.8.4 Print line/character numbers on import text linux: qml files are unused, remove them windows: Only provide a 32-bit version It seems to run fine on my 64-bit Windows 10 system. Revert "Provide a standalone exe file instead of installer" This reverts commit 15d67cf1b4864a443f7b03ad7ce3c10ee91db6a2. It turns out that Windows is very picky about downloaded exe files and presents a scare popup an indeterminate number of times for such files. We'll return to using an installer so that we get the scare popup only once for the installer. It's also a bit nicer for the typical windows user, I think. v0.8.3: Update version to v0.8.3 Revise model/frequency selection code v0.8.2: Update version to v0.8.2 v0.8.1: Update version to v0.8.1 Disable preference setting of default model Oops, this didn't have adequate testing. Will need fixing. v0.8.0: Update version to v0.8.0 Provide a standalone exe file instead of installer Windows 10 discourages installing from unknown providers. We'll skip the installer and just provide an exe file. Automatically ignore non-existent fields in forms Ignoring non-existent fields enables one form to be used by multiple models. Add filters to file open/save dialogs Add fresh rdt files and enable File->New We also now always write rdt files, though we still read can read bin files. When a bin file is read, we ask what model and frequency variant it is and then use the rdt header (and tailer) from the corresponding fresh (virgin) rdt file. This commit contains too many changes. I'm just too lazy to break it up into easily reviewable pieces. v0.7.3: Update version to v0.7.3 v0.7.2: Update version to v0.7.2 Change validation errors to ignorable warnings Set codeplug directory on all codeplug opens v0.7.1: Update version to v0.7.1 Add Alinco DJ-MD40 support to the README v0.7.0: Update version to v0.7.0 Remove echo of command line from editcp.sh This was a leftover from debugging. Add ambiguous codeplug type names to preferences Complete support for the Alinco DJ-MD40 Begin support for Alinco DJ-MD40 Prepare support for additional codeplug formats Add additional general settings fields for Alinco DJ-MD40 Trivial: add space to "GeneralSettings" button Save directory used by open/save filename diaglogs Detect when built without using QT v0.6.1: Update version to v0.6.1 Change name of windows installer Rename the windows installer binary to editcp-$VERSION-installer.exe to avoid confusion with the editcp binary itself. v0.6.0: Update version to v0.6.0 On initial open don't present open dialog When no filename was specified on the command line, we used to immediately go to an open file dialog. This confused users. We now let the users do it themselves via "File->Open" or "File->Open Recent". Provide win32 binaries as well as win64 To do this we use the NSIS installer instead of wixl and MSI. We'll produce an installer executable that contains both the win32 and win64 executables and installs the appropriate one for the target system. Cleanup Makefile Remove my home directory from shell scripts These references get overwritten during the installation process. But it was an error to include them in the first place. Thanks to snd_crew on freenode for reporting it. Aesthetics: Pretty-up recordLists and fieldLists Prevent the right or bottom items from stretching by adding filler space to the right and below recordLists and fieldLists. v0.5.0: Update version to v0.5.0 Add mention of Windows binaries as well as Linux Create a windows installer .msi file We'll create an editcp-$VERSON.msi file holding the editcp.exe. On installation, two shortcuts will be created, one on the desktop and one on the start menu. v0.4: Update version to v0.4 Move field enabling logic from ui to codeplug The main reason to do this is to avoid validating disabled fields when a codefile is initially read. I have seen codeplugs that have bad values for some disabled fields. As a bonus, this simplifies the interface to the UI code. v0.3: Update version to v0.3 Add git-tag version command to the Makefile "make tag" will now create a git tag with the version from the version.go file. Add 64-bit static windows build to the Makefile Move the version string into its own file Place the version string in version.go Add the version string to the Help->About message v0.2: Change version to 0.2 Rename the tar files, usinge a - before the version editcp.0.2.tar.xz ==> editcp-0.2.tar.xz v0.1: Initial code commit Date: Sun Oct 8 22:06:30 2017 -0700