This makes loading faster, with less I/O, avoids unnecessary
code duplication (around 1k lines shaved), and ensures that
all the panels link and work appropriately.
By the same token, it will stop external panels from being
created, and loaded.
https://bugzilla.gnome.org/show_bug.cgi?id=690036
On some machines used for pre-press or animation the number of display-suitable
profiles is going to be large. We really don't want to have a GtkComboBox
several times bigger than the height of the screen to navigate.
Also, while we're here get some design feedback from the #gnome-design guys and
fix up some spacing and alignment issues.
The existing code prevents the user from adding the existing default device
profile to the device again, but to prevent a warning message we need to prevent
the user from selecting *any* of the profiles already assigned to the device.
Virtual profiles (e.g. from the PPD for printers) don't have filenames, and so
fall back to the ID for debugging.
NOTE: this warning uncovered a bug in libcolord, which is fixed by commit
876d961665d01f8c37094fe85b0130850a008051 in the colord project.
Remove the 'Only profiles that are compatible with...' lightbulb helper and
instead just set the dialog title to include the device class, e.g.
'Available Profiles for Printers'.
Resolves https://bugzilla.gnome.org/show_bug.cgi?id=661657
Using current_device breaks when you have more than one monitor that is color
managed, and you select device #1 and then click on a different profile for
device #2.
In this case we want to change the default profile on device #2, not device #1.
This happens on most virtual machines as we can't actually correct a virtual
screen an there's not going to be many interesting USB devices plugged in.
Thanks again to the guys in #gnome-design for all the help.
We need to store the device 'Path' not the device 'Id' in the model as we can't
connect to a device that's already been removed which we need to do when using
the ID.
When I was adding the color panel, we ripped out the import code as it was all
pretty hacky and hardcoded, with the intention of doing it the right way in
colord rather than in each client.
At the moment if the user selects 'Import' then the panel does nothing as the
code that would actually make it work was missing.
I've now added the required client code in colord 0.1.12 which makes it possible
to actually import files not listed in the dropdown.
This makes it possible to install a display profile that's been downloaded into
the 'Downloads' directory by firefox.