summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2011-07-06 07:26:32 +0000
committerJon A. Cruz <jon@joncruz.org>2011-07-06 07:26:32 +0000
commitb40f9bd37abc96d579f930dee9e6fb95031d74f0 (patch)
treed40a7a29ecacc3a2e022fa60778a985aeace8382 /src/ui
parentText edit dialog: Apply button should grab default only after adding to window (diff)
downloadinkscape-b40f9bd37abc96d579f930dee9e6fb95031d74f0.tar.gz
inkscape-b40f9bd37abc96d579f930dee9e6fb95031d74f0.zip
Refactoring color profile to bring more internal. Help to prep for optional lcms2 support.
(bzr r10420)
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/dialog/document-properties.cpp60
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp4
2 files changed, 19 insertions, 45 deletions
diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp
index 569dd2311..5d32839cb 100644
--- a/src/ui/dialog/document-properties.cpp
+++ b/src/ui/dialog/document-properties.cpp
@@ -43,8 +43,6 @@
#include "xml/repr.h"
#if ENABLE_LCMS
-#include <lcms.h>
-//#include "color-profile-fns.h"
#include "color-profile.h"
#endif // ENABLE_LCMS
@@ -309,53 +307,29 @@ DocumentProperties::build_snap()
}
#if ENABLE_LCMS
-static void
-lcms_profile_get_name (cmsHPROFILE profile, const gchar **name)
-{
- if (profile)
- {
- *name = cmsTakeProductDesc (profile);
-
- if (! *name)
- *name = cmsTakeProductName (profile);
-
- if (*name && ! g_utf8_validate (*name, -1, NULL))
- *name = _("(invalid UTF-8 string)");
- }
- else
- {
- *name = _("None");
- }
-}
-
-void
-DocumentProperties::populate_available_profiles(){
+void DocumentProperties::populate_available_profiles(){
Glib::ListHandle<Gtk::Widget*> children = _menu.get_children();
for ( Glib::ListHandle<Gtk::Widget*>::iterator it2 = children.begin(); it2 != children.end(); ++it2 ) {
_menu.remove(**it2);
delete(*it2);
}
- std::list<Glib::ustring> files = ColorProfile::getProfileFiles();
- for ( std::list<Glib::ustring>::const_iterator it = files.begin(); it != files.end(); ++it ) {
- cmsHPROFILE hProfile = cmsOpenProfileFromFile(it->c_str(), "r");
- if ( hProfile ){
- const gchar* name = 0;
- lcms_profile_get_name(hProfile, &name);
- Gtk::MenuItem* mi = manage(new Gtk::MenuItem());
- mi->set_data("filepath", g_strdup(it->c_str()));
- mi->set_data("name", g_strdup(name));
- Gtk::HBox *hbox = manage(new Gtk::HBox());
- hbox->show();
- Gtk::Label* lbl = manage(new Gtk::Label(name));
- lbl->show();
- hbox->pack_start(*lbl, true, true, 0);
- mi->add(*hbox);
- mi->show_all();
- _menu.append(*mi);
-// g_free((void*)name);
- cmsCloseProfile(hProfile);
- }
+ std::vector<std::pair<Glib::ustring, Glib::ustring> > pairs = ColorProfile::getProfileFilesWithNames();
+ for ( std::vector<std::pair<Glib::ustring, Glib::ustring> >::const_iterator it = pairs.begin(); it != pairs.end(); ++it ) {
+ Glib::ustring file = it->first;
+ Glib::ustring name = it->second;
+
+ Gtk::MenuItem* mi = manage(new Gtk::MenuItem());
+ mi->set_data("filepath", g_strdup(file.c_str()));
+ mi->set_data("name", g_strdup(name.c_str()));
+ Gtk::HBox *hbox = manage(new Gtk::HBox());
+ hbox->show();
+ Gtk::Label* lbl = manage(new Gtk::Label(name));
+ lbl->show();
+ hbox->pack_start(*lbl, true, true, 0);
+ mi->add(*hbox);
+ mi->show_all();
+ _menu.append(*mi);
}
_menu.show_all();
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 3c272e691..aa3c18aaa 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -906,8 +906,8 @@ void InkscapePreferences::initPageCMS()
_page_cms.add_group_header( _("Display adjustment"));
Glib::ustring tmpStr;
- std::list<Glib::ustring> sources = ColorProfile::getBaseProfileDirs();
- for ( std::list<Glib::ustring>::const_iterator it = sources.begin(); it != sources.end(); ++it ) {
+ std::vector<Glib::ustring> sources = ColorProfile::getBaseProfileDirs();
+ for ( std::vector<Glib::ustring>::const_iterator it = sources.begin(); it != sources.end(); ++it ) {
gchar* part = g_strdup_printf( "\n%s", it->c_str() );
tmpStr += part;
g_free(part);