| 835 | }; |
| 836 | |
| 837 | void CMainFrame::LoadConfiguration(const std::wstring& fileName) |
| 838 | { |
| 839 | boost::property_tree::ptree pt; |
| 840 | boost::property_tree::read_xml(Str(fileName), pt, boost::property_tree::xml_parser::trim_whitespace); |
| 841 | |
| 842 | auto autoNewline = pt.get<bool>("DebugViewPP.AutoNewline"); |
| 843 | auto linkViews = pt.get<bool>("DebugViewPP.LinkViews"); |
| 844 | |
| 845 | auto viewsPt = pt.get_child("DebugViewPP.Views"); |
| 846 | std::vector<View> views; |
| 847 | for (auto& item : viewsPt) |
| 848 | { |
| 849 | if (item.first == "View") |
| 850 | { |
| 851 | View view; |
| 852 | auto& viewPt = item.second; |
| 853 | view.index = viewPt.get<bool>("Index"); |
| 854 | view.name = viewPt.get<std::string>("Name"); |
| 855 | view.clockTime = viewPt.get<bool>("ClockTime"); |
| 856 | view.processColors = viewPt.get<bool>("ProcessColors"); |
| 857 | view.filters.messageFilters = MakeFilters(viewPt.get_child("MessageFilters")); |
| 858 | view.filters.processFilters = MakeFilters(viewPt.get_child("ProcessFilters")); |
| 859 | |
| 860 | views.push_back(view); |
| 861 | } |
| 862 | } |
| 863 | std::sort(views.begin(), views.end(), [](const View& v1, const View& v2) { return v1.index < v2.index; }); |
| 864 | |
| 865 | m_logSources.SetAutoNewLine(autoNewline); |
| 866 | m_linkViews = linkViews; |
| 867 | |
| 868 | for (int i = 0; i < static_cast<int>(views.size()); ++i) |
| 869 | { |
| 870 | if (i >= GetViewCount()) |
| 871 | AddFilterView(WStr(views[i].name), views[i].filters); |
| 872 | else |
| 873 | GetView(i).SetFilters(views[i].filters); |
| 874 | |
| 875 | auto& logView = GetView(i); |
| 876 | logView.SetClockTime(views[i].clockTime); |
| 877 | logView.SetViewProcessColors(views[i].processColors); |
| 878 | } |
| 879 | |
| 880 | size_t i = GetViewCount(); |
| 881 | while (i > views.size()) |
| 882 | { |
| 883 | --i; |
| 884 | CloseView(i); |
| 885 | } |
| 886 | } |
| 887 | |
| 888 | void CMainFrame::SaveConfiguration(const std::wstring& fileName) |
| 889 | { |
no test coverage detected