/* Copyright (c) 2014-2015, Stanislaw Halik * Permission to use, copy, modify, and/or distribute this * software for any purpose with or without fee is hereby granted, * provided that the above copyright notice and this permission * notice appear in all copies. */ #pragma once #include "main-settings.hpp" #include "api/plugin-support.hpp" #include "tracker.h" #include "shortcuts.h" #include "export.hpp" #include "tracklogger.hpp" #include "logic/selected-libraries.hpp" #include "api/plugin-support.hpp" #include #include #include #include #include #include struct OTR_LOGIC_EXPORT Work { using fn_t = std::function; using key_tuple = std::tuple; main_settings s; // tracker needs settings, so settings must come before it SelectedLibraries libs; // idem std::shared_ptr logger; // must come before tracker, since tracker depends on it std::shared_ptr tracker; std::shared_ptr sc; std::vector keys; Work(Mappings& m, QFrame* frame, std::shared_ptr tracker, std::shared_ptr filter, std::shared_ptr proto); ~Work(); void reload_shortcuts(); bool is_ok() const; private: static std::shared_ptr make_logger(main_settings &s); static QString browse_datalogging_file(main_settings &s); };