* Licence details can be found in the file COPYING.
*
* \author Edwin Leuven
- * \author Richard Heck (modules)
+ * \author Richard Kimberly Heck (modules)
*
* Full author contact details are available in file CREDITS.
*/
#include "GuiDocument.h"
+#include "BulletsModule.h"
#include "CategorizedCombo.h"
+#include "FancyLineEdit.h"
#include "GuiApplication.h"
#include "GuiBranches.h"
#include "GuiIndices.h"
#include "GuiSelectionManager.h"
#include "LaTeXHighlighter.h"
-#include "LengthCombo.h"
-#include "PanelStack.h"
#include "Validator.h"
#include "LayoutFile.h"
#include "BranchList.h"
#include "buffer_funcs.h"
#include "Buffer.h"
-#include "BufferParams.h"
#include "BufferView.h"
#include "CiteEnginesList.h"
#include "Color.h"
#include "LayoutModuleList.h"
#include "LyXRC.h"
#include "ModuleList.h"
-#include "OutputParams.h"
#include "PDFOptions.h"
#include "qt_helpers.h"
#include "Session.h"
#include "VSpace.h"
#include "insets/InsetListingsParams.h"
+#include "insets/InsetQuotes.h"
#include "support/debug.h"
#include "support/docstream.h"
#include <sstream>
#include <vector>
-#ifdef IN
-#undef IN
-#endif
-
// a style sheet for buttons
// this is for example used for the background color setting button
lyx::RGBColor set_fontcolor;
bool is_fontcolor;
lyx::RGBColor set_notefontcolor;
+bool is_notefontcolor;
lyx::RGBColor set_boxbgcolor;
+bool is_boxbgcolor;
bool forced_fontspec_activation;
} // anonymous namespace
{ excluded_modules_ = em.list(); }
private:
///
- virtual void updateAddPB();
+ void updateAddPB() override;
///
- virtual void updateUpPB();
+ void updateUpPB() override;
///
- virtual void updateDownPB();
+ void updateDownPB() override;
///
- virtual void updateDelPB();
+ void updateDelPB() override;
/// returns availableModel as a GuiIdListModel
QStandardItemModel * getAvailableModel()
{
textLayoutModule->indentCO->addItem(qt_("Default"));
textLayoutModule->indentCO->addItem(qt_("Custom"));
- textLayoutModule->skipCO->addItem(qt_("SmallSkip"));
- textLayoutModule->skipCO->addItem(qt_("MedSkip"));
- textLayoutModule->skipCO->addItem(qt_("BigSkip"));
- textLayoutModule->skipCO->addItem(qt_("Custom"));
+ textLayoutModule->skipCO->addItem(qt_("Half line height"), VSpace::HALFLINE);
+ textLayoutModule->skipCO->addItem(qt_("Line height"), VSpace::FULLLINE);
+ textLayoutModule->skipCO->addItem(qt_("SmallSkip"), VSpace::SMALLSKIP);
+ textLayoutModule->skipCO->addItem(qt_("MedSkip"), VSpace::MEDSKIP);
+ textLayoutModule->skipCO->addItem(qt_("BigSkip"), VSpace::BIGSKIP);
+ textLayoutModule->skipCO->addItem(qt_("Custom"), VSpace::LENGTH);
textLayoutModule->lspacingCO->insertItem(
Spacing::Single, qt_("Single"));
textLayoutModule->lspacingCO->insertItem(
this, SLOT(change_adaptor()));
connect(outputModule->mathoutCB, SIGNAL(currentIndexChanged(int)),
this, SLOT(change_adaptor()));
+ connect(outputModule->tableoutCB, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(change_adaptor()));
connect(outputModule->shellescapeCB, SIGNAL(stateChanged(int)),
this, SLOT(shellescapeChanged()));
fontModule->fontsizeCO->addItem(qt_("11"));
fontModule->fontsizeCO->addItem(qt_("12"));
- fontModule->fontencCO->addItem(qt_("Automatic"), QString("auto"));
+ fontModule->fontencCO->addItem(qt_("Automatic[[encoding]]"), QString("auto"));
fontModule->fontencCO->addItem(qt_("Class Default"), QString("default"));
fontModule->fontencCO->addItem(qt_("Custom"), QString("custom"));
// tooltip sensu "KOMA-Script Article [Class 'scrartcl']"
QString tooltip = toqstr(bformat(_("%1$s [Class '%2$s']"), guiname, from_utf8(tc.latexname())));
if (!available) {
- docstring const output_type = (tc.outputType() == lyx::DOCBOOK) ? _("DocBook") : _("LaTeX");
+ docstring const output_type = _("LaTeX");
tooltip += '\n' + toqstr(bformat(_("Class not found by LyX. "
"Please check if you have the matching %1$s class "
"and all required packages (%2$s) installed."),
modulesModule->availableLV, SLOT(setFocus()));
#else
connect(filter_, &FancyLineEdit::downPressed,
- modulesModule->availableLV, [=](){ focusAndHighlight(modulesModule->availableLV); });
+ modulesModule->availableLV, [this](){ focusAndHighlight(modulesModule->availableLV); });
#endif
item->setData(m.name, Qt::DisplayRole);
item->setData(toqstr(m.id), Qt::UserRole);
item->setData(m.description, Qt::ToolTipRole);
+ item->setEditable(false);
if (m.local)
item->setIcon(user_icon);
else
void GuiDocument::setSkip(int item)
{
- bool const enable = (item == 3);
+ VSpace::VSpaceKind kind =
+ VSpace::VSpaceKind(textLayoutModule->skipCO->itemData(item).toInt());
+ bool const enable = (kind == VSpace::LENGTH);
textLayoutModule->skipLE->setEnabled(enable);
textLayoutModule->skipLengthCO->setEnabled(enable);
isValid();
marginsModule->marginCB->setChecked(!bp_.use_geometry);
setCustomMargins(!bp_.use_geometry);
}
+
+ // set some placeholder text that hint on defaults
+ QString const placeholder = marginsModule->marginCB->isChecked() ?
+ qt_("Class defaults") : qt_("Package defaults");
+ // set tooltip depending on gemoetry state
+ QString const tooltip = marginsModule->marginCB->isChecked() ?
+ qt_("If no value is given, the defaults as set by the class are used.")
+ : qt_("If no value is given, the defaults as set by the geometry package or a package/class overriding geometry's defaults are used.");
+ marginsModule->topLE->setPlaceholderText(placeholder);
+ marginsModule->bottomLE->setPlaceholderText(placeholder);
+ marginsModule->innerLE->setPlaceholderText(placeholder);
+ marginsModule->outerLE->setPlaceholderText(placeholder);
+ marginsModule->headheightLE->setPlaceholderText(placeholder);
+ marginsModule->headsepLE->setPlaceholderText(placeholder);
+ marginsModule->footskipLE->setPlaceholderText(placeholder);
+ marginsModule->columnsepLE->setPlaceholderText(placeholder);
+ marginsModule->topLE->setToolTip(tooltip);
+ marginsModule->bottomLE->setToolTip(tooltip);
+ marginsModule->innerLE->setToolTip(tooltip);
+ marginsModule->outerLE->setToolTip(tooltip);
+ marginsModule->headheightLE->setToolTip(tooltip);
+ marginsModule->headsepLE->setToolTip(tooltip);
+ marginsModule->footskipLE->setToolTip(tooltip);
+ marginsModule->columnsepLE->setToolTip(tooltip);
}
marginsModule->columnsepL->setEnabled(enableColSep);
marginsModule->columnsepLE->setEnabled(enableColSep);
marginsModule->columnsepUnit->setEnabled(enableColSep);
+
+ // set some placeholder text that hint on defaults
+ QString const placeholder = marginsModule->marginCB->isChecked() ?
+ qt_("Class defaults") : qt_("Package defaults");
+ // set tooltip depending on gemoetry state
+ QString const tooltip = marginsModule->marginCB->isChecked() ?
+ qt_("If no value is given, the defaults as set by the class are used.")
+ : qt_("If no value is given, the defaults as set by the geometry package or a package/class overriding geometry's defaults are used.");
+ marginsModule->topLE->setPlaceholderText(placeholder);
+ marginsModule->bottomLE->setPlaceholderText(placeholder);
+ marginsModule->innerLE->setPlaceholderText(placeholder);
+ marginsModule->outerLE->setPlaceholderText(placeholder);
+ marginsModule->headheightLE->setPlaceholderText(placeholder);
+ marginsModule->headsepLE->setPlaceholderText(placeholder);
+ marginsModule->footskipLE->setPlaceholderText(placeholder);
+ marginsModule->columnsepLE->setPlaceholderText(placeholder);
+ marginsModule->topLE->setToolTip(tooltip);
+ marginsModule->bottomLE->setToolTip(tooltip);
+ marginsModule->innerLE->setToolTip(tooltip);
+ marginsModule->outerLE->setToolTip(tooltip);
+ marginsModule->headheightLE->setToolTip(tooltip);
+ marginsModule->headsepLE->setToolTip(tooltip);
+ marginsModule->footskipLE->setToolTip(tooltip);
+ marginsModule->columnsepLE->setToolTip(tooltip);
+
}
colorButtonStyleSheet(newColor));
// save color
set_notefontcolor = rgbFromHexName(fromqstr(newColor.name()));
+ is_notefontcolor = true;
change_adaptor();
}
theApp()->getRgbColor(Color_greyedouttext, set_notefontcolor);
colorModule->noteFontColorPB->setStyleSheet(
colorButtonStyleSheet(rgb2qcolor(set_notefontcolor)));
+ is_notefontcolor = false;
change_adaptor();
}
colorButtonStyleSheet(newColor));
// save color
set_boxbgcolor = rgbFromHexName(fromqstr(newColor.name()));
+ is_boxbgcolor = true;
change_adaptor();
}
theApp()->getRgbColor(Color_shadedbg, set_boxbgcolor);
colorModule->boxBackgroundPB->setStyleSheet(
colorButtonStyleSheet(rgb2qcolor(set_boxbgcolor)));
+ is_boxbgcolor = false;
change_adaptor();
}
fromqstr(langModule->languageCO->itemData(
langModule->languageCO->currentIndex()).toString()));
- InsetQuotesParams::QuoteStyle def = bp_.getQuoteStyle(lang->quoteStyle());
+ QuoteStyle def = bp_.getQuoteStyle(lang->quoteStyle());
langModule->quoteStyleCO->clear();
bool has_default = false;
for (int i = 0; i < quoteparams.stylescount(); ++i) {
- InsetQuotesParams::QuoteStyle qs = InsetQuotesParams::QuoteStyle(i);
- if (qs == InsetQuotesParams::DynamicQuotes)
+ QuoteStyle qs = QuoteStyle(i);
+ if (qs == QuoteStyle::Dynamic)
continue;
bool const langdef = (qs == def);
if (langdef) {
// add the default style on top
langModule->quoteStyleCO->insertItem(0,
- toqstr(quoteparams.getGuiLabel(qs, langdef)), qs);
+ toqstr(quoteparams.getGuiLabel(qs, langdef)), static_cast<int>(qs));
has_default = true;
}
else
langModule->quoteStyleCO->addItem(
- toqstr(quoteparams.getGuiLabel(qs, langdef)), qs);
+ toqstr(quoteparams.getGuiLabel(qs, langdef)), static_cast<int>(qs));
}
if (set && has_default)
// (re)set to the default style
void GuiDocument::updateFontlist()
{
+ // reset the filters of the CategorizedCombos
+ fontModule->fontsRomanCO->resetFilter();
+ fontModule->fontsSansCO->resetFilter();
+ fontModule->fontsTypewriterCO->resetFilter();
fontModule->fontsRomanCO->clear();
fontModule->fontsSansCO->clear();
fontModule->fontsTypewriterCO->clear();
QFontDatabase fontdb;
QStringList families(fontdb.families());
- for (QStringList::Iterator it = families.begin(); it != families.end(); ++it) {
- fontModule->fontsRomanCO->addItem(*it, *it);
- fontModule->fontsSansCO->addItem(*it, *it);
- fontModule->fontsTypewriterCO->addItem(*it, *it);
+ for (auto const & family : families) {
+ fontModule->fontsRomanCO->addItem(family, family);
+ fontModule->fontsSansCO->addItem(family, family);
+ fontModule->fontsTypewriterCO->addItem(family, family);
}
return;
}
int nn = 0;
- for (size_t i = 0; i < pagestyles.size(); ++i)
- if (pagestyles[i].first == sel)
- nn = pageLayoutModule->pagestyleCO->findText(pagestyles[i].second);
+ for (auto const & pagestyle : pagestyles)
+ if (pagestyle.first == sel)
+ nn = pageLayoutModule->pagestyleCO->findText(pagestyle.second);
if (nn > 0)
pageLayoutModule->pagestyleCO->setCurrentIndex(nn);
<< toqstr(system);
for (int i = 0; i < dirs.size(); ++i) {
- QString const dir = dirs.at(i);
+ QString const & dir = dirs.at(i);
QDirIterator it(dir, QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext()) {
QString fn = QFileInfo(it.next()).fileName();
// this should never happen
bp_.inputenc = "utf8";
}
- bp_.quotes_style = (InsetQuotesParams::QuoteStyle) langModule->quoteStyleCO->itemData(
- langModule->quoteStyleCO->currentIndex()).toInt();
+ bp_.quotes_style = QuoteStyle(langModule->quoteStyleCO->itemData(
+ langModule->quoteStyleCO->currentIndex()).toInt());
bp_.dynamic_quotes = langModule->dynamicQuotesCB->isChecked();
QString const langname = langModule->languageCO->itemData(
bp_.fontcolor = set_fontcolor;
bp_.isfontcolor = is_fontcolor;
bp_.notefontcolor = set_notefontcolor;
+ bp_.isnotefontcolor = is_notefontcolor;
bp_.boxbgcolor = set_boxbgcolor;
+ bp_.isboxbgcolor = is_boxbgcolor;
// numbering
if (bp_.documentClass().hasTocLevels()) {
} else {
// if paragraphs are separated by a skip
bp_.paragraph_separation = BufferParams::ParagraphSkipSeparation;
- switch (textLayoutModule->skipCO->currentIndex()) {
- case 0:
- bp_.setDefSkip(VSpace(VSpace::SMALLSKIP));
- break;
- case 1:
- bp_.setDefSkip(VSpace(VSpace::MEDSKIP));
- break;
- case 2:
- bp_.setDefSkip(VSpace(VSpace::BIGSKIP));
+ VSpace::VSpaceKind spacekind =
+ VSpace::VSpaceKind(textLayoutModule->skipCO->itemData(textLayoutModule->skipCO->currentIndex()).toInt());
+ switch (spacekind) {
+ case VSpace::SMALLSKIP:
+ case VSpace::MEDSKIP:
+ case VSpace::BIGSKIP:
+ case VSpace::HALFLINE:
+ case VSpace::FULLLINE:
+ bp_.setDefSkip(VSpace(spacekind));
break;
- case 3:
- {
+ case VSpace::LENGTH: {
VSpace vs = VSpace(
widgetsToLength(textLayoutModule->skipLE,
textLayoutModule->skipLengthCO)
);
bp_.setDefSkip(vs);
break;
- }
+ }
default:
// this should never happen
bp_.setDefSkip(VSpace(VSpace::MEDSKIP));
bp_.html_math_img_scale = outputModule->mathimgSB->value();
bp_.display_pixel_ratio = theGuiApp()->pixelRatio();
+ int tablefmt = outputModule->tableoutCB->currentIndex();
+ if (tablefmt == -1)
+ tablefmt = 0;
+ BufferParams::TableOutput const to =
+ static_cast<BufferParams::TableOutput>(tablefmt);
+ bp_.docbook_table_output = to;
+
bp_.save_transient_properties =
outputModule->saveTransientPropertiesCB->isChecked();
bp_.postpone_fragile_content =
updateQuoteStyles();
langModule->quoteStyleCO->setCurrentIndex(
- langModule->quoteStyleCO->findData(bp_.quotes_style));
+ langModule->quoteStyleCO->findData(static_cast<int>(bp_.quotes_style)));
langModule->dynamicQuotesCB->setChecked(bp_.dynamic_quotes);
// LaTeX input encoding: set after the fonts (see below)
colorModule->noteFontColorPB->setStyleSheet(
colorButtonStyleSheet(rgb2qcolor(bp_.notefontcolor)));
set_notefontcolor = bp_.notefontcolor;
+ is_notefontcolor = bp_.isnotefontcolor;
if (bp_.isbackgroundcolor) {
colorModule->backgroundPB->setStyleSheet(
colorModule->boxBackgroundPB->setStyleSheet(
colorButtonStyleSheet(rgb2qcolor(bp_.boxbgcolor)));
set_boxbgcolor = bp_.boxbgcolor;
+ is_boxbgcolor = bp_.isboxbgcolor;
// numbering
int const min_toclevel = documentClass().min_toclevel();
setIndent(indent);
} else {
textLayoutModule->skipRB->setChecked(true);
- int skip = 0;
- switch (bp_.getDefSkip().kind()) {
- case VSpace::SMALLSKIP:
- skip = 0;
- break;
- case VSpace::MEDSKIP:
- skip = 1;
- break;
- case VSpace::BIGSKIP:
- skip = 2;
- break;
- case VSpace::LENGTH:
- {
- skip = 3;
+ VSpace::VSpaceKind skip = bp_.getDefSkip().kind();
+ textLayoutModule->skipCO->setCurrentIndex(textLayoutModule->skipCO->findData(skip));
+ if (skip == VSpace::LENGTH) {
string const length = bp_.getDefSkip().asLyXCommand();
lengthToWidgets(textLayoutModule->skipLE,
textLayoutModule->skipLengthCO,
length, default_unit);
- break;
- }
- default:
- skip = 0;
- break;
}
- textLayoutModule->skipCO->setCurrentIndex(skip);
- setSkip(skip);
+ setSkip(textLayoutModule->skipCO->currentIndex());
}
textLayoutModule->twoColumnCB->setChecked(
outputModule->strictCB->setChecked(bp_.html_be_strict);
outputModule->cssCB->setChecked(bp_.html_css_as_file);
+ outputModule->tableoutCB->setCurrentIndex(bp_.docbook_table_output);
+
outputModule->saveTransientPropertiesCB
->setChecked(bp_.save_transient_properties);
outputModule->postponeFragileCB
// clear changed branches cache
changedBranches_.clear();
+ // re-initiate module filter
+ if (!filter_->text().isEmpty())
+ moduleFilterPressed();
+
// reset trackers
nonModuleChanged_ = false;
shellescapeChanged_ = false;
FileName const master_file = support::makeAbsPath(params().master,
support::onlyPath(buffer().absFileName()));
if (isLyXFileName(master_file.absFileName())) {
- Buffer * master = checkAndLoadLyXFile(master_file);
+ Buffer * master = checkAndLoadLyXFile(master_file, true);
if (master) {
if (master->isChild(const_cast<Buffer *>(&buffer())))
const_cast<Buffer &>(buffer()).setParent(master);
for (; it != end; ++it) {
docstring const & current_branch = it->branch();
Branch const * branch = branchlist.find(current_branch);
- string const x11hexname = X11hexname(branch->color());
+ string const bcolor = branch->color();
+ RGBColor rgbcol;
+ if (bcolor.size() == 7 && bcolor[0] == '#')
+ rgbcol = lyx::rgbFromHexName(bcolor);
+ else
+ guiApp->getRgbColor(lcolor.getFromLyXName(bcolor), rgbcol);
+ string const x11hexname = X11hexname(rgbcol);
// display the new color
docstring const str = current_branch + ' ' + from_ascii(x11hexname);
dispatch(FuncRequest(LFUN_SET_COLOR, str));
}
-
-Dialog * createGuiDocument(GuiView & lv) { return new GuiDocument(lv); }
-
-
} // namespace frontend
} // namespace lyx