#ifndef GTKMM_DATABASE_WINDOW #define GTKMM_DATABASE_WINDOW #include #include #include #include class DatabaseWindow : public Gtk::Window { public: DatabaseWindow() = delete; DatabaseWindow( bool _linux, Glib::RefPtr< Gtk::Application > _app ); virtual ~DatabaseWindow(); private: void save(); void remove(); void changed( const Gtk::TreeModel::Path & /*UNUSED*/, const Gtk::TreeModel::iterator &row ); void quit(); void errorPath( const std::string &path ); void errorID( const std::string &show_id ); void errorLanguage( const std::string &lang ); std::unordered_set< size_t > changed_rows; protected: Gtk::TreeView *m_tree_database = new Gtk::TreeView(); class DatabaseColumns : public Gtk::TreeModel::ColumnRecord { public: DatabaseColumns() { add( m_col_id ); add( m_col_show ); add( m_col_path ); add( m_col_lang ); add( m_col_show_id ); add( m_col_dvd ); } Gtk::TreeModelColumn< size_t > m_col_id; Gtk::TreeModelColumn< std::string > m_col_show; Gtk::TreeModelColumn< std::string > m_col_path; Gtk::TreeModelColumn< std::string > m_col_lang; Gtk::TreeModelColumn< std::string > m_col_show_id; Gtk::TreeModelColumn< std::string > m_col_dvd; }; DatabaseColumns m_columns_database; Glib::RefPtr< Gtk::ListStore > m_model; bool linux; Glib::RefPtr< Gtk::Application > app; }; #endif // GTKMM_MAIN_WINDOW