fix the 1st issue of #125

This commit is contained in:
Jinhao 2016-04-21 16:18:55 +08:00
parent e4adb22fa2
commit be7376e214

View File

@ -421,19 +421,24 @@ namespace nana
return *this; return *this;
} }
std::string to_string(const export_options& exp_opt) const std::string to_string(const export_options& exp_opt, const std::vector<cell>* model_cells) const
{ {
std::string item_str; std::string item_str;
bool ignore_first = true; bool ignore_first = true;
for (size_type idx{}; idx < exp_opt.columns_order.size(); ++idx)
for (auto col : exp_opt.columns_order)
{ {
if (ignore_first) if (ignore_first)
ignore_first = false; ignore_first = false;
else else
item_str += exp_opt.sep; item_str += exp_opt.sep;
item_str += cells[exp_opt.columns_order[idx]].text; //Use the model cells instead if model cells is avaiable
if (model_cells)
item_str += model_cells->operator[](col).text;
else
item_str += cells[col].text;
} }
return item_str; return item_str;
@ -2880,11 +2885,22 @@ namespace nana
else else
list_str += (to_utf8(cat.text) + exp_opt.endl); list_str += (to_utf8(cat.text) + exp_opt.endl);
std::vector<cell> model_cells;
for (auto i : cat.sorted) for (auto i : cat.sorted)
{ {
auto& it= cat.items[i] ; auto& item = cat.items[i];
if(it.flags.selected || !exp_opt.only_selected_items) if (item.flags.selected || !exp_opt.only_selected_items)
list_str += (it.to_string(exp_opt) + exp_opt.endl); {
//Test if the category have a model set.
if (cat.model_ptr)
{
cat.model_ptr->container()->to_cells(i).swap(model_cells);
list_str += (item.to_string(exp_opt, &model_cells) + exp_opt.endl);
}
else
list_str += (item.to_string(exp_opt, nullptr) + exp_opt.endl);
}
} }
} }
return list_str ; return list_str ;