feat(cpn): read and write to/from radio profile SD path, menu reorganisation (#5753)
@@ -1,484 +0,0 @@
|
||||
<h2>Version 2.2.1 / 2017-12-17</h2>
|
||||
|
||||
Please see <a href=http://www.open-tx.org/2017/12/16/opentx-2.2.1>this page</a> for details.
|
||||
|
||||
<h2>Version 2.2.0 / 2017-05-30</h2>
|
||||
|
||||
Major release! Please see <a href=http://www.open-tx.org/2017/05/30/opentx-2.2.0>this page</a> for details.
|
||||
|
||||
<h2>Version 2.1.9 / 2016-09-14</h2>
|
||||
|
||||
<ul>
|
||||
<li>SD sync fixes (<a href=https://github.com/opentx/opentx/issues/3351>#3351</a>)</li>
|
||||
<li>Fixed: Telemetry mode "FrSky D (cable)" choice was missing for Taranis (<a href=https://github.com/opentx/opentx/issues/3372>#3372</a>)</li>
|
||||
<li>Show persistent option only for calculated sensors (<a href=https://github.com/opentx/opentx/issues/3454>#3454</a>)</li>
|
||||
<li>Fixed Flight mode clear command (<a href=https://github.com/opentx/opentx/issues/3214>#3214</a>)</li>
|
||||
<li>Fixed a problem with Rotary encoders linked to flight mode (could freeze Companion) (<a href=https://github.com/opentx/opentx/issues/3459>#3459</a>, <a href=https://github.com/opentx/opentx/issues/3470>#3470</a>)</li>
|
||||
<li>Telemetry simulator improvements: added fuel quantity sensor, increased RPM range (<a href=https://github.com/opentx/opentx/issues/3505>#3505</a>, <a href=https://github.com/opentx/opentx/issues/3506>#3506</a>)</li>
|
||||
<li>Implemented minimal support for the DYI Multimodule (<a href=https://github.com/opentx/opentx/issues/3526>#3526</a>)</li>
|
||||
<li>Fixed: GVar combo-box not being refreshed when GV check-box (re-)selected (<a href=https://github.com/opentx/opentx/issues/3518>#3518</a>)</li>
|
||||
<li>Fixed: Heli inversion not correctly shown/saved from Companion on Radios without virtual inputs (<a href=https://github.com/opentx/opentx/issues/3510>#3510</a>)</li>
|
||||
<li>Implemented print functions for the Heli setup screen (<a href=https://github.com/opentx/opentx/issues/3554>#3554</a>)</li>
|
||||
<li>Fixed: Flight modes linked trims display value (<a href=https://github.com/opentx/opentx/issues/3547>#3547</a>, <a href=https://github.com/opentx/opentx/issues/3568>#3568</a>)</li>
|
||||
<li>Fixed: New model global variables and rotary encoders initialisation (<a href=https://github.com/opentx/opentx/issues/3473>#3473</a>)</li>
|
||||
<li>Fixed: Prevent circular linked global variables and rotary encoders (<a href=https://github.com/opentx/opentx/issues/3472>#3472</a>)</li>
|
||||
<li>Fixed wrong log replay speed issue in Telemetry simulator (<a href=https://github.com/opentx/opentx/issues/3708>#3708</a>)</li>
|
||||
<li>Various texts and translations corrections</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.8 / 2016-04-14</h2>
|
||||
|
||||
<ul>
|
||||
<li>Telemetry Simulator sensor instance number fixed (<a href=https://github.com/opentx/opentx/issues/3207>#3207</a>)</li>
|
||||
<li>Fixed: Throttle Source combo-box was populated multiple times (<a href=https://github.com/opentx/opentx/issues/3222>#3222</a>)</li>
|
||||
<li>RTC option tool-tip corrected (<a href=https://github.com/opentx/opentx/issues/3225>#3225</a>)</li>
|
||||
<li>Fixed: Companion was looking for custom scripts at the wrong place (<a href=https://github.com/opentx/opentx/issues/3237>#3237</a>)</li>
|
||||
<li>Offset displayed in inputs screen (<a href=https://github.com/opentx/opentx/issues/3248>#3248</a>)</li>
|
||||
<li>Import/export handling was broken for Average formula telemetry sensors (<a href=https://github.com/opentx/opentx/issues/3262>#3262</a>)</li>
|
||||
<li>Fixed: Hardware Setup control types and names were not stored in profile (<a href=https://github.com/opentx/opentx/issues/3260>#3260</a>)</li>
|
||||
<li>Fixed voice language list (<a href=https://github.com/opentx/opentx/issues/3338>#3338</a>)</li>
|
||||
<li>Fixed data overflow in Special Functions Override Channel (<a href=https://github.com/opentx/opentx/issues/3347>#3347</a>)</li>
|
||||
<li>Fixed: Sync dialog new line problem (only present for some UI languages) (<a href=https://github.com/opentx/opentx/issues/3350>#3350</a>)</li>
|
||||
<li>Removed a few legacy timer limitations, fix non-working limit (<a href=https://github.com/opentx/opentx/issues/3301>#3301</a>)</li>
|
||||
<li>Default AVR fuse settings changed to disable JTAG interface (<a href=https://github.com/opentx/opentx/issues/3379>#3379</a>)</li>
|
||||
<li>Channel range fix (Start, Channels) in Model Settings, Setup page, int/ext module settings</li>
|
||||
<li>Use friendly GVAR names in dialogs (if available) (<a href=https://github.com/opentx/opentx/issues/3353>#3353</a>)</li>
|
||||
<li>Various texts and translations corrections</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.7 / 2016-01-04</h2>
|
||||
|
||||
<ul>
|
||||
<li>Lua 'execute' failed in non-root directory (in Simulator) (<a href=https://github.com/opentx/opentx/issues/3024>#3024</a>)</li>
|
||||
<!-- this is disabled until the speed problem is fixed <li>Header line always visible in Outputs, Logical Switches and Special Functions (<a href=https://github.com/opentx/opentx/issues/2861>#2861</a>)</li> -->
|
||||
<li>LR12 changes: removed option for remote failsafe configuration, added in EU firmware variant</li>
|
||||
<li>Added Clear option to the flight mode context menu (right click on the Name label) (<a href=https://github.com/opentx/opentx/issues/3026>#3026</a>)</li>
|
||||
<li>New features for Telemetry Simulator: log replay, user friendly sensor values (<a href=https://github.com/opentx/opentx/issues/3124>#3124</a>)</li>
|
||||
<li>Added F7 key to reload LUA permanent scripts in radio simulator (<a href=https://github.com/opentx/opentx/issues/3141>#3141</a>)</li>
|
||||
<li>AR9X firmware flashing fall-back was wrong</li>
|
||||
<li>Command line options support added to standalone simulator (try "./simulator21 --help" on Linux and "simulator.exe /help" on Windows for usage) (<a href=https://github.com/opentx/opentx/issues/3160>#3160</a>)</li>
|
||||
<li>Various rounding problem fixed: Telemetry sensor Ratio parameter (<a href=https://github.com/opentx/opentx/issues/3117>#3117</a>),
|
||||
Outputs Sub-trim, Min and Max values (<a href=https://github.com/opentx/opentx/issues/3156>#3156</a>)</li>
|
||||
<li>Fixed: telemetry sensors Ratio and Offset value increment/decrement step (<a href=https://github.com/opentx/opentx/issues/3121>#3121</a>)</li>
|
||||
<li>Hardware/Calibration tab split int two tabs (<a href=https://github.com/opentx/opentx/issues/2974>#2974</a>)</li>
|
||||
<li>Fixed Fahrenheit temperature conversion error (if PREC was not 0) (<a href=https://github.com/opentx/opentx/issues/3146>#3146</a>)</li>
|
||||
<li>Application Setting 'Enable automatic backup before writing firmware' was not saved (<a href=https://github.com/opentx/opentx/issues/3040>#3040</a>)</li>
|
||||
<li>Fixed RPM package problem on Fedora (<a href=https://github.com/opentx/opentx/issues/3130>#3130</a>)</li>
|
||||
<li>Fixed conversion errors when loading 2.0.x EEPE (<a href=https://github.com/opentx/opentx/issues/3177>#3177</a>)</li>
|
||||
<li>Various texts and translations corrections</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.6 / 2015-11-11</h2>
|
||||
|
||||
<ul>
|
||||
<li>Telemetry custom screen changes didn't emit modified signal (<a href=https://github.com/opentx/opentx/issues/3029>#3029</a>)</li>
|
||||
<li>Hide D8/LR12 when eu firmware option is selected</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.5 / 2015-11-05</h2>
|
||||
|
||||
Notice: version 2.1.4 was skipped by the OpenTX team to avoid confusion with FrSky's release of OpenTX 2.1.4
|
||||
|
||||
<ul>
|
||||
<li>Fixed: changing any setting on the telemetry panel does not set the file as being modified (<a href=https://github.com/opentx/opentx/issues/2875>#2875</a>)</li>
|
||||
<li>Print model fix for "Play value.... not on startup" (<a href=https://github.com/opentx/opentx/issues/2736>#2736</a>)</li>
|
||||
<li>Top LCD Timer could not be selected for X9E (<a href=https://github.com/opentx/opentx/issues/2850>#2850</a>)</li>
|
||||
<li>More informative error/info messages when openin eepe files (<a href=https://github.com/opentx/opentx/issues/2778>#2778</a>)</li>
|
||||
<li>Print model fix for curves (<a href=https://github.com/opentx/opentx/issues/2896>#2896</a>)</li>
|
||||
<li>Added missing special functions (bind, range check, set failsafe) (<a href=https://github.com/opentx/opentx/issues/2753>#2753</a>)</li>
|
||||
<li>Some defaults missing when changing telemetry formula, update propagation issues (<a href=https://github.com/opentx/opentx/issues/2928>#2928</a>)</li>
|
||||
<li>Fixed wrong import of Logical switches from OpenTX 2.0.x version (<a href=https://github.com/opentx/opentx/issues/2942>#2942</a>)</li>
|
||||
<li>Fixed a problem with updates path on Windows (<a href=https://github.com/opentx/opentx/issues/2876>#2876</a>)</li>
|
||||
<li>Edge representation unified (changed from "no release" to "instant") (<a href=https://github.com/opentx/opentx/issues/2837>#2837</a>)</li>
|
||||
<li>Added channel names on failsafe sliders (<a href=https://github.com/opentx/opentx/issues/3021>#3021</a>)</li>
|
||||
<li>Corrected failsafe mapping when using Custom failsafe mode, D16 protocol and channel range different from from 1-8.
|
||||
Users with such setups are advised to re-check their failsafe settings (<a href=https://github.com/opentx/opentx/issues/2975>#2975</a>)</li>
|
||||
<li>Various texts and translations corrections</li>
|
||||
<li>Various small bug-fixes: <a href=https://github.com/opentx/opentx/issues/2994>#2994</a>,
|
||||
<a href=https://github.com/opentx/opentx/issues/3016>#3016</a>,
|
||||
<a href=https://github.com/opentx/opentx/issues/3012>#3012</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.3 / 2015-09-09</h2>
|
||||
|
||||
<ul>
|
||||
<li>Fix missing translations in inputs/mixes tabs, print and compare dialogs (<a href=https://github.com/opentx/opentx/issues/2847>#2847</a>)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.2 / 2015-09-07</h2>
|
||||
|
||||
<ul>
|
||||
<li>Fixed: Lua model scripts outputs not working in a simulator (<a href=https://github.com/opentx/opentx/issues/2684>#2684</a>)</li>
|
||||
<li>Fixed a problem of Companion 2.1 trying to install into 2.0 path.
|
||||
The effect will only be visible for the users that did not install any of the previous 2.1.x versions.
|
||||
(<a href=https://github.com/opentx/opentx/issues/2645>#2645</a>)</li>
|
||||
<li>Added missing SDL libraries to MAC package (<a href=https://github.com/opentx/opentx/issues/2678>#2678</a>)</li>
|
||||
<li>Added used channels check/warning in Wizard (<a href=https://github.com/opentx/opentx/issues/2091>#2091</a>)</li>
|
||||
<li>Model Print and Model Compare improvements and fixes (<a href=https://github.com/opentx/opentx/issues/2734>#2734</a>, <a href=https://github.com/opentx/opentx/issues/2737>#2737</a>, <a href=https://github.com/opentx/opentx/issues/2576>#2576</a>)</li>
|
||||
<li>Negative telemetry offset value was reset when writing back to radio (<a href=https://github.com/opentx/opentx/issues/2738>#2738</a>)</li>
|
||||
<li>Telemetry sensor names were not displayed (<a href=https://github.com/opentx/opentx/issues/2807>#2807</a>)</li>
|
||||
<li>Mixes multiplex representation now the same as on the radio (<a href=https://github.com/opentx/opentx/issues/2808>#2808</a>)</li>
|
||||
<li>Fixed language-related startup crash on Mac (<a href=https://github.com/opentx/opentx/issues/2815>#2815</a>)</li>
|
||||
<li>Fixed issues with conversion from 2.0 (<a href=https://github.com/opentx/opentx/issues/2809>#2809</a>, <a href=https://github.com/opentx/opentx/issues/2800>#2800</a>)</li>
|
||||
<li>Fixed Throttle source export issue on X9E (<a href=https://github.com/opentx/opentx/issues/2844>#2844</a>)</li>
|
||||
<li>Added support for the AR9X replacement board (prototype) for the Turnigy 9X radio, info <a href=http://www.rcgroups.com/forums/showthread.php?t=2479552>here</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.1 / 2015-08-06</h2>
|
||||
<ul>
|
||||
<li>Vario source and center silent options were not saved(<a href=https://github.com/opentx/opentx/issues/2476>#2476</a>)</li>
|
||||
<li>DSM receiver numbers for external module were not converted from previous version EEPROM (<a href=https://github.com/opentx/opentx/issues/2474>#2474</a>)</li>
|
||||
<li>Precision incorrectly set for Calculated->Cells sensor (<a href=https://github.com/opentx/opentx/issues/2479>#2479</a>)</li>
|
||||
<li>Unit incorrectly set for Calculated->Cells sensor (<a href=https://github.com/opentx/opentx/issues/2485>#2485</a>)</li>
|
||||
<li>Fixed import/export of trim values (<a href=https://github.com/opentx/opentx/issues/2484>#2484</a>)</li>
|
||||
<li>Removed constant access to floppy disk (<a href=https://github.com/opentx/opentx/issues/2160>#2160</a>)</li>
|
||||
<li>Telemetry view script combo box list was empty (<a href=https://github.com/opentx/opentx/issues/2465>#2465</a>)</li>
|
||||
<li>Telemetry view bars ranges not transfered to radio (<a href=https://github.com/opentx/opentx/issues/2491>#2491</a>)</li>
|
||||
<li>Fixed Standalone simulator radio selection display problem (<a href=https://github.com/opentx/opentx/issues/2503>#2503</a>)</li>
|
||||
<li>Added missing simulation libraries and enabled side by side installation of Companion 2.0 and 2.1 on Linux (<a href=https://github.com/opentx/opentx/issues/2500>#2500</a>)</li>
|
||||
<li>Standalone simulator now remembers which radio was simulated in previous session (<a href=https://github.com/opentx/opentx/issues/2503>#2503</a>)</li>
|
||||
<li>Radio calibration value were not displayed (<a href=https://github.com/opentx/opentx/issues/2502>#2502</a>)</li>
|
||||
<li>Fixed Vario / Voltage / Current sources export problem</li>
|
||||
<li>Writing model settings to 9XR-PRO did not work (<a href=https://github.com/opentx/opentx/issues/2402>#2402</a>, <a href=https://github.com/opentx/opentx/issues/2517>#2517</a>)</li>
|
||||
<li>Model Print and Model Compare improvements</li>
|
||||
<li>Fixed Companion OSX version (<a href=https://github.com/opentx/opentx/issues/2549>#2549</a>)</li>
|
||||
<li>Firmware nightly builds are now downloadable from nightly builds of Companion (<a href=https://github.com/opentx/opentx/issues/2526>#2526</a>, <a href=https://github.com/opentx/opentx/issues/2634>#2634</a>)</li>
|
||||
<li>Fixed telemetry item lists (<a href=https://github.com/opentx/opentx/issues/2541>#2541</a>)</li>
|
||||
<li>Fixed missing pots P1..P3 for 9X (<a href=https://github.com/opentx/opentx/issues/2543>#2543</a>)</li>
|
||||
<li>Fixed "Invalid model and settings" error message when writing models and settings to the radio (<a href=https://github.com/opentx/opentx/issues/2544>#2544</a>)</li>
|
||||
<li>Global Functions fixes (<a href=https://github.com/opentx/opentx/issues/2558>#2558</a>)</li>
|
||||
<li>Export to Google Earth now working (only) with the new telemetry fields (GPS, GAlt and GSpd) (<a href=https://github.com/opentx/opentx/issues/2546>#2546</a>)</li>
|
||||
<li>Fixed unsuccessful writing of setting to the radio for 9XR PRO (<a href=https://github.com/opentx/opentx/issues/2605>#2605</a>)</li>
|
||||
<li>Fixed missing LUA script outputs in special function "Play Value" (<a href=https://github.com/opentx/opentx/issues/2649>#2649</a>)</li>
|
||||
<li>Various texts and translations corrections</li>
|
||||
<li>Various small bug-fixes</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.1.0 / 2015-07-16</h2>
|
||||
<ul>
|
||||
<li>SD card synchronizaton tool</li>
|
||||
<li>Added session duraton information in Log Viewer</li>
|
||||
<li>Enabled <i>Mixers monitor</i> in Taranis simulator</li>
|
||||
<li>Better support for multi-axes in Log Viewer (<a href=https://github.com/opentx/opentx/issues/2267>#2267</a>)</li>
|
||||
<li>File path issue in Taranis simulator function <i>findTrueFileName()</i> on Windows (<a href=https://github.com/opentx/opentx/issues/2301>#2301</a>)</li>
|
||||
<li>Added simulator volume gain setting (<a href=https://github.com/opentx/opentx/issues/2260>#2260</a>)</li>
|
||||
<li>Added GPS glitch filtering and Latitude/Longitude position synchronization to Google Earth export (<a href=https://github.com/opentx/opentx/issues/2326>#2326</a>)</li>
|
||||
<li>Fixed a rare program crash when editing Input for 9X radio (<a href=https://github.com/opentx/opentx/issues/2420>#2420</a>)</li>
|
||||
<li>Fixed missing RSSI audio warnings if simulator was started multiple times (<a href=https://github.com/opentx/opentx/issues/2446>#2446</a>)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.0.17 / 2015-05-04</h2>
|
||||
<ul>
|
||||
<li>Simulator crash (<a href=https://github.com/opentx/opentx/issues/2253>#2253</a>)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.0.16 / 2015-05-03</h2>
|
||||
<ul>
|
||||
<li><i>nooverridech</i> firmware option was not working</li>
|
||||
<li>Fixed setting Expo from gvars for 9XR-Pro (<a href=https://github.com/opentx/opentx/issues/2040>#2040</a>)</li>
|
||||
<li>Added Mixers Monitor screen option <i>mixersmon</i> (<a href=https://github.com/opentx/opentx/issues/1945>#1945</a>)</li>
|
||||
<li>Added audio playing in simulator (<a href=https://github.com/opentx/opentx/issues/457>#457</a>)</li>
|
||||
<li>Fixed sorting of audio tracks (<a href=https://github.com/opentx/opentx/issues/2002>#2002</a>)</li>
|
||||
<li>Model wizard fixes (<a href=https://github.com/opentx/opentx/issues/2091>#2091</a>)</li>
|
||||
<li>GVAR names removed for 9x, radio doesn't support them (<a href=https://github.com/opentx/opentx/issues/2150>#2150</a>)</li>
|
||||
<li>Some LS sources didn't follow the Imperial units setting (<a href=https://github.com/opentx/opentx/issues/2180>#2180</a>)</li>
|
||||
<li>Added more fields to the telemetry simulator (<a href=https://github.com/opentx/opentx/issues/2171>#2171</a>)</li>
|
||||
<li>Log viewer improvements and massive speed increase (<a href=https://github.com/opentx/opentx/issues/1863>#1863</a>, <a href=https://github.com/opentx/opentx/issues/2163>#2163</a>)</li>
|
||||
<li>Added Battery meter range setting (<a href=https://github.com/opentx/opentx/issues/2195>#2195</a>)</li>
|
||||
<li>Improvements in Print and Compare dialogs (<a href=https://github.com/opentx/opentx/issues/2219>#2219</a>)</li>
|
||||
<li>Reset pots to the middle by right double clicking them in Simulator (<a href=https://github.com/opentx/opentx/issues/1939>#1939</a>)</li>
|
||||
<li>Minor fixes: <a href=https://github.com/opentx/opentx/issues/2153>#2153</a>,
|
||||
<a href=https://github.com/opentx/opentx/issues/2138>#2138</a>,
|
||||
<a href=https://github.com/opentx/opentx/issues/2090>#2090</a>,
|
||||
<a href=https://github.com/opentx/opentx/issues/2122>#2122</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Version 2.0.15 / 2015-01-13</h2>
|
||||
<ul>
|
||||
<li>Firmware was not written correctly on radio when compatibility warning check enabled</li>
|
||||
<li>Time format for Special Functions Set Timers</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.14 / 2015-01-12</h2>
|
||||
<ul>
|
||||
<li>OpenTX Companion and Companion9x can now be installed side by side on Linux</li>
|
||||
<li>Improved TAB order in dialogs</li>
|
||||
<li>Special Function <i>Start Logs</i> renamed to more appropriate <i>SD Logs</i></li>
|
||||
<li>Improvements for MAC build</li>
|
||||
<li>Fixes to Google Earth logs export</li>
|
||||
<li>Firmware compatibility warning check added when flashing new firmware to radio</li>
|
||||
<li>Fixed issue with Telemetry Type setting on 9XR-PRO</li>
|
||||
<li>Added Telemetry simulator</li>
|
||||
<li>Added Trainer simulator</li>
|
||||
<li>Added Debug Output window</li>
|
||||
<li>Various texts and translations corrections</li>
|
||||
<li>Various small bug-fixes</li>
|
||||
<li>More reliable method of writing EEPROM.BIN and FIRMWARE.BIN to radio</li>
|
||||
<li>Fixed issue with Edge function INSTANT for V1>2s</li>
|
||||
<li>Fixed buffer overflow in Joystick code</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.13 / 2014-11-20</h2>
|
||||
<ul>
|
||||
<li>Too many curves shown on non ARM boards</li>
|
||||
<li>Fixed vario limits</li>
|
||||
<li>Fixes in compare dialog</li>
|
||||
<li>Fixed receiver number range</li>
|
||||
<li>Virtual inputs not selectable in SF Volume and heli Collective Source</li>
|
||||
<li>Joystick calibration crash after channel assignment</li>
|
||||
<li>Gvar import error for limits</li>
|
||||
<li>Companion shows too many curve types in input/mixer for 9x</li>
|
||||
<li>NOT curves removed from inputs (for non ARM platforms)</li>
|
||||
<li>Companion again builds on OS X (Mac)</li>
|
||||
<li>Companion simulator Lua crash on OS X 64bit (Mac)</li>
|
||||
<li>Companion didn't take care of PlayScript functions</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.12 / 2014-09-15</h2>
|
||||
<ul>
|
||||
<li>Typos & Translations updated</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.11 / 2014-09-10</h2>
|
||||
<ul>
|
||||
<li>Limits EEPROM export was broken (all boards except Taranis)</li>
|
||||
<li>Fix issue when a GVAR was used as Offset</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.10 / 2014-09-08</h2>
|
||||
<ul>
|
||||
<li>Taranis is now the default board in General Settings</li>
|
||||
<li>GVARS allowed in Limits min/max/offset</li>
|
||||
<li>Limits displayed in us when ppmus option selected
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.8 / 2014-07-23</h2>
|
||||
<ul>
|
||||
<li>Compare dialog bugfixes</li>
|
||||
<li>Curve index correctly resetted when type changed</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.7</h2>
|
||||
<ul>
|
||||
<li>SafetyCH function was missing in simulator</li>
|
||||
<li>EEPROM export warning when exporting logical switches > L12 on 9X128</li>
|
||||
<li>FAS offset was not exported on 9X/9XR boards</li>
|
||||
<li>Trims modes bugfix on non Taranis boards</li>
|
||||
<li>It was impossible to open a backuped model from the Tx</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.6</h2>
|
||||
<ul>
|
||||
<li>Fix Mix curves bug on Sky9x boards</li>
|
||||
<li>Channels 17-32 are displayed in the simulator</li>
|
||||
<li>Backlight simulation bugfix</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.5</h2>
|
||||
<ul>
|
||||
<li>Fix crash on startup</li>
|
||||
<li>Fix version number in simu</li>
|
||||
<li>9XR-Pro now supported on Mac</li>
|
||||
<li>Fix loss of settings in telemetry custom screens</li>
|
||||
<li>Fix 10000% bug when using GVs in mixer weithg or offset</li>
|
||||
<li>Fix Cnsp range in logical switches (up to 30000mAh)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.4</h2>
|
||||
<ul>
|
||||
<li>Sound should be ok on all platforms</li>
|
||||
<li>Min/Max reviewed in Logical switches (for the whole telemetry)</li>
|
||||
<li>Various bug fixes</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.3</h2>
|
||||
<ul>
|
||||
<li>EEPROM import bug on AdjustGVAR function</li>
|
||||
<li>Timers correctly displayed in logical switches tab</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.2</h2>
|
||||
<ul>
|
||||
<li>Mouse scroll wheel behaves differently</li>
|
||||
<li>Play Sounds should now work on all platforms</li>
|
||||
<li>A lot of small bug fixes</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.1</h2>
|
||||
<ul>
|
||||
<li>Fix on recursive GVars</li>
|
||||
<li>Sky9x EEPROM read/write fix</li>
|
||||
<li>Translations updated
|
||||
<li>Wizard fixes
|
||||
<li>Fix on invalid splashes bitmaps
|
||||
</ul>
|
||||
|
||||
<h2>Version 2.0.0</h2>
|
||||
<ul>
|
||||
<li>Companion now merged into OpenTX</li>
|
||||
<li>Too many changes to list them all!</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.52</h2>
|
||||
<ul>
|
||||
<li>Fix crash when writing certain EEPROMS</li>
|
||||
<li>Google Earth export of logs containing GPS positions</li>
|
||||
<li>DSM2 added for Taranis</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.51</h2>
|
||||
<ul>
|
||||
<li>Wrong DFU-Util default path (MAC)</li>
|
||||
<li>new voices download server (ip address changed to new fiber connection)</li>
|
||||
<li>Fixed contributor list</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.50</h2>
|
||||
<ul>
|
||||
<li>solved issue with taranis radio with some linux distributions</li>
|
||||
<li>blank eeprom created using a radio profile that holds calibration data, will contain calibration data from the profile</li>
|
||||
<li>new opentx compilation server (ip address changed to new fiber connection)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.49</h2>
|
||||
<ul>
|
||||
<li>Stack usage optimizations</li>
|
||||
<li>Playsound order is misaligned between companion9x and the TX</li>
|
||||
<li>Model image could not be reset.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.48</h2>
|
||||
<ul>
|
||||
<li>Interface fixes</li>
|
||||
<li>Hide include dr/expo when not applicable</li>
|
||||
<li>Fix extraction of grayscale images from taranis firmwares</li>
|
||||
<li>No TX and RX in Taranis telemetry fields</li>
|
||||
<li>Issue 255 fixed - "No GVAR selection possible for PLAY VALUE"</li>
|
||||
<li>Issue 254 fixed - "SE Language for building opentx"</li>
|
||||
<li>Issue 253 fixed - "OpenTX doesn't accept this protocol (DSM2 on Sky9x)"</li>
|
||||
<li>Prevent segfault while parsing wrong log files or files with broken lines</li>
|
||||
<li>Small bug in model printout</li>
|
||||
<li>Fixed wrong display of values in custom functions</li>
|
||||
<li>Image in preferences was saved only black & white</li>
|
||||
<li>Issue 247 fixed - "Labelled items on radio should not be translated."</li>
|
||||
<li>Added support of tstick (taranis like stick) compile option for sky9x opentx firmware</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.47</h2>
|
||||
<ul>
|
||||
<li>Interface fixes (issues 232,233,238,241)</li>
|
||||
<li>Fix for print/compare models</li>
|
||||
<li>Function switch parameter on screen different than printout.</li>
|
||||
<li>Translations fixes</li>
|
||||
<li>Command line print mode</li>
|
||||
<li>Better mavlink support</li>
|
||||
<li>SE tts language added for taranis</li>
|
||||
<li>Alternate font option for opentx added</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.46</h2>
|
||||
<ul>
|
||||
<li>Interface fixes (issues 224,225)</li>
|
||||
<li>Show persistent timers value in modeledit</li>
|
||||
<li>Consistent naming of Custom Switches in c9x</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.45</h2>
|
||||
<ul>
|
||||
<li>Various fixes</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.44</h2>
|
||||
<ul>
|
||||
<li>Fix regression on AND parameter in custom functions</li>
|
||||
<li>Add mavlink support for stock and m128 boards</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.43</h2>
|
||||
<ul>
|
||||
<li>Copy Malfunctions in Custom Functions (Issue 205)</li>
|
||||
<li>Enable repeat parameter in functions for all boards</li>
|
||||
<li>Remove sink tones from vario for stock/m128 board</li>
|
||||
<li>Fix for wrongly named channels in mixerlist (Issue 210)</li>
|
||||
<li>Fix badly exported gvars in mixers</li>
|
||||
<li>Fix while editing custom switches</li>
|
||||
<li>Add access to the release notes of currently selected firmware</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.42</h2>
|
||||
<ul>
|
||||
<li>Add Companion9X changelog</li>
|
||||
<li>Add Fw release notes browser</li>
|
||||
<li>Simplify burn menu for sky9x and Taranis.</li>
|
||||
<li>Fix in telemetry conversion (rssi alarm) for stock board</li>
|
||||
<li>Drop support of sky9x boards on MacOS due to missing SAM-BA tool.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.41</h2>
|
||||
<ul>
|
||||
<li>Fix unneeded rescaling of splash images</li>
|
||||
<li>Fix for telemetry screens for Taranis</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.40</h2>
|
||||
<ul>
|
||||
<li>Log dialog - Split of logging sessions.</li>
|
||||
<li>Telemetry screen 1 as default (issue 206)</li>
|
||||
<li>Rename all channels in mixer tab accordingly to limits names</li>
|
||||
<li>Fix a segfault in phases tabs (Issue 203 regression introduced in release 2140)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.39</h2>
|
||||
<ul>
|
||||
<li>Custom functions cut&paste </li>
|
||||
<li>Custom switches cut&paste </li>
|
||||
<li>Color button text in curve editor for MACOSX</li>
|
||||
<li>Adjust name lengths for Taranis</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.38</h2>
|
||||
<ul>
|
||||
<li>Core when model names were > 10 chars</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.37</h2>
|
||||
<ul>
|
||||
<li>Fix OpenTX segfault in Taranis simulator</li>
|
||||
<li>Implement brightness control for Taranis</li>
|
||||
<li>Reduce modeledit windows size</li>
|
||||
<li>Taranis splash screen in grayscale</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.36</h2>
|
||||
<ul>
|
||||
<li>Burning windows (with progress bar) now in foreground (Issue 197)</li>
|
||||
<li>Allow a selection of tracks for Background Music (Issue 199)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Version 1.35</h2>
|
||||
<ul>
|
||||
<li>Country names mismatch between Taranis and Companion 9X (Issue 198)</li>
|
||||
<li>TIM function in custom switches</li>
|
||||
<li>Fix timer switches.</li>
|
||||
<li>Taranis LCD adjustment in general settings.</li>
|
||||
<li>New tool in curve editor</li>
|
||||
<li>Minor fixes</li>
|
||||
<li>Expo move bug + invalid chars in channels, expo and mixer names</li>
|
||||
<li>Try to reduce modeledit window form MAC</li>
|
||||
<li>Wrong init of RF-Module data</li>
|
||||
<li>Read flash from TX didn't worked for Taranis</li>
|
||||
</ul>
|
||||
@@ -2,7 +2,6 @@
|
||||
<qresource prefix="/">
|
||||
<file>images/customize.png</file>
|
||||
<file alias="icon.png">images/icon.png</file>
|
||||
<file>../releasenotes.txt</file>
|
||||
<file>images/screenshot.png</file>
|
||||
<file>images/splash.png</file>
|
||||
<file>images/companion-title.png</file>
|
||||
@@ -191,6 +190,8 @@
|
||||
<file>themes/monochrome/16/stop.png</file>
|
||||
<file>themes/monochrome/16/write_eeprom.png</file>
|
||||
<file>themes/monochrome/16/sdsync.png</file>
|
||||
<file>themes/monochrome/16/folder-tree-read.png</file>
|
||||
<file>themes/monochrome/16/folder-tree-write.png</file>
|
||||
<file>themes/monochrome/24/paintbrush.png</file>
|
||||
<file>themes/monochrome/24/open.png</file>
|
||||
<file>themes/monochrome/24/edit.png</file>
|
||||
@@ -235,6 +236,8 @@
|
||||
<file>themes/monochrome/24/stop.png</file>
|
||||
<file>themes/monochrome/24/write_eeprom.png</file>
|
||||
<file>themes/monochrome/24/sdsync.png</file>
|
||||
<file>themes/monochrome/24/folder-tree-read.png</file>
|
||||
<file>themes/monochrome/24/folder-tree-write.png</file>
|
||||
<file>themes/monochrome/32/paintbrush.png</file>
|
||||
<file>themes/monochrome/32/open.png</file>
|
||||
<file>themes/monochrome/32/edit.png</file>
|
||||
@@ -279,6 +282,8 @@
|
||||
<file>themes/monochrome/32/stop.png</file>
|
||||
<file>themes/monochrome/32/write_eeprom.png</file>
|
||||
<file>themes/monochrome/32/sdsync.png</file>
|
||||
<file>themes/monochrome/32/folder-tree-read.png</file>
|
||||
<file>themes/monochrome/32/folder-tree-write.png</file>
|
||||
<file>themes/monochrome/48/paintbrush.png</file>
|
||||
<file>themes/monochrome/48/open.png</file>
|
||||
<file>themes/monochrome/48/edit.png</file>
|
||||
@@ -323,6 +328,8 @@
|
||||
<file>themes/monochrome/48/stop.png</file>
|
||||
<file>themes/monochrome/48/write_eeprom.png</file>
|
||||
<file>themes/monochrome/48/sdsync.png</file>
|
||||
<file>themes/monochrome/48/folder-tree-read.png</file>
|
||||
<file>themes/monochrome/48/folder-tree-write.png</file>
|
||||
<file>themes/classic/16/paintbrush.png</file>
|
||||
<file>themes/classic/16/open.png</file>
|
||||
<file>themes/classic/16/edit.png</file>
|
||||
@@ -367,6 +374,8 @@
|
||||
<file>themes/classic/16/stop.png</file>
|
||||
<file>themes/classic/16/write_eeprom.png</file>
|
||||
<file>themes/classic/16/sdsync.png</file>
|
||||
<file>themes/classic/16/folder-tree-read.png</file>
|
||||
<file>themes/classic/16/folder-tree-write.png</file>
|
||||
<file>themes/classic/24/paintbrush.png</file>
|
||||
<file>themes/classic/24/open.png</file>
|
||||
<file>themes/classic/24/edit.png</file>
|
||||
@@ -411,6 +420,8 @@
|
||||
<file>themes/classic/24/stop.png</file>
|
||||
<file>themes/classic/24/write_eeprom.png</file>
|
||||
<file>themes/classic/24/sdsync.png</file>
|
||||
<file>themes/classic/24/folder-tree-read.png</file>
|
||||
<file>themes/classic/24/folder-tree-write.png</file>
|
||||
<file>themes/classic/32/paintbrush.png</file>
|
||||
<file>themes/classic/32/open.png</file>
|
||||
<file>themes/classic/32/edit.png</file>
|
||||
@@ -455,6 +466,8 @@
|
||||
<file>themes/classic/32/stop.png</file>
|
||||
<file>themes/classic/32/write_eeprom.png</file>
|
||||
<file>themes/classic/32/sdsync.png</file>
|
||||
<file>themes/classic/32/folder-tree-read.png</file>
|
||||
<file>themes/classic/32/folder-tree-write.png</file>
|
||||
<file>themes/classic/48/paintbrush.png</file>
|
||||
<file>themes/classic/48/open.png</file>
|
||||
<file>themes/classic/48/edit.png</file>
|
||||
@@ -499,6 +512,8 @@
|
||||
<file>themes/classic/48/stop.png</file>
|
||||
<file>themes/classic/48/write_eeprom.png</file>
|
||||
<file>themes/classic/48/sdsync.png</file>
|
||||
<file>themes/classic/48/folder-tree-read.png</file>
|
||||
<file>themes/classic/48/folder-tree-write.png</file>
|
||||
<file>themes/monoblue/16/paintbrush.png</file>
|
||||
<file>themes/monoblue/16/open.png</file>
|
||||
<file>themes/monoblue/16/edit.png</file>
|
||||
@@ -543,6 +558,8 @@
|
||||
<file>themes/monoblue/16/stop.png</file>
|
||||
<file>themes/monoblue/16/write_eeprom.png</file>
|
||||
<file>themes/monoblue/16/sdsync.png</file>
|
||||
<file>themes/monoblue/16/folder-tree-read.png</file>
|
||||
<file>themes/monoblue/16/folder-tree-write.png</file>
|
||||
<file>themes/monoblue/24/paintbrush.png</file>
|
||||
<file>themes/monoblue/24/open.png</file>
|
||||
<file>themes/monoblue/24/edit.png</file>
|
||||
@@ -587,6 +604,8 @@
|
||||
<file>themes/monoblue/24/stop.png</file>
|
||||
<file>themes/monoblue/24/write_eeprom.png</file>
|
||||
<file>themes/monoblue/24/sdsync.png</file>
|
||||
<file>themes/monoblue/24/folder-tree-read.png</file>
|
||||
<file>themes/monoblue/24/folder-tree-write.png</file>
|
||||
<file>themes/monoblue/32/paintbrush.png</file>
|
||||
<file>themes/monoblue/32/open.png</file>
|
||||
<file>themes/monoblue/32/edit.png</file>
|
||||
@@ -631,6 +650,8 @@
|
||||
<file>themes/monoblue/32/stop.png</file>
|
||||
<file>themes/monoblue/32/write_eeprom.png</file>
|
||||
<file>themes/monoblue/32/sdsync.png</file>
|
||||
<file>themes/monoblue/32/folder-tree-read.png</file>
|
||||
<file>themes/monoblue/32/folder-tree-write.png</file>
|
||||
<file>themes/monoblue/48/paintbrush.png</file>
|
||||
<file>themes/monoblue/48/open.png</file>
|
||||
<file>themes/monoblue/48/edit.png</file>
|
||||
@@ -675,6 +696,8 @@
|
||||
<file>themes/monoblue/48/stop.png</file>
|
||||
<file>themes/monoblue/48/write_eeprom.png</file>
|
||||
<file>themes/monoblue/48/sdsync.png</file>
|
||||
<file>themes/monoblue/48/folder-tree-read.png</file>
|
||||
<file>themes/monoblue/48/folder-tree-write.png</file>
|
||||
<file>themes/monowhite/16/paintbrush.png</file>
|
||||
<file>themes/monowhite/16/open.png</file>
|
||||
<file>themes/monowhite/16/edit.png</file>
|
||||
@@ -719,6 +742,8 @@
|
||||
<file>themes/monowhite/16/stop.png</file>
|
||||
<file>themes/monowhite/16/write_eeprom.png</file>
|
||||
<file>themes/monowhite/16/sdsync.png</file>
|
||||
<file>themes/monowhite/16/folder-tree-read.png</file>
|
||||
<file>themes/monowhite/16/folder-tree-write.png</file>
|
||||
<file>themes/monowhite/24/paintbrush.png</file>
|
||||
<file>themes/monowhite/24/open.png</file>
|
||||
<file>themes/monowhite/24/edit.png</file>
|
||||
@@ -763,6 +788,8 @@
|
||||
<file>themes/monowhite/24/stop.png</file>
|
||||
<file>themes/monowhite/24/write_eeprom.png</file>
|
||||
<file>themes/monowhite/24/sdsync.png</file>
|
||||
<file>themes/monowhite/24/folder-tree-read.png</file>
|
||||
<file>themes/monowhite/24/folder-tree-write.png</file>
|
||||
<file>themes/monowhite/32/paintbrush.png</file>
|
||||
<file>themes/monowhite/32/open.png</file>
|
||||
<file>themes/monowhite/32/edit.png</file>
|
||||
@@ -807,6 +834,8 @@
|
||||
<file>themes/monowhite/32/stop.png</file>
|
||||
<file>themes/monowhite/32/write_eeprom.png</file>
|
||||
<file>themes/monowhite/32/sdsync.png</file>
|
||||
<file>themes/monowhite/32/folder-tree-read.png</file>
|
||||
<file>themes/monowhite/32/folder-tree-write.png</file>
|
||||
<file>themes/monowhite/48/paintbrush.png</file>
|
||||
<file>themes/monowhite/48/open.png</file>
|
||||
<file>themes/monowhite/48/edit.png</file>
|
||||
@@ -851,6 +880,8 @@
|
||||
<file>themes/monowhite/48/stop.png</file>
|
||||
<file>themes/monowhite/48/write_eeprom.png</file>
|
||||
<file>themes/monowhite/48/sdsync.png</file>
|
||||
<file>themes/monowhite/48/folder-tree-read.png</file>
|
||||
<file>themes/monowhite/48/folder-tree-write.png</file>
|
||||
<file>themes/yerico/16/paintbrush.png</file>
|
||||
<file>themes/yerico/16/open.png</file>
|
||||
<file>themes/yerico/16/edit.png</file>
|
||||
@@ -895,6 +926,8 @@
|
||||
<file>themes/yerico/16/stop.png</file>
|
||||
<file>themes/yerico/16/write_eeprom.png</file>
|
||||
<file>themes/yerico/16/sdsync.png</file>
|
||||
<file>themes/yerico/16/folder-tree-read.png</file>
|
||||
<file>themes/yerico/16/folder-tree-write.png</file>
|
||||
<file>themes/yerico/24/paintbrush.png</file>
|
||||
<file>themes/yerico/24/open.png</file>
|
||||
<file>themes/yerico/24/edit.png</file>
|
||||
@@ -939,6 +972,8 @@
|
||||
<file>themes/yerico/24/stop.png</file>
|
||||
<file>themes/yerico/24/write_eeprom.png</file>
|
||||
<file>themes/yerico/24/sdsync.png</file>
|
||||
<file>themes/yerico/24/folder-tree-read.png</file>
|
||||
<file>themes/yerico/24/folder-tree-write.png</file>
|
||||
<file>themes/yerico/32/paintbrush.png</file>
|
||||
<file>themes/yerico/32/open.png</file>
|
||||
<file>themes/yerico/32/edit.png</file>
|
||||
@@ -983,6 +1018,8 @@
|
||||
<file>themes/yerico/32/stop.png</file>
|
||||
<file>themes/yerico/32/write_eeprom.png</file>
|
||||
<file>themes/yerico/32/sdsync.png</file>
|
||||
<file>themes/yerico/32/folder-tree-read.png</file>
|
||||
<file>themes/yerico/32/folder-tree-write.png</file>
|
||||
<file>themes/yerico/48/paintbrush.png</file>
|
||||
<file>themes/yerico/48/open.png</file>
|
||||
<file>themes/yerico/48/edit.png</file>
|
||||
@@ -1027,6 +1064,8 @@
|
||||
<file>themes/yerico/48/stop.png</file>
|
||||
<file>themes/yerico/48/write_eeprom.png</file>
|
||||
<file>themes/yerico/48/sdsync.png</file>
|
||||
<file>themes/yerico/48/folder-tree-read.png</file>
|
||||
<file>themes/yerico/48/folder-tree-write.png</file>
|
||||
<file>sounds/0.wav</file>
|
||||
<file>sounds/1.wav</file>
|
||||
<file>sounds/2.wav</file>
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:export-filename="folder-tree-read-classic-16.png"
|
||||
inkscape:export-xdpi="32"
|
||||
inkscape:export-ydpi="32"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-read-classic.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="8.5972598"
|
||||
inkscape:cx="6.7463356"
|
||||
inkscape:cy="36.116159"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><linearGradient
|
||||
id="linearGradient11"
|
||||
inkscape:collect="always"><stop
|
||||
style="stop-color:#07de44;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop12" /><stop
|
||||
style="stop-color:#ebfff2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop13" /></linearGradient><linearGradient
|
||||
id="swatch11"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop11" /></linearGradient><linearGradient
|
||||
id="swatch9"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#82d8f8;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10" /></linearGradient><linearGradient
|
||||
id="swatch8"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#31afe2;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8" /></linearGradient><linearGradient
|
||||
id="swatch7"><stop
|
||||
style="stop-color:#82dcf8;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7" /><stop
|
||||
style="stop-color:#31afe2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop9" /></linearGradient><linearGradient
|
||||
id="swatch6"><stop
|
||||
style="stop-color:#0bade1;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6" /></linearGradient><linearGradient
|
||||
id="swatch5"><stop
|
||||
style="stop-color:#09ade2;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch7"
|
||||
id="linearGradient8"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="12"
|
||||
y1="5"
|
||||
x2="12"
|
||||
y2="24" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch7"
|
||||
id="linearGradient10"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="12"
|
||||
y1="5"
|
||||
x2="12"
|
||||
y2="24" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient11"
|
||||
id="linearGradient13"
|
||||
x1="39.316284"
|
||||
y1="23.850887"
|
||||
x2="39.316284"
|
||||
y2="33.573162"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5212148,-0.00234545,0.00234545,-1.5212148,97.067791,71.437633)" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g1"><g
|
||||
style="fill:none;stroke-width:0.997795;stroke-dasharray:none"
|
||||
id="g2-9"
|
||||
transform="matrix(0.94488189,0,0,0.94488189,13.942277,26.198812)"><rect
|
||||
width="24"
|
||||
height="24"
|
||||
fill="#ffffff"
|
||||
id="rect1-4-2"
|
||||
x="0"
|
||||
y="0"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="M 3,6.47214 C 3,6.16165 3.07229,5.85542 3.21115,5.57771 L 4,4 h 5 l 1,2 h 10 c 0.5523,0 1,0.44772 1,1 v 2 10 c 0,0.5523 -0.4477,1 -1,1 H 4 C 3.44772,20 3,19.5523 3,19 V 9 Z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path1-5-7"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="m 4,20 h 16 c 0.5523,0 1,-0.4477 1,-1 V 11 C 21,9.89543 20.1046,9 19,9 H 5 C 3.89543,9 3,9.89543 3,11 v 8 c 0,0.5523 0.44772,1 1,1 z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path2-5-9"
|
||||
style="mix-blend-mode:normal;fill:url(#linearGradient10);stroke-width:0.997795;stroke-dasharray:none" /></g><g
|
||||
style="opacity:1;fill:none;stroke-width:0.997795;stroke-dasharray:none"
|
||||
id="g2"
|
||||
transform="matrix(0.94488189,0,0,0.94488189,13.928523,5.2534968)"><rect
|
||||
width="24"
|
||||
height="24"
|
||||
fill="#ffffff"
|
||||
id="rect1-4"
|
||||
x="0"
|
||||
y="0"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="M 3,6.47214 C 3,6.16165 3.07229,5.85542 3.21115,5.57771 L 4,4 h 5 l 1,2 h 10 c 0.5523,0 1,0.44772 1,1 v 2 10 c 0,0.5523 -0.4477,1 -1,1 H 4 C 3.44772,20 3,19.5523 3,19 V 9 Z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path1-5"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="m 4,20 h 16 c 0.5523,0 1,-0.4477 1,-1 V 11 C 21,9.89543 20.1046,9 19,9 H 5 C 3.89543,9 3,9.89543 3,11 v 8 c 0,0.5523 0.44772,1 1,1 z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path2-5"
|
||||
style="mix-blend-mode:normal;fill:url(#linearGradient8);stroke-width:0.997795;stroke-dasharray:none" /></g><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.05292px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 4.7932538,3.7410698 V 41.12628"
|
||||
id="path14" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.00783px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 4.8643183,18.604563 H 16.977703"
|
||||
id="path13" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.01719px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 4.6626873,40.600637 H 17.002505"
|
||||
id="path5-5" /><path
|
||||
style="fill:url(#linearGradient13);stroke:#000000;stroke-width:1.07515;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 44.183925,27.684994 30.481487,19.793677 30.618503,35.52195 v 0 z"
|
||||
id="path11" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-read-monochrome.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="529"
|
||||
inkscape:cy="299.5"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 148.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="210 : 148.5 : 1"
|
||||
inkscape:persp3d-origin="105 : 99 : 1"
|
||||
id="perspective8" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g1"><path
|
||||
id="rect14-6"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.338152"
|
||||
d="M 141.52,29.104168 V 154.0214 H 16.933331 v 3.74728 H 145.5978 V 29.104168 Z"
|
||||
inkscape:export-filename="folder-tree-write-double-arrow-mono-96.png"
|
||||
inkscape:export-xdpi="18.95162"
|
||||
inkscape:export-ydpi="18.95162" /><path
|
||||
id="path4"
|
||||
style="fill:#000000;stroke-width:5.43016"
|
||||
d="M 43.387533 55.502555 C 43.382223 55.502555 43.377842 55.503067 43.372546 55.503072 L 39.547974 55.503072 L 39.547974 73.891614 L 39.601717 73.891614 C 39.562929 78.216526 39.547974 83.280562 39.547974 89.913375 L 39.547974 124.32368 L 56.824438 124.32368 L 74.100903 124.32368 L 74.100903 131.97024 L 74.100903 139.6168 L 99.055969 139.6168 L 124.01052 139.6168 L 124.01052 124.32368 L 124.01052 109.03004 L 112.79053 109.03004 C 104.00831 109.03004 100.81534 108.19914 98.095821 105.2065 C 95.446931 102.29157 92.183679 101.38348 84.361259 101.38348 L 74.100903 101.38348 L 74.100903 109.03004 L 74.100903 116.6766 L 60.663997 116.6766 L 47.226575 116.6766 L 47.226575 97.559937 L 47.226575 78.443274 L 60.663997 78.443274 L 74.100903 78.443274 L 74.100903 86.089836 L 74.100903 93.736397 L 99.055969 93.736397 L 124.01052 93.736397 L 124.01052 78.443274 L 124.01052 63.149634 L 112.79053 63.149634 C 104.00831 63.149634 100.81534 62.318735 98.095821 59.326095 C 95.446931 56.411165 92.183679 55.502555 84.361259 55.502555 L 74.100903 55.502555 L 74.100903 63.149634 L 74.100903 70.796195 L 60.663997 70.796195 L 47.226575 70.796195 L 47.226575 63.149634 C 47.226575 63.01478 47.221481 62.914606 47.22089 62.784281 L 47.22089 55.503072 L 43.395801 55.503072 C 43.392754 55.50307 43.390584 55.502555 43.387533 55.502555 z M 87.24067 63.149634 C 90.26408 63.149634 94.253088 64.856006 96.176558 66.972656 C 98.635458 69.678506 102.08853 70.796195 107.99134 70.796195 L 116.33243 70.796195 L 116.33243 78.443274 L 116.33243 86.089836 L 99.055969 86.089836 L 81.779504 86.089836 L 81.779504 74.619735 C 81.779504 63.288445 81.8455 63.149634 87.24067 63.149634 z M 87.24067 109.03004 C 90.26408 109.03004 94.253088 110.73693 96.176558 112.85358 C 98.635458 115.55943 102.08853 116.6766 107.99134 116.6766 L 116.33243 116.6766 L 116.33243 124.32368 L 116.33243 131.97024 L 99.055969 131.97024 L 81.779504 131.97024 L 81.779504 120.50014 C 81.779504 109.16885 81.8455 109.03004 87.24067 109.03004 z "
|
||||
inkscape:label="path4"
|
||||
inkscape:export-filename="folder-tree-write-mono.png"
|
||||
inkscape:export-xdpi="19.246401"
|
||||
inkscape:export-ydpi="19.246401" /><path
|
||||
id="rect4"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.129178"
|
||||
d="m 95.735718,56.617364 13.322102,-13.409862 -13.397742,-13.486 -0.0502,0.05052 0.0249,5.318429 8.063912,8.117046 -7.988282,8.040901 z"
|
||||
inkscape:label="rect4" /><path
|
||||
id="rect4-3"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.129178"
|
||||
d="m 110.19252,57.322947 13.32209,-13.409862 -13.39773,-13.486 -0.0502,0.05052 0.0249,5.318429 8.0639,8.117046 -7.98827,8.040901 z"
|
||||
inkscape:label="rect4" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-read-outline.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="529"
|
||||
inkscape:cy="298.5"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><linearGradient
|
||||
id="swatch3"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3" /></linearGradient><linearGradient
|
||||
id="swatch2"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2" /></linearGradient><linearGradient
|
||||
id="swatch1"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop1" /></linearGradient><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 148.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="210 : 148.5 : 1"
|
||||
inkscape:persp3d-origin="105 : 99 : 1"
|
||||
id="perspective8" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch1"
|
||||
id="linearGradient1"
|
||||
x1="39.547974"
|
||||
y1="97.559678"
|
||||
x2="124.01052"
|
||||
y2="97.559678"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch2"
|
||||
id="linearGradient2"
|
||||
x1="110.06668"
|
||||
y1="43.875016"
|
||||
x2="123.51461"
|
||||
y2="43.875016"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch3"
|
||||
id="linearGradient3"
|
||||
x1="95.609878"
|
||||
y1="43.169433"
|
||||
x2="109.05782"
|
||||
y2="43.169433"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,1.0583333)" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g1"><path
|
||||
id="rect14-6"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.338152"
|
||||
d="M 141.52,29.104168 V 154.0214 H 16.933331 v 3.74728 H 145.5978 V 29.104168 Z"
|
||||
inkscape:export-filename="folder-tree-write-outline-16.png"
|
||||
inkscape:export-xdpi="3.1586032"
|
||||
inkscape:export-ydpi="3.1586032" /><path
|
||||
id="path4"
|
||||
style="fill:none;stroke:url(#linearGradient1);stroke-width:2.03;stroke-dasharray:none"
|
||||
d="m 43.387533,55.502555 c -0.0053,0 -0.0097,5.12e-4 -0.01499,5.17e-4 h -3.824572 v 18.388542 h 0.05374 c -0.03879,4.324912 -0.05374,9.388948 -0.05374,16.021761 v 34.410305 h 17.276464 17.276465 v 7.64656 7.64656 h 24.955066 24.954551 v -15.29312 -15.29364 h -11.21999 c -8.78222,0 -11.97519,-0.8309 -14.694709,-3.82354 -2.64889,-2.91493 -5.912142,-3.82302 -13.734562,-3.82302 H 74.100903 v 7.64656 7.64656 H 60.663997 47.226575 V 97.559937 78.443274 h 13.437422 13.436906 v 7.646562 7.646561 H 99.055969 124.01052 V 78.443274 63.149634 h -11.21999 c -8.78222,0 -11.97519,-0.830899 -14.694709,-3.823539 -2.64889,-2.91493 -5.912142,-3.82354 -13.734562,-3.82354 H 74.100903 v 7.647079 7.646561 H 60.663997 47.226575 v -7.646561 c 0,-0.134854 -0.0051,-0.235028 -0.0057,-0.365353 v -7.281209 h -3.825089 c -0.003,-2e-6 -0.0052,-5.17e-4 -0.0083,-5.17e-4 z m 43.853137,7.647079 c 3.02341,0 7.012418,1.706372 8.935888,3.823022 2.4589,2.70585 5.911972,3.823539 11.814782,3.823539 h 8.34109 v 7.647079 7.646562 H 99.055969 81.779504 V 74.619735 c 0,-11.33129 0.066,-11.470101 5.461166,-11.470101 z m 0,45.880406 c 3.02341,0 7.012418,1.70689 8.935888,3.82354 2.4589,2.70585 5.911972,3.82302 11.814782,3.82302 h 8.34109 v 7.64708 7.64656 H 99.055969 81.779504 v -11.4701 c 0,-11.33129 0.066,-11.4701 5.461166,-11.4701 z"
|
||||
inkscape:label="path4"
|
||||
inkscape:export-filename="folder-tree-write-mono.png"
|
||||
inkscape:export-xdpi="19.246401"
|
||||
inkscape:export-ydpi="19.246401"
|
||||
sodipodi:nodetypes="sccccscccccccccssscccccccccccccccssscccccscccsssscccccssssscccccss" /><path
|
||||
id="rect4"
|
||||
style="fill:none;fill-opacity:1;stroke:url(#linearGradient3);stroke-width:2.029;stroke-dasharray:none"
|
||||
d="m 95.735718,57.675698 13.322102,-13.409862 -13.397742,-13.486 -0.0502,0.05052 0.0249,5.318429 8.063912,8.117046 -7.988282,8.040901 z"
|
||||
inkscape:label="rect4"
|
||||
sodipodi:nodetypes="cccccccc" /><path
|
||||
id="rect4-3"
|
||||
style="fill:none;fill-opacity:1;stroke-width:2.029;stroke-dasharray:none;stroke:url(#linearGradient2)"
|
||||
d="m 110.19252,57.322947 13.32209,-13.409862 -13.39773,-13.486 -0.0502,0.05052 0.0249,5.318429 8.0639,8.117046 -7.98827,8.040901 z"
|
||||
inkscape:label="rect4"
|
||||
sodipodi:nodetypes="cccccccc" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
@@ -0,0 +1,111 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-read-yerico.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.7071068"
|
||||
inkscape:cx="367.69552"
|
||||
inkscape:cy="341.53257"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><linearGradient
|
||||
id="swatch3"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3" /></linearGradient><linearGradient
|
||||
id="swatch2"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#fff4cc;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2" /></linearGradient><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 148.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="210 : 148.5 : 1"
|
||||
inkscape:persp3d-origin="105 : 99 : 1"
|
||||
id="perspective8" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch2"
|
||||
id="linearGradient2"
|
||||
x1="39.547974"
|
||||
y1="97.559677"
|
||||
x2="124.01052"
|
||||
y2="97.559677"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch3"
|
||||
id="linearGradient3"
|
||||
x1="184.96028"
|
||||
y1="72.646881"
|
||||
x2="189.76028"
|
||||
y2="72.646881"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(9.5063048,0,0,9.5180616,-1955.787,-785.28372)" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g1"><circle
|
||||
style="fill:#d89218;fill-opacity:1;stroke-width:6.79151"
|
||||
id="path2"
|
||||
cx="82.285423"
|
||||
cy="98.160416"
|
||||
r="63.764584"
|
||||
inkscape:export-filename="folder-tree-read-yerico-16.png"
|
||||
inkscape:export-xdpi="3.1867223"
|
||||
inkscape:export-ydpi="3.1867223" /><path
|
||||
id="path4"
|
||||
style="fill:url(#linearGradient2);stroke-width:5.43016"
|
||||
d="M 43.387533 55.502555 C 43.382223 55.502555 43.377842 55.503067 43.372546 55.503072 L 39.547974 55.503072 L 39.547974 73.891614 L 39.601717 73.891614 C 39.562929 78.216526 39.547974 83.280562 39.547974 89.913375 L 39.547974 124.32368 L 56.824438 124.32368 L 74.100903 124.32368 L 74.100903 131.97024 L 74.100903 139.6168 L 99.055969 139.6168 L 124.01052 139.6168 L 124.01052 124.32368 L 124.01052 109.03004 L 112.79053 109.03004 C 104.00831 109.03004 100.81534 108.19914 98.095821 105.2065 C 95.446931 102.29157 92.183679 101.38348 84.361259 101.38348 L 74.100903 101.38348 L 74.100903 109.03004 L 74.100903 116.6766 L 60.663997 116.6766 L 47.226575 116.6766 L 47.226575 97.559937 L 47.226575 78.443274 L 60.663997 78.443274 L 74.100903 78.443274 L 74.100903 86.089836 L 74.100903 93.736397 L 99.055969 93.736397 L 124.01052 93.736397 L 124.01052 78.443274 L 124.01052 63.149634 L 112.79053 63.149634 C 104.00831 63.149634 100.81534 62.318735 98.095821 59.326095 C 95.446931 56.411165 92.183679 55.502555 84.361259 55.502555 L 74.100903 55.502555 L 74.100903 63.149634 L 74.100903 70.796195 L 60.663997 70.796195 L 47.226575 70.796195 L 47.226575 63.149634 C 47.226575 63.01478 47.221481 62.914606 47.22089 62.784281 L 47.22089 55.503072 L 43.395801 55.503072 C 43.392754 55.50307 43.390584 55.502555 43.387533 55.502555 z M 87.24067 63.149634 C 90.26408 63.149634 94.253088 64.856006 96.176558 66.972656 C 98.635458 69.678506 102.08853 70.796195 107.99134 70.796195 L 116.33243 70.796195 L 116.33243 78.443274 L 116.33243 86.089836 L 99.055969 86.089836 L 81.779504 86.089836 L 81.779504 74.619735 C 81.779504 63.288445 81.8455 63.149634 87.24067 63.149634 z M 87.24067 109.03004 C 90.26408 109.03004 94.253088 110.73693 96.176558 112.85358 C 98.635458 115.55943 102.08853 116.6766 107.99134 116.6766 L 116.33243 116.6766 L 116.33243 124.32368 L 116.33243 131.97024 L 99.055969 131.97024 L 81.779504 131.97024 L 81.779504 120.50014 C 81.779504 109.16885 81.8455 109.03004 87.24067 109.03004 z "
|
||||
inkscape:label="path4"
|
||||
inkscape:export-filename="folder-tree-write-mono.png"
|
||||
inkscape:export-xdpi="19.246401"
|
||||
inkscape:export-ydpi="19.246401" /><g
|
||||
id="g4"
|
||||
transform="matrix(1.3614822,0,0,1.3666947,-125.72431,-30.762205)"><g
|
||||
id="g5"><ellipse
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:url(#linearGradient3);stroke-width:1.34122;stroke-dasharray:none"
|
||||
id="path3"
|
||||
cx="-174.68321"
|
||||
cy="-93.826241"
|
||||
rx="22.815136"
|
||||
ry="22.843351"
|
||||
transform="scale(-1)" /><g
|
||||
id="g3"
|
||||
transform="matrix(-10.529237,0,0,-10.0954,2228.8808,842.76681)"><path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path13711-9-5-5-8-1-5"
|
||||
d="m 195.01206,72.543769 -1.42575,1.715456 1.38914,1.542414 v -1.075102 h 1.2832 v -1.075092 h -1.24851 z"
|
||||
style="fill:#cd4b3f;fill-opacity:1;stroke:none;stroke-width:0.247029" /><ellipse
|
||||
id="path10749-8-0-2-8-0-9"
|
||||
style="fill:none;stroke:#dead5c;stroke-width:0.56623;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
cx="195.09644"
|
||||
cy="74.175911"
|
||||
rx="1.8063053"
|
||||
ry="1.8960955" /></g></g></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
@@ -0,0 +1,162 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:export-filename="folder-tree-write-classic-16.png"
|
||||
inkscape:export-xdpi="32"
|
||||
inkscape:export-ydpi="32"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-write-classic.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="8.5972598"
|
||||
inkscape:cx="6.7463356"
|
||||
inkscape:cy="35.999843"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><linearGradient
|
||||
id="swatch11"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop11" /></linearGradient><linearGradient
|
||||
id="swatch9"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#82d8f8;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10" /></linearGradient><linearGradient
|
||||
id="swatch8"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#31afe2;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8" /></linearGradient><linearGradient
|
||||
id="swatch7"><stop
|
||||
style="stop-color:#82dcf8;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7" /><stop
|
||||
style="stop-color:#31afe2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop9" /></linearGradient><linearGradient
|
||||
id="swatch6"><stop
|
||||
style="stop-color:#0bade1;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6" /></linearGradient><linearGradient
|
||||
id="swatch5"><stop
|
||||
style="stop-color:#09ade2;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch7"
|
||||
id="linearGradient8"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="12"
|
||||
y1="5"
|
||||
x2="12"
|
||||
y2="24" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch7"
|
||||
id="linearGradient10"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="12"
|
||||
y1="5"
|
||||
x2="12"
|
||||
y2="24" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient11"
|
||||
id="linearGradient13"
|
||||
x1="39.316284"
|
||||
y1="23.850887"
|
||||
x2="39.316284"
|
||||
y2="33.573162"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5212764,0,0,1.5212764,-23.44161,-15.440195)" /><linearGradient
|
||||
id="linearGradient11"
|
||||
inkscape:collect="always"><stop
|
||||
style="stop-color:#ebfff2;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop12" /><stop
|
||||
style="stop-color:#07df44;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop13" /></linearGradient></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g1"><g
|
||||
style="fill:none;stroke-width:0.997795;stroke-dasharray:none"
|
||||
id="g2-9"
|
||||
transform="matrix(0.94488189,0,0,0.94488189,13.942277,26.198812)"><rect
|
||||
width="24"
|
||||
height="24"
|
||||
fill="#ffffff"
|
||||
id="rect1-4-2"
|
||||
x="0"
|
||||
y="0"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="M 3,6.47214 C 3,6.16165 3.07229,5.85542 3.21115,5.57771 L 4,4 h 5 l 1,2 h 10 c 0.5523,0 1,0.44772 1,1 v 2 10 c 0,0.5523 -0.4477,1 -1,1 H 4 C 3.44772,20 3,19.5523 3,19 V 9 Z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path1-5-7"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="m 4,20 h 16 c 0.5523,0 1,-0.4477 1,-1 V 11 C 21,9.89543 20.1046,9 19,9 H 5 C 3.89543,9 3,9.89543 3,11 v 8 c 0,0.5523 0.44772,1 1,1 z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path2-5-9"
|
||||
style="mix-blend-mode:normal;fill:url(#linearGradient10);stroke-width:0.997795;stroke-dasharray:none" /></g><g
|
||||
style="opacity:1;fill:none;stroke-width:0.997795;stroke-dasharray:none"
|
||||
id="g2"
|
||||
transform="matrix(0.94488189,0,0,0.94488189,13.928523,5.2534968)"><rect
|
||||
width="24"
|
||||
height="24"
|
||||
fill="#ffffff"
|
||||
id="rect1-4"
|
||||
x="0"
|
||||
y="0"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="M 3,6.47214 C 3,6.16165 3.07229,5.85542 3.21115,5.57771 L 4,4 h 5 l 1,2 h 10 c 0.5523,0 1,0.44772 1,1 v 2 10 c 0,0.5523 -0.4477,1 -1,1 H 4 C 3.44772,20 3,19.5523 3,19 V 9 Z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path1-5"
|
||||
style="stroke-width:0.997795;stroke-dasharray:none" /><path
|
||||
d="m 4,20 h 16 c 0.5523,0 1,-0.4477 1,-1 V 11 C 21,9.89543 20.1046,9 19,9 H 5 C 3.89543,9 3,9.89543 3,11 v 8 c 0,0.5523 0.44772,1 1,1 z"
|
||||
stroke="#000000"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path2-5"
|
||||
style="mix-blend-mode:normal;fill:url(#linearGradient8);stroke-width:0.997795;stroke-dasharray:none" /></g><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.05292px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 4.7932538,3.7410698 V 41.12628"
|
||||
id="path14" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.00783px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 4.8643183,18.604563 H 16.977703"
|
||||
id="path13" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.01719px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 4.6626873,40.600637 H 17.002505"
|
||||
id="path5-5" /><path
|
||||
style="fill:url(#linearGradient13);stroke:#000000;stroke-width:1.0752;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 29.511732,28.232567 43.22686,36.103058 43.065591,20.374396 v 0 z"
|
||||
id="path11" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-write-monochrome.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="529"
|
||||
inkscape:cy="299.5"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 148.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="210 : 148.5 : 1"
|
||||
inkscape:persp3d-origin="105 : 99 : 1"
|
||||
id="perspective8" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g1"><path
|
||||
id="rect14-6"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.338152"
|
||||
d="M 141.52,29.104168 V 154.0214 H 16.933331 v 3.74728 H 145.5978 V 29.104168 Z"
|
||||
inkscape:export-filename="folder-tree-write-double-arrow-mono-96.png"
|
||||
inkscape:export-xdpi="18.95162"
|
||||
inkscape:export-ydpi="18.95162" /><path
|
||||
id="path4"
|
||||
style="fill:#000000;stroke-width:5.43016"
|
||||
d="M 43.387533 55.502555 C 43.382223 55.502555 43.377842 55.503067 43.372546 55.503072 L 39.547974 55.503072 L 39.547974 73.891614 L 39.601717 73.891614 C 39.562929 78.216526 39.547974 83.280562 39.547974 89.913375 L 39.547974 124.32368 L 56.824438 124.32368 L 74.100903 124.32368 L 74.100903 131.97024 L 74.100903 139.6168 L 99.055969 139.6168 L 124.01052 139.6168 L 124.01052 124.32368 L 124.01052 109.03004 L 112.79053 109.03004 C 104.00831 109.03004 100.81534 108.19914 98.095821 105.2065 C 95.446931 102.29157 92.183679 101.38348 84.361259 101.38348 L 74.100903 101.38348 L 74.100903 109.03004 L 74.100903 116.6766 L 60.663997 116.6766 L 47.226575 116.6766 L 47.226575 97.559937 L 47.226575 78.443274 L 60.663997 78.443274 L 74.100903 78.443274 L 74.100903 86.089836 L 74.100903 93.736397 L 99.055969 93.736397 L 124.01052 93.736397 L 124.01052 78.443274 L 124.01052 63.149634 L 112.79053 63.149634 C 104.00831 63.149634 100.81534 62.318735 98.095821 59.326095 C 95.446931 56.411165 92.183679 55.502555 84.361259 55.502555 L 74.100903 55.502555 L 74.100903 63.149634 L 74.100903 70.796195 L 60.663997 70.796195 L 47.226575 70.796195 L 47.226575 63.149634 C 47.226575 63.01478 47.221481 62.914606 47.22089 62.784281 L 47.22089 55.503072 L 43.395801 55.503072 C 43.392754 55.50307 43.390584 55.502555 43.387533 55.502555 z M 87.24067 63.149634 C 90.26408 63.149634 94.253088 64.856006 96.176558 66.972656 C 98.635458 69.678506 102.08853 70.796195 107.99134 70.796195 L 116.33243 70.796195 L 116.33243 78.443274 L 116.33243 86.089836 L 99.055969 86.089836 L 81.779504 86.089836 L 81.779504 74.619735 C 81.779504 63.288445 81.8455 63.149634 87.24067 63.149634 z M 87.24067 109.03004 C 90.26408 109.03004 94.253088 110.73693 96.176558 112.85358 C 98.635458 115.55943 102.08853 116.6766 107.99134 116.6766 L 116.33243 116.6766 L 116.33243 124.32368 L 116.33243 131.97024 L 99.055969 131.97024 L 81.779504 131.97024 L 81.779504 120.50014 C 81.779504 109.16885 81.8455 109.03004 87.24067 109.03004 z "
|
||||
inkscape:label="path4"
|
||||
inkscape:export-filename="folder-tree-write-mono.png"
|
||||
inkscape:export-xdpi="19.246401"
|
||||
inkscape:export-ydpi="19.246401" /><path
|
||||
id="rect4"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.129178"
|
||||
d="m 108.93198,29.721502 -13.322102,13.409862 13.397742,13.486 0.0502,-0.05052 -0.0249,-5.318429 -8.06391,-8.117046 7.98828,-8.040901 z"
|
||||
inkscape:label="rect4" /><path
|
||||
id="rect4-3"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.129178"
|
||||
d="m 123.38877,30.427085 -13.32209,13.409862 13.39773,13.486 0.0502,-0.05052 -0.0249,-5.318429 -8.0639,-8.117046 7.98827,-8.040901 z"
|
||||
inkscape:label="rect4" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@@ -0,0 +1,108 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-write-outline.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="528"
|
||||
inkscape:cy="300.5"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false" /><defs
|
||||
id="defs1"><linearGradient
|
||||
id="swatch3"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3" /></linearGradient><linearGradient
|
||||
id="swatch2"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2" /></linearGradient><linearGradient
|
||||
id="swatch1"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop1" /></linearGradient><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 148.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="210 : 148.5 : 1"
|
||||
inkscape:persp3d-origin="105 : 99 : 1"
|
||||
id="perspective8" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch1"
|
||||
id="linearGradient1"
|
||||
x1="39.547974"
|
||||
y1="97.559678"
|
||||
x2="124.01052"
|
||||
y2="97.559678"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch2"
|
||||
id="linearGradient2"
|
||||
x1="95.609878"
|
||||
y1="43.169433"
|
||||
x2="109.05782"
|
||||
y2="43.169433"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,2.1166667)" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch3"
|
||||
id="linearGradient3"
|
||||
x1="110.06668"
|
||||
y1="43.875016"
|
||||
x2="123.51461"
|
||||
y2="43.875016"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,1.5875)" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><path
|
||||
id="rect14-6"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.338152"
|
||||
d="M 141.52,29.104168 V 154.0214 H 16.933331 v 3.74728 H 145.5978 V 29.104168 Z"
|
||||
inkscape:export-filename="folder-tree-write-outline-16.png"
|
||||
inkscape:export-xdpi="3.1586032"
|
||||
inkscape:export-ydpi="3.1586032" /><path
|
||||
id="path4"
|
||||
style="fill:none;stroke-width:2.03;stroke:url(#linearGradient1);stroke-dasharray:none"
|
||||
d="M 43.387533 55.502555 C 43.382223 55.502555 43.377842 55.503067 43.372546 55.503072 L 39.547974 55.503072 L 39.547974 73.891614 L 39.601717 73.891614 C 39.562929 78.216526 39.547974 83.280562 39.547974 89.913375 L 39.547974 124.32368 L 56.824438 124.32368 L 74.100903 124.32368 L 74.100903 131.97024 L 74.100903 139.6168 L 99.055969 139.6168 L 124.01052 139.6168 L 124.01052 124.32368 L 124.01052 109.03004 L 112.79053 109.03004 C 104.00831 109.03004 100.81534 108.19914 98.095821 105.2065 C 95.446931 102.29157 92.183679 101.38348 84.361259 101.38348 L 74.100903 101.38348 L 74.100903 109.03004 L 74.100903 116.6766 L 60.663997 116.6766 L 47.226575 116.6766 L 47.226575 97.559937 L 47.226575 78.443274 L 60.663997 78.443274 L 74.100903 78.443274 L 74.100903 86.089836 L 74.100903 93.736397 L 99.055969 93.736397 L 124.01052 93.736397 L 124.01052 78.443274 L 124.01052 63.149634 L 112.79053 63.149634 C 104.00831 63.149634 100.81534 62.318735 98.095821 59.326095 C 95.446931 56.411165 92.183679 55.502555 84.361259 55.502555 L 74.100903 55.502555 L 74.100903 63.149634 L 74.100903 70.796195 L 60.663997 70.796195 L 47.226575 70.796195 L 47.226575 63.149634 C 47.226575 63.01478 47.221481 62.914606 47.22089 62.784281 L 47.22089 55.503072 L 43.395801 55.503072 C 43.392754 55.50307 43.390584 55.502555 43.387533 55.502555 z M 87.24067 63.149634 C 90.26408 63.149634 94.253088 64.856006 96.176558 66.972656 C 98.635458 69.678506 102.08853 70.796195 107.99134 70.796195 L 116.33243 70.796195 L 116.33243 78.443274 L 116.33243 86.089836 L 99.055969 86.089836 L 81.779504 86.089836 L 81.779504 74.619735 C 81.779504 63.288445 81.8455 63.149634 87.24067 63.149634 z M 87.24067 109.03004 C 90.26408 109.03004 94.253088 110.73693 96.176558 112.85358 C 98.635458 115.55943 102.08853 116.6766 107.99134 116.6766 L 116.33243 116.6766 L 116.33243 124.32368 L 116.33243 131.97024 L 99.055969 131.97024 L 81.779504 131.97024 L 81.779504 120.50014 C 81.779504 109.16885 81.8455 109.03004 87.24067 109.03004 z "
|
||||
inkscape:label="path4"
|
||||
inkscape:export-filename="folder-tree-write-mono.png"
|
||||
inkscape:export-xdpi="19.246401"
|
||||
inkscape:export-ydpi="19.246401" /><path
|
||||
id="rect4"
|
||||
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2);stroke-width:2.029;stroke-dasharray:none"
|
||||
d="m 108.93198,31.83817 -13.322102,13.409862 13.397742,13.486 0.0502,-0.05052 -0.0249,-5.318429 -8.06391,-8.117046 7.98828,-8.040901 z"
|
||||
inkscape:label="rect4" /><path
|
||||
id="rect4-3"
|
||||
style="fill:none;fill-opacity:1;stroke:url(#linearGradient3);stroke-width:2.029;stroke-dasharray:none"
|
||||
d="m 123.38877,32.014586 -13.32209,13.409862 13.39773,13.486 0.0502,-0.05052 -0.0249,-5.318429 -8.0639,-8.117046 7.98827,-8.040901 z"
|
||||
inkscape:label="rect4" /></g></svg>
|
||||
|
After Width: | Height: | Size: 6.0 KiB |
@@ -0,0 +1,111 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
||||
sodipodi:docname="folder-tree-write-yerico.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:cx="367.69552"
|
||||
inkscape:cy="393.50491"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1055"
|
||||
inkscape:window-x="-7"
|
||||
inkscape:window-y="-7"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs1"><linearGradient
|
||||
id="swatch3"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3" /></linearGradient><linearGradient
|
||||
id="swatch2"
|
||||
inkscape:swatch="solid"><stop
|
||||
style="stop-color:#fff4cc;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2" /></linearGradient><inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 148.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="210 : 148.5 : 1"
|
||||
inkscape:persp3d-origin="105 : 99 : 1"
|
||||
id="perspective8" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch2"
|
||||
id="linearGradient2"
|
||||
x1="39.547974"
|
||||
y1="97.559677"
|
||||
x2="124.01052"
|
||||
y2="97.559677"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#swatch3"
|
||||
id="linearGradient3"
|
||||
x1="184.96028"
|
||||
y1="72.646881"
|
||||
x2="189.76028"
|
||||
y2="72.646881"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(9.5063048,0,0,9.5180616,-1955.787,-785.28372)" /></defs><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g1"><circle
|
||||
style="fill:#d89218;fill-opacity:1;stroke-width:6.79151"
|
||||
id="path2"
|
||||
cx="82.285423"
|
||||
cy="98.160416"
|
||||
r="63.764584"
|
||||
inkscape:export-filename="folder-tree-write-yerico-16.png"
|
||||
inkscape:export-xdpi="3.1867223"
|
||||
inkscape:export-ydpi="3.1867223" /><path
|
||||
id="path4"
|
||||
style="fill:url(#linearGradient2);stroke-width:5.43016"
|
||||
d="M 43.387533 55.502555 C 43.382223 55.502555 43.377842 55.503067 43.372546 55.503072 L 39.547974 55.503072 L 39.547974 73.891614 L 39.601717 73.891614 C 39.562929 78.216526 39.547974 83.280562 39.547974 89.913375 L 39.547974 124.32368 L 56.824438 124.32368 L 74.100903 124.32368 L 74.100903 131.97024 L 74.100903 139.6168 L 99.055969 139.6168 L 124.01052 139.6168 L 124.01052 124.32368 L 124.01052 109.03004 L 112.79053 109.03004 C 104.00831 109.03004 100.81534 108.19914 98.095821 105.2065 C 95.446931 102.29157 92.183679 101.38348 84.361259 101.38348 L 74.100903 101.38348 L 74.100903 109.03004 L 74.100903 116.6766 L 60.663997 116.6766 L 47.226575 116.6766 L 47.226575 97.559937 L 47.226575 78.443274 L 60.663997 78.443274 L 74.100903 78.443274 L 74.100903 86.089836 L 74.100903 93.736397 L 99.055969 93.736397 L 124.01052 93.736397 L 124.01052 78.443274 L 124.01052 63.149634 L 112.79053 63.149634 C 104.00831 63.149634 100.81534 62.318735 98.095821 59.326095 C 95.446931 56.411165 92.183679 55.502555 84.361259 55.502555 L 74.100903 55.502555 L 74.100903 63.149634 L 74.100903 70.796195 L 60.663997 70.796195 L 47.226575 70.796195 L 47.226575 63.149634 C 47.226575 63.01478 47.221481 62.914606 47.22089 62.784281 L 47.22089 55.503072 L 43.395801 55.503072 C 43.392754 55.50307 43.390584 55.502555 43.387533 55.502555 z M 87.24067 63.149634 C 90.26408 63.149634 94.253088 64.856006 96.176558 66.972656 C 98.635458 69.678506 102.08853 70.796195 107.99134 70.796195 L 116.33243 70.796195 L 116.33243 78.443274 L 116.33243 86.089836 L 99.055969 86.089836 L 81.779504 86.089836 L 81.779504 74.619735 C 81.779504 63.288445 81.8455 63.149634 87.24067 63.149634 z M 87.24067 109.03004 C 90.26408 109.03004 94.253088 110.73693 96.176558 112.85358 C 98.635458 115.55943 102.08853 116.6766 107.99134 116.6766 L 116.33243 116.6766 L 116.33243 124.32368 L 116.33243 131.97024 L 99.055969 131.97024 L 81.779504 131.97024 L 81.779504 120.50014 C 81.779504 109.16885 81.8455 109.03004 87.24067 109.03004 z "
|
||||
inkscape:label="path4"
|
||||
inkscape:export-filename="folder-tree-write-mono.png"
|
||||
inkscape:export-xdpi="19.246401"
|
||||
inkscape:export-ydpi="19.246401" /><g
|
||||
id="g4"
|
||||
transform="matrix(-1.3614801,-0.00237623,0.00238533,-1.3666926,349.70769,226.11634)"><g
|
||||
id="g5"><ellipse
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:url(#linearGradient3);stroke-width:1.34122;stroke-dasharray:none"
|
||||
id="path3"
|
||||
cx="-174.68321"
|
||||
cy="-93.826241"
|
||||
rx="22.815136"
|
||||
ry="22.843351"
|
||||
transform="scale(-1)" /><g
|
||||
id="g3"
|
||||
transform="matrix(-10.529237,0,0,-10.0954,2228.8808,842.76681)"><path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path13711-9-5-5-8-1-5"
|
||||
d="m 195.01206,72.543769 -1.42575,1.715456 1.38914,1.542414 v -1.075102 h 1.2832 v -1.075092 h -1.24851 z"
|
||||
style="fill:#cd4b3f;fill-opacity:1;stroke:none;stroke-width:0.247029" /><ellipse
|
||||
id="path10749-8-0-2-8-0-9"
|
||||
style="fill:none;stroke:#dead5c;stroke-width:0.56623;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
cx="195.09644"
|
||||
cy="74.175911"
|
||||
rx="1.8063053"
|
||||
ry="1.8960955" /></g></g></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
@@ -90,7 +90,7 @@ MainWindow::MainWindow():
|
||||
|
||||
if (g.isFirstUse()) {
|
||||
g.warningId(g.warningId() | AppMessages::MSG_WELCOME);
|
||||
QTimer::singleShot(updateDelay-500, this, SLOT(appPrefs())); // must be shown before warnings dialog but after splash
|
||||
QTimer::singleShot(updateDelay-500, this, SLOT(editAppSettings())); // must be shown before warnings dialog but after splash
|
||||
}
|
||||
else {
|
||||
if (!g.previousVersion().isEmpty())
|
||||
@@ -205,7 +205,7 @@ void MainWindow::closeEvent(QCloseEvent *event)
|
||||
#endif
|
||||
g.mainWinGeo(saveGeometry());
|
||||
g.mainWinState(saveState());
|
||||
g.tabbedMdi(actTabbedWindows->isChecked());
|
||||
g.tabbedMdi(tabbedWindowsAct->isChecked());
|
||||
QApplication::closeAllWindows();
|
||||
mdiArea->closeAllSubWindows();
|
||||
if (mdiArea->currentSubWindow()) {
|
||||
@@ -255,7 +255,7 @@ void MainWindow::manualCheckForUpdates()
|
||||
statusBar()->clearMessage();
|
||||
}
|
||||
|
||||
void MainWindow::downloads()
|
||||
void MainWindow::updates()
|
||||
{
|
||||
doUpdates(false);
|
||||
}
|
||||
@@ -325,13 +325,13 @@ void MainWindow::onIconSizeChanged(QAction * act)
|
||||
void MainWindow::setTabbedWindows(bool on)
|
||||
{
|
||||
mdiArea->setViewMode(on ? QMdiArea::TabbedView : QMdiArea::SubWindowView);
|
||||
if (actTileWindows)
|
||||
actTileWindows->setDisabled(on);
|
||||
if (actCascadeWindows)
|
||||
actCascadeWindows->setDisabled(on);
|
||||
if (tileWindowsAct)
|
||||
tileWindowsAct->setDisabled(on);
|
||||
if (cascadeWindowsAct)
|
||||
cascadeWindowsAct->setDisabled(on);
|
||||
|
||||
if (actTabbedWindows->isChecked() != on)
|
||||
actTabbedWindows->setChecked(on);
|
||||
if (tabbedWindowsAct->isChecked() != on)
|
||||
tabbedWindowsAct->setChecked(on);
|
||||
}
|
||||
|
||||
void MainWindow::newFile()
|
||||
@@ -452,7 +452,7 @@ void MainWindow::loadProfile()
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::appPrefs()
|
||||
void MainWindow::editAppSettings()
|
||||
{
|
||||
AppPreferencesDialog * dialog = new AppPreferencesDialog(this, updateFactories);
|
||||
dialog->setMainWinHasDirtyChild(anyChildrenDirty());
|
||||
@@ -460,6 +460,7 @@ void MainWindow::appPrefs()
|
||||
connect(dialog, &AppPreferencesDialog::firmwareProfileChanged, this, &MainWindow::onCurrentProfileChanged);
|
||||
dialog->exec();
|
||||
dialog->deleteLater();
|
||||
updateMenus();
|
||||
}
|
||||
|
||||
void MainWindow::sdsync(bool postUpdate)
|
||||
@@ -677,9 +678,11 @@ void MainWindow::updateMenus()
|
||||
compareAct->setEnabled(activeChild);
|
||||
writeSettingsAct->setEnabled(activeChild);
|
||||
readSettingsAct->setEnabled(true);
|
||||
writeSettingsSDPathAct->setEnabled(activeChild && isSDPathValid());
|
||||
readSettingsSDPathAct->setEnabled(isSDPathValid());
|
||||
writeBUToRadioAct->setEnabled(false);
|
||||
readBUToFileAct->setEnabled(false);
|
||||
editSplashAct->setDisabled(IS_FAMILY_HORUS_OR_T16(getCurrentBoard()));
|
||||
editSplashAct->setDisabled(Boards::getBoardCapability(getCurrentBoard(), Board::HasColorLcd));
|
||||
|
||||
foreach (QAction * act, fileWindowActions) {
|
||||
if (!act)
|
||||
@@ -692,34 +695,39 @@ void MainWindow::updateMenus()
|
||||
if (act->isSeparator() && act->parent() == this)
|
||||
delete act;
|
||||
}
|
||||
fileWindowActions.clear();
|
||||
if (activeChild) {
|
||||
editMenu->clear();
|
||||
editMenu->addActions(activeMdiChild()->getEditActions());
|
||||
editMenu->addSeparator();
|
||||
editMenu->addActions(activeMdiChild()->getModelActions()); // maybe separate menu/toolbar?
|
||||
editMenu->setEnabled(true);
|
||||
|
||||
editToolBar->clear();
|
||||
editToolBar->addActions(activeMdiChild()->getEditActions());
|
||||
editToolBar->setEnabled(true);
|
||||
fileWindowActions.clear();
|
||||
|
||||
if (activeChild) {
|
||||
modelsMenu->clear();
|
||||
modelsMenu->addActions(activeMdiChild()->getEditActions());
|
||||
modelsMenu->addSeparator();
|
||||
modelsMenu->addActions(activeMdiChild()->getModelActions()); // maybe separate menu/toolbar?
|
||||
modelsMenu->addAction(compareAct);
|
||||
modelsMenu->setEnabled(true);
|
||||
|
||||
modelsToolBar->clear();
|
||||
modelsToolBar->addActions(activeMdiChild()->getEditActions());
|
||||
modelsToolBar->addAction(compareAct);
|
||||
modelsToolBar->setEnabled(true);
|
||||
|
||||
if (activeMdiChild()->getAction(MdiChild::ACT_MDL_MOV)) {
|
||||
// workaround for default split button appearance of action with menu :-/
|
||||
QToolButton * btn;
|
||||
if ((btn = qobject_cast<QToolButton *>(editToolBar->widgetForAction(activeMdiChild()->getAction(MdiChild::ACT_MDL_MOV)))))
|
||||
if ((btn = qobject_cast<QToolButton *>(modelsToolBar->widgetForAction(activeMdiChild()->getAction(MdiChild::ACT_MDL_MOV)))))
|
||||
btn->setPopupMode(QToolButton::InstantPopup);
|
||||
}
|
||||
|
||||
fileWindowActions = activeMdiChild()->getGeneralActions();
|
||||
QAction *sep = new QAction(this);
|
||||
sep->setSeparator(true);
|
||||
fileWindowActions.append(sep);
|
||||
fileMenu->insertActions(logsAct, fileWindowActions);
|
||||
fileToolBar->insertActions(logsAct, fileWindowActions);
|
||||
fileWindowActions.insert(0, sep);
|
||||
radioMenu->addActions(fileWindowActions);
|
||||
modelsToolBar->addActions(fileWindowActions); // do not put these in radio toolbar
|
||||
}
|
||||
else {
|
||||
editToolBar->setDisabled(true);
|
||||
editMenu->setDisabled(true);
|
||||
modelsToolBar->setDisabled(true);
|
||||
modelsMenu->setDisabled(true);
|
||||
}
|
||||
|
||||
foreach (QAction * act, windowsListActions->actions()) {
|
||||
@@ -732,7 +740,7 @@ void MainWindow::updateMenus()
|
||||
|
||||
updateRecentFileActions();
|
||||
updateProfilesActions();
|
||||
setWindowTitle(tr("EdgeTX Companion %1 - Radio: %2 - Profile: %3").arg(VERSION).arg(getCurrentFirmware()->getName()).arg(g.profile[g.id()].name()));
|
||||
setWindowTitle(tr("%1 %2 - Radio: %3 - Profile: %4").arg(CPN_STR_APP_NAME).arg(VERSION).arg(getCurrentFirmware()->getName()).arg(g.profile[g.id()].name()));
|
||||
}
|
||||
|
||||
MdiChild * MainWindow::createMdiChild()
|
||||
@@ -801,59 +809,70 @@ void MainWindow::trAct(QAction * act, const QString & text, const QString & desc
|
||||
|
||||
void MainWindow::retranslateUi(bool showMsg)
|
||||
{
|
||||
trAct(newAct, tr("New"), tr("Create a new Models and Settings file"));
|
||||
trAct(openAct, tr("Open..."), tr("Open Models and Settings file"));
|
||||
trAct(saveAct, tr("Save"), tr("Save Models and Settings file"));
|
||||
trAct(saveAsAct, tr("Save As..."), tr("Save Models and Settings file"));
|
||||
trAct(closeAct, tr("Close"), tr("Close Models and Settings file"));
|
||||
trAct(exitAct, tr("Exit"), tr("Exit the application"));
|
||||
trAct(aboutAct, tr("About Companion..."), tr("Show the application's About box"));
|
||||
trAct(newAct, tr("New"), tr("Create a new Models and Settings file"));
|
||||
trAct(openAct, tr("Open..."), tr("Open an existing Models and Settings file"));
|
||||
trAct(saveAct, tr("Save"), tr("Save to Models and Settings file"));
|
||||
trAct(saveAsAct, tr("Save As..."), tr("Save Models and Settings to another file name"));
|
||||
trAct(closeAct, tr("Close"), tr("Close Models and Settings file"));
|
||||
trAct(recentFilesAct, tr("Recent Files"), tr("List of recently used files"));
|
||||
trAct(writeSettingsSDPathAct, tr("Write Models and Settings to SD Path"), tr("Write Models and Settings to SD Path"));
|
||||
trAct(readSettingsSDPathAct, tr("Read Models and Settings from SD Path"), tr("Read Models and Settings from SD Path"));
|
||||
trAct(exitAct, tr("Exit"), tr("Exit the application"));
|
||||
|
||||
trAct(recentFilesAct, tr("Recent Files"), tr("List of recently used files"));
|
||||
trAct(profilesMenuAct, tr("Radio Profiles"), tr("Create or Select Radio Profiles"));
|
||||
trAct(logsAct, tr("View Log File..."), tr("Open and view log file"));
|
||||
trAct(appPrefsAct, tr("Settings..."), tr("Edit Settings"));
|
||||
trAct(downloadsAct, tr("Download components..."), tr("Download EdgeTX components and supporting resources"));
|
||||
trAct(manualChkForUpdAct, tr("Check for updates..."), tr("Check for updates to EdgeTX and supporting resources"));
|
||||
trAct(changelogAct, tr("Release notes..."), tr("Show release notes"));
|
||||
trAct(compareAct, tr("Compare Models..."), tr("Compare models"));
|
||||
trAct(editSplashAct, tr("Edit Radio Splash Image..."), tr("Edit the splash image of your Radio"));
|
||||
trAct(readFlashAct, tr("Read Firmware from Radio"), tr("Read firmware from Radio"));
|
||||
trAct(writeFlashAct, tr("Write Firmware to Radio"), tr("Write firmware to Radio"));
|
||||
trAct(sdsyncAct, tr("Synchronize SD"), tr("SD card synchronization"));
|
||||
trAct(editAppSettingsAct, tr("Edit Settings..."), tr("Edit %1 and Simulator settings (including radio profiles) settings").arg(CPN_STR_APP_NAME));
|
||||
trAct(exportAppSettingsAct, tr("Export Settings..."), tr("Save all the current %1 and Simulator settings (including radio profiles) to a file.").arg(CPN_STR_APP_NAME));
|
||||
trAct(importAppSettingsAct, tr("Import Settings..."), tr("Load %1 and Simulator settings from a prevously exported settings file.").arg(CPN_STR_APP_NAME));
|
||||
|
||||
//trAct(openDocURLAct, tr("Manuals and other Documents"), tr("Open the EdgeTX document page in a web browser"));
|
||||
trAct(writeSettingsAct, tr("Write Models and Settings To Radio"), tr("Write Models and Settings to Radio"));
|
||||
trAct(readSettingsAct, tr("Read Models and Settings From Radio"), tr("Read Models and Settings from Radio"));
|
||||
trAct(burnConfigAct, tr("Configure Communications..."), tr("Configure software for communicating with the Radio"));
|
||||
trAct(burnConfigAct, tr("Configure Radio Communications..."), tr("Configure Companion for communicating with the Radio"));
|
||||
trAct(editSplashAct, tr("Edit Radio Splash Image..."), tr("Edit the splash image of your Radio"));
|
||||
trAct(readFlashAct, tr("Read Firmware from Radio"), tr("Read firmware from Radio"));
|
||||
trAct(writeFlashAct, tr("Write Firmware to Radio"), tr("Write firmware to Radio"));
|
||||
trAct(writeSettingsAct, tr("Write Models and Settings to Radio"), tr("Write Models and Settings to Radio"));
|
||||
trAct(readSettingsAct, tr("Read Models and Settings from Radio"), tr("Read Models and Settings from Radio"));
|
||||
trAct(writeBUToRadioAct, tr("Write Backup to Radio"), tr("Write Backup from file to Radio"));
|
||||
trAct(readBUToFileAct, tr("Backup Radio to File"), tr("Save a complete backup file of all settings and model data in the Radio"));
|
||||
|
||||
trAct(compareAct, tr("Compare Models"), tr("Compare models"));
|
||||
trAct(updatesAct, tr("Update components..."), tr("Download and update EdgeTX components and supporting resources"));
|
||||
trAct(sdsyncAct, tr("Synchronize SD card..."), tr("SD card synchronization"));
|
||||
trAct(logsAct, tr("View Log File..."), tr("Open and view log file"));
|
||||
|
||||
trAct(profilesMenuAct, tr("Radio Profiles"), tr("Create or Select Radio Profiles"));
|
||||
trAct(createProfileAct, tr("Add Radio Profile"), tr("Create a new Radio Settings Profile"));
|
||||
trAct(copyProfileAct, tr("Copy Current Radio Profile"), tr("Duplicate current Radio Settings Profile"));
|
||||
trAct(deleteProfileAct, tr("Delete Current Radio Profile..."), tr("Delete the current Radio Settings Profile"));
|
||||
|
||||
trAct(exportSettingsAct, tr("Export Application Settings.."), tr("Save all the current %1 and Simulator settings (including radio profiles) to a file.").arg(CPN_STR_APP_NAME));
|
||||
trAct(importSettingsAct, tr("Import Application Settings.."), tr("Load %1 and Simulator settings from a prevously exported settings file.").arg(CPN_STR_APP_NAME));
|
||||
trAct(viewFileToolbarAct, tr("File Toolbar"), tr("Configure File toolbar visibility"));
|
||||
trAct(viewModelsToolbarAct, tr("Models Toolbar"), tr("Configure Models toolbar visibility"));
|
||||
trAct(viewRadioToolbarAct, tr("Radio Toolbar"), tr("Configure Radio toolbar visibility"));
|
||||
trAct(viewSettingsToolbarAct, tr("Settings Toolbar"), tr("Configure Settings toolbar visibility"));
|
||||
trAct(viewToolsToolbarAct, tr("Tools Toolbar"), tr("Configure Tools toolbar visibility"));
|
||||
|
||||
trAct(actTabbedWindows, tr("Tabbed Windows"), tr("Use tabs to arrange open windows."));
|
||||
trAct(actTileWindows, tr("Tile Windows"), tr("Arrange open windows across all the available space."));
|
||||
trAct(actCascadeWindows, tr("Cascade Windows"), tr("Arrange all open windows in a stack."));
|
||||
trAct(actCloseAllWindows, tr("Close All Windows"), tr("Closes all open files (prompts to save if necessary."));
|
||||
trAct(tabbedWindowsAct, tr("Tabbed Windows"), tr("Use tabs to arrange open windows."));
|
||||
trAct(tileWindowsAct, tr("Tile Windows"), tr("Arrange open windows across all the available space."));
|
||||
trAct(cascadeWindowsAct, tr("Cascade Windows"), tr("Arrange all open windows in a stack."));
|
||||
trAct(closeAllWindowsAct, tr("Close All Windows"), tr("Closes all open files (prompts to save if necessary."));
|
||||
|
||||
trAct(manualChkForUpdAct, tr("Check for updates..."), tr("Check for updates to EdgeTX and supporting resources"));
|
||||
trAct(changelogAct, tr("Release notes..."), tr("Show release notes"));
|
||||
trAct(aboutAct, tr("About"), tr("Show the application's About box"));
|
||||
|
||||
editMenu->setTitle(tr("Edit"));
|
||||
fileMenu->setTitle(tr("File"));
|
||||
viewMenu->setTitle(tr("View"));
|
||||
modelsMenu->setTitle(tr("Models"));
|
||||
settingsMenu->setTitle(tr("Settings"));
|
||||
themeMenu->setTitle(tr("Set Icon Theme"));
|
||||
iconThemeSizeMenu->setTitle(tr("Set Icon Size"));
|
||||
burnMenu->setTitle(tr("Read/Write"));
|
||||
radioMenu->setTitle(tr("Radio"));
|
||||
toolsMenu->setTitle(tr("Tools"));
|
||||
windowMenu->setTitle(tr("Window"));
|
||||
helpMenu->setTitle(tr("Help"));
|
||||
|
||||
fileToolBar->setWindowTitle(tr("File"));
|
||||
editToolBar->setWindowTitle(tr("Edit"));
|
||||
burnToolBar->setWindowTitle(tr("Write"));
|
||||
helpToolBar->setWindowTitle(tr("Help"));
|
||||
modelsToolBar->setWindowTitle(tr("Models"));
|
||||
radioToolBar->setWindowTitle(tr("Radio"));
|
||||
settingsToolBar->setWindowTitle(tr("Settings"));
|
||||
toolsToolBar->setWindowTitle(tr("Tools"));
|
||||
|
||||
showReadyStatus();
|
||||
|
||||
@@ -863,60 +882,71 @@ void MainWindow::retranslateUi(bool showMsg)
|
||||
|
||||
void MainWindow::createActions()
|
||||
{
|
||||
newAct = addAct("new.png", SLOT(newFile()), QKeySequence::New);
|
||||
openAct = addAct("open.png", SLOT(openFile()), QKeySequence::Open);
|
||||
saveAct = addAct("save.png", SLOT(save()), QKeySequence::Save);
|
||||
saveAsAct = addAct("saveas.png", SLOT(saveAs()), tr("Ctrl+Shift+S")); // Windows doesn't have "native" save-as key, Lin/OSX both use this one anyway
|
||||
closeAct = addAct("clear.png", SLOT(closeFile()) /*, QKeySequence::Close*/); // setting/showing this shortcut interferes with the system one (Ctrl+W/Ctrl-F4)
|
||||
exitAct = addAct("exit.png", SLOT(closeAllWindows()), QKeySequence::Quit, qApp);
|
||||
newAct = addAct("new.png", SLOT(newFile()), QKeySequence::New);
|
||||
openAct = addAct("open.png", SLOT(openFile()), QKeySequence::Open);
|
||||
saveAct = addAct("save.png", SLOT(save()), QKeySequence::Save);
|
||||
saveAsAct = addAct("saveas.png", SLOT(saveAs()), tr("Ctrl+Shift+S")); // Windows doesn't have "native" save-as key, Lin/OSX both use this one anyway
|
||||
// assigned menus in createMenus()
|
||||
recentFilesAct = addAct("recentdocument.png");
|
||||
closeAct = addAct("clear.png", SLOT(closeFile()) /*, QKeySequence::Close*/); // setting/showing this shortcut interferes with the system one (Ctrl+W/Ctrl-F4)
|
||||
// TODO change to more appropriate icon sets and uncomment toolbar actions
|
||||
writeSettingsSDPathAct = addAct("folder-tree-write.png", SLOT(writeSettingsSDPath()));
|
||||
readSettingsSDPathAct = addAct("folder-tree-read.png", SLOT(readSettingsSDPath()));
|
||||
// end TODO
|
||||
exitAct = addAct("exit.png", SLOT(closeAllWindows()), QKeySequence::Quit, qApp);
|
||||
|
||||
logsAct = addAct("logs.png", SLOT(logFile()), tr("Ctrl+Alt+L"));
|
||||
appPrefsAct = addAct("apppreferences.png", SLOT(appPrefs()), QKeySequence::Preferences);
|
||||
downloadsAct = addAct("download.png", SLOT(downloads()), tr("Ctrl+Alt+D"));
|
||||
compareAct = addAct("compare.png", SLOT(compare()), tr("Ctrl+Alt+R"));
|
||||
sdsyncAct = addAct("sdsync.png", SLOT(sdsync()));
|
||||
editAppSettingsAct = addAct("apppreferences.png", SLOT(editAppSettings()), QKeySequence::Preferences);
|
||||
exportAppSettingsAct = addAct("saveas.png", SLOT(exportAppSettings()));
|
||||
importAppSettingsAct = addAct("open.png", SLOT(importAppSettings()));
|
||||
burnConfigAct = addAct("configure.png", SLOT(burnConfig()));
|
||||
|
||||
editSplashAct = addAct("paintbrush.png", SLOT(customizeSplash()));
|
||||
burnListAct = addAct("list.png", SLOT(burnList()));
|
||||
readFlashAct = addAct("read_flash.png", SLOT(readFlash()));
|
||||
writeFlashAct = addAct("write_flash.png", SLOT(writeFlash()));
|
||||
writeSettingsAct = addAct("write_eeprom.png", SLOT(writeSettings()));
|
||||
readSettingsAct = addAct("read_eeprom.png", SLOT(readSettings()));
|
||||
burnConfigAct = addAct("configure.png", SLOT(burnConfig()));
|
||||
compareAct = addAct("compare.png", SLOT(compare()), tr("Ctrl+Alt+R"));
|
||||
updatesAct = addAct("download.png", SLOT(updates()), tr("Ctrl+Alt+D"));
|
||||
editSplashAct = addAct("paintbrush.png", SLOT(customizeSplash()));
|
||||
// assigned menus in createMenus()
|
||||
profilesMenuAct = addAct("profiles.png");
|
||||
createProfileAct = addAct("new.png", SLOT(createProfile()));
|
||||
copyProfileAct = addAct("copy.png", SLOT(copyProfile()));
|
||||
deleteProfileAct = addAct("clear.png", SLOT(deleteCurrentProfile()));
|
||||
sdsyncAct = addAct("sdsync.png", SLOT(sdsync()));
|
||||
logsAct = addAct("logs.png", SLOT(logFile()), tr("Ctrl+Alt+L"));
|
||||
|
||||
writeBUToRadioAct = addAct("write_eeprom_file.png", SLOT(writeBackup()));
|
||||
readBUToFileAct = addAct("read_eeprom_file.png", SLOT(readBackup()));
|
||||
burnListAct = addAct("list.png", SLOT(burnList()));
|
||||
readFlashAct = addAct("read_flash.png", SLOT(readFlash()));
|
||||
writeFlashAct = addAct("write_flash.png", SLOT(writeFlash()));
|
||||
writeSettingsAct = addAct("write_eeprom.png", SLOT(writeSettings()));
|
||||
readSettingsAct = addAct("read_eeprom.png", SLOT(readSettings()));
|
||||
writeBUToRadioAct = addAct("write_eeprom_file.png", SLOT(writeBackup()));
|
||||
readBUToFileAct = addAct("read_eeprom_file.png", SLOT(readBackup()));
|
||||
|
||||
createProfileAct = addAct("new.png", SLOT(createProfile()));
|
||||
copyProfileAct = addAct("copy.png", SLOT(copyProfile()));
|
||||
deleteProfileAct = addAct("clear.png", SLOT(deleteCurrentProfile()));
|
||||
viewFileToolbarAct = addAct("", SLOT(viewFileToolbar()));
|
||||
viewModelsToolbarAct = addAct("", SLOT(viewModelsToolbar()));
|
||||
viewRadioToolbarAct = addAct("", SLOT(viewRadioToolbar()));
|
||||
viewSettingsToolbarAct = addAct("", SLOT(viewSettingsToolbar()));
|
||||
viewToolsToolbarAct = addAct("", SLOT(viewToolsToolbar()));
|
||||
|
||||
exportSettingsAct = addAct("saveas.png", SLOT(exportSettings()));
|
||||
importSettingsAct = addAct("open.png", SLOT(importSettings()));
|
||||
tabbedWindowsAct = addAct("", SLOT(setTabbedWindows(bool)), 0, this, SIGNAL(triggered(bool)));
|
||||
tileWindowsAct = addAct("", SLOT(tileSubWindows()), 0, mdiArea);
|
||||
cascadeWindowsAct = addAct("", SLOT(cascadeSubWindows()), 0, mdiArea);
|
||||
closeAllWindowsAct = addAct("", SLOT(closeAllSubWindows()), 0, mdiArea);
|
||||
|
||||
actTabbedWindows = addAct("", SLOT(setTabbedWindows(bool)), 0, this, SIGNAL(triggered(bool)));
|
||||
actTileWindows = addAct("", SLOT(tileSubWindows()), 0, mdiArea);
|
||||
actCascadeWindows = addAct("", SLOT(cascadeSubWindows()), 0, mdiArea);
|
||||
actCloseAllWindows = addAct("", SLOT(closeAllSubWindows()), 0, mdiArea);
|
||||
|
||||
manualChkForUpdAct = addAct("update.png", SLOT(manualCheckForUpdates()));
|
||||
aboutAct = addAct("information.png", SLOT(about()));
|
||||
//openDocURLAct = addAct("changelog.png", SLOT(openDocURL()));
|
||||
changelogAct = addAct("changelog.png", SLOT(changelog()));
|
||||
|
||||
// these two get assigned menus in createMenus()
|
||||
recentFilesAct = addAct("recentdocument.png");
|
||||
profilesMenuAct = addAct("profiles.png");
|
||||
manualChkForUpdAct = addAct("update.png", SLOT(manualCheckForUpdates()));
|
||||
changelogAct = addAct("changelog.png", SLOT(changelog()));
|
||||
aboutAct = addAct("information.png", SLOT(about()));
|
||||
|
||||
exitAct->setMenuRole(QAction::QuitRole);
|
||||
aboutAct->setMenuRole(QAction::AboutRole);
|
||||
appPrefsAct->setMenuRole(QAction::PreferencesRole);
|
||||
//openDocURLAct->setMenuRole(QAction::ApplicationSpecificRole);
|
||||
//manualChkForUpdAct->setMenuRole(QAction::ApplicationSpecificRole);
|
||||
editAppSettingsAct->setMenuRole(QAction::PreferencesRole);
|
||||
changelogAct->setMenuRole(QAction::ApplicationSpecificRole);
|
||||
|
||||
actTabbedWindows->setCheckable(true);
|
||||
compareAct->setEnabled(false);
|
||||
|
||||
setActCheckability(tabbedWindowsAct, false);
|
||||
setActCheckability(viewFileToolbarAct, g.fileToolbarVisible());
|
||||
setActCheckability(viewModelsToolbarAct, g.modelsToolbarVisible());
|
||||
setActCheckability(viewRadioToolbarAct, g.radioToolbarVisible());
|
||||
setActCheckability(viewSettingsToolbarAct, g.settingsToolbarVisible());
|
||||
setActCheckability(viewToolsToolbarAct, g.toolsToolbarVisible());
|
||||
}
|
||||
|
||||
void MainWindow::createMenus()
|
||||
@@ -929,19 +959,23 @@ void MainWindow::createMenus()
|
||||
fileMenu->addAction(closeAct);
|
||||
fileMenu->addAction(recentFilesAct);
|
||||
fileMenu->addSeparator();
|
||||
fileMenu->addAction(logsAct);
|
||||
fileMenu->addAction(downloadsAct);
|
||||
fileMenu->addAction(compareAct);
|
||||
fileMenu->addAction(sdsyncAct);
|
||||
fileMenu->addAction(readSettingsSDPathAct);
|
||||
fileMenu->addAction(writeSettingsSDPathAct);
|
||||
fileMenu->addSeparator();
|
||||
fileMenu->addAction(exitAct);
|
||||
|
||||
editMenu = menuBar()->addMenu("");
|
||||
viewMenu = menuBar()->addMenu("");
|
||||
viewMenu->addAction(viewFileToolbarAct);
|
||||
viewMenu->addAction(viewModelsToolbarAct);
|
||||
viewMenu->addAction(viewRadioToolbarAct);
|
||||
viewMenu->addAction(viewSettingsToolbarAct);
|
||||
viewMenu->addAction(viewToolsToolbarAct);
|
||||
viewMenu->addSeparator();
|
||||
viewMenu->addMenu(createLanguageMenu(viewMenu));
|
||||
|
||||
settingsMenu = menuBar()->addMenu("");
|
||||
settingsMenu->addMenu(createLanguageMenu(settingsMenu));
|
||||
modelsMenu = menuBar()->addMenu("");
|
||||
|
||||
themeMenu = settingsMenu->addMenu("");
|
||||
themeMenu = viewMenu->addMenu("");
|
||||
QActionGroup * themeGroup = new QActionGroup(themeMenu);
|
||||
addActToGroup(themeGroup, tr("Classical"), tr("The classic companion9x icon theme"), "themeId", 0, g.theme());
|
||||
addActToGroup(themeGroup, tr("Yerico"), tr("Yellow round honey sweet icon theme"), "themeId", 1, g.theme());
|
||||
@@ -951,7 +985,7 @@ void MainWindow::createMenus()
|
||||
connect(themeGroup, &QActionGroup::triggered, this, &MainWindow::onThemeChanged);
|
||||
themeMenu->addActions(themeGroup->actions());
|
||||
|
||||
iconThemeSizeMenu = settingsMenu->addMenu("");
|
||||
iconThemeSizeMenu = viewMenu->addMenu("");
|
||||
QActionGroup * szGroup = new QActionGroup(iconThemeSizeMenu);
|
||||
addActToGroup(szGroup, tr("Small"), tr("Use small toolbar icons"), "sizeId", 0, g.iconSize());
|
||||
addActToGroup(szGroup, tr("Normal"), tr("Use normal size toolbar icons"), "sizeId", 1, g.iconSize());
|
||||
@@ -960,41 +994,42 @@ void MainWindow::createMenus()
|
||||
connect(szGroup, &QActionGroup::triggered, this, &MainWindow::onIconSizeChanged);
|
||||
iconThemeSizeMenu->addActions(szGroup->actions());
|
||||
|
||||
settingsMenu->addSeparator();
|
||||
settingsMenu->addAction(appPrefsAct);
|
||||
settingsMenu->addAction(profilesMenuAct);
|
||||
settingsMenu->addAction(editSplashAct);
|
||||
settingsMenu->addAction(burnConfigAct);
|
||||
settingsMenu->addSeparator();
|
||||
settingsMenu->addAction(exportSettingsAct);
|
||||
settingsMenu->addAction(importSettingsAct);
|
||||
radioMenu = menuBar()->addMenu("");
|
||||
radioMenu->addAction(writeSettingsAct);
|
||||
radioMenu->addAction(readSettingsAct);
|
||||
radioMenu->addSeparator();
|
||||
radioMenu->addAction(writeBUToRadioAct);
|
||||
radioMenu->addAction(readBUToFileAct);
|
||||
radioMenu->addSeparator();
|
||||
radioMenu->addAction(writeFlashAct);
|
||||
radioMenu->addAction(readFlashAct);
|
||||
radioMenu->addSeparator();
|
||||
radioMenu->addAction(burnConfigAct);
|
||||
radioMenu->addAction(editSplashAct);
|
||||
|
||||
burnMenu = menuBar()->addMenu("");
|
||||
burnMenu->addAction(writeSettingsAct);
|
||||
burnMenu->addAction(readSettingsAct);
|
||||
burnMenu->addSeparator();
|
||||
burnMenu->addAction(writeBUToRadioAct);
|
||||
burnMenu->addAction(readBUToFileAct);
|
||||
burnMenu->addSeparator();
|
||||
burnMenu->addAction(writeFlashAct);
|
||||
burnMenu->addAction(readFlashAct);
|
||||
burnMenu->addSeparator();
|
||||
burnMenu->addSeparator();
|
||||
settingsMenu = menuBar()->addMenu("");
|
||||
settingsMenu->addAction(editAppSettingsAct);
|
||||
settingsMenu->addAction(exportAppSettingsAct);
|
||||
settingsMenu->addAction(importAppSettingsAct);
|
||||
settingsMenu->addSeparator();
|
||||
settingsMenu->addAction(profilesMenuAct);
|
||||
|
||||
toolsMenu = menuBar()->addMenu("");
|
||||
toolsMenu->addAction(updatesAct);
|
||||
toolsMenu->addAction(sdsyncAct);
|
||||
toolsMenu->addAction(logsAct);
|
||||
toolsMenu->addSeparator();
|
||||
|
||||
windowMenu = menuBar()->addMenu("");
|
||||
windowMenu->addAction(actTabbedWindows);
|
||||
windowMenu->addAction(actTileWindows);
|
||||
windowMenu->addAction(actCascadeWindows);
|
||||
windowMenu->addAction(actCloseAllWindows);
|
||||
windowMenu->addAction(tabbedWindowsAct);
|
||||
windowMenu->addAction(tileWindowsAct);
|
||||
windowMenu->addAction(cascadeWindowsAct);
|
||||
windowMenu->addAction(closeAllWindowsAct);
|
||||
windowMenu->addSeparator();
|
||||
|
||||
helpMenu = menuBar()->addMenu("");
|
||||
helpMenu->addAction(manualChkForUpdAct);
|
||||
//helpMenu->addSeparator();
|
||||
//helpMenu->addAction(openDocURLAct);
|
||||
//helpMenu->addSeparator();
|
||||
helpMenu->addAction(changelogAct);
|
||||
//helpMenu->addSeparator();
|
||||
helpMenu->addAction(aboutAct);
|
||||
|
||||
recentFilesMenu = new QMenu(this);
|
||||
@@ -1008,7 +1043,7 @@ void MainWindow::createMenus()
|
||||
|
||||
profilesMenu = new QMenu(this);
|
||||
QActionGroup *profilesGroup = new QActionGroup(this);
|
||||
for (int i=0; i < MAX_PROFILES; i++) {
|
||||
for (int i = 0; i < MAX_PROFILES; i++) {
|
||||
profileActs.append(profilesMenu->addAction(""));
|
||||
profileActs[i]->setVisible(false);
|
||||
profileActs[i]->setCheckable(true);
|
||||
@@ -1032,46 +1067,81 @@ void MainWindow::createToolBars()
|
||||
fileToolBar->addAction(saveAct);
|
||||
fileToolBar->addAction(closeAct);
|
||||
fileToolBar->addSeparator();
|
||||
fileToolBar->addAction(logsAct);
|
||||
fileToolBar->addAction(downloadsAct);
|
||||
fileToolBar->addSeparator();
|
||||
fileToolBar->addAction(appPrefsAct);
|
||||
fileToolBar->addAction(profilesMenuAct);
|
||||
fileToolBar->addAction(editSplashAct);
|
||||
fileToolBar->addAction(editSplashAct);
|
||||
fileToolBar->addSeparator();
|
||||
fileToolBar->addAction(compareAct);
|
||||
fileToolBar->addAction(sdsyncAct);
|
||||
fileToolBar->addAction(readSettingsSDPathAct);
|
||||
fileToolBar->addAction(writeSettingsSDPathAct);
|
||||
|
||||
// workaround for default split button appearance of action with menu :-/
|
||||
QToolButton * btn;
|
||||
if ((btn = qobject_cast<QToolButton *>(fileToolBar->widgetForAction(recentFilesAct))))
|
||||
btn->setPopupMode(QToolButton::InstantPopup);
|
||||
if ((btn = qobject_cast<QToolButton *>(fileToolBar->widgetForAction(profilesMenuAct))))
|
||||
btn->setPopupMode(QToolButton::InstantPopup);
|
||||
|
||||
// gets populated later
|
||||
editToolBar = addToolBar("");
|
||||
editToolBar->setObjectName("Edit");
|
||||
modelsToolBar = addToolBar("");
|
||||
modelsToolBar->setObjectName("Models");
|
||||
|
||||
burnToolBar = new QToolBar(this);
|
||||
addToolBar( Qt::LeftToolBarArea, burnToolBar );
|
||||
burnToolBar->setObjectName("Write");
|
||||
burnToolBar->addAction(writeSettingsAct);
|
||||
burnToolBar->addAction(readSettingsAct);
|
||||
burnToolBar->addSeparator();
|
||||
burnToolBar->addAction(writeBUToRadioAct);
|
||||
burnToolBar->addAction(readBUToFileAct);
|
||||
burnToolBar->addSeparator();
|
||||
burnToolBar->addAction(writeFlashAct);
|
||||
burnToolBar->addAction(readFlashAct);
|
||||
burnToolBar->addSeparator();
|
||||
burnToolBar->addAction(burnConfigAct);
|
||||
radioToolBar = new QToolBar(this);
|
||||
addToolBar(Qt::LeftToolBarArea, radioToolBar);
|
||||
radioToolBar->setObjectName("Radio");
|
||||
radioToolBar->addAction(writeSettingsAct);
|
||||
radioToolBar->addAction(readSettingsAct);
|
||||
radioToolBar->addSeparator();
|
||||
radioToolBar->addAction(writeBUToRadioAct);
|
||||
radioToolBar->addAction(readBUToFileAct);
|
||||
radioToolBar->addSeparator();
|
||||
radioToolBar->addAction(writeFlashAct);
|
||||
radioToolBar->addAction(readFlashAct);
|
||||
radioToolBar->addSeparator();
|
||||
radioToolBar->addAction(burnConfigAct);
|
||||
|
||||
settingsToolBar = addToolBar("");
|
||||
settingsToolBar->setObjectName("Settings");
|
||||
settingsToolBar->addAction(editAppSettingsAct);
|
||||
settingsToolBar->addAction(profilesMenuAct);
|
||||
|
||||
if ((btn = qobject_cast<QToolButton *>(settingsToolBar->widgetForAction(profilesMenuAct))))
|
||||
btn->setPopupMode(QToolButton::InstantPopup);
|
||||
|
||||
toolsToolBar = addToolBar("");
|
||||
toolsToolBar->setObjectName("Tools");
|
||||
toolsToolBar->addAction(updatesAct);
|
||||
toolsToolBar->addAction(sdsyncAct);
|
||||
toolsToolBar->addAction(logsAct);
|
||||
|
||||
connect(fileToolBar, &QToolBar::visibilityChanged, [=](bool visible)
|
||||
{
|
||||
g.fileToolbarVisible(visible);
|
||||
const QSignalBlocker blocker(viewFileToolbarAct);
|
||||
viewFileToolbarAct->setChecked(g.fileToolbarVisible());
|
||||
});
|
||||
|
||||
connect(modelsToolBar, &QToolBar::visibilityChanged, [=](bool visible)
|
||||
{
|
||||
g.modelsToolbarVisible(visible);
|
||||
const QSignalBlocker blocker(viewModelsToolbarAct);
|
||||
viewModelsToolbarAct->setChecked(g.modelsToolbarVisible());
|
||||
});
|
||||
|
||||
connect(radioToolBar, &QToolBar::visibilityChanged, [=](bool visible)
|
||||
{
|
||||
g.radioToolbarVisible(visible);
|
||||
const QSignalBlocker blocker(viewRadioToolbarAct);
|
||||
viewRadioToolbarAct->setChecked(g.radioToolbarVisible());
|
||||
});
|
||||
|
||||
connect(settingsToolBar, &QToolBar::visibilityChanged, [=](bool visible)
|
||||
{
|
||||
g.settingsToolbarVisible(visible);
|
||||
const QSignalBlocker blocker(viewSettingsToolbarAct);
|
||||
viewSettingsToolbarAct->setChecked(g.settingsToolbarVisible());
|
||||
});
|
||||
|
||||
connect(toolsToolBar, &QToolBar::visibilityChanged, [=](bool visible)
|
||||
{
|
||||
g.toolsToolbarVisible(visible);
|
||||
const QSignalBlocker blocker(viewToolsToolbarAct);
|
||||
viewToolsToolbarAct->setChecked(g.toolsToolbarVisible());
|
||||
});
|
||||
|
||||
helpToolBar = addToolBar("");
|
||||
helpToolBar->setObjectName("Help");
|
||||
helpToolBar->addAction(manualChkForUpdAct);
|
||||
helpToolBar->addAction(aboutAct);
|
||||
}
|
||||
|
||||
QMenu * MainWindow::createLanguageMenu(QWidget * parent)
|
||||
@@ -1262,7 +1332,7 @@ int MainWindow::newProfile(bool loadProfile)
|
||||
|
||||
if (loadProfile) {
|
||||
if (loadProfileId(i))
|
||||
appPrefs();
|
||||
editAppSettings();
|
||||
}
|
||||
|
||||
return i;
|
||||
@@ -1281,7 +1351,7 @@ void MainWindow::copyProfile()
|
||||
g.profile[newId] = g.profile[g.id()];
|
||||
g.profile[newId].name(g.profile[newId].name() + tr(" - Copy"));
|
||||
if (loadProfileId(newId))
|
||||
appPrefs();
|
||||
editAppSettings();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1316,12 +1386,12 @@ void MainWindow::deleteCurrentProfile()
|
||||
deleteProfile(g.id());
|
||||
}
|
||||
|
||||
void MainWindow::exportSettings()
|
||||
void MainWindow::exportAppSettings()
|
||||
{
|
||||
Helpers::exportAppSettings();
|
||||
}
|
||||
|
||||
void MainWindow::importSettings()
|
||||
void MainWindow::importAppSettings()
|
||||
{
|
||||
if (anyChildrenDirty()) {
|
||||
QMessageBox::warning(this, CPN_STR_APP_NAME, tr("Please save or close all modified files before importing settings"));
|
||||
@@ -1416,3 +1486,95 @@ void MainWindow::chooseProfile()
|
||||
g.warningId(g.warningId() | AppMessages::MSG_NO_RADIO_TYPE);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::readSettingsSDPath()
|
||||
{
|
||||
QString tempFile;
|
||||
tempFile = generateProcessUniqueTempFileName("temp.etx");
|
||||
qDebug() << "Reading models and settings from SD path into temp file: " << tempFile;
|
||||
|
||||
if (readSettingsFromSDPath(tempFile)) {
|
||||
MdiChild * child = createMdiChild();
|
||||
child->newFile(false);
|
||||
child->loadFile(tempFile, false);
|
||||
child->show();
|
||||
qunlink(tempFile);
|
||||
}
|
||||
}
|
||||
|
||||
bool MainWindow::readSettingsFromSDPath(const QString & filename)
|
||||
{
|
||||
ProgressDialog progressDialog(this, tr("Read Models and Settings from SD path"), CompanionIcon("read_eeprom.png"));
|
||||
bool result = ::readSettingsSDCard(filename, progressDialog.progress(), false);
|
||||
if (!result) {
|
||||
if (!progressDialog.isEmpty()) {
|
||||
progressDialog.exec();
|
||||
}
|
||||
}
|
||||
else {
|
||||
statusBar()->showMessage(tr("Models and Settings read"), 2000);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void MainWindow::writeSettingsSDPath()
|
||||
{
|
||||
StatusDialog *status = new StatusDialog(this, tr("Writing models and settings to SD path"), tr("In progress..."), 400);
|
||||
|
||||
if (activeMdiChild())
|
||||
activeMdiChild()->writeSettings(status, false);
|
||||
|
||||
delete status;
|
||||
}
|
||||
|
||||
bool MainWindow::isSDPathValid()
|
||||
{
|
||||
bool ret = false;
|
||||
const QString sdPath = g.currentProfile().sdPath();
|
||||
if (!sdPath.isEmpty()) {
|
||||
if (QFile::exists(sdPath))
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void MainWindow::setActCheckability(QAction * act, bool checked)
|
||||
{
|
||||
act->setCheckable(true);
|
||||
act->setChecked(checked);
|
||||
}
|
||||
|
||||
void MainWindow::viewFileToolbar()
|
||||
{
|
||||
g.fileToolbarVisible(viewFileToolbarAct->isChecked());
|
||||
const QSignalBlocker blocker(fileToolBar);
|
||||
fileToolBar->setVisible(viewFileToolbarAct->isChecked());
|
||||
}
|
||||
|
||||
void MainWindow::viewModelsToolbar()
|
||||
{
|
||||
g.modelsToolbarVisible(viewModelsToolbarAct->isChecked());
|
||||
const QSignalBlocker blocker(modelsToolBar);
|
||||
modelsToolBar->setVisible(viewModelsToolbarAct->isChecked());
|
||||
}
|
||||
|
||||
void MainWindow::viewRadioToolbar()
|
||||
{
|
||||
g.radioToolbarVisible(viewRadioToolbarAct->isChecked());
|
||||
const QSignalBlocker blocker(radioToolBar);
|
||||
radioToolBar->setVisible(viewRadioToolbarAct->isChecked());
|
||||
}
|
||||
|
||||
void MainWindow::viewSettingsToolbar()
|
||||
{
|
||||
g.settingsToolbarVisible(viewSettingsToolbarAct->isChecked());
|
||||
const QSignalBlocker blocker(settingsToolBar);
|
||||
settingsToolBar->setVisible(viewSettingsToolbarAct->isChecked());
|
||||
}
|
||||
|
||||
void MainWindow::viewToolsToolbar()
|
||||
{
|
||||
g.toolsToolbarVisible(viewToolsToolbarAct->isChecked());
|
||||
const QSignalBlocker blocker(toolsToolBar);
|
||||
toolsToolBar->setVisible(viewToolsToolbarAct->isChecked());
|
||||
}
|
||||
|
||||
@@ -101,23 +101,32 @@ class MainWindow : public QMainWindow
|
||||
void customizeSplash();
|
||||
void about();
|
||||
void compare();
|
||||
void appPrefs();
|
||||
void updateMenus();
|
||||
void createProfile();
|
||||
void copyProfile();
|
||||
void deleteProfile(const int pid);
|
||||
void deleteCurrentProfile();
|
||||
void exportSettings();
|
||||
void importSettings();
|
||||
void editAppSettings();
|
||||
void exportAppSettings();
|
||||
void importAppSettings();
|
||||
void autoClose();
|
||||
void chooseProfile();
|
||||
void autoCheckForUpdates();
|
||||
void manualCheckForUpdates();
|
||||
void downloads();
|
||||
void updates();
|
||||
void doUpdates(bool check, bool interactive = true);
|
||||
|
||||
void openFile(const QString & fileName);
|
||||
|
||||
void readSettingsSDPath();
|
||||
void writeSettingsSDPath();
|
||||
|
||||
void viewFileToolbar();
|
||||
void viewModelsToolbar();
|
||||
void viewRadioToolbar();
|
||||
void viewSettingsToolbar();
|
||||
void viewToolsToolbar();
|
||||
|
||||
private:
|
||||
QAction * addAct(const QString & icon, const char * slot = NULL, const QKeySequence & shortcut = 0, QObject * slotObj = NULL, const char * signal = NULL);
|
||||
QAction * addActToGroup(QActionGroup * aGroup, const QString & sName, const QString & lName, const char * propName = 0,
|
||||
@@ -126,6 +135,8 @@ class MainWindow : public QMainWindow
|
||||
|
||||
QMenu * createLanguageMenu(QWidget * parent = Q_NULLPTR);
|
||||
|
||||
void setActCheckability(QAction * act, bool checked);
|
||||
|
||||
void createActions();
|
||||
void createMenus();
|
||||
void createToolBars();
|
||||
@@ -143,9 +154,12 @@ class MainWindow : public QMainWindow
|
||||
|
||||
bool readSettingsFromRadio(const QString & filename);
|
||||
bool readFirmwareFromRadio(const QString & filename);
|
||||
bool readSettingsFromSDPath(const QString & filename);
|
||||
|
||||
bool checkProfileRadioExists(int profId);
|
||||
|
||||
bool isSDPathValid();
|
||||
|
||||
QMdiArea *mdiArea;
|
||||
|
||||
QString installer_fileName;
|
||||
@@ -155,21 +169,30 @@ class MainWindow : public QMainWindow
|
||||
QVector<QAction *> profileActs;
|
||||
QList<QAction *> fileWindowActions;
|
||||
|
||||
// top level menus
|
||||
QMenu *fileMenu;
|
||||
QMenu *editMenu;
|
||||
QMenu *modelsMenu;
|
||||
QMenu *viewMenu;
|
||||
QMenu *settingsMenu;
|
||||
QMenu *burnMenu;
|
||||
QMenu *helpMenu;
|
||||
QMenu *radioMenu;
|
||||
QMenu *toolsMenu;
|
||||
QMenu *windowMenu;
|
||||
QMenu *helpMenu;
|
||||
|
||||
// sub menus
|
||||
QMenu *iconThemeSizeMenu;
|
||||
QMenu *themeMenu;
|
||||
QMenu *recentFilesMenu;
|
||||
QMenu *profilesMenu;
|
||||
|
||||
QActionGroup * windowsListActions;
|
||||
|
||||
QToolBar *fileToolBar;
|
||||
QToolBar *editToolBar;
|
||||
QToolBar *burnToolBar;
|
||||
QToolBar *helpToolBar;
|
||||
QToolBar *modelsToolBar;
|
||||
QToolBar *radioToolBar;
|
||||
QToolBar *settingsToolBar;
|
||||
QToolBar *toolsToolBar;
|
||||
|
||||
QAction *newAct;
|
||||
QAction *openAct;
|
||||
QAction *saveAct;
|
||||
@@ -177,8 +200,8 @@ class MainWindow : public QMainWindow
|
||||
QAction *closeAct;
|
||||
QAction *recentFilesAct;
|
||||
QAction *exitAct;
|
||||
QAction *appPrefsAct;
|
||||
QAction *downloadsAct;
|
||||
QAction *editAppSettingsAct;
|
||||
QAction *updatesAct;
|
||||
QAction *manualChkForUpdAct;
|
||||
QAction *sdsyncAct;
|
||||
QAction *changelogAct;
|
||||
@@ -198,11 +221,17 @@ class MainWindow : public QMainWindow
|
||||
QAction *createProfileAct;
|
||||
QAction *copyProfileAct;
|
||||
QAction *deleteProfileAct;
|
||||
QAction *exportSettingsAct;
|
||||
QAction *importSettingsAct;
|
||||
//QAction *openDocURLAct;
|
||||
QAction *actTabbedWindows;
|
||||
QAction *actTileWindows;
|
||||
QAction *actCascadeWindows;
|
||||
QAction *actCloseAllWindows;
|
||||
QAction *exportAppSettingsAct;
|
||||
QAction *importAppSettingsAct;
|
||||
QAction *tabbedWindowsAct;
|
||||
QAction *tileWindowsAct;
|
||||
QAction *cascadeWindowsAct;
|
||||
QAction *closeAllWindowsAct;
|
||||
QAction *writeSettingsSDPathAct;
|
||||
QAction *readSettingsSDPathAct;
|
||||
QAction *viewFileToolbarAct;
|
||||
QAction *viewModelsToolbarAct;
|
||||
QAction *viewRadioToolbarAct;
|
||||
QAction *viewSettingsToolbarAct;
|
||||
QAction *viewToolsToolbarAct;
|
||||
};
|
||||
|
||||
@@ -216,19 +216,12 @@ void MdiChild::setupNavigation()
|
||||
addAct(ACT_GEN_PST, "paste.png", SLOT(pasteGeneralSettings()), tr("Ctrl+Alt+V"));
|
||||
addAct(ACT_GEN_SIM, "simulate.png", SLOT(radioSimulate()), tr("Alt+Shift+S"));
|
||||
|
||||
addAct(ACT_ITM_EDT, "edit.png", SLOT(edit()), Qt::Key_Enter);
|
||||
addAct(ACT_ITM_DEL, "clear.png", SLOT(confirmDelete()), QKeySequence::Delete);
|
||||
|
||||
addAct(ACT_MDL_EDT, "edit.png", SLOT(edit()), Qt::Key_Enter);
|
||||
addAct(ACT_MDL_DEL, "clear.png", SLOT(confirmDelete()), QKeySequence::Delete);
|
||||
addAct(ACT_MDL_ADD, "add.png", SLOT(modelAdd()), tr("Alt+A"));
|
||||
addAct(ACT_MDL_RTR, "open.png", SLOT(loadBackup()), tr("Alt+R"));
|
||||
addAct(ACT_MDL_WIZ, "wizard.png", SLOT(wizardEdit()), tr("Alt+W"));
|
||||
|
||||
addAct(ACT_LBL_ADD, "add.png", SLOT(labelAdd()), tr("Alt-L"));
|
||||
addAct(ACT_LBL_DEL, "clear.png", SLOT(labelDelete()), tr("Alt-L"));
|
||||
addAct(ACT_LBL_REN, "edit.png", SLOT(labelRename()), tr("Alt-R"));
|
||||
addAct(ACT_LBL_MVU, "moveup.png", SLOT(labelMoveUp()), tr("Alt-+"));
|
||||
addAct(ACT_LBL_MVD, "movedown.png", SLOT(labelMoveDown()), tr("Alt--"));
|
||||
|
||||
addAct(ACT_MDL_DFT, "currentmodel.png", SLOT(setDefault()), tr("Alt+U"));
|
||||
addAct(ACT_MDL_PRT, "print.png", SLOT(print()), QKeySequence::Print);
|
||||
addAct(ACT_MDL_SIM, "simulate.png", SLOT(modelSimulate()), tr("Alt+S"));
|
||||
@@ -244,6 +237,12 @@ void MdiChild::setupNavigation()
|
||||
QMenu * catsMenu = new QMenu(this);
|
||||
action[ACT_MDL_MOV]->setMenu(catsMenu);
|
||||
|
||||
addAct(ACT_LBL_ADD, "add.png", SLOT(labelAdd()), tr("Alt-L"));
|
||||
addAct(ACT_LBL_DEL, "clear.png", SLOT(labelDelete()), tr("Alt-L"));
|
||||
addAct(ACT_LBL_REN, "edit.png", SLOT(labelRename()), tr("Alt-R"));
|
||||
addAct(ACT_LBL_MVU, "moveup.png", SLOT(labelMoveUp()), tr("Alt-+"));
|
||||
addAct(ACT_LBL_MVD, "movedown.png", SLOT(labelMoveDown()), tr("Alt--"));
|
||||
|
||||
// set up the toolbars
|
||||
|
||||
QToolButton * btn;
|
||||
@@ -352,6 +351,8 @@ void MdiChild::updateNavigation()
|
||||
}
|
||||
action[ACT_GEN_SRT]->setVisible(hasLabels);
|
||||
|
||||
action[ACT_MDL_DEL]->setEnabled(modelsSelected);
|
||||
action[ACT_MDL_DEL]->setText(tr("Delete") % (modelsSelected ? sp % modelsRemvTxt : ns));
|
||||
action[ACT_MDL_CUT]->setEnabled(modelsSelected);
|
||||
action[ACT_MDL_CUT]->setText(tr("Cut") % (modelsSelected ? sp % modelsRemvTxt : ns));
|
||||
action[ACT_MDL_CPY]->setEnabled(modelsSelected);
|
||||
@@ -379,8 +380,8 @@ void MdiChild::retranslateUi()
|
||||
action[ACT_GEN_SIM]->setText(tr("Simulate Radio"));
|
||||
cboModelSortOrder->setToolTip(tr("Radio Models Order"));
|
||||
|
||||
action[ACT_ITM_EDT]->setText(tr("Edit Model"));
|
||||
action[ACT_ITM_DEL]->setText(tr("Delete"));
|
||||
action[ACT_MDL_EDT]->setText(tr("Edit Model"));
|
||||
action[ACT_MDL_DEL]->setText(tr("Delete Model"));
|
||||
|
||||
action[ACT_LBL_ADD]->setText(tr("Add"));
|
||||
action[ACT_LBL_DEL]->setText(tr("Delete"));
|
||||
@@ -408,6 +409,7 @@ QList<QAction *> MdiChild::getGeneralActions()
|
||||
{
|
||||
QList<QAction *> actGrp;
|
||||
actGrp.append(getAction(ACT_GEN_SIM));
|
||||
actGrp.append(actionsSeparator());
|
||||
actGrp.append(getAction(ACT_GEN_EDT));
|
||||
actGrp.append(getAction(ACT_GEN_CPY));
|
||||
actGrp.append(getAction(ACT_GEN_PST));
|
||||
@@ -418,27 +420,28 @@ QList<QAction *> MdiChild::getEditActions()
|
||||
{
|
||||
QList<QAction *> actGrp;
|
||||
actGrp.append(action[ACT_MDL_ADD]);
|
||||
QAction * sep2 = new QAction(this);
|
||||
sep2->setSeparator(true);
|
||||
actGrp.append(sep2);
|
||||
actGrp.append(getAction(ACT_ITM_EDT));
|
||||
actGrp.append(getAction(ACT_ITM_DEL));
|
||||
actGrp.append(actionsSeparator());
|
||||
actGrp.append(getAction(ACT_MDL_EDT));
|
||||
actGrp.append(getAction(ACT_MDL_DEL));
|
||||
actGrp.append(getAction(ACT_MDL_CUT));
|
||||
actGrp.append(getAction(ACT_MDL_CPY));
|
||||
actGrp.append(getAction(ACT_MDL_PST));
|
||||
actGrp.append(getAction(ACT_MDL_INS));
|
||||
actGrp.append(getAction(ACT_MDL_DUP));
|
||||
actGrp.append(getAction(ACT_MDL_MOV));
|
||||
actGrp.append(getAction(ACT_MDL_EXP));
|
||||
actGrp.append(getAction(ACT_MDL_MOV));
|
||||
return actGrp;
|
||||
}
|
||||
|
||||
QList<QAction *> MdiChild::getModelActions()
|
||||
{
|
||||
QList<QAction *> actGrp;
|
||||
actGrp.append(getAction(ACT_MDL_RTR));
|
||||
actGrp.append(getAction(ACT_MDL_WIZ));
|
||||
actGrp.append(getAction(ACT_MDL_DFT));
|
||||
// TODO remove
|
||||
// the function has been hobbled as expects eeprom binary backup so do not list
|
||||
// can just open another etx so use case doubtful
|
||||
//actGrp.append(getAction(ACT_MDL_RTR));
|
||||
actGrp.append(getAction(ACT_MDL_PRT));
|
||||
actGrp.append(getAction(ACT_MDL_SIM));
|
||||
return actGrp;
|
||||
@@ -1481,12 +1484,12 @@ int MdiChild::askQuestion(const QString & msg, QMessageBox::StandardButtons butt
|
||||
return QMessageBox::question(this, CPN_STR_APP_NAME, msg, buttons, defaultButton);
|
||||
}
|
||||
|
||||
void MdiChild::writeSettings(StatusDialog * status) // write to Tx
|
||||
void MdiChild::writeSettings(StatusDialog * status, bool toRadio) // write to Tx
|
||||
{
|
||||
if (g.confirmWriteModelsAndSettings()) {
|
||||
QMessageBox msgbox;
|
||||
msgbox.setText(tr("You are about to overwrite ALL models on the Radio."));
|
||||
msgbox.setInformativeText(tr("Do you want to continue?"));
|
||||
msgbox.setText(tr("You are about to overwrite ALL models."));
|
||||
msgbox.setInformativeText(tr("Continue?"));
|
||||
msgbox.setIcon(QMessageBox::Icon::Question);
|
||||
msgbox.setStandardButtons(QMessageBox::Yes | QMessageBox::Abort);
|
||||
msgbox.setDefaultButton(QMessageBox::Abort);
|
||||
@@ -1499,21 +1502,31 @@ void MdiChild::writeSettings(StatusDialog * status) // write to Tx
|
||||
return;
|
||||
}
|
||||
|
||||
QString radioPath = findMassstoragePath("RADIO", true);
|
||||
qDebug() << "Searching for SD card, found" << radioPath;
|
||||
QString radioPath;
|
||||
|
||||
if (toRadio) {
|
||||
radioPath = findMassstoragePath("RADIO", true);
|
||||
qDebug() << "Searching for SD card, found" << radioPath;
|
||||
}
|
||||
else {
|
||||
radioPath = g.currentProfile().sdPath();
|
||||
if (!QFile(radioPath % "/RADIO").exists())
|
||||
radioPath.clear();
|
||||
}
|
||||
|
||||
if (radioPath.isEmpty()) {
|
||||
qDebug() << "Radio SD card not found";
|
||||
QMessageBox::critical(this, CPN_STR_TTL_ERROR, tr("Unable to find radio SD card!"));
|
||||
QMessageBox::critical(this, CPN_STR_TTL_ERROR, tr("Unable to find SD card!"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (saveFile(radioPath, false)) {
|
||||
status->hide();
|
||||
QMessageBox::information(this, CPN_STR_TTL_INFO, tr("Models and settings written to radio"));
|
||||
QMessageBox::information(this, CPN_STR_TTL_INFO, tr("Models and settings written"));
|
||||
}
|
||||
else {
|
||||
status->hide();
|
||||
QMessageBox::critical(this, CPN_STR_TTL_ERROR, tr("Error writing models and settings to radio!"));
|
||||
QMessageBox::critical(this, CPN_STR_TTL_ERROR, tr("Error writing models and settings!"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1834,3 +1847,10 @@ void MdiChild::setModelModified(const int modelIndex, bool cascade)
|
||||
setModified();
|
||||
}
|
||||
}
|
||||
|
||||
QAction * MdiChild::actionsSeparator()
|
||||
{
|
||||
QAction * act = new QAction(this);
|
||||
act->setSeparator(true);
|
||||
return act;
|
||||
}
|
||||
|
||||
@@ -55,14 +55,9 @@ class MdiChild : public QWidget
|
||||
ACT_GEN_PST,
|
||||
ACT_GEN_SIM,
|
||||
ACT_GEN_SRT, // model sort order
|
||||
ACT_ITM_EDT,
|
||||
ACT_ITM_DEL,
|
||||
ACT_LBL_ADD,
|
||||
ACT_LBL_DEL,
|
||||
ACT_LBL_MVU, // Move up
|
||||
ACT_LBL_MVD, // Move down
|
||||
ACT_LBL_REN, // Move down
|
||||
ACT_MDL_ADD, // model actions...
|
||||
ACT_MDL_EDT, // model actions...
|
||||
ACT_MDL_DEL,
|
||||
ACT_MDL_ADD,
|
||||
ACT_MDL_CPY,
|
||||
ACT_MDL_CUT,
|
||||
ACT_MDL_PST,
|
||||
@@ -75,6 +70,11 @@ class MdiChild : public QWidget
|
||||
ACT_MDL_DFT, // set as DeFaulT
|
||||
ACT_MDL_PRT, // print
|
||||
ACT_MDL_SIM,
|
||||
ACT_LBL_ADD, // label actions..
|
||||
ACT_LBL_DEL,
|
||||
ACT_LBL_MVU, // Move up
|
||||
ACT_LBL_MVD, // Move down
|
||||
ACT_LBL_REN, // Move down
|
||||
ACT_ENUM_END
|
||||
};
|
||||
|
||||
@@ -97,7 +97,7 @@ class MdiChild : public QWidget
|
||||
bool saveAs(bool isNew=false);
|
||||
bool saveFile(const QString & fileName, bool setCurrent=true);
|
||||
void closeFile(bool force = false);
|
||||
void writeSettings(StatusDialog * status);
|
||||
void writeSettings(StatusDialog * status, bool toRadio = true);
|
||||
void print(int model=-1, const QString & filename="");
|
||||
void onFirmwareChanged();
|
||||
|
||||
@@ -231,6 +231,7 @@ class MdiChild : public QWidget
|
||||
AbstractStaticItemModel* modelSortOrderItemModel;
|
||||
QComboBox* cboModelSortOrder;
|
||||
void setModelModified(const int modelIndex, bool cascade = true);
|
||||
QAction * actionsSeparator();
|
||||
};
|
||||
|
||||
// This will draw the drop indicator across all columns of a model View (vs. in just one column), and lets us make the indicator more obvious.
|
||||
|
||||
@@ -189,21 +189,25 @@ bool readSettings(const QString & filename, ProgressWidget * progress)
|
||||
return readSettingsEeprom(filename, progress);
|
||||
}
|
||||
|
||||
bool readSettingsSDCard(const QString & filename, ProgressWidget * progress)
|
||||
bool readSettingsSDCard(const QString & filename, ProgressWidget * progress, bool fromRadio)
|
||||
{
|
||||
QString radioPath = findMassstoragePath("RADIO", true, progress);
|
||||
qDebug() << "Searching for SD card, found" << radioPath;
|
||||
if (radioPath.isEmpty()) {
|
||||
QMessageBox::critical(progress, CPN_STR_TTL_ERROR,
|
||||
QCoreApplication::translate("RadioInterface", "Unable to find radio SD card!"));
|
||||
return false;
|
||||
QString radioPath;
|
||||
|
||||
if (fromRadio) {
|
||||
radioPath = findMassstoragePath("RADIO", true, progress);
|
||||
qDebug() << "Searching for SD card, found" << radioPath;
|
||||
}
|
||||
else {
|
||||
radioPath = g.currentProfile().sdPath();
|
||||
if (!QFile::exists(radioPath % "/RADIO"))
|
||||
radioPath.clear();
|
||||
}
|
||||
|
||||
// if radio.yml it is a converted radio
|
||||
// if radio.bin unconverted pre 2.6
|
||||
// if neither then unconverted eeprom or empty
|
||||
if (!QFile::exists(radioPath % "/RADIO/radio.yml") && !QFile::exists(radioPath % "/RADIO/radio.bin"))
|
||||
return readSettingsEeprom(filename, progress);
|
||||
if (radioPath.isEmpty()) {
|
||||
QMessageBox::critical(progress, CPN_STR_TTL_ERROR,
|
||||
QCoreApplication::translate("RadioInterface", "Unable to find SD card!"));
|
||||
return false;
|
||||
}
|
||||
|
||||
RadioData radioData;
|
||||
Storage inputStorage(radioPath);
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _RADIOINTERFACE_H_
|
||||
#define _RADIOINTERFACE_H_
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
@@ -42,8 +41,6 @@ QStringList getWriteFirmwareArgs(const QString &filename);
|
||||
bool readFirmware(const QString &filename, ProgressWidget *progress);
|
||||
bool writeFirmware(const QString &filename, ProgressWidget *progress);
|
||||
bool readSettings(const QString &filename, ProgressWidget *progress);
|
||||
bool readSettingsSDCard(const QString &filename, ProgressWidget *progress);
|
||||
bool readSettingsSDCard(const QString &filename, ProgressWidget *progress, bool fromRadio = true);
|
||||
bool readSettingsEeprom(const QString &filename, ProgressWidget *progress);
|
||||
bool writeSettings(const QString &filename, ProgressWidget *progress);
|
||||
|
||||
#endif // _RADIOINTERFACE_H_
|
||||
|
||||
@@ -835,6 +835,13 @@ class AppData: public CompStoreObj
|
||||
// Message box confirmations
|
||||
PROPERTY(bool, confirmWriteModelsAndSettings, true)
|
||||
|
||||
// Toolbars visibility
|
||||
PROPERTY(bool, fileToolbarVisible, true)
|
||||
PROPERTY(bool, modelsToolbarVisible, true)
|
||||
PROPERTY(bool, radioToolbarVisible, true)
|
||||
PROPERTY(bool, settingsToolbarVisible, true)
|
||||
PROPERTY(bool, toolsToolbarVisible, true)
|
||||
|
||||
bool firstUse;
|
||||
QString upgradeFromVersion;
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 569 B |
|
After Width: | Height: | Size: 586 B |
|
After Width: | Height: | Size: 803 B |
|
After Width: | Height: | Size: 789 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 424 B |
|
After Width: | Height: | Size: 418 B |
|
After Width: | Height: | Size: 435 B |
|
After Width: | Height: | Size: 432 B |
|
After Width: | Height: | Size: 452 B |
|
After Width: | Height: | Size: 450 B |
|
After Width: | Height: | Size: 480 B |
|
After Width: | Height: | Size: 479 B |
|
After Width: | Height: | Size: 436 B |
|
After Width: | Height: | Size: 434 B |
|
After Width: | Height: | Size: 573 B |
|
After Width: | Height: | Size: 568 B |
|
After Width: | Height: | Size: 711 B |
|
After Width: | Height: | Size: 715 B |
|
After Width: | Height: | Size: 983 B |
|
After Width: | Height: | Size: 1013 B |
|
After Width: | Height: | Size: 440 B |
|
After Width: | Height: | Size: 434 B |
|
After Width: | Height: | Size: 625 B |
|
After Width: | Height: | Size: 612 B |
|
After Width: | Height: | Size: 798 B |
|
After Width: | Height: | Size: 794 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 812 B |
|
After Width: | Height: | Size: 812 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |