Add generic templates (#307)

- Add generic full-page templates.  (This feature from 3.4 was missing)
- Also add generic half-page, quarter-page, and envelope templates.
- Add several more common envelope sizes to page-sizes.xml
- Qt print backend does not need pwg_size.
    - Replace with pwg_class, to distinguish between ISO and NA sizes
This commit is contained in:
Jaye Evins
2026-02-11 11:27:41 -05:00
committed by GitHub
parent 993e1e460d
commit e6673a0a24
15 changed files with 369 additions and 67 deletions
+2 -1
View File
@@ -207,6 +207,7 @@ namespace glabels
if ( auto* tItem = dynamic_cast<TemplatePickerItem *>( mModel->item( i, 0 ) ) )
{
bool nameMask = tItem->tmplate().name().contains( searchString, Qt::CaseInsensitive );
bool descMask = tItem->tmplate().description().contains( searchString, Qt::CaseInsensitive );
bool sizeMask =
(isoMask && tItem->tmplate().isSizeIso()) ||
@@ -228,7 +229,7 @@ namespace glabels
}
if ( nameMask && sizeMask && categoryMask )
if ( (nameMask||descMask) && sizeMask && categoryMask )
{
setRowHidden( i, false );
}
+1
View File
@@ -31,6 +31,7 @@ set (Model_sources
FramePath.cpp
FrameRect.cpp
FrameRound.cpp
GenericTemplate.cpp
Handle.cpp
Layout.cpp
Markup.cpp
+27 -5
View File
@@ -24,6 +24,7 @@
#include "Config.hpp"
#include "StrUtil.hpp"
#include "FileUtil.hpp"
#include "GenericTemplate.hpp"
#include "Settings.hpp"
#include "XmlCategoryParser.hpp"
#include "XmlPaperParser.hpp"
@@ -87,6 +88,7 @@ namespace glabels::model
readCategories();
readVendors();
readTemplates();
createGenericTemplates();
}
@@ -470,11 +472,12 @@ namespace glabels::model
for ( auto& paper : mPapers )
{
qDebug() << "paper "
<< "id=" << paper.id() << ", "
<< "name=" << paper.name() << ", "
<< "width=" << paper.width().pt() << "pts, "
<< "height=" << paper.height().pt() << "pts, "
<< "pwg_size=" << paper.pwgSize();
<< "id=" << paper.id() << ", "
<< "name=" << paper.name() << ", "
<< "width=" << paper.width().pt() << "pts, "
<< "height=" << paper.height().pt() << "pts, "
<< "pwg_class=" << paper.pwgClass()
<< "type=" << paper.type();
}
qDebug();
@@ -697,6 +700,25 @@ namespace glabels::model
}
void Db::createGenericTemplates()
{
for ( auto& paper : papers() )
{
if ( paper.type() == Paper::SHEET )
{
registerTemplate( GenericTemplate::fullPage( paper ) );
registerTemplate( GenericTemplate::halfPage1x2( paper ) );
registerTemplate( GenericTemplate::halfPage2x1( paper ) );
registerTemplate( GenericTemplate::quarterPage2x2( paper ) );
}
else if ( paper.type() == Paper::ENVELOPE )
{
registerTemplate( GenericTemplate::envelope( paper ) );
}
}
}
void Db::readUserTemplatesFromDir( const QDir& dir )
{
QStringList filters;
+2
View File
@@ -114,6 +114,8 @@ namespace glabels::model
static void readTemplatesFromDir( const QDir& dir );
static void registerTemplate( const Template& tmplate );
static void createGenericTemplates();
static void readUserTemplatesFromDir( const QDir& dir );
+134
View File
@@ -0,0 +1,134 @@
// GenericTemplate.cpp
//
// Copyright (C) 2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
// gLabels-qt is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// gLabels-qt is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
//
#include "GenericTemplate.hpp"
#include "FrameRect.hpp"
#include <QDebug>
namespace glabels::model
{
Template GenericTemplate::fullPage( const Paper& paper )
{
// TRANSLATORS
//: %1 = page size. (e.g. A4)
return sheetTemplate( paper, 1, 1, QString( tr( "%1 full-page labels" ) ).arg( paper.name() ) );
}
Template GenericTemplate::halfPage1x2( const Paper& paper )
{
// TRANSLATORS
//: %1 = page size. (e.g. A4)
return sheetTemplate( paper, 1, 2, QString( tr( "%1 half-page labels" ) ).arg( paper.name() ) );
}
Template GenericTemplate::halfPage2x1( const Paper& paper )
{
return sheetTemplate( paper, 2, 1, QString( tr( "%1 half-page labels" ) ).arg( paper.name() ) );
}
Template GenericTemplate::quarterPage2x2( const Paper& paper )
{
// TRANSLATORS
//: %1 = page size. (e.g. A4)
return sheetTemplate( paper, 2, 2, QString( tr( "%1 quarter-page labels" ) ).arg( paper.name() ) );
}
Template GenericTemplate::envelope( const Paper& paper )
{
// TRANSLATORS
//: %1 = envelope size. (e.g. DL)
QString description = QString( tr( "%1 envelope" ) ).arg( paper.name() );
Template tmplate( tr("Generic"),
paper.id() + "-ENV",
description,
paper.id(),
paper.width(),
paper.height() );
FrameRect frame( paper.width(),
paper.height(),
Distance::pt( 0 ),
Distance::pt( 0 ),
Distance::pt( 0 ) );
Layout layout( 1,
1,
Distance::pt( 0 ),
Distance::pt( 0 ),
Distance::pt( 0 ),
Distance::pt( 0 ) );
frame.addLayout( layout );
tmplate.addFrame( frame );
tmplate.addCategory( "mail" );
return tmplate;
}
Template GenericTemplate::sheetTemplate( const Paper& paper,
int nx,
int ny,
const QString& description )
{
Template tmplate( tr("Generic"),
QString( "%1-%2x%3" ).arg(paper.id()).arg(nx).arg(ny),
description,
paper.id(),
paper.width(),
paper.height() );
FrameRect frame( paper.width()/nx,
paper.height()/ny,
Distance::pt( 0 ),
Distance::pt( 0 ),
Distance::pt( 0 ) );
Layout layout( nx,
ny,
Distance::pt( 0 ),
Distance::pt( 0 ),
paper.width()/nx,
paper.height()/ny );
frame.addLayout( layout );
tmplate.addFrame( frame );
tmplate.addCategory( "label" );
tmplate.addCategory( "rectangle-label" );
tmplate.addCategory( "card" );
return tmplate;
}
}
+59
View File
@@ -0,0 +1,59 @@
// GenericTemplate.hpp
//
// Copyright (C) 2026 Jaye Evins <evins@snaught.com>
//
// This file is part of gLabels-qt.
//
// gLabels-qt is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// gLabels-qt is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
//
#ifndef model_GenericTemplate_hpp
#define model_GenericTemplate_hpp
#include "Template.hpp"
#include "Paper.hpp"
#include <QCoreApplication>
namespace glabels::model
{
class GenericTemplate
{
Q_DECLARE_TR_FUNCTIONS(GenericTemplate)
public:
GenericTemplate() = delete;
static Template fullPage( const Paper& paper );
static Template halfPage1x2( const Paper& paper );
static Template halfPage2x1( const Paper& paper );
static Template quarterPage2x2( const Paper& paper );
static Template envelope( const Paper& paper );
private:
static Template sheetTemplate( const Paper& paper,
int nx,
int ny,
const QString& description );
};
}
#endif // model_GenericTemplate_hpp
+14 -6
View File
@@ -29,12 +29,14 @@ namespace glabels::model
const QString& name,
Distance width,
Distance height,
const QString& pwgSize )
const QString& pwgClass,
Type type )
: mId(id),
mName(name),
mWidth(width),
mHeight(height),
mPwgSize(pwgSize)
mPwgClass(pwgClass),
mType(type)
{
// empty
}
@@ -64,21 +66,27 @@ namespace glabels::model
}
QString Paper::pwgSize() const
QString Paper::pwgClass() const
{
return mPwgSize;
return mPwgClass;
}
Paper::Type Paper::type() const
{
return mType;
}
bool Paper::isSizeIso() const
{
return mPwgSize.startsWith( "iso_" );
return mPwgClass == "iso";
}
bool Paper::isSizeUs() const
{
return mPwgSize.startsWith( "na_" );
return mPwgClass == "na";
}
}
+19 -4
View File
@@ -32,13 +32,23 @@ namespace glabels::model
class Paper
{
public:
enum Type
{
SHEET,
ENVELOPE,
ROLL
};
public:
Paper() = default;
Paper( const QString& id,
const QString& name,
Distance width,
Distance height,
const QString& pwgSize );
const QString& pwgClass,
Type type = SHEET );
~Paper() = default;
QString id() const;
@@ -50,18 +60,23 @@ namespace glabels::model
/* Height */
Distance height() const;
/* PWG 5101.1-2002 size name */
QString pwgSize() const;
/* PWG 5101.1-2023 class */
QString pwgClass() const;
Type type() const;
bool isSizeIso() const;
bool isSizeUs() const;
private:
QString mId;
QString mName;
Distance mWidth;
Distance mHeight;
QString mPwgSize;
QString mPwgClass;
Type mType;
};
}
+18 -2
View File
@@ -99,9 +99,25 @@ namespace glabels::model
Distance width = XmlUtil::getLengthAttr( node, "width", Distance(0) );
Distance height = XmlUtil::getLengthAttr( node, "height", Distance(0) );
QString pwgSize = XmlUtil::getStringAttr( node, "pwg_size", "" );
QString pwgClass = XmlUtil::getStringAttr( node, "pwg_class", "iso" );
return Paper( id, name, width, height, pwgSize );
Paper::Type type;
QString typeString = XmlUtil::getStringAttr( node, "type", "sheet" );
if ( typeString == "sheet" )
{
type = Paper::SHEET;
}
else if ( typeString == "envelope" )
{
type = Paper::ENVELOPE;
}
else
{
qWarning() << "Warning: unknown paper type: " << typeString << ".";
type = Paper::SHEET;
}
return Paper( id, name, width, height, pwgClass, type );
}
+4 -4
View File
@@ -7,8 +7,8 @@
<!-- =================================================================== -->
<Template brand="Dymo" part="30252" _description="Address labels"
size="roll" roll_width="31mm" width="28mm" height="89mm" >
<Meta category="label" />
<Meta category="mail" />
<Meta category="label"/>
<Meta category="mail"/>
<Label-rectangle id="0" width="28mm" height="89mm" round="1mm" x_waste="0mm" y_waste="0mm" >
<Markup-rect x1="1mm" y1="6mm" w="26mm" h="77mm" />
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0" />
@@ -39,8 +39,8 @@
<!-- =================================================================== -->
<Template brand="Dymo" part="30915" _description="Postage stamp labels"
size="roll" roll_width="51mm" width="41mm" height="31mm" >
<Meta category="label" />
<Meta category="mail" />
<Meta category="label"/>
<Meta category="mail"/>
<Label-path id="0" x_waste="0mm" y_waste="0mm" d_units="mm"
d="M 0 1
l 1 -1 l 1 1 l 1 -1 l 1 1 l 1 -1 l 1 1 l 1 -1 l 1 1 l 1 -1 l 1 1
+10 -1
View File
@@ -8,6 +8,8 @@
<!-- =================================================================== -->
<Template brand="Felga" part="EP1220" size="other" width="210mm" height="261mm" description="Plant labels">
<Meta category="label"/>
<Meta category="rectangle-label"/>
<Label-rectangle id="0" width="20mm" height="100mm" round="0mm" x_waste="0mm" y_waste="0mm">
<Markup-margin size="0mm"/>
<Layout nx="10" ny="2" x0="5mm" y0="5mm" dx="20mm" dy="130mm"/>
@@ -15,7 +17,8 @@
</Template>
<Template brand="Felga" part="ES210" size="other" width="595.276pt" height="793.701pt" description="Plant labels">
<Meta category="user-defined"/>
<Meta category="label"/>
<Meta category="rectangle-label"/>
<Label-rectangle id="0" width="595.276pt" height="36pt" round="0pt" x_waste="0pt" y_waste="0pt">
<Markup-margin size="0pt"/>
<Layout nx="1" ny="22" x0="0pt" y0="0pt" dx="595.276pt" dy="36pt"/>
@@ -23,6 +26,8 @@
</Template>
<Template brand="Felga" part="EY210" size="A4" description="Plant labels">
<Meta category="label"/>
<Meta category="rectangle-label"/>
<Label-rectangle id="0" width="210mm" height="19mm" round="0mm" x_waste="0mm" y_waste="0mm">
<Markup-margin size="0mm"/>
<Layout nx="1" ny="14" x0="0mm" y0="0mm" dx="210mm" dy="19mm"/>
@@ -30,6 +35,8 @@
</Template>
<Template brand="Felga" part="PETFO-A5" size="A4" description="Plant labels">
<Meta category="label"/>
<Meta category="rectangle-label"/>
<Label-rectangle id="0" width="210mm" height="148.5mm" round="0mm" x_waste="0mm" y_waste="0mm">
<Markup-margin size="0mm"/>
<Layout nx="1" ny="2" x0="0mm" y0="0mm" dx="210mm" dy="148.5mm"/>
@@ -37,6 +44,8 @@
</Template>
<Template brand="Felga" part="R1074" size="A4" description="Plant labels">
<Meta category="label"/>
<Meta category="rectangle-label"/>
<Label-rectangle id="0" width="105mm" height="74.25mm" round="2mm" x_waste="0mm" y_waste="0mm">
<Markup-margin size="0mm"/>
<Layout nx="2" ny="4" x0="0mm" y0="0mm" dx="105mm" dy="74.25mm"/>
+2 -1
View File
@@ -157,9 +157,10 @@
id %STRING_TYPE; #REQUIRED
name %STRING_TYPE; #IMPLIED
_name %STRING_TYPE; #IMPLIED
pwg_size %STRING_TYPE; #REQUIRED
pwg_class %STRING_TYPE; #IMPLIED
width %LENGTH_TYPE; #REQUIRED
height %LENGTH_TYPE; #REQUIRED
type %STRING_TYPE; #IMPLIED
>
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+3 -3
View File
@@ -244,7 +244,7 @@
<Meta category="business-card"/>
<Label-rectangle id="0" width="243.78" height="153.07">
<Markup-margin size="5"/>
<Layout nx="2" ny="5" x0="48.19" y0="42.50" dx="255.12" dy="157.32"/>
<Layout nx="2" ny="5" x0="48.19" y0="42.50" dx="255.12" dy="157.32"/>
</Label-rectangle>
</Template>
@@ -397,7 +397,7 @@
<Meta category="media"/>
<Label-cd id="0" radius="166.5" hole="58.5" waste="5">
<Markup-margin size="5"/>
<Layout nx="1" ny="2" x0="125" y0="68.890" dx="0" dy="360"/>
<Layout nx="1" ny="2" x0="125" y0="68.890" dx="0" dy="360"/>
</Label-cd>
</Template>
@@ -570,7 +570,7 @@
<!-- =================================================================== -->
<Template brand="Sigel" part="LA 505" size="A4" _description="CD/DVD labels">
<Meta category="label"/>
<Meta category="media"/>
<Meta category="media"/>
<Label-cd id="0" radius="58.5mm" hole="8.5mm" waste="2mm">
<Markup-margin size="3.175mm"/>
<Layout nx="1" ny="1" x0="45mm" y0="20mm" dx="123.4mm" dy="123.4mm"/>
+47 -40
View File
@@ -3,55 +3,62 @@
<Glabels-paper-sizes>
<!-- Most popular (at top of list) -->
<Paper-size id="A4" name="A4" pwg_size="iso_a4" width="210mm" height="297mm"/>
<Paper-size id="US-Letter" name="US Letter" pwg_size="na_letter" width="8.5in" height="11in"/>
<Paper-size id="A4" name="A4" pwg_class="iso" width="210mm" height="297mm" />
<Paper-size id="US-Letter" name="US Letter" pwg_class="na" width="8.5in" height="11in" />
<!-- Other US paper sizes -->
<Paper-size id="US-Legal" name="US Legal" pwg_size="na_legal" width="8.5in" height="14in"/>
<Paper-size id="US-Executive" name="US Executive" pwg_size="na_executive" width="7.25in" height="10.5in"/>
<Paper-size id="US-Legal" name="US Legal" pwg_class="na" width="8.5in" height="14in" />
<Paper-size id="US-Executive" name="US Executive" pwg_class="na" width="7.25in" height="10.5in" />
<!-- Other ISO A series sizes -->
<Paper-size id="A0" name="A0" pwg_size="iso_a0" width="841mm" height="1189mm"/>
<Paper-size id="A1" name="A1" pwg_size="iso_a1" width="594mm" height="841mm"/>
<Paper-size id="A2" name="A2" pwg_size="iso_a2" width="420mm" height="594mm"/>
<Paper-size id="A3" name="A3" pwg_size="iso_a3" width="297mm" height="420mm"/>
<Paper-size id="A5" name="A5" pwg_size="iso_a5" width="148mm" height="210mm"/>
<Paper-size id="A6" name="A6" pwg_size="iso_a6" width="105mm" height="148mm"/>
<Paper-size id="A7" name="A7" pwg_size="iso_a7" width="74mm" height="105mm"/>
<Paper-size id="A8" name="A8" pwg_size="iso_a8" width="52mm" height="74mm"/>
<Paper-size id="A9" name="A9" pwg_size="iso_a9" width="37mm" height="52mm"/>
<Paper-size id="A10" name="A10" pwg_size="iso_a10" width="26mm" height="37mm"/>
<Paper-size id="A0" name="A0" pwg_class="iso" width="841mm" height="1189mm" />
<Paper-size id="A1" name="A1" pwg_class="iso" width="594mm" height="841mm" />
<Paper-size id="A2" name="A2" pwg_class="iso" width="420mm" height="594mm" />
<Paper-size id="A3" name="A3" pwg_class="iso" width="297mm" height="420mm" />
<Paper-size id="A5" name="A5" pwg_class="iso" width="148mm" height="210mm" />
<Paper-size id="A6" name="A6" pwg_class="iso" width="105mm" height="148mm" />
<Paper-size id="A7" name="A7" pwg_class="iso" width="74mm" height="105mm" />
<Paper-size id="A8" name="A8" pwg_class="iso" width="52mm" height="74mm" />
<Paper-size id="A9" name="A9" pwg_class="iso" width="37mm" height="52mm" />
<Paper-size id="A10" name="A10" pwg_class="iso" width="26mm" height="37mm" />
<!-- ISO B series sizes -->
<Paper-size id="B0" name="B0" pwg_size="iso_b0" width="1000mm" height="1414mm"/>
<Paper-size id="B1" name="B1" pwg_size="iso_b1" width="707mm" height="1000mm"/>
<Paper-size id="B2" name="B2" pwg_size="iso_b2" width="500mm" height="707mm"/>
<Paper-size id="B3" name="B3" pwg_size="iso_b3" width="353mm" height="500mm"/>
<Paper-size id="B4" name="B4" pwg_size="iso_b4" width="250mm" height="353mm"/>
<Paper-size id="B5" name="B5" pwg_size="iso_b5" width="176mm" height="250mm"/>
<Paper-size id="B6" name="B6" pwg_size="iso_b6" width="125mm" height="176mm"/>
<Paper-size id="B7" name="B7" pwg_size="iso_b7" width="88mm" height="125mm"/>
<Paper-size id="B8" name="B8" pwg_size="iso_b8" width="62mm" height="88mm"/>
<Paper-size id="B9" name="B9" pwg_size="iso_b9" width="44mm" height="62mm"/>
<Paper-size id="B10" name="B10" pwg_size="iso_b10" width="31mm" height="44mm"/>
<Paper-size id="B0" name="B0" pwg_class="iso" width="1000mm" height="1414mm" />
<Paper-size id="B1" name="B1" pwg_class="iso" width="707mm" height="1000mm" />
<Paper-size id="B2" name="B2" pwg_class="iso" width="500mm" height="707mm" />
<Paper-size id="B3" name="B3" pwg_class="iso" width="353mm" height="500mm" />
<Paper-size id="B4" name="B4" pwg_class="iso" width="250mm" height="353mm" />
<Paper-size id="B5" name="B5" pwg_class="iso" width="176mm" height="250mm" />
<Paper-size id="B6" name="B6" pwg_class="iso" width="125mm" height="176mm" />
<Paper-size id="B7" name="B7" pwg_class="iso" width="88mm" height="125mm" />
<Paper-size id="B8" name="B8" pwg_class="iso" width="62mm" height="88mm" />
<Paper-size id="B9" name="B9" pwg_class="iso" width="44mm" height="62mm" />
<Paper-size id="B10" name="B10" pwg_class="iso" width="31mm" height="44mm" />
<!-- Envelopes -->
<Paper-size id="number10" name="#10 Envelope" pwg_size="na_number-10" width="4.125in" height="9.5in"/>
<Paper-size id="monarch" name="Monarch Envelope" pwg_size="na_monarch" width="3.875in" height="7.5in"/>
<Paper-size id="c5" name="C5" pwg_size="iso_c5" width="162mm" height="229mm"/>
<Paper-size id="c6" name="C6" pwg_size="iso_c6" width="114mm" height="162mm"/>
<Paper-size id="dl" name="DL" pwg_size="iso_dl" width="110mm" height="220mm"/>
<Paper-size id="personal" name="Personal" pwg_class="na" width="3.625in" height="6.5in" type="envelope" />
<Paper-size id="monarch" name="Monarch" pwg_class="na" width="3.875in" height="7.5in" type="envelope" />
<Paper-size id="no9" name="#9" pwg_class="na" width="3.875in" height="8.875in" type="envelope" />
<Paper-size id="no10" name="#10" pwg_class="na" width="4.125in" height="9.5in" type="envelope" />
<Paper-size id="no11" name="#11" pwg_class="na" width="4.5in" height="10.375in" type="envelope" />
<Paper-size id="no12" name="#12" pwg_class="na" width="4.75in" height="11in" type="envelope" />
<Paper-size id="no14" name="#14" pwg_class="na" width="5in" height="11.5in" type="envelope" />
<Paper-size id="dl" name="DL" pwg_class="iso" width="110mm" height="220mm" type="envelope" />
<Paper-size id="c4" name="C4" pwg_class="iso" width="229mm" height="324mm" type="envelope" />
<Paper-size id="c5" name="C5" pwg_class="iso" width="162mm" height="229mm" type="envelope" />
<Paper-size id="c6" name="C6" pwg_class="iso" width="114mm" height="162mm" type="envelope" />
<Paper-size id="b6" name="B6" pwg_class="iso" width="125mm" height="176mm" type="envelope" />
<!-- ISO 217 -->
<Paper-size id="RA0" name="RA0" pwg_size="iso_ra0" width="860mm" height="1220mm"/>
<Paper-size id="RA1" name="RA1" pwg_size="iso_ra1" width="610mm" height="860mm"/>
<Paper-size id="RA2" name="RA2" pwg_size="iso_ra2" width="430mm" height="610mm"/>
<Paper-size id="RA3" name="RA3" pwg_size="iso_ra3" width="305mm" height="430mm"/>
<Paper-size id="RA4" name="RA4" pwg_size="iso_ra4" width="215mm" height="305mm"/>
<Paper-size id="SRA0" name="SRA0" pwg_size="iso_sra0" width="900mm" height="1280mm"/>
<Paper-size id="SRA1" name="SRA1" pwg_size="iso_sra1" width="640mm" height="900mm"/>
<Paper-size id="SRA2" name="SRA2" pwg_size="iso_sra2" width="450mm" height="640mm"/>
<Paper-size id="SRA3" name="SRA3" pwg_size="iso_sra3" width="320mm" height="450mm"/>
<Paper-size id="SRA4" name="SRA4" pwg_size="iso_sra4" width="225mm" height="320mm"/>
<Paper-size id="RA0" name="RA0" pwg_class="iso" width="860mm" height="1220mm" />
<Paper-size id="RA1" name="RA1" pwg_class="iso" width="610mm" height="860mm" />
<Paper-size id="RA2" name="RA2" pwg_class="iso" width="430mm" height="610mm" />
<Paper-size id="RA3" name="RA3" pwg_class="iso" width="305mm" height="430mm" />
<Paper-size id="RA4" name="RA4" pwg_class="iso" width="215mm" height="305mm" />
<Paper-size id="SRA0" name="SRA0" pwg_class="iso" width="900mm" height="1280mm" />
<Paper-size id="SRA1" name="SRA1" pwg_class="iso" width="640mm" height="900mm" />
<Paper-size id="SRA2" name="SRA2" pwg_class="iso" width="450mm" height="640mm" />
<Paper-size id="SRA3" name="SRA3" pwg_class="iso" width="320mm" height="450mm" />
<Paper-size id="SRA4" name="SRA4" pwg_class="iso" width="225mm" height="320mm" />
</Glabels-paper-sizes>
+27
View File
@@ -271,6 +271,33 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GenericTemplate</name>
<message>
<source>Generic</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 full-page labels</source>
<extracomment>%1 = page size. (e.g. A4)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 envelope</source>
<extracomment>%1 = envelope size. (e.g. DL)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 half-page labels</source>
<extracomment>%1 = page size. (e.g. A4)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 quarter-page labels</source>
<extracomment>%1 = page size. (e.g. A4)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MergeView</name>
<message>