X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiExternal.cpp;h=38443e8db5d30872f70a7a4888a6d84d67165084;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=d5c14b8d7dc2e215bb3bcf0f47f19e9156dcb148;hpb=5707a390415ea3e2f4c25b843405df1c1d6bc6b9;p=lyx.git diff --git a/src/frontends/qt4/GuiExternal.cpp b/src/frontends/qt4/GuiExternal.cpp index d5c14b8d7d..38443e8db5 100644 --- a/src/frontends/qt4/GuiExternal.cpp +++ b/src/frontends/qt4/GuiExternal.cpp @@ -80,6 +80,8 @@ char const * const origin_gui_strs[] = { external::Template getTemplate(int i) { + if (external::TemplateManager::get().getTemplates().empty()) + return Template(); external::TemplateManager::Templates::const_iterator i1 = external::TemplateManager::get().getTemplates().begin(); advance(i1, i); @@ -213,23 +215,25 @@ bool GuiExternal::activateAspectratio() const if (usingScale()) return false; - string const wstr = fromqstr(widthED->text()); - if (wstr.empty()) + QString const wstr = widthED->text(); + if (wstr.isEmpty()) return false; - bool const wIsDbl = isStrDbl(wstr); - if (wIsDbl && float_equal(convert(wstr), 0.0, 0.05)) + bool wIsDbl; + double val = wstr.trimmed().toDouble(&wIsDbl); + if (wIsDbl && float_equal(val, 0.0, 0.05)) return false; Length l; - if (!wIsDbl && (!isValidLength(wstr, &l) || l.zero())) + if (!wIsDbl && (!isValidLength(fromqstr(wstr), &l) || l.zero())) return false; - string const hstr = fromqstr(heightED->text()); - if (hstr.empty()) + QString const hstr = heightED->text(); + if (hstr.isEmpty()) return false; - bool const hIsDbl = isStrDbl(hstr); - if (hIsDbl && float_equal(convert(hstr), 0.0, 0.05)) + bool hIsDbl; + val = hstr.trimmed().toDouble(&hIsDbl); + if (hIsDbl && float_equal(val, 0.0, 0.05)) return false; - if (!hIsDbl && (!isValidLength(hstr, &l) || l.zero())) + if (!hIsDbl && (!isValidLength(fromqstr(hstr), &l) || l.zero())) return false; return true; @@ -349,27 +353,11 @@ void GuiExternal::widthUnitChanged() } -static Length::UNIT defaultUnit() -{ - Length::UNIT default_unit = Length::CM; - switch (lyxrc.default_papersize) { - case PAPER_USLETTER: - case PAPER_USLEGAL: - case PAPER_USEXECUTIVE: - default_unit = Length::IN; - break; - default: - break; - } - return default_unit; -} - - static void setRotation(QLineEdit & angleED, QComboBox & originCO, external::RotationData const & data) { originCO.setCurrentIndex(int(data.origin())); - angleED.setText(toqstr(data.angle)); + doubleToWidget(&angleED, data.angle); } @@ -379,7 +367,7 @@ static void getRotation(external::RotationData & data, typedef external::RotationData::OriginType OriginType; data.origin(static_cast(originCO.currentIndex())); - data.angle = fromqstr(angleED.text()); + data.angle = widgetToDoubleStr(&angleED); } @@ -397,15 +385,15 @@ static void setSize(QLineEdit & widthED, LengthCombo & widthUnitCO, } if (using_scale) { - widthED.setText(toqstr(scale)); + doubleToWidget(&widthED, scale); widthUnitCO.setCurrentItem("scale"); } else lengthToWidgets(&widthED, &widthUnitCO, - data.width.asString(), defaultUnit()); + data.width.asString(), Length::defaultUnit()); string const h = data.height.zero() ? string() : data.height.asString(); - Length::UNIT default_unit = data.width.zero() ? - defaultUnit() : data.width.unit(); + Length::UNIT const default_unit = data.width.zero() ? + Length::defaultUnit() : data.width.unit(); lengthToWidgets(&heightED, &heightUnitCO, h, default_unit); heightED.setEnabled(!using_scale); @@ -424,11 +412,9 @@ static void getSize(external::ResizeData & data, QLineEdit const & heightED, LengthCombo const & heightUnitCO, QCheckBox const & aspectratioCB, bool const scaling) { - string const width = fromqstr(widthED.text()); - if (scaling) { // scaling instead of a width - data.scale = width; + data.scale = widgetToDoubleStr(&widthED); data.width = Length(); } else { data.width = Length(widgetsToLength(&widthED, &widthUnitCO)); @@ -477,7 +463,7 @@ void GuiExternal::updateContents() params_.filename.outputFilename(fromqstr(bufferFilepath())); fileED->setText(toqstr(name)); - int index = -1; + int index = 0; external::TemplateManager::Templates::const_iterator i1, i2; i1 = external::TemplateManager::get().getTemplates().begin(); i2 = external::TemplateManager::get().getTemplates().end();