This change incorporates a reorganization of the GUI code with
widgets, validators, models, and item delegates being moved to
sub-directories.
Relax the requirements of the ForeignKeyDelegate and related
CandidateKeyFilter classes to allow them to work with constant model
pointers for both referenced and referencing models.
The --config <configuration> (-c for short) command line option can be
used to select an existing configuration at start up. If the
configuration does not exist the last configuration used is selected.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7567 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Ampersand characters have special significance in action names, they
indicate the following character is an accelerator. This change allows
single ampersand characters but filters them out from the
MultiSettings::configuration_name_changed signal. Double ampersands
may be used to escape a single ampersand.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7338 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
On Mac OS X due to the Qt use of native menu widgets the connections
for a menu action get disconnected before they are triggered when
using QMenu::aboutToHide() to remove the items dynamically. Changed
to depopulate the sub menu just before re-population in the
QMenu::aboutToShow() event.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7263 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This change to using dynamically built pop up menus for teh
configurations menu gets around an issue with teh Linux Unity appmenu
not being able to handle actions used in multiple menu items.
There is a remaining issue with the QMenu::aboutToHide() signal not
being fired if the Unity appmenu is not disabled. Hopefully this will
be fixed in later Qt/Unity versions. Until then the configurations
menu cannot be used unless the appmenu_qt5 package is removed.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7260 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This change maintains the encapsulation of the MultiSettings class by
using a signal to notify clients of changes to the current
configuration name.
Modifications to the MainWindow class to display the current
configuration name in the status bar, if it is not "Default", based on
MultiSettings events rather than polling for changes.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7257 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The change also includes a new MultiSettings feature that allows
settings keys common to all configurations. The splash screen disable
is the first of those to be used.
The MultiSettings class has been made safer to use by ensuring it
saves and re-enables the current QSettings group when doing multi
settings actions. This allows access to common, across configuration,
items while within a normal settings group without breaking the
MultiSettings internal implementation.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7073 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Instead of using the Qt QMessageBox class directly a new class
MessageBox (MessageBox.hpp) has been added to deal with platform
independence issues like the title not being shown on Mac OS X.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6861 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The initial conservative implementation has been replaced by a simpler
one that swaps configurations around in the settings file as specified
by the multiple configurations menu options.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6631 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Multiple configurations are accessed and maintained from a new main
window menu bar pop up menu "Configurations". The prior settings are
the "Default" entry. New configurations may be added by cloning
existing ones. Maintenance and navigation is via sub menus for each
configuration.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6623 ab8295b8-cf94-4d9e-aec4-7959e3be5d79