#include "DockView.h"
#include "TocWidget.h"
#include "FuncRequest.h"
+
#include "insets/InsetCommand.h"
#include "TocModel.h"
#include "Buffer.h"
#include "BufferView.h"
#include "BufferParams.h"
-#include "support/debug.h"
#include "FloatList.h"
#include "FuncRequest.h"
-#include "support/gettext.h"
#include "TextClass.h"
#include "support/convert.h"
+#include "support/debug.h"
+#include "support/gettext.h"
-#include <algorithm>
+#include "support/assert.h"
-using std::string;
+#include <algorithm>
+using namespace std;
namespace lyx {
namespace frontend {
GuiToc::GuiToc(GuiView & parent, Qt::DockWidgetArea area, Qt::WindowFlags flags)
- : DockView(parent, "toc", area, flags), params_(TOC_CODE)
+ : DockView(parent, "toc", qt_("Outline"), area, flags)
{
- widget_ = new TocWidget(*this);
+ widget_ = new TocWidget(*this, &parent);
setWidget(widget_);
- setWindowTitle(widget_->windowTitle());
}
LYXERR(Debug::GUI, "GuiToc: type " << type
<< " toc_models_.size() " << toc_models_.size());
- BOOST_ASSERT(type >= 0 && type < int(toc_models_.size()));
+ LASSERT(type >= 0 && type < int(toc_models_.size()), /**/);
return toc_models_[type];
}
if (type < 0)
return QModelIndex();
- // FIXME: The TocBackend infrastructure is not ready for LOF and LOT
- // This is because a proper ParConstIterator is not constructed in
- // InsetCaption::addToToc()
- if(!canOutline(type))
- return QModelIndex();
-
return toc_models_[type]->modelIndex(currentTocItem(type));
}
return;
}
- BOOST_ASSERT(type >= 0 && type < int(toc_models_.size()));
+ LASSERT(type >= 0 && type < int(toc_models_.size()), /**/);
TocIterator const it = toc_models_[type]->tocIterator(index);
bool GuiToc::initialiseParams(string const & data)
{
- InsetCommandMailer::string2params("toc", data, params_);
+ LYXERR(Debug::GUI, data);
+ QString str = toqstr(data);
+ QString new_type;
+ if (str.contains("tableofcontents")) {
+ new_type = "tableofcontents";
+ } else if (str.contains("floatlist")) {
+ if (str.contains("\"figure"))
+ new_type = "figure";
+ else if (str.contains("\"table"))
+ new_type = "table";
+ else if (str.contains("\"algorithm"))
+ new_type = "algorithm";
+ } else if (!str.isEmpty()) {
+ new_type = str;
+ } else {
+ // Default to Outliner.
+ new_type = "tableofcontents";
+ }
types_.clear();
type_names_.clear();
TocList::const_iterator it = tocs.begin();
TocList::const_iterator end = tocs.end();
for (; it != end; ++it) {
- types_.push_back(it->first);
- type_names_.push_back(guiName(it->first));
+ types_.push_back(toqstr(it->first));
+ type_names_.push_back(toqstr(guiName(it->first)));
toc_models_.push_back(new TocModel(it->second));
}
- string selected_type ;
- if (params_["type"].empty()) //Then plain toc...
- selected_type = params_.getCmdName();
- else
- selected_type = to_ascii(params_["type"]);
- selected_type_ = -1;
- for (size_t i = 0; i != types_.size(); ++i) {
- if (selected_type == types_[i]) {
- selected_type_ = i;
- break;
- }
- }
+ widget_->updateGui(types_.indexOf(new_type));
- modelReset();
return true;
}
TocIterator GuiToc::currentTocItem(int type) const
{
- BOOST_ASSERT(bufferview());
+ LASSERT(bufferview(), /**/);
ParConstIterator it(bufferview()->cursor());
- return buffer().masterBuffer()->tocBackend().item(types_[type], it);
+ return buffer().masterBuffer()->tocBackend().item(fromqstr(types_[type]), it);
}
{
if (type == "tableofcontents")
return _("Table of Contents");
-
- FloatList const & floats = buffer().params().getTextClass().floats();
+ if (type == "child")
+ return _("Child Documents");
+ if (type == "graphics")
+ return _("List of Graphics");
+ if (type == "equation")
+ return _("List of Equations");
+ if (type == "footnote")
+ return _("List of Foot notes");
+ if (type == "listing")
+ return _("List of Listings");
+ if (type == "index")
+ return _("List of Indexes");
+ if (type == "marginalnote")
+ return _("List of Marginal notes");
+ if (type == "note")
+ return _("List of Notes");
+ if (type == "citation")
+ return _("List of Citations");
+ if (type == "label")
+ return _("Labels and References");
+
+ FloatList const & floats = buffer().params().documentClass().floats();
if (floats.typeExist(type))
return _(floats.getType(type).listName());
void GuiToc::dispatchParams()
{
- string const lfun =
- InsetCommandMailer::params2string("toc", params_);
- dispatch(FuncRequest(getLfun(), lfun));
}