Browse Source

fixing bugs with config, with

master
tedjk 11 years ago
parent
commit
ff3442896c
  1. 9
      juci/config.cc
  2. 7
      juci/config.h
  3. 10
      juci/config.json
  4. 1
      juci/source.h
  5. 3
      juci/terminal.cc
  6. 4
      juci/terminal.h
  7. 1
      juci/window.cc

9
juci/config.cc

@ -8,6 +8,7 @@ MainConfig::MainConfig() :
GenerateSource();
GenerateKeybindings();
GenerateDirectoryFilter();
GenerateTerminalCommands();
}
void MainConfig::GenerateSource() {
@ -29,6 +30,14 @@ void MainConfig::GenerateSource() {
DEBUG("Source cfg fetched");
}
void MainConfig::GenerateTerminalCommands() {
boost::property_tree::ptree source_json = cfg_.get_child("project");
boost::property_tree::ptree commands_json = source_json.get_child("compile_commands");
for (auto &i : commands_json) {
terminal_cfg_.InsertCompileCommand(i.second.get_value<std::string>());
}
}
void MainConfig::GenerateKeybindings() {
DEBUG("Fetching keybindings");
std::string line;

7
juci/config.h

@ -1,3 +1,5 @@
#ifndef
#define JUCI_CONFIG_H_
#include <boost/property_tree/json_parser.hpp>
#include <boost/property_tree/xml_parser.hpp>
#include <fstream>
@ -5,6 +7,7 @@
#include "keybindings.h"
#include "source.h"
#include "directories.h"
#include "terminal.h"
class MainConfig {
public:
@ -12,14 +15,18 @@ public:
Source::Config& source_cfg() { return source_cfg_; }
Keybindings::Config& keybindings_cfg() { return keybindings_cfg_; }
Directories::Config& dir_cfg() { return dir_cfg_; }
Terminal::Config& terminal_cfg() { return terminal_cfg_; }
void PrintMenu();
void GenerateSource();
void GenerateKeybindings();
void GenerateDirectoryFilter();
void GenerateTerminalCommands();
private:
boost::property_tree::ptree cfg_;
boost::property_tree::ptree key_tree_;
Source::Config source_cfg_;
Keybindings::Config keybindings_cfg_;
Directories::Config dir_cfg_;
Terminal::Config terminal_cfg_;
};
#endif

10
juci/config.json

@ -55,7 +55,15 @@
"cmakelists.txt",
"in-lowercase.pls"
]
},
},
"project": {
"compile_commands": [
"rm -rf ./build",
"mkdir build",
"cmake -B./build -H.",
"cd ./.build/; make"
]
},
"example": {
"key": "value",
"key2": [

1
juci/source.h

@ -158,7 +158,6 @@ namespace Source {
void set_is_changed(bool isChanged) { is_changed_ = isChanged; }
void set_file_path(std::string path) { model().set_file_path(path); }
private:
void OnLineEdit();
void OnSaveFile();

3
juci/terminal.cc

@ -12,7 +12,8 @@ Terminal::View::View(){
}
Terminal::Controller::Controller() {
Terminal::Controller::Controller(Terminal::Config& cfg) :
config_(cfg) {
folder_command_ = "";
}

4
juci/terminal.h

@ -20,13 +20,15 @@ namespace Terminal {
class Controller {
public:
Controller();
Controller(Terminal::Config& cfg);
Gtk::HBox& view() {return view_.view();}
Gtk::TextView& Terminal(){return view_.textview();}
void SetFolderCommand(boost::filesystem::path CMake_path);
void Run(std::string executable);
void Compile();
Terminal::Config& config() { return config_; }
private:
Terminal::Config config_;
void ExecuteCommand(std::string command, std::string mode);
bool OnButtonRealeaseEvent(GdkEventKey* key);
bool ExistInConsole(std::string string);

1
juci/window.cc

@ -5,6 +5,7 @@ Window::Window() :
window_box_(Gtk::ORIENTATION_VERTICAL),
main_config_(),
keybindings_(main_config_.keybindings_cfg()),
terminal_(main_config_.terminal_cfg()),
notebook_(this,keybindings(),
main_config_.source_cfg(),
main_config_.dir_cfg()),

Loading…
Cancel
Save