LyX file-format changes
-----------------------
+2008-04-28 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
+ * Format incremented to 329: new param \master.
+
2008-04-18 Bo Peng <ben.bob@gmail.com>
* Format incremented to 328: Revert the support for embedding
("1_3", [221], minor_versions("1.3" , 7)),
("1_4", range(222,246), minor_versions("1.4" , 5)),
("1_5", range(246,277), minor_versions("1.5" , 2)),
- ("1_6", range(277,329), minor_versions("1.6" , 0))] # Uwe: support for Spanish(Mexico)
+ ("1_6", range(277,330), minor_versions("1.6" , 0))]
def formats_list():
def revert_mexican(document):
- "Set language Spanish(Mexico) to Spanish"
+ ' Set language Spanish(Mexico) to Spanish '
i = 0
if document.language == "spanish-mexico":
document.language = "spanish"
def remove_embedding(document):
- ' Remove embed tag from all insets'
+ ' Remove embed tag from all insets '
revert_inset_embedding(document, 'Graphics')
revert_inset_embedding(document, 'External')
revert_inset_embedding(document, 'CommandInset include')
revert_inset_embedding(document, 'CommandInset bibtex')
+def revert_master(document):
+ ' Remove master param '
+ i = find_token(document.header, "\\master", 0)
+ if i != -1:
+ del document.header[i]
+
+
##
# Conversion hub
#
[326, []],
[327, []],
[328, [remove_embedding, remove_extra_embedded_files, remove_inzip_options]],
+ [329, []],
]
-revert = [[327, []],
+revert = [[328, [revert_master]],
+ [327, []],
[326, [revert_mexican]],
[325, [revert_pdfpages]],
[324, []],
namespace {
-int const LYX_FORMAT = 328;
+int const LYX_FORMAT = 329;
typedef map<string, bool> DepClean;
typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
params().branchlist().clear();
params().preamble.erase();
params().options.erase();
+ params().master.erase();
params().float_placement.erase();
params().paperwidth.erase();
params().paperheight.erase();
}
}
+ if (!params().master.empty()) {
+ FileName const master_file = makeAbsPath(params().master,
+ onlyPath(absFileName()));
+ if (isLyXFilename(master_file.absFilename())) {
+ Buffer * master = checkAndLoadLyXFile(master_file);
+ d->parent_buffer = master;
+ }
+ }
+
// read main text
bool const res = text().read(*this, lex, errorList, &(d->inset));
} else if (token == "\\options") {
lex.eatLine();
options = lex.getString();
+ } else if (token == "\\master") {
+ lex.eatLine();
+ master = lex.getString();
} else if (token == "\\language") {
readLanguage(lex);
} else if (token == "\\inputencoding") {
if (!options.empty()) {
os << "\\options " << options << '\n';
}
+
+ // the master document
+ if (!master.empty()) {
+ os << "\\master " << master << '\n';
+ }
//the modules
if (!layoutModules_.empty()) {
///
std::string options;
///
+ std::string master;
+ ///
std::string float_placement;
///
unsigned int columns;
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.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
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
// 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()) {
void enableSkip(bool);
void portraitChanged();
void browseLayout();
+ void browseMaster();
void classChanged();
void updateModuleInfo();
<x>0</x>
<y>0</y>
<width>381</width>
- <height>375</height>
+ <height>413</height>
</rect>
</property>
<property name="windowTitle" >
<property name="spacing" >
<number>6</number>
</property>
- <item row="4" column="2" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
+ <item row="3" column="0" colspan="4" >
+ <widget class="QGroupBox" name="childDocGB" >
+ <property name="toolTip" >
+ <string>Select if the current document is included to a master file</string>
</property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>40</height>
- </size>
+ <property name="statusTip" >
+ <string/>
</property>
- </spacer>
+ <property name="title" >
+ <string>Select de&fault master document</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="childDocLA" >
+ <property name="text" >
+ <string>&Master:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>childDocLE</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QPushButton" name="childDocPB" >
+ <property name="text" >
+ <string>&Browse...</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLineEdit" name="childDocLE" >
+ <property name="toolTip" >
+ <string>Enter the name of the default master document</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
</item>
- <item row="3" column="0" colspan="4" >
+ <item row="4" column="0" colspan="4" >
<widget class="QGroupBox" name="modulesGB" >
<property name="title" >
<string>Modules</string>
</property>
</widget>
</item>
+ <item row="5" column="1" colspan="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
</widget>
<tabstops>