os << ">\n\n";
}
- string top = top_element;
- top += " lang=\"";
- if (runparams.flavor == OutputParams::XML)
- top += params().language->code();
- else
- top += params().language->code().substr(0, 2);
- top += '"';
-
- if (!params().options.empty()) {
- top += ' ';
- top += params().options;
+ if (output_body) {
+ string top = top_element;
+ top += " lang=\"";
+ if (runparams.flavor == OutputParams::XML)
+ top += params().language->code();
+ else
+ top += params().language->code().substr(0, 2);
+ top += '"';
+
+ if (!params().options.empty()) {
+ top += ' ';
+ top += params().options;
+ }
+
+ os << "<!-- " << ((runparams.flavor == OutputParams::XML)? "XML" : "SGML")
+ << " file was created by LyX " << lyx_version
+ << "\n See http://www.lyx.org/ for more information -->\n";
+
+ params().documentClass().counters().reset();
+
+ sgml::openTag(os, top);
+ os << '\n';
+ docbookParagraphs(text(), *this, os, runparams);
+ sgml::closeTag(os, top_element);
}
-
- os << "<!-- " << ((runparams.flavor == OutputParams::XML)? "XML" : "SGML")
- << " file was created by LyX " << lyx_version
- << "\n See http://www.lyx.org/ for more information -->\n";
-
- params().documentClass().counters().reset();
-
- sgml::openTag(os, top);
- os << '\n';
- docbookParagraphs(text(), *this, os, runparams);
- sgml::closeTag(os, top_element);
}
<< ";\n";
os << "}\n</style>\n";
}
- os << "</head>\n<body>\n";
+ os << "</head>\n";
+ }
+
+ if (output_body) {
+ os << "<body>\n";
+ XHTMLStream xs(os);
+ params().documentClass().counters().reset();
+ xhtmlParagraphs(text(), *this, xs, runparams);
+ os << "</body>\n";
}
- XHTMLStream xs(os);
- params().documentClass().counters().reset();
- xhtmlParagraphs(text(), *this, xs, runparams);
if (output_preamble)
- os << "</body>\n</html>\n";
+ os << "</html>\n";
}
void Buffer::getSourceCode(odocstream & os, string const format,
pit_type par_begin, pit_type par_end,
- bool full_source) const
+ OutputWhat output) const
{
OutputParams runparams(¶ms().encoding());
runparams.nice = true;
// No side effect of file copying and image conversion
runparams.dryrun = true;
- if (full_source) {
- os << "% " << _("Preview source code") << "\n\n";
- d->texrow.reset();
- d->texrow.newline();
- d->texrow.newline();
- if (params().isDocBook())
- writeDocBookSource(os, absFileName(), runparams, FullSource);
- else if (runparams.flavor == OutputParams::HTML)
- writeLyXHTMLSource(os, runparams, FullSource);
- else {
- // latex or literate
- otexstream ots(os, d->texrow);
- writeLaTeXSource(ots, string(), runparams, FullSource);
- }
- } else {
+ if (output == CurrentParagraph) {
runparams.par_begin = par_begin;
runparams.par_end = par_end;
if (par_begin + 1 == par_end) {
otexstream ots(os, texrow);
latexParagraphs(*this, text(), ots, runparams);
}
+ } else {
+ os << "% ";
+ if (output == FullSource)
+ os << _("Preview source code");
+ else if (output == OnlyPreamble)
+ os << _("Preview preamble");
+ else if (output == OnlyBody)
+ os << _("Preview body");
+ os << "\n\n";
+ d->texrow.reset();
+ d->texrow.newline();
+ d->texrow.newline();
+ if (params().isDocBook())
+ writeDocBookSource(os, absFileName(), runparams, output);
+ else if (runparams.flavor == OutputParams::HTML)
+ writeLyXHTMLSource(os, runparams, output);
+ else {
+ // latex or literate
+ otexstream ots(os, d->texrow);
+ writeLaTeXSource(ots, string(), runparams, output);
+ }
}
}
enum OutputWhat {
FullSource,
OnlyBody,
- OnlyPreamble
+ OnlyPreamble,
+ CurrentParagraph
};
/// Just a wrapper for writeLaTeXSource, first creating the ofstream.
/// get source code (latex/docbook) for some paragraphs, or all paragraphs
/// including preamble
void getSourceCode(odocstream & os, std::string const format,
- pit_type par_begin, pit_type par_end, bool full_source) const;
+ pit_type par_begin, pit_type par_end, OutputWhat output) const;
/// Access to error list.
/// This method is used only for GUI visualisation of Buffer related
{
setupUi(this);
- connect(viewFullSourceCB, SIGNAL(clicked()),
- this, SLOT(fullSourceChanged()));
+ connect(contentsCO, SIGNAL(activated(int)),
+ this, SLOT(contentsChanged()));
connect(autoUpdateCB, SIGNAL(toggled(bool)),
updatePB, SLOT(setDisabled(bool)));
connect(autoUpdateCB, SIGNAL(toggled(bool)),
\param fullSource get full source code
\return true if the content has changed since last call.
*/
-static bool getContent(BufferView const * view, bool fullSource,
+static bool getContent(BufferView const * view, Buffer::OutputWhat output,
QString & qstr, string const format, bool force_getcontent)
{
// get the *top* level paragraphs that contain the cursor,
if (par_begin > par_end)
swap(par_begin, par_end);
odocstringstream ostr;
- view->buffer().getSourceCode(ostr, format, par_begin, par_end + 1, fullSource);
+ view->buffer().getSourceCode(ostr, format, par_begin, par_end + 1, output);
docstring s = ostr.str();
static size_t crc = 0;
size_t newcrc = crcCheck(s);
}
-void ViewSourceWidget::fullSourceChanged()
+void ViewSourceWidget::contentsChanged()
{
if (autoUpdateCB->isChecked())
updateView();
outputFormatCO->currentIndex()).toString());
QString content;
- if (getContent(bv_, viewFullSourceCB->isChecked(), content,
- format, force_getcontent_))
+ Buffer::OutputWhat output = Buffer::CurrentParagraph;
+ if (contentsCO->currentIndex() == 1)
+ output = Buffer::FullSource;
+ else if (contentsCO->currentIndex() == 2)
+ output = Buffer::OnlyPreamble;
+ else if (contentsCO->currentIndex() == 3)
+ output = Buffer::OnlyBody;
+
+ if (getContent(bv_, output, content, format, force_getcontent_))
document_->setPlainText(content);
CursorSlice beg = bv_->cursor().selectionBegin().bottom();
{
Dialog::saveSession();
QSettings settings;
- settings.setValue(
- sessionKey() + "/fullsource", widget_->viewFullSourceCB->isChecked());
+ // see below
+ // settings.setValue(
+ // sessionKey() + "/output", widget_->contentsCO->currentIndex());
settings.setValue(
sessionKey() + "/autoupdate", widget_->autoUpdateCB->isChecked());
}
{
DockView::restoreSession();
// FIXME: Full source updating is too slow to be done at startup.
- //widget_->viewFullSourceCB->setChecked(
- // settings.value(sessionKey() + "/fullsource", false).toBool());
- widget_->viewFullSourceCB->setChecked(false);
+ //widget_->outputCO-setCurrentIndex(
+ // settings.value(sessionKey() + "/output", false).toInt());
+ widget_->contentsCO->setCurrentIndex(0);
QSettings settings;
widget_->autoUpdateCB->setChecked(
settings.value(sessionKey() + "/autoupdate", true).toBool());
///
void updateDefaultFormat();
///
- void fullSourceChanged();
+ void contentsChanged();
private:
///
+<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ViewSourceUi</class>
<widget class="QWidget" name="ViewSourceUi">
<rect>
<x>0</x>
<y>0</y>
- <width>452</width>
- <height>120</height>
+ <width>528</width>
+ <height>205</height>
</rect>
</property>
<property name="windowTitle">
<string/>
</property>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="0">
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0" rowspan="5">
<widget class="QTextEdit" name="viewSourceTV">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Ignored">
</widget>
</item>
<item row="0" column="1">
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="outputFormatLA">
- <property name="text">
- <string>&Output Format:</string>
- </property>
- <property name="buddy">
- <cstring>outputFormatCO</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QComboBox" name="outputFormatCO">
- <property name="toolTip">
- <string>Select the output format</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="2">
- <widget class="QCheckBox" name="viewFullSourceCB">
- <property name="cursor">
- <cursorShape>ArrowCursor</cursorShape>
- </property>
- <property name="text">
- <string>Complete source</string>
- </property>
- </widget>
+ <widget class="QLabel" name="outputFormatLA">
+ <property name="text">
+ <string>F&ormat:</string>
+ </property>
+ <property name="buddy">
+ <cstring>outputFormatCO</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QComboBox" name="outputFormatCO">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip">
+ <string>Select the output format</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2">
+ <widget class="QComboBox" name="contentsCO">
+ <item>
+ <property name="text">
+ <string>Current Paragraph</string>
+ </property>
</item>
- <item row="2" column="0" colspan="2">
- <widget class="QCheckBox" name="autoUpdateCB">
- <property name="text">
- <string>Automatic update</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
+ <item>
+ <property name="text">
+ <string>Complete Source</string>
+ </property>
</item>
- <item row="3" column="0" colspan="2">
- <widget class="QPushButton" name="updatePB">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>&Update</string>
- </property>
- </widget>
+ <item>
+ <property name="text">
+ <string>Preamble Only</string>
+ </property>
</item>
- <item row="4" column="0">
- <spacer>
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>17</height>
- </size>
- </property>
- </spacer>
+ <item>
+ <property name="text">
+ <string>Body Only</string>
+ </property>
</item>
- </layout>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2">
+ <widget class="QCheckBox" name="autoUpdateCB">
+ <property name="text">
+ <string>Automatic update</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="2">
+ <widget class="QPushButton" name="updatePB">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&Update</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>85</height>
+ </size>
+ </property>
+ </spacer>
</item>
</layout>
</widget>
<tabstops>
<tabstop>viewSourceTV</tabstop>
- <tabstop>viewFullSourceCB</tabstop>
<tabstop>autoUpdateCB</tabstop>
<tabstop>updatePB</tabstop>
</tabstops>