#include "GuiDocument.h"
+#include "GuiApplication.h"
+#include "GuiBranches.h"
+#include "LaTeXHighlighter.h"
+#include "LengthCombo.h"
+#include "PanelStack.h"
+#include "Validator.h"
+
#include "LayoutFile.h"
#include "BranchList.h"
#include "buffer_funcs.h"
#include "Encoding.h"
#include "FloatPlacement.h"
#include "FuncRequest.h"
-#include "support/gettext.h"
-#include "GuiBranches.h"
#include "Language.h"
#include "LaTeXFeatures.h"
-#include "LaTeXHighlighter.h"
#include "Layout.h"
-#include "LengthCombo.h"
#include "LyXRC.h" // defaultUnit
#include "ModuleList.h"
#include "OutputParams.h"
-#include "PanelStack.h"
#include "PDFOptions.h"
#include "qt_helpers.h"
#include "Spacing.h"
-#include "Validator.h"
#include "insets/InsetListingsParams.h"
#include "support/debug.h"
#include "support/FileName.h"
#include "support/filetools.h"
+#include "support/gettext.h"
#include "support/lstrings.h"
#include "frontends/alert.h"
+#include <QAbstractItemModel>
#include <QCloseEvent>
#include <QScrollBar>
#include <QTextCursor>
{
setupUi(this);
- QList<LanguagePair> langs = languageData(false);
- for (int i = 0; i != langs.size(); ++i)
- lang_.append(langs[i].second);
-
connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK()));
connect(applyPB, SIGNAL(clicked()), this, SLOT(slotApply()));
connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose()));
connect(langModule->quoteStyleCO, SIGNAL(activated(int)),
this, SLOT(change_adaptor()));
// language & quotes
-
- QList<LanguagePair>::const_iterator lit = langs.begin();
- QList<LanguagePair>::const_iterator lend = langs.end();
- for (; lit != lend; ++lit)
- langModule->languageCO->addItem(lit->first);
+ QAbstractItemModel * language_model = guiApp->languageModel();
+ // FIXME: it would be nice if sorting was enabled/disabled via a checkbox.
+ language_model->sort(0);
+ langModule->languageCO->setModel(language_model);
// Always put the default encoding in the first position.
// It is special because the displayed text is translated.
this, SLOT(change_adaptor()));
connect(latexModule->layoutPB, SIGNAL(clicked()),
this, SLOT(browseLayout()));
+ connect(latexModule->childDocGB, SIGNAL(clicked()),
+ this, SLOT(change_adaptor()));
+ connect(latexModule->childDocLE, SIGNAL(textChanged(const QString &)),
+ this, SLOT(change_adaptor()));
+ connect(latexModule->childDocPB, SIGNAL(clicked()),
+ this, SLOT(browseMaster()));
selectionManager =
new ModuleSelMan(latexModule->availableLV, latexModule->selectedLV,
}
+void GuiDocument::browseMaster()
+{
+ QString const title = qt_("Select master document");
+ QString const dir1 = toqstr(lyxrc.document_path);
+ QString const old = latexModule->childDocLE->text();
+ QString const docpath = toqstr(support::onlyPath(buffer().absFileName()));
+ QStringList const filter(qt_("LyX Files (*.lyx)"));
+ QString file = browseRelFile(old, docpath, title, filter, false,
+ qt_("Documents|#o#O"), toqstr(lyxrc.document_path));
+
+ latexModule->childDocLE->setText(file);
+}
+
+
void GuiDocument::classChanged()
{
int idx = latexModule->classCO->currentIndex();
}
params.quotes_language = lga;
- int const pos = langModule->languageCO->currentIndex();
- params.language = lyx::languages.getLanguage(fromqstr(lang_[pos]));
+ QString const lang = langModule->languageCO->itemData(
+ langModule->languageCO->currentIndex()).toString();
+ params.language = lyx::languages.getLanguage(fromqstr(lang));
// numbering
if (params.documentClass().hasTocLevels()) {
params.options =
fromqstr(latexModule->optionsLE->text());
+ if (latexModule->childDocGB->isChecked())
+ params.master =
+ fromqstr(latexModule->childDocLE->text());
+ else
+ params.master = string();
+
params.float_placement = floatModule->get();
// fonts
}
-static int findPos(QStringList const & vec, QString const & val)
-{
- for (int i = 0; i != vec.size(); ++i)
- if (vec[i] == val)
- return i;
- return 0;
-}
-
-
void GuiDocument::updateParams()
{
updateParams(bp_);
params.use_bibtopic);
// language & quotes
- int const pos = findPos(lang_, toqstr(params.language->lang()));
+ int const pos = langModule->languageCO->findData(toqstr(
+ params.language->lang()));
langModule->languageCO->setCurrentIndex(pos);
langModule->quoteStyleCO->setCurrentIndex(
latexModule->optionsLE->setText(QString());
}
+ if (!params.master.empty()) {
+ latexModule->childDocGB->setChecked(true);
+ latexModule->childDocLE->setText(
+ toqstr(params.master));
+ } else {
+ latexModule->childDocLE->setText(QString());
+ latexModule->childDocGB->setChecked(false);
+ }
+
floatModule->set(params.float_placement);
// Fonts
bool GuiDocument::initialiseParams(string const &)
{
bp_ = buffer().params();
+ // Force update on next updateContent() round.
+ current_id_ = 0;
loadModuleInfo();
return true;
}
// and then update the buffer's layout.
dispatch_bufferparams(*this, params(), LFUN_BUFFER_PARAMS_APPLY);
+ if (!params().master.empty()) {
+ FileName const master_file = support::makeAbsPath(params().master,
+ support::onlyPath(buffer().absFileName()));
+ if (isLyXFilename(master_file.absFilename())) {
+ Buffer * master = checkAndLoadLyXFile(master_file);
+ buffer().setParent(master);
+ }
+ }
+
// Generate the colours requested by each new branch.
BranchList & branchlist = params().branchlist();
if (!branchlist.empty()) {