[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5678] Fix defect noted 20130414T1341Z
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5678] Fix defect noted 20130414T1341Z |
Date: |
Sun, 14 Apr 2013 18:47:19 +0000 |
Revision: 5678
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5678
Author: chicares
Date: 2013-04-14 18:47:19 +0000 (Sun, 14 Apr 2013)
Log Message:
-----------
Fix defect noted 20130414T1341Z
Modified Paths:
--------------
lmi/trunk/ChangeLog
lmi/trunk/preferences_model.cpp
lmi/trunk/preferences_model.hpp
Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2013-04-14 15:06:19 UTC (rev 5677)
+++ lmi/trunk/ChangeLog 2013-04-14 18:47:19 UTC (rev 5678)
@@ -31944,3 +31944,35 @@
version.hpp
Designate release candidate.
+20130414T1227Z <address@hidden> [543]
+
+ ihs_acctval.cpp
+ ihs_avmly.cpp
+ mec_server.cpp
+Improve documentation.
+
+20130414T1341Z <address@hidden> [543]
+
+ preferences_model.cpp
+Document a defect.
+
+20130414T1400Z <address@hidden> [543]
+
+ configurable_settings.cpp
+ configurable_settings.hpp
+ ledger_text_formats.cpp
+Improve a misleading function name.
+
+20130414T1506Z <address@hidden> [543]
+
+ Makefile.am
+ configurable_settings.cpp
+ objects.make
+Diagnose the defect noted 20130414T1341Z.
+
+20130414T1847Z <address@hidden> [543]
+
+ preferences_model.cpp
+ preferences_model.hpp
+Fix defect noted 20130414T1341Z.
+
Modified: lmi/trunk/preferences_model.cpp
===================================================================
--- lmi/trunk/preferences_model.cpp 2013-04-14 15:06:19 UTC (rev 5677)
+++ lmi/trunk/preferences_model.cpp 2013-04-14 18:47:19 UTC (rev 5678)
@@ -31,9 +31,7 @@
#include "alert.hpp"
#include "configurable_settings.hpp"
-#include <cstddef> // std::size_t
-#include <iterator>
-#include <stdexcept>
+#include <cstddef> // std::size_t
#include <sstream>
#include <vector>
@@ -181,11 +179,24 @@
bool PreferencesModel::IsModified() const
{
PreferencesModel unchanged;
- unchanged.Load();
+// CALCULATION_SUMMARY Apparently unneeded: ctor calls Load().
+// unchanged.Load();
+// Unfortunately, construction of 'unchanged' therefore causes any
+// parsed_calculation_summary_columns() diagnostics to be repeated.
+// It would seem better to permit copying, and then use a copy.
if(unchanged.UseBuiltinCalculationSummary != UseBuiltinCalculationSummary)
{
return true;
}
+ configurable_settings const& z = configurable_settings::instance();
+ if(string_of_column_names() != z.calculation_summary_columns())
+ {
+ return true;
+ }
+ // This test duplicates the preceding one. This one may be what
+ // is ultimately wanted, but for now at least it doesn't detect
+ // parsed_calculation_summary_columns()'s removal of invalid
+ // substrings.
std::vector<std::string>::const_iterator i;
for(i = member_names().begin(); i != member_names().end(); ++i)
{
@@ -197,24 +208,11 @@
return false;
}
-// Defect: if any column field contains an invalid name, e.g.:
-// <calculation_summary_columns>invalid</calculation_summary_columns>
-// then this assignment:
-// operator[](name) = columns[i];
-// throws an exception; in that case, running an illustration appears
-// to fail, and the preferences GUI cannot fix the problem.
-
void PreferencesModel::Load()
{
+ std::vector<std::string> columns(parsed_calculation_summary_columns());
+
configurable_settings const& z = configurable_settings::instance();
- std::istringstream iss(z.calculation_summary_columns());
- std::vector<std::string> columns;
- std::copy
- (std::istream_iterator<std::string>(iss)
- ,std::istream_iterator<std::string>()
- ,std::back_inserter(columns)
- );
-
bool b = z.use_builtin_calculation_summary();
UseBuiltinCalculationSummary = b ? "Yes" : "No";
@@ -234,7 +232,7 @@
}
}
-void PreferencesModel::Save() const
+std::string PreferencesModel::string_of_column_names() const
{
std::ostringstream oss;
std::vector<std::string>::const_iterator i;
@@ -251,7 +249,13 @@
oss << column << " ";
}
}
- if(oss.str().empty() && "Yes" != UseBuiltinCalculationSummary)
+ return oss.str();
+}
+
+void PreferencesModel::Save() const
+{
+ std::string s(string_of_column_names());
+ if(s.empty() && "Yes" != UseBuiltinCalculationSummary)
{
warning()
<< "Calculation summary will be empty: no columns chosen."
@@ -259,7 +263,7 @@
;
}
configurable_settings& z = configurable_settings::instance();
- z.calculation_summary_columns(oss.str());
+ z.calculation_summary_columns(s);
z.use_builtin_calculation_summary("Yes" == UseBuiltinCalculationSummary);
}
Modified: lmi/trunk/preferences_model.hpp
===================================================================
--- lmi/trunk/preferences_model.hpp 2013-04-14 15:06:19 UTC (rev 5677)
+++ lmi/trunk/preferences_model.hpp 2013-04-14 18:47:19 UTC (rev 5678)
@@ -52,6 +52,8 @@
private:
void AscribeMembers();
+ std::string string_of_column_names() const;
+
// MvcModel required implementation.
virtual void DoAdaptExternalities();
virtual datum_base const* DoBaseDatumPointer(std::string const&) const;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5678] Fix defect noted 20130414T1341Z,
Greg Chicares <=