Browse Source

Source map should be working, added config items for source map.

merge-requests/365/head
eidheim 10 years ago
parent
commit
1ed40db56d
  1. 9
      src/config.cc
  2. 2
      src/files.h
  3. 16
      src/notebook.cc
  4. 1
      src/notebook.h
  5. 4
      src/source.h
  6. 4
      src/window.cc

9
src/config.cc

@ -115,6 +115,12 @@ void MainConfig::GenerateSource() {
auto source_cfg = Singleton::Config::source(); auto source_cfg = Singleton::Config::source();
auto source_json = cfg.get_child("source"); auto source_json = cfg.get_child("source");
Singleton::Config::source()->style=source_json.get<std::string>("style");
source_cfg->font=source_json.get<std::string>("font");
source_cfg->show_map = source_json.get<bool>("show_map");
source_cfg->map_font_size = source_json.get<unsigned>("map_font_size");
source_cfg->spellcheck_language = source_json.get<std::string>("spellcheck_language"); source_cfg->spellcheck_language = source_json.get<std::string>("spellcheck_language");
source_cfg->default_tab_char = source_json.get<char>("default_tab_char"); source_cfg->default_tab_char = source_json.get<char>("default_tab_char");
@ -128,9 +134,6 @@ void MainConfig::GenerateSource() {
for (auto &i : source_json.get_child("clang_types")) for (auto &i : source_json.get_child("clang_types"))
source_cfg->clang_types[i.first] = i.second.get_value<std::string>(); source_cfg->clang_types[i.first] = i.second.get_value<std::string>();
Singleton::Config::source()->style=source_json.get<std::string>("style");
source_cfg->font=source_json.get<std::string>("font");
} }
void MainConfig::GenerateDirectoryFilter() { void MainConfig::GenerateDirectoryFilter() {

2
src/files.h

@ -26,6 +26,8 @@ const std::string configjson =
#endif #endif
#endif #endif
"//Use \"\" for default font, and for instance \"Monospace 12\" to also set size.\n" "//Use \"\" for default font, and for instance \"Monospace 12\" to also set size.\n"
" \"show_map\": true,\n"
" \"map_font_size\": 1,\n"
" \"spellcheck_language\": \"en_US\", //Use \"\" to set language from your locale settings\n" " \"spellcheck_language\": \"en_US\", //Use \"\" to set language from your locale settings\n"
" \"clang_types\": {\n" " \"clang_types\": {\n"
" \"8\": \"def:function\",\n" " \"8\": \"def:function\",\n"

16
src/notebook.cc

@ -107,12 +107,11 @@ void Notebook::open(const boost::filesystem::path &file_path) {
#if GTK_VERSION_GE(3, 18) #if GTK_VERSION_GE(3, 18)
source_maps.emplace_back(Glib::wrap(gtk_source_map_new())); source_maps.emplace_back(Glib::wrap(gtk_source_map_new()));
auto font_desc=Pango::FontDescription(Singleton::Config::source()->font);
font_desc.set_size(1);
source_maps.back()->override_font(font_desc);
hboxes.back()->pack_end(*source_maps.back(), Gtk::PACK_SHRINK); hboxes.back()->pack_end(*source_maps.back(), Gtk::PACK_SHRINK);
gtk_source_map_set_view(GTK_SOURCE_MAP(source_maps.back()->gobj()), source_views.back()->gobj()); gtk_source_map_set_view(GTK_SOURCE_MAP(source_maps.back()->gobj()), source_views.back()->gobj());
#endif #endif
configure(source_views.size()-1);
std::string title=file_path.filename().string(); std::string title=file_path.filename().string();
append_page(*hboxes.back(), title); append_page(*hboxes.back(), title);
@ -142,6 +141,17 @@ void Notebook::open(const boost::filesystem::path &file_path) {
DEBUG("end"); DEBUG("end");
} }
void Notebook::configure(int view_nr) {
#if GTK_VERSION_GE(3, 18)
auto font_desc=Pango::FontDescription("Monospace "+std::to_string(Singleton::Config::source()->map_font_size)); //Seems to only work with Monospace
source_maps.at(view_nr)->override_font(font_desc);
if(Singleton::Config::source()->show_map)
source_maps.at(view_nr)->show();
else
source_maps.at(view_nr)->hide();
#endif
}
bool Notebook::save(int page, bool reparse_needed) { bool Notebook::save(int page, bool reparse_needed) {
DEBUG("start"); DEBUG("start");
if(page>=size()) { if(page>=size()) {

1
src/notebook.h

@ -21,6 +21,7 @@ public:
void open(const boost::filesystem::path &file_path); void open(const boost::filesystem::path &file_path);
bool save(int page, bool reparse_needed=false); bool save(int page, bool reparse_needed=false);
bool save_current(); bool save_current();
void configure(int view_nr);
private: private:
bool save_modified_dialog(); bool save_modified_dialog();

4
src/source.h

@ -26,6 +26,10 @@ namespace Source {
std::string style; std::string style;
std::string font; std::string font;
std::string spellcheck_language; std::string spellcheck_language;
bool show_map;
unsigned map_font_size;
bool auto_tab_char_and_size; bool auto_tab_char_and_size;
char default_tab_char; char default_tab_char;
unsigned default_tab_size; unsigned default_tab_size;

4
src/window.cc

@ -190,8 +190,10 @@ void Window::create_menu() {
if(notebook.get_current_page()!=-1) { if(notebook.get_current_page()!=-1) {
if(notebook.get_current_view()->file_path==Singleton::config_dir()+"config.json") { if(notebook.get_current_view()->file_path==Singleton::config_dir()+"config.json") {
configure(); configure();
for(int c=0;c<notebook.size();c++) for(int c=0;c<notebook.size();c++) {
notebook.get_view(c)->configure(); notebook.get_view(c)->configure();
notebook.configure(c);
}
} }
} }
} }

Loading…
Cancel
Save