improved support for metadata editing

(cherry picked from commit 85da0b51ecf7ece768c0267aead71dd94404d4dc)
This commit is contained in:
Alberto Griggio
2020-04-10 05:54:40 -07:00
committed by Lawrence Lee
parent 8a5aa6c119
commit b92e77fb96
15 changed files with 615 additions and 183 deletions

View File

@@ -50,7 +50,8 @@ private:
class ExifColumns : public Gtk::TreeModelColumnRecord
{
public:
Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > icon;
// Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf>> expander_icon;
Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf>> icon;
Gtk::TreeModelColumn<std::string> key;
Gtk::TreeModelColumn<Glib::ustring> label;
Gtk::TreeModelColumn<Glib::ustring> value;
@@ -71,10 +72,13 @@ private:
add(editable);
add(active);
add(is_group);
// add(expander_icon);
}
};
Glib::RefPtr<Gdk::Pixbuf> keepicon;
//Glib::RefPtr<Gdk::Pixbuf> keepicon;
Glib::RefPtr<Gdk::Pixbuf> editicon;
Glib::RefPtr<Gdk::Pixbuf> open_icon_;
Glib::RefPtr<Gdk::Pixbuf> closed_icon_;
ExifColumns exifColumns;
Gtk::TreeView* exifTree;
@@ -90,7 +94,7 @@ private:
Gtk::CellRendererToggle exif_active_renderer_;
Gtk::TreeView::Column exif_active_column_;
const std::vector<std::pair<std::string, Glib::ustring>> editableTags;
std::vector<std::pair<std::string, Glib::ustring>> editableTags;
std::unordered_set<std::string> initial_active_keys_;
std::unordered_set<std::string> cur_active_keys_;
@@ -106,7 +110,14 @@ private:
void setKeyActive(Gtk::CellRenderer *renderer, const Gtk::TreeModel::iterator &it);
void onKeyActiveToggled(const Glib::ustring &path);
bool all_keys_active() const;
std::unordered_set<std::string> get_active_keys() const;
void onExifTreeClick(GdkEventButton *event);
void onExifRowExpanded(const Gtk::TreeModel::iterator &it, const Gtk::TreeModel::Path &path);
void onExifRowCollapsed(const Gtk::TreeModel::iterator &it, const Gtk::TreeModel::Path &path);
void onExifRowActivated(const Gtk::TreeModel::Path &path, Gtk::TreeViewColumn *column);
public:
ExifPanel ();