Exemplo n.º 1
0
/*!
 * @brief Returns the suffix used in GUI widgets
 */
const QString unitGetSuffixFromIndex(const int index)
{
	if (index==SC_P)
	{
		return "";
	}
	return QString(" %1").arg(unitGetStrFromIndex(index));
}
Exemplo n.º 2
0
QString value2String(double unitValue, int unitIndex, bool round2Precision, bool appendSuffix)
{
	QString s;
	if (round2Precision)
		s=QString::number(pts2value(unitValue, unitIndex), 'f', unitGetPrecisionFromIndex(unitIndex));
	else
		s=QString::number(pts2value(unitValue, unitIndex));
	if (appendSuffix)
		s += unitGetStrFromIndex(unitIndex);
	return s;
}
Exemplo n.º 3
0
QString ScrSpinBox::textFromValue ( double value ) const
{
	if (m_unitIndex==SC_PICAS)
	{
// 		QString r=QString("%1%2%3").arg((static_cast<int>(value))/12).arg(unitGetStrFromIndex(m_unitIndex)).arg(fabs(fmod(value, 12)));
		int a=(static_cast<int>(value))/12;
		double b=fabs(fmod(value, 12));
		QString prefix((a==0 && value < 0.0) ? "-" : "");
		return QString("%1%2%3%4").arg(prefix).arg(a).arg(unitGetStrFromIndex(m_unitIndex)).arg(b);
	}
	return QDoubleSpinBox::textFromValue ( value );
}
Exemplo n.º 4
0
QString value2String(double unitValue, int unitIndex, bool round2Precision, bool appendSuffix)
{
	QString s;
	if (unitIndex==SC_PICAS)
	{
		int a=(static_cast<int>(unitValue))/12;
		double b=fabs(fmod(unitValue, 12));
		QString prefix((a==0 && unitValue < 0.0) ? "-" : "");
		if (round2Precision)
			s=QString("%1%2%3%4").arg(prefix).arg(a).arg(unitGetStrFromIndex(unitIndex)).arg(QString::number(b, 'f', unitGetPrecisionFromIndex(unitIndex)));
		else
			s=QString("%1%2%3%4").arg(prefix).arg(a).arg(unitGetStrFromIndex(unitIndex)).arg(b);
	}
	else
	{
		if (round2Precision)
			s=QString::number(pts2value(unitValue, unitIndex), 'f', unitGetPrecisionFromIndex(unitIndex));
		else
			s=QString::number(pts2value(unitValue, unitIndex));
		if (appendSuffix)
			s += " "+unitGetStrFromIndex(unitIndex);
	}
	return s;
}
Exemplo n.º 5
0
void CommonStrings::languageChange()
{
	CommonStrings::_Apply     = "&Apply";
	CommonStrings::tr_Apply   = tr( "&Apply" );

	CommonStrings::_Cancel    = "&Cancel";
	CommonStrings::tr_Cancel  = tr( "&Cancel" );

	CommonStrings::None        = "None";
	CommonStrings::tr_None     = tr( "None" );
	CommonStrings::tr_NoneColor= tr("None", "color name");

	CommonStrings::_OK        = "&OK";
	CommonStrings::tr_OK      = tr( "&OK" );

	CommonStrings::_Save      = "&Save";
	CommonStrings::tr_Save    = tr( "&Save" );

	CommonStrings::Warning    = "Warning";
	CommonStrings::trWarning  = tr( "Warning" );

	CommonStrings::trYes      = tr("Yes");
	CommonStrings::trNo       = tr("No");
	CommonStrings::trYesKey   = tr("&Yes");
	CommonStrings::trNoKey    = tr("&No");

	CommonStrings::itemType_TextFrame  = tr("Text Frame");
	CommonStrings::itemType_ImageFrame = tr("Image Frame");
	CommonStrings::itemType_Line       = tr("Line");
	CommonStrings::itemType_Polygon    = tr("Polygon");
	CommonStrings::itemType_Polyline   = tr("Polyline");
	CommonStrings::itemType_PathText   = tr("Text on a Path");
	CommonStrings::itemType_LatexFrame = tr("Render Frame");
	CommonStrings::itemType_OSGFrame   = tr("PDF 3D Annotation");
	CommonStrings::itemType_Symbol     = tr("Symbol");
	CommonStrings::itemType_Multiple   = tr("Multiple", "Multiple frame types");
	CommonStrings::itemSubType_PDF_PushButton     = tr("PDF Push Button");
	CommonStrings::itemSubType_PDF_TextField      = tr("PDF Text Field");
	CommonStrings::itemSubType_PDF_CheckBox       = tr("PDF Check Box");
	CommonStrings::itemSubType_PDF_ComboBox       = tr("PDF Combo Box");
	CommonStrings::itemSubType_PDF_ListBox        = tr("PDF List Box");
	CommonStrings::itemSubType_PDF_TextAnnotation = tr("PDF Text Annotation");
	CommonStrings::itemSubType_PDF_LinkAnnotation = tr("PDF Link Annotation");


	CommonStrings::customPageSize = "Custom";
	CommonStrings::trCustomPageSize = tr( "Custom", "CommonStrings, custom page size" );

	CommonStrings::pageSet1    = "Single Page";
	CommonStrings::pageSet2    = "Double Sided";
	CommonStrings::pageSet3    = "3-Fold";
	CommonStrings::pageSet4    = "4-Fold";
	CommonStrings::trPageSet1  = tr( "Single Page" );
	CommonStrings::trPageSet2  = tr( "Double Sided" );
	CommonStrings::trPageSet3  = tr( "3-Fold" );
	CommonStrings::trPageSet4  = tr( "4-Fold" );

	CommonStrings::pageLocLeft          = "Left Page";
	CommonStrings::pageLocMiddle        = "Middle";
	CommonStrings::pageLocMiddleLeft    = "Middle Left";
	CommonStrings::pageLocMiddleRight   = "Middle Right";
	CommonStrings::pageLocRight         = "Right Page";
	CommonStrings::trPageLocLeft        = tr( "Left Page", "Left page location" );
	CommonStrings::trPageLocMiddle      = tr( "Middle", "Middle page location" );
	CommonStrings::trPageLocMiddleLeft  = tr( "Middle Left", "Middle Left page location" );
	CommonStrings::trPageLocMiddleRight = tr( "Middle Right", "Middle Right page location" );
	CommonStrings::trPageLocRight       = tr( "Right Page", "Right page location" );

	CommonStrings::masterPageNormal         = "Normal";
	CommonStrings::trMasterPageNormal       = tr( "Normal", "Default single master page" );
	CommonStrings::masterPageNormalLeft     = "Normal Left";
	CommonStrings::trMasterPageNormalLeft   = tr( "Normal Left", "Default left master page" );
	CommonStrings::masterPageNormalMiddle   = "Normal Middle";
	CommonStrings::trMasterPageNormalMiddle = tr( "Normal Middle", "Default middle master page" );
	CommonStrings::masterPageNormalRight    = "Normal Right";
	CommonStrings::trMasterPageNormalRight  = tr( "Normal Right", "Default right master page" );

	CommonStrings::trPenStyle_SolidLine      = tr("Solid Line");
	CommonStrings::trPenStyle_DashedLine     = tr("Dashed Line");
	CommonStrings::trPenStyle_DottedLine     = tr("Dotted Line");
	CommonStrings::trPenStyle_DashDotLine    = tr("Dash Dot Line");
	CommonStrings::trPenStyle_DashDotDotLine = tr("Dash Dot Dot Line");

	CommonStrings::DefaultParagraphStyle     = "Default Paragraph Style";
	CommonStrings::DefaultCharacterStyle     = "Default Character Style";
	CommonStrings::DefaultLineStyle          = "Default Line Style";
	CommonStrings::trDefaultParagraphStyle   = tr("Default Paragraph Style");
	CommonStrings::trDefaultCharacterStyle   = tr("Default Character Style");
	CommonStrings::trDefaultLineStyle        = tr("Default Line Style");


	CommonStrings::monday    = tr("Monday");
	CommonStrings::tuesday   = tr("Tuesday");
	CommonStrings::wednesday = tr("Wednesday");
	CommonStrings::thursday  = tr("Thursday");
	CommonStrings::friday    = tr("Friday");
	CommonStrings::saturday  = tr("Saturday");
	CommonStrings::sunday    = tr("Sunday");
	CommonStrings::january   = tr("January");
	CommonStrings::february  = tr("February");
	CommonStrings::march     = tr("March");
	CommonStrings::april     = tr("April");
	CommonStrings::may       = tr("May");
	CommonStrings::june      = tr("June");
	CommonStrings::july      = tr("July");
	CommonStrings::august    = tr("August");
	CommonStrings::september = tr("September");
	CommonStrings::october   = tr("October");
	CommonStrings::november  = tr("November");
	CommonStrings::december  = tr("December");

	CommonStrings::trRGB       = tr("RGB", "Colorspace");
	CommonStrings::trCMYK      = tr("CMYK", "Colorspace");
	CommonStrings::trGrayscale = tr("Grayscale", "Colorspace");
	CommonStrings::trDuotone   = tr("Duotone", "Colorspace");
	CommonStrings::trUnknownCS = tr("Unknown", "Colorspace (Unknown)");

	CommonStrings::trVisionNormal         = tr("Normal Vision", "Color Blindness - Normal Vision");
	CommonStrings::trVisionProtanopia     = tr("Protanopia (Red)", "Color Blindness - Red Color Blind");
	CommonStrings::trVisionDeuteranopia   = tr("Deuteranopia (Green)", "Color Blindness - Greed Color Blind");
	CommonStrings::trVisionTritanopia     = tr("Tritanopia (Blue)", "Color Blindness - Blue Color Blind");
	CommonStrings::trVisionFullColorBlind = tr("Full Color Blindness", "Color Blindness - Full Color Blindness");

	CommonStrings::trCustomTabFill = tr("Custom: ","Custom Tab Fill Option");

	CommonStrings::trOpticalMarginsNone            = tr("None", "Optical Margin Setting");
	CommonStrings::trOpticalMarginsLeftProtruding  = tr("Left Protruding", "Optical Margin Setting");
	CommonStrings::trOpticalMarginsRightProtruding = tr("Right Protruding", "Optical Margin Setting");
	CommonStrings::trOpticalMarginsLeftHangPunct   = tr("Left Hanging Punctuation", "Optical Margin Setting");
	CommonStrings::trOpticalMarginsRightHangPunct  = tr("Right Hanging Punctuation", "Optical Margin Setting");
	CommonStrings::trOpticalMarginsDefault         = tr("Default", "Optical Margin Setting");

	//Paragraph Style Word Tracking
	CommonStrings::trMinWordTracking = tr("Min. Word Tracking");
	CommonStrings::trMaxWordTracking = tr("Max. Word Tracking");

	//Paragraph Style Glyph Extension
	CommonStrings::trMinGlyphExtension = tr("Min. Glyph Extension");
	CommonStrings::trMaxGlyphExtension = tr("Max. Glyph Extension");

	//PostScript & PDF Types etc
	CommonStrings::PostScript   = "PostScript";
	CommonStrings::trPostScript = tr("PostScript");
	CommonStrings::PDF_1_3      = "PDF 1.3";
	CommonStrings::PDF_1_4      = "PDF 1.4";
	CommonStrings::PDF_1_5      = "PDF 1.5";
	CommonStrings::PDF_X1a      = "PDF/X-1a";
	CommonStrings::PDF_X3       = "PDF/X-3";
	CommonStrings::PDF_X4       = "PDF/X-4";

	CommonStrings::PostScript1   = "PostScript Level 1";
	CommonStrings::trPostScript1 = tr( "PostScript Level 1" );
	CommonStrings::PostScript2   = "PostScript Level 2";
	CommonStrings::trPostScript2 = tr( "PostScript Level 2" );
	CommonStrings::PostScript3   = "PostScript Level 3";
	CommonStrings::trPostScript3 = tr( "PostScript Level 3" );
	CommonStrings::WindowsGDI    = "Windows GDI";
	CommonStrings::trWindowsGDI  = tr( "Windows GDI" );

	//Units
	CommonStrings::trStrPT=unitGetStrFromIndex(SC_PT);
	CommonStrings::trStrMM=unitGetStrFromIndex(SC_MM);
	CommonStrings::trStrIN=unitGetStrFromIndex(SC_IN);
	CommonStrings::trStrP =unitGetStrFromIndex(SC_P);
	CommonStrings::trStrCM=unitGetStrFromIndex(SC_CM);
	CommonStrings::trStrC =unitGetStrFromIndex(SC_C);
	CommonStrings::strPT=unitGetUntranslatedStrFromIndex(SC_PT);
	CommonStrings::strMM=unitGetUntranslatedStrFromIndex(SC_MM);
	CommonStrings::strIN=unitGetUntranslatedStrFromIndex(SC_IN);
	CommonStrings::strP =unitGetUntranslatedStrFromIndex(SC_P);
	CommonStrings::strCM=unitGetUntranslatedStrFromIndex(SC_CM);
	CommonStrings::strC =unitGetUntranslatedStrFromIndex(SC_C);
}
Exemplo n.º 6
0
double ScrSpinBox::valueFromText ( const QString & text ) const
{
	//Get all our units strings
//CB: Replaced by new CommonStrings versions
// 	QString trStrPT=unitGetStrFromIndex(SC_PT);
// 	QString trStrMM=unitGetStrFromIndex(SC_MM);
// 	QString trStrIN=unitGetStrFromIndex(SC_IN);
// 	QString trStrP =unitGetStrFromIndex(SC_P);
// 	QString trStrCM=unitGetStrFromIndex(SC_CM);
// 	QString trStrC =unitGetStrFromIndex(SC_C);
// 	QString strPT=unitGetUntranslatedStrFromIndex(SC_PT);
// 	QString strMM=unitGetUntranslatedStrFromIndex(SC_MM);
// 	QString strIN=unitGetUntranslatedStrFromIndex(SC_IN);
// 	QString strP =unitGetUntranslatedStrFromIndex(SC_P);
// 	QString strCM=unitGetUntranslatedStrFromIndex(SC_CM);
// 	QString strC =unitGetUntranslatedStrFromIndex(SC_C);
	//Get a copy for use
	QString ts = text.trimmed();
	//Find our suffix
	QString su(unitGetStrFromIndex(m_unitIndex));
	//Replace our pica XpY.Z format with (X*12+Y.Z)pt
	if (CommonStrings::trStrP.localeAwareCompare(CommonStrings::strP)!=0)
		ts.replace(CommonStrings::trStrP, CommonStrings::strP);
	QRegExp rxP;
	if (m_unitIndex==SC_PICAS)
		rxP.setPattern("\\b(\\d+)"+CommonStrings::strP+"?(\\d+\\.?\\d*)?\\b");
	else
		rxP.setPattern("\\b(\\d+)"+CommonStrings::strP+"(\\d+\\.?\\d*)?\\b");
	int posP = 0;
	while (posP >= 0)
	{
// 		qDebug() << "#";
		posP = rxP.indexIn(ts, posP);
		if (posP >= 0)
		{
// 			qDebug() << rxP.cap(1);
// 			qDebug() << rxP.cap(2);
			QString replacement = QString("%1%2").arg(rxP.cap(1).toDouble()*(static_cast<double>(unitGetBaseFromIndex(SC_PICAS))) + rxP.cap(2).toDouble()).arg(CommonStrings::strPT);
			ts.replace(posP, rxP.cap(0).length(), replacement);
// 			qDebug() << ts;
		}
	}
// 	qDebug() << "##" << ts;
	
	ts.replace(",", ".");
	ts.replace("%", "");
	ts.replace("°", "");
	ts.replace(FinishTag, "");
	ts = ts.trimmed();

	if (ts.endsWith(su))
		ts = ts.left(ts.length()-su.length());
	int pos = ts.length();
	while (pos > 0)
	{
		pos = ts.lastIndexOf(".", pos);
		if (pos >= 0) 
		{
			if (pos < static_cast<int>(ts.length()))
			{
				if (!ts[pos+1].isDigit())
					ts.insert(pos+1, "0 ");
			}
			pos--;
		}
	}
	if (ts.endsWith("."))
		ts.append("0");
	//CB FParser doesn't handle unicode well/at all.
	//So, instead of just getting the translated strings and
	//sticking them in as variables in the parser, if they are
	//not the same as the untranslated version, then we replace them.
	//We lose the ability for now to have some strings in languages 
	//that might use them in variables.
	//To return to previous functionality, remove the follow replacement ifs,
	//S&R in the trStr* assignments trStrPT->strPT and remove the current str* ones. 
	//IE, send the translated strings through to the regexp.
	if (CommonStrings::trStrPT.localeAwareCompare(CommonStrings::strPT)!=0)
		ts.replace(CommonStrings::trStrPT, CommonStrings::strPT);
	if (CommonStrings::trStrMM.localeAwareCompare(CommonStrings::strMM)!=0)
		ts.replace(CommonStrings::trStrMM, CommonStrings::strMM);
	if (CommonStrings::trStrIN.localeAwareCompare(CommonStrings::strIN)!=0)
		ts.replace(CommonStrings::trStrIN, CommonStrings::strIN);
	if (CommonStrings::trStrCM.localeAwareCompare(CommonStrings::strCM)!=0)
		ts.replace(CommonStrings::trStrCM, CommonStrings::strCM);
	if (CommonStrings::trStrC.localeAwareCompare(CommonStrings::trStrC)!=0)
		ts.replace(CommonStrings::trStrC, CommonStrings::strC);
	//Replace in our typed text all of the units strings with *unitstring
	QRegExp rx("\\b(\\d+)\\s*("+CommonStrings::strPT+"|"+CommonStrings::strMM+"|"+CommonStrings::strC+"|"+CommonStrings::strCM+"|"+CommonStrings::strIN+")\\b");
	pos = 0;
	while (pos >= 0) {
		pos = rx.indexIn(ts, pos);
		if (pos >= 0) {
			QString replacement = rx.cap(1) + "*" + rx.cap(2);
			ts.replace(pos, rx.cap(0).length(), replacement);
		}
	}

	//Add in the fparser constants using our unit strings, and the conversion factors.
	FunctionParser fp;
// 	setFPConstants(fp);
	fp.AddConstant(CommonStrings::strPT.toStdString(), value2value(1.0, SC_PT, m_unitIndex));
	fp.AddConstant(CommonStrings::strMM.toStdString(), value2value(1.0, SC_MM, m_unitIndex));
	fp.AddConstant(CommonStrings::strIN.toStdString(), value2value(1.0, SC_IN, m_unitIndex));
	fp.AddConstant(CommonStrings::strP.toStdString(), value2value(1.0, SC_P, m_unitIndex));
	fp.AddConstant(CommonStrings::strCM.toStdString(), value2value(1.0, SC_CM, m_unitIndex));
	fp.AddConstant(CommonStrings::strC.toStdString(), value2value(1.0, SC_C, m_unitIndex));

	fp.AddConstant("old", value());
	if (m_constants)
	{
		QMap<QString, double>::ConstIterator itend = m_constants->constEnd();
		QMap<QString, double>::ConstIterator it = m_constants->constBegin();
		while(it != itend)
		{
			fp.AddConstant(it.key().toStdString(), it.value() * unitGetRatioFromIndex(m_unitIndex));
			++it;
		}
	}
	
	int ret = fp.Parse(ts.toStdString(), "", true);
//	qDebug() << "fp return =" << ret;
	if (ret >= 0)
		return 0;
	double erg = fp.Eval(NULL);
//	qDebug() << "fp value =" << erg;
	return erg;
}