Implement continuous tape labels and path-based label shapes.
- Added "roll" as a special paper id - Added roll_width attribute to draw tape in previews - Updated Brother QL-500/* label templates - Preserve print dialog settings between print jobs. - Added path based labels for arbitrary shaped labels. - Fleshed out implementation of continuous labels.
This commit is contained in:
@@ -31,6 +31,7 @@ set (glabels_sources
|
||||
PropertiesView.cpp
|
||||
Preview.cpp
|
||||
PreviewOverlayItem.cpp
|
||||
RollTemplatePath.cpp
|
||||
SelectProductDialog.cpp
|
||||
SimplePreview.cpp
|
||||
StartupView.cpp
|
||||
@@ -85,6 +86,8 @@ set (glabels_forms
|
||||
ui/TemplateDesignerRoundPage.ui
|
||||
ui/TemplateDesignerEllipsePage.ui
|
||||
ui/TemplateDesignerCdPage.ui
|
||||
ui/TemplateDesignerPathPage.ui
|
||||
ui/TemplateDesignerContinuousPage.ui
|
||||
ui/TemplateDesignerNLayoutsPage.ui
|
||||
ui/TemplateDesignerOneLayoutPage.ui
|
||||
ui/TemplateDesignerTwoLayoutPage.ui
|
||||
|
||||
+3
-2
@@ -56,12 +56,13 @@ namespace glabels
|
||||
{
|
||||
auto* model = new model::Model();
|
||||
model->setTmplate( tmplate );
|
||||
model->clearModified();
|
||||
|
||||
|
||||
// Intelligently decide to rotate label by default
|
||||
const model::Frame* frame = tmplate->frames().first();
|
||||
model->setRotate( frame->h() > frame->w() );
|
||||
|
||||
model->clearModified();
|
||||
|
||||
// Either apply to current window or open a new one
|
||||
if ( window->isEmpty() )
|
||||
{
|
||||
|
||||
@@ -1143,7 +1143,7 @@ namespace glabels
|
||||
|
||||
foreach( model::Markup* markup, mModel->frame()->markups() )
|
||||
{
|
||||
painter->drawPath( markup->path() );
|
||||
painter->drawPath( markup->path( mModel->frame() ) );
|
||||
}
|
||||
|
||||
painter->restore();
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
#include "MiniPreviewPixmap.h"
|
||||
|
||||
|
||||
#include "RollTemplatePath.h"
|
||||
#include "model/Template.h"
|
||||
|
||||
|
||||
@@ -63,16 +65,25 @@ namespace glabels
|
||||
painter.setBackgroundMode( Qt::TransparentMode );
|
||||
painter.setRenderHint( QPainter::Antialiasing, true );
|
||||
|
||||
// For "Roll" templates, allow extra room for tape width and continuation break lines
|
||||
model::Distance drawWidth = tmplate->pageWidth();
|
||||
model::Distance drawHeight = tmplate->pageHeight();
|
||||
if ( tmplate->isRoll() )
|
||||
{
|
||||
drawWidth = tmplate->rollWidth();
|
||||
drawHeight *= 1.2;
|
||||
}
|
||||
|
||||
double w = width - 1;
|
||||
double h = height - 1;
|
||||
double scale;
|
||||
if ( (w/tmplate->pageWidth().pt()) > (h/tmplate->pageHeight().pt()) )
|
||||
if ( (w/drawWidth.pt()) > (h/drawHeight.pt()) )
|
||||
{
|
||||
scale = h / tmplate->pageHeight().pt();
|
||||
scale = h / drawHeight.pt();
|
||||
}
|
||||
else
|
||||
{
|
||||
scale = w / tmplate->pageWidth().pt();
|
||||
scale = w / drawWidth.pt();
|
||||
}
|
||||
painter.scale( scale, scale );
|
||||
|
||||
@@ -95,7 +106,15 @@ namespace glabels
|
||||
|
||||
painter.setBrush( brush );
|
||||
painter.setPen( pen );
|
||||
painter.drawRect( 0, 0, tmplate->pageWidth().pt(), tmplate->pageHeight().pt() );
|
||||
|
||||
if ( !tmplate->isRoll() )
|
||||
{
|
||||
painter.drawRect( 0, 0, tmplate->pageWidth().pt(), tmplate->pageHeight().pt() );
|
||||
}
|
||||
else
|
||||
{
|
||||
painter.drawPath( RollTemplatePath( tmplate ) );
|
||||
}
|
||||
|
||||
painter.restore();
|
||||
}
|
||||
|
||||
+32
-25
@@ -21,6 +21,7 @@
|
||||
#include "Preview.h"
|
||||
|
||||
#include "PreviewOverlayItem.h"
|
||||
#include "RollTemplatePath.h"
|
||||
|
||||
#include <QGraphicsDropShadowEffect>
|
||||
#include <QGraphicsRectItem>
|
||||
@@ -35,7 +36,7 @@ namespace glabels
|
||||
//
|
||||
namespace
|
||||
{
|
||||
const QColor paperColor( 255, 255, 255 );
|
||||
const QColor paperColor( 242, 242, 242 );
|
||||
const QColor paperOutlineColor( 0, 0, 0 );
|
||||
const double paperOutlineWidthPixels = 1;
|
||||
|
||||
@@ -44,7 +45,7 @@ namespace glabels
|
||||
const double shadowRadiusPixels = 12;
|
||||
|
||||
const QColor labelColor( 255, 255, 255 );
|
||||
const QColor labelOutlineColor( 215, 215, 215 );
|
||||
const QColor labelOutlineColor( 192, 192, 192 );
|
||||
const double labelOutlineWidthPixels = 1;
|
||||
}
|
||||
|
||||
@@ -85,20 +86,31 @@ namespace glabels
|
||||
{
|
||||
mModel = mRenderer->model();
|
||||
|
||||
clearScene();
|
||||
mScene->clear();
|
||||
|
||||
if ( mModel != nullptr )
|
||||
{
|
||||
auto tmplate = mModel->tmplate();
|
||||
|
||||
// For "Roll" templates, allow extra room to draw continuation break lines.
|
||||
model::Distance drawHeight = mModel->tmplate()->pageHeight();
|
||||
model::Distance drawOffset = 0;
|
||||
if ( tmplate->isRoll() )
|
||||
{
|
||||
drawHeight = 1.2 * tmplate->pageHeight();
|
||||
drawOffset = 0.1 * tmplate->pageHeight();
|
||||
}
|
||||
|
||||
// Set scene up with a 5% margin around paper
|
||||
model::Distance x = -0.05 * mModel->tmplate()->pageWidth();
|
||||
model::Distance y = -0.05 * mModel->tmplate()->pageHeight();
|
||||
model::Distance w = 1.10 * mModel->tmplate()->pageWidth();
|
||||
model::Distance h = 1.10 * mModel->tmplate()->pageHeight();
|
||||
model::Distance x = -0.05 * tmplate->pageWidth();
|
||||
model::Distance y = -0.05 * drawHeight - drawOffset;
|
||||
model::Distance w = 1.10 * tmplate->pageWidth();
|
||||
model::Distance h = 1.10 * drawHeight;
|
||||
|
||||
mScene->setSceneRect( x.pt(), y.pt(), w.pt(), h.pt() );
|
||||
fitInView( mScene->sceneRect(), Qt::KeepAspectRatio );
|
||||
|
||||
drawPaper( mModel->tmplate()->pageWidth(), mModel->tmplate()->pageHeight() );
|
||||
drawPaper();
|
||||
drawLabels();
|
||||
drawPreviewOverlay();
|
||||
}
|
||||
@@ -114,23 +126,10 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Clear View
|
||||
///
|
||||
void Preview::clearScene()
|
||||
{
|
||||
foreach ( QGraphicsItem *item, mScene->items() )
|
||||
{
|
||||
mScene->removeItem( item );
|
||||
delete item;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Draw Paper
|
||||
///
|
||||
void Preview::drawPaper( const model::Distance& pw, const model::Distance& ph )
|
||||
void Preview::drawPaper()
|
||||
{
|
||||
auto *shadowEffect = new QGraphicsDropShadowEffect();
|
||||
shadowEffect->setColor( shadowColor );
|
||||
@@ -142,7 +141,16 @@ namespace glabels
|
||||
pen.setCosmetic( true );
|
||||
pen.setWidthF( paperOutlineWidthPixels );
|
||||
|
||||
auto *pageItem = new QGraphicsRectItem( 0, 0, pw.pt(), ph.pt() );
|
||||
QAbstractGraphicsShapeItem* pageItem;
|
||||
auto tmplate = mModel->tmplate();
|
||||
if ( !tmplate->isRoll() )
|
||||
{
|
||||
pageItem = new QGraphicsRectItem( 0, 0, tmplate->pageWidth().pt(), tmplate->pageHeight().pt() );
|
||||
}
|
||||
else
|
||||
{
|
||||
pageItem = new QGraphicsPathItem( RollTemplatePath( tmplate ) );
|
||||
}
|
||||
pageItem->setBrush( brush );
|
||||
pageItem->setPen( pen );
|
||||
pageItem->setGraphicsEffect( shadowEffect );
|
||||
@@ -170,9 +178,8 @@ namespace glabels
|
||||
///
|
||||
void Preview::drawLabel( const model::Distance& x, const model::Distance& y, const QPainterPath& path )
|
||||
{
|
||||
QBrush brush( Qt::NoBrush );
|
||||
QBrush brush( labelColor );
|
||||
QPen pen( labelOutlineColor );
|
||||
pen.setStyle( Qt::DotLine );
|
||||
pen.setCosmetic( true );
|
||||
pen.setWidthF( labelOutlineWidthPixels );
|
||||
|
||||
|
||||
+1
-2
@@ -68,8 +68,7 @@ namespace glabels
|
||||
// Internal Methods
|
||||
/////////////////////////////////
|
||||
private:
|
||||
void clearScene();
|
||||
void drawPaper( const model::Distance& pw, const model::Distance& ph );
|
||||
void drawPaper();
|
||||
void drawLabels();
|
||||
void drawLabel( const model::Distance& x, const model::Distance& y, const QPainterPath& path );
|
||||
|
||||
|
||||
+9
-10
@@ -40,6 +40,14 @@ namespace glabels
|
||||
preview->setRenderer( &mRenderer );
|
||||
mPrinter = new QPrinter( QPrinter::HighResolution );
|
||||
mPrinter->setColorMode( QPrinter::Color );
|
||||
|
||||
mPrintDialog = new QPrintDialog( mPrinter, this );
|
||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintToFile, true );
|
||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintSelection, false );
|
||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintPageRange, false );
|
||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintShowPageSize, true );
|
||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintCollateCopies, false );
|
||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintCurrentPage, false );
|
||||
}
|
||||
|
||||
|
||||
@@ -120,16 +128,7 @@ namespace glabels
|
||||
///
|
||||
void PrintView::onPrintButtonClicked()
|
||||
{
|
||||
QPrintDialog printDialog( mPrinter, this );
|
||||
|
||||
printDialog.setOption( QAbstractPrintDialog::PrintToFile, true );
|
||||
printDialog.setOption( QAbstractPrintDialog::PrintSelection, false );
|
||||
printDialog.setOption( QAbstractPrintDialog::PrintPageRange, false );
|
||||
printDialog.setOption( QAbstractPrintDialog::PrintShowPageSize, true );
|
||||
printDialog.setOption( QAbstractPrintDialog::PrintCollateCopies, false );
|
||||
printDialog.setOption( QAbstractPrintDialog::PrintCurrentPage, false );
|
||||
|
||||
if ( printDialog.exec() == QDialog::Accepted )
|
||||
if ( mPrintDialog->exec() == QDialog::Accepted )
|
||||
{
|
||||
mRenderer.print( mPrinter );
|
||||
}
|
||||
|
||||
+4
-1
@@ -28,6 +28,7 @@
|
||||
#include "model/PageRenderer.h"
|
||||
|
||||
#include <QPrinter>
|
||||
#include <QPrintDialog>
|
||||
|
||||
|
||||
namespace glabels
|
||||
@@ -73,7 +74,9 @@ namespace glabels
|
||||
QPrinter* mPrinter;
|
||||
model::PageRenderer mRenderer;
|
||||
|
||||
bool mBlocked;
|
||||
QPrintDialog* mPrintDialog;
|
||||
|
||||
bool mBlocked;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "UndoRedoModel.h"
|
||||
|
||||
#include "model/Db.h"
|
||||
#include "model/FrameContinuous.h"
|
||||
#include "model/Settings.h"
|
||||
|
||||
#include <QStyledItemDelegate>
|
||||
@@ -171,6 +172,38 @@ namespace glabels
|
||||
orientationCombo->setCurrentIndex( isRotated ? 0 : 1 );
|
||||
}
|
||||
mOldOrientationIndex = orientationCombo->currentIndex();
|
||||
|
||||
if ( auto* continuousFrame = dynamic_cast<const model::FrameContinuous*>( frame ) )
|
||||
{
|
||||
if (!mInLengthSpinChanged)
|
||||
{
|
||||
const QSignalBlocker blocker( lengthSpin );
|
||||
|
||||
lengthSpin->setSuffix( " " + mUnits.toTrName() );
|
||||
lengthSpin->setDecimals( mUnits.resolutionDigits() );
|
||||
lengthSpin->setSingleStep( mUnits.resolution() );
|
||||
lengthSpin->setMinimum( continuousFrame->hMin().inUnits( mUnits ) );
|
||||
lengthSpin->setMaximum( continuousFrame->hMax().inUnits( mUnits ) );
|
||||
lengthSpin->setValue( continuousFrame->h().inUnits( mUnits ) );
|
||||
}
|
||||
|
||||
parametersGroupBox->setVisible( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
parametersGroupBox->setVisible( false );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Length spin changed handler
|
||||
///
|
||||
void PropertiesView::onLengthSpinChanged()
|
||||
{
|
||||
mInLengthSpinChanged = true;
|
||||
mModel->setH( model::Distance( lengthSpin->value(), mUnits ) );
|
||||
mInLengthSpinChanged = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ namespace glabels
|
||||
private slots:
|
||||
void onSettingsChanged();
|
||||
void onLabelSizeChanged();
|
||||
void onLengthSpinChanged();
|
||||
void onOrientationActivated();
|
||||
void onChangeProductButtonClicked();
|
||||
|
||||
@@ -71,6 +72,8 @@ namespace glabels
|
||||
// Private Data
|
||||
/////////////////////////////////
|
||||
private:
|
||||
bool mInLengthSpinChanged{ false };
|
||||
|
||||
model::Model* mModel;
|
||||
UndoRedoModel* mUndoRedoModel;
|
||||
model::Units mUnits;
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
/* RollTemplatePath.cpp
|
||||
*
|
||||
* Copyright (C) 2014 Jim 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 "RollTemplatePath.h"
|
||||
|
||||
#include <QtDebug>
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
|
||||
///
|
||||
/// Constructor
|
||||
///
|
||||
RollTemplatePath::RollTemplatePath( const model::Template* tmplate )
|
||||
{
|
||||
if ( !tmplate->isRoll() )
|
||||
{
|
||||
qWarning() << "Not a \"Roll\" template type.";
|
||||
}
|
||||
|
||||
model::Distance x0 = (tmplate->pageWidth() - tmplate->rollWidth()) / 2.0;
|
||||
model::Distance w = tmplate->rollWidth();
|
||||
model::Distance h = tmplate->pageHeight();
|
||||
model::Distance c = 0.07*h;
|
||||
model::Distance b = 0.03*h;
|
||||
|
||||
const int nx = 18;
|
||||
|
||||
// Upper break line
|
||||
moveTo( x0.pt(), -c.pt() );
|
||||
for ( int ix = 1; ix <= nx; ix++ )
|
||||
{
|
||||
model::Distance x = ix * (w/double(nx)) + x0;
|
||||
double a = ix * (2*M_PI/double(nx));
|
||||
|
||||
lineTo( x.pt(), b.pt()*sin(a) - c.pt() );
|
||||
}
|
||||
|
||||
// Lower break line
|
||||
lineTo( (x0+w).pt(), (h+c).pt() );
|
||||
for ( int ix = nx-1; ix >= 0; ix-- )
|
||||
{
|
||||
model::Distance x = ix * (w/double(nx)) + x0;
|
||||
double a = ix * (2*M_PI/double(nx));
|
||||
|
||||
lineTo( x.pt(), b.pt()*sin(a) + h.pt() + c.pt() );
|
||||
}
|
||||
|
||||
// Close path
|
||||
closeSubpath();
|
||||
}
|
||||
|
||||
} // namespace glabels
|
||||
@@ -0,0 +1,49 @@
|
||||
/* RollTemplatePath.h
|
||||
*
|
||||
* Copyright (C) 2018 Jim 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 RollTemplatePath_h
|
||||
#define RollTemplatePath_h
|
||||
|
||||
|
||||
#include "model/Template.h"
|
||||
#include <QPainterPath>
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
|
||||
///
|
||||
/// Painter path for "Roll" templates
|
||||
///
|
||||
class RollTemplatePath : public QPainterPath
|
||||
{
|
||||
|
||||
/////////////////////////////////
|
||||
// Life Cycle
|
||||
/////////////////////////////////
|
||||
public:
|
||||
RollTemplatePath( const model::Template* tmplate );
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif // RollTemplatePath_h
|
||||
+27
-20
@@ -20,6 +20,9 @@
|
||||
|
||||
#include "SimplePreview.h"
|
||||
|
||||
#include "RollTemplatePath.h"
|
||||
|
||||
#include <QGraphicsPathItem>
|
||||
#include <QGraphicsRectItem>
|
||||
#include <QGraphicsDropShadowEffect>
|
||||
#include <QtDebug>
|
||||
@@ -33,7 +36,7 @@ namespace glabels
|
||||
//
|
||||
namespace
|
||||
{
|
||||
const QColor paperColor( 255, 255, 255 );
|
||||
const QColor paperColor( 242, 242, 242 );
|
||||
const QColor paperOutlineColor( 0, 0, 0 );
|
||||
const double paperOutlineWidthPixels = 1;
|
||||
|
||||
@@ -105,43 +108,39 @@ namespace glabels
|
||||
///
|
||||
void SimplePreview::update()
|
||||
{
|
||||
clearScene();
|
||||
mScene->clear();
|
||||
|
||||
if ( mTmplate != nullptr )
|
||||
{
|
||||
// For "Roll" templates, allow extra room to draw continuation break lines.
|
||||
model::Distance drawHeight = mTmplate->pageHeight();
|
||||
model::Distance drawOffset = 0;
|
||||
if ( mTmplate->isRoll() )
|
||||
{
|
||||
drawHeight = 1.2 * mTmplate->pageHeight();
|
||||
drawOffset = 0.1 * mTmplate->pageHeight();
|
||||
}
|
||||
|
||||
// Set scene up with a 5% margin around paper
|
||||
model::Distance x = -0.05 * mTmplate->pageWidth();
|
||||
model::Distance y = -0.05 * mTmplate->pageHeight();
|
||||
model::Distance y = -0.05 * drawHeight - drawOffset;
|
||||
model::Distance w = 1.10 * mTmplate->pageWidth();
|
||||
model::Distance h = 1.10 * mTmplate->pageHeight();
|
||||
model::Distance h = 1.10 * drawHeight;
|
||||
|
||||
mScene->setSceneRect( x.pt(), y.pt(), w.pt(), h.pt() );
|
||||
fitInView( mScene->sceneRect(), Qt::KeepAspectRatio );
|
||||
|
||||
drawPaper( mTmplate->pageWidth(), mTmplate->pageHeight() );
|
||||
drawPaper();
|
||||
drawLabels();
|
||||
drawArrow();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Clear View
|
||||
///
|
||||
void SimplePreview::clearScene()
|
||||
{
|
||||
foreach ( QGraphicsItem *item, mScene->items() )
|
||||
{
|
||||
mScene->removeItem( item );
|
||||
delete item;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Draw Paper
|
||||
///
|
||||
void SimplePreview::drawPaper( const model::Distance& pw, const model::Distance& ph )
|
||||
void SimplePreview::drawPaper()
|
||||
{
|
||||
auto *shadowEffect = new QGraphicsDropShadowEffect();
|
||||
shadowEffect->setColor( shadowColor );
|
||||
@@ -153,7 +152,15 @@ namespace glabels
|
||||
pen.setCosmetic( true );
|
||||
pen.setWidthF( paperOutlineWidthPixels );
|
||||
|
||||
auto *pageItem = new QGraphicsRectItem( 0, 0, pw.pt(), ph.pt() );
|
||||
QAbstractGraphicsShapeItem* pageItem;
|
||||
if ( !mTmplate->isRoll() )
|
||||
{
|
||||
pageItem = new QGraphicsRectItem( 0, 0, mTmplate->pageWidth().pt(), mTmplate->pageHeight().pt() );
|
||||
}
|
||||
else
|
||||
{
|
||||
pageItem = new QGraphicsPathItem( RollTemplatePath( mTmplate ) );
|
||||
}
|
||||
pageItem->setBrush( brush );
|
||||
pageItem->setPen( pen );
|
||||
pageItem->setGraphicsEffect( shadowEffect );
|
||||
|
||||
@@ -67,8 +67,7 @@ namespace glabels
|
||||
/////////////////////////////////
|
||||
private:
|
||||
void update();
|
||||
void clearScene();
|
||||
void drawPaper( const model::Distance& pw, const model::Distance& ph );
|
||||
void drawPaper();
|
||||
void drawLabels();
|
||||
void drawLabel( const model::Distance& x, const model::Distance& y, const QPainterPath& path );
|
||||
void drawArrow();
|
||||
|
||||
+226
-78
@@ -24,7 +24,9 @@
|
||||
#include "model/Db.h"
|
||||
#include "model/Distance.h"
|
||||
#include "model/FrameCd.h"
|
||||
#include "model/FrameContinuous.h"
|
||||
#include "model/FrameEllipse.h"
|
||||
#include "model/FramePath.h"
|
||||
#include "model/FrameRect.h"
|
||||
#include "model/FrameRound.h"
|
||||
#include "model/Markup.h"
|
||||
@@ -60,6 +62,8 @@ namespace glabels
|
||||
RoundPageId,
|
||||
EllipsePageId,
|
||||
CdPageId,
|
||||
PathPageId,
|
||||
ContinuousPageId,
|
||||
NLayoutsPageId,
|
||||
OneLayoutPageId,
|
||||
TwoLayoutPageId,
|
||||
@@ -114,18 +118,20 @@ namespace glabels
|
||||
setOption( QWizard::IndependentPages, false );
|
||||
setOption( QWizard::NoBackButtonOnStartPage, true );
|
||||
|
||||
setPage( IntroPageId, new TemplateDesignerIntroPage() );
|
||||
setPage( NamePageId, new TemplateDesignerNamePage() );
|
||||
setPage( PageSizePageId, new TemplateDesignerPageSizePage() );
|
||||
setPage( ShapePageId, new TemplateDesignerShapePage() );
|
||||
setPage( RectPageId, new TemplateDesignerRectPage() );
|
||||
setPage( RoundPageId, new TemplateDesignerRoundPage() );
|
||||
setPage( EllipsePageId, new TemplateDesignerEllipsePage() );
|
||||
setPage( CdPageId, new TemplateDesignerCdPage() );
|
||||
setPage( NLayoutsPageId, new TemplateDesignerNLayoutsPage() );
|
||||
setPage( OneLayoutPageId, new TemplateDesignerOneLayoutPage() );
|
||||
setPage( TwoLayoutPageId, new TemplateDesignerTwoLayoutPage() );
|
||||
setPage( ApplyPageId, new TemplateDesignerApplyPage() );
|
||||
setPage( IntroPageId, new TemplateDesignerIntroPage() );
|
||||
setPage( NamePageId, new TemplateDesignerNamePage() );
|
||||
setPage( PageSizePageId, new TemplateDesignerPageSizePage() );
|
||||
setPage( ShapePageId, new TemplateDesignerShapePage() );
|
||||
setPage( RectPageId, new TemplateDesignerRectPage() );
|
||||
setPage( RoundPageId, new TemplateDesignerRoundPage() );
|
||||
setPage( EllipsePageId, new TemplateDesignerEllipsePage() );
|
||||
setPage( CdPageId, new TemplateDesignerCdPage() );
|
||||
setPage( PathPageId, new TemplateDesignerPathPage() );
|
||||
setPage( ContinuousPageId, new TemplateDesignerContinuousPage() );
|
||||
setPage( NLayoutsPageId, new TemplateDesignerNLayoutsPage() );
|
||||
setPage( OneLayoutPageId, new TemplateDesignerOneLayoutPage() );
|
||||
setPage( TwoLayoutPageId, new TemplateDesignerTwoLayoutPage() );
|
||||
setPage( ApplyPageId, new TemplateDesignerApplyPage() );
|
||||
}
|
||||
|
||||
|
||||
@@ -136,16 +142,27 @@ namespace glabels
|
||||
{
|
||||
switch (currentId())
|
||||
{
|
||||
|
||||
|
||||
case IntroPageId:
|
||||
return NamePageId;
|
||||
|
||||
if ( mIsTemplatePathBased )
|
||||
{
|
||||
return PathPageId;
|
||||
}
|
||||
else if ( mIsTemplateContinuousBased )
|
||||
{
|
||||
return ContinuousPageId;
|
||||
}
|
||||
else
|
||||
{
|
||||
return NamePageId;
|
||||
}
|
||||
|
||||
case NamePageId:
|
||||
return PageSizePageId;
|
||||
|
||||
|
||||
case PageSizePageId:
|
||||
return ShapePageId;
|
||||
|
||||
|
||||
case ShapePageId:
|
||||
if ( field( "shape.rect" ).toBool() )
|
||||
{
|
||||
@@ -163,19 +180,53 @@ namespace glabels
|
||||
{
|
||||
return CdPageId;
|
||||
}
|
||||
|
||||
|
||||
case RectPageId:
|
||||
return NLayoutsPageId;
|
||||
|
||||
if ( field( "pageSize.pageSize" ) != tr("Roll") )
|
||||
{
|
||||
return NLayoutsPageId;
|
||||
}
|
||||
else
|
||||
{
|
||||
return OneLayoutPageId;
|
||||
}
|
||||
|
||||
case RoundPageId:
|
||||
return NLayoutsPageId;
|
||||
|
||||
if ( field( "pageSize.pageSize" ) != tr("Roll") )
|
||||
{
|
||||
return NLayoutsPageId;
|
||||
}
|
||||
else
|
||||
{
|
||||
return OneLayoutPageId;
|
||||
}
|
||||
|
||||
case EllipsePageId:
|
||||
return NLayoutsPageId;
|
||||
|
||||
if ( field( "pageSize.pageSize" ) != tr("Roll") )
|
||||
{
|
||||
return NLayoutsPageId;
|
||||
}
|
||||
else
|
||||
{
|
||||
return OneLayoutPageId;
|
||||
}
|
||||
|
||||
case CdPageId:
|
||||
return NLayoutsPageId;
|
||||
|
||||
if ( field( "pageSize.pageSize" ) != tr("Roll") )
|
||||
{
|
||||
return NLayoutsPageId;
|
||||
}
|
||||
else
|
||||
{
|
||||
return OneLayoutPageId;
|
||||
}
|
||||
|
||||
case PathPageId:
|
||||
return IntroPageId;
|
||||
|
||||
case ContinuousPageId:
|
||||
return IntroPageId;
|
||||
|
||||
case NLayoutsPageId:
|
||||
if ( field( "nLayouts.one" ).toBool() )
|
||||
{
|
||||
@@ -188,10 +239,10 @@ namespace glabels
|
||||
|
||||
case OneLayoutPageId:
|
||||
return ApplyPageId;
|
||||
|
||||
|
||||
case TwoLayoutPageId:
|
||||
return ApplyPageId;
|
||||
|
||||
|
||||
case ApplyPageId:
|
||||
default:
|
||||
return -1;
|
||||
@@ -326,8 +377,9 @@ namespace glabels
|
||||
QString paperId = model::Db::lookupPaperIdFromName( field( "pageSize.pageSize" ).toString() );
|
||||
model::Distance pageW( field( "pageSize.w" ).toDouble(), units );
|
||||
model::Distance pageH( field( "pageSize.h" ).toDouble(), units );
|
||||
model::Distance pageRollW( field( "pageSize.rollW" ).toDouble(), units );
|
||||
|
||||
auto t = new model::Template( brand, part, description, paperId, pageW, pageH, true );
|
||||
auto t = new model::Template( brand, part, description, paperId, pageW, pageH, pageRollW, true );
|
||||
|
||||
model::Frame* frame;
|
||||
if ( field( "shape.rect" ).toBool() )
|
||||
@@ -337,10 +389,11 @@ namespace glabels
|
||||
model::Distance r( field( "rect.r" ).toDouble(), units );
|
||||
model::Distance xWaste( field( "rect.xWaste" ).toDouble(), units );
|
||||
model::Distance yWaste( field( "rect.yWaste" ).toDouble(), units );
|
||||
model::Distance margin( field( "rect.margin" ).toDouble(), units );
|
||||
model::Distance xMargin( field( "rect.xMargin" ).toDouble(), units );
|
||||
model::Distance yMargin( field( "rect.yMargin" ).toDouble(), units );
|
||||
|
||||
frame = new model::FrameRect( w, h, r, xWaste, yWaste );
|
||||
frame->addMarkup( new model::MarkupMargin( frame, margin ) );
|
||||
frame->addMarkup( new model::MarkupMargin( xMargin, yMargin ) );
|
||||
}
|
||||
else if ( field( "shape.round" ).toBool() )
|
||||
{
|
||||
@@ -349,7 +402,7 @@ namespace glabels
|
||||
model::Distance margin( field( "round.margin" ).toDouble(), units );
|
||||
|
||||
frame = new model::FrameRound( r, waste );
|
||||
frame->addMarkup( new model::MarkupMargin( frame, margin ) );
|
||||
frame->addMarkup( new model::MarkupMargin( margin ) );
|
||||
}
|
||||
else if ( field( "shape.ellipse" ).toBool() )
|
||||
{
|
||||
@@ -359,7 +412,7 @@ namespace glabels
|
||||
model::Distance margin( field( "ellipse.margin" ).toDouble(), units );
|
||||
|
||||
frame = new model::FrameEllipse( w, h, waste );
|
||||
frame->addMarkup( new model::MarkupMargin( frame, margin ) );
|
||||
frame->addMarkup( new model::MarkupMargin( margin ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -371,7 +424,7 @@ namespace glabels
|
||||
model::Distance margin( field( "cd.margin" ).toDouble(), units );
|
||||
|
||||
frame = new model::FrameCd( r1, r2, xClip, yClip, waste );
|
||||
frame->addMarkup( new model::MarkupMargin( frame, margin ) );
|
||||
frame->addMarkup( new model::MarkupMargin( margin ) );
|
||||
}
|
||||
t->addFrame( frame );
|
||||
|
||||
@@ -384,7 +437,7 @@ namespace glabels
|
||||
model::Distance dx( field( "oneLayout.dx" ).toDouble(), units );
|
||||
model::Distance dy( field( "oneLayout.dy" ).toDouble(), units );
|
||||
|
||||
frame->addLayout( new model::Layout( nx, ny, x0, y0, dx, dy ) );
|
||||
frame->addLayout( model::Layout( nx, ny, x0, y0, dx, dy ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -402,8 +455,8 @@ namespace glabels
|
||||
model::Distance dx2( field( "twoLayout.dx2" ).toDouble(), units );
|
||||
model::Distance dy2( field( "twoLayout.dy2" ).toDouble(), units );
|
||||
|
||||
frame->addLayout( new model::Layout( nx1, ny1, x01, y01, dx1, dy1 ) );
|
||||
frame->addLayout( new model::Layout( nx2, ny2, x02, y02, dx2, dy2 ) );
|
||||
frame->addLayout( model::Layout( nx1, ny1, x01, y01, dx1, dy1 ) );
|
||||
frame->addLayout( model::Layout( nx2, ny2, x02, y02, dx2, dy2 ) );
|
||||
}
|
||||
|
||||
return t;
|
||||
@@ -458,6 +511,7 @@ namespace glabels
|
||||
setField( "pageSize.pageSize", model::Db::lookupPaperNameFromId( tmplate->paperId() ) );
|
||||
setField( "pageSize.w", tmplate->pageWidth().inUnits( units ) );
|
||||
setField( "pageSize.h", tmplate->pageHeight().inUnits( units ) );
|
||||
setField( "pageSize.rollW", tmplate->rollWidth().inUnits( units ) );
|
||||
|
||||
const model::Frame* frame = tmplate->frames().first();
|
||||
if ( auto frameRect = dynamic_cast<const model::FrameRect*>( frame ) )
|
||||
@@ -500,38 +554,39 @@ namespace glabels
|
||||
{
|
||||
if ( auto markupMargin = dynamic_cast<const model::MarkupMargin*>( markup ) )
|
||||
{
|
||||
setField( "rect.margin", markupMargin->size().inUnits( units ) );
|
||||
setField( "round.margin", markupMargin->size().inUnits( units ) );
|
||||
setField( "ellipse.margin", markupMargin->size().inUnits( units ) );
|
||||
setField( "cd.margin", markupMargin->size().inUnits( units ) );
|
||||
setField( "rect.xMargin", markupMargin->xSize().inUnits( units ) );
|
||||
setField( "rect.yMargin", markupMargin->ySize().inUnits( units ) );
|
||||
setField( "round.margin", markupMargin->xSize().inUnits( units ) );
|
||||
setField( "ellipse.margin", markupMargin->xSize().inUnits( units ) );
|
||||
setField( "cd.margin", markupMargin->xSize().inUnits( units ) );
|
||||
}
|
||||
}
|
||||
|
||||
QList<model::Layout*> layouts = frame->layouts();
|
||||
auto layouts = frame->layouts();
|
||||
if ( layouts.size() == 1 )
|
||||
{
|
||||
setField( "oneLayout.nx", layouts[0]->nx() );
|
||||
setField( "oneLayout.ny", layouts[0]->ny() );
|
||||
setField( "oneLayout.x0", layouts[0]->x0().inUnits( units ) );
|
||||
setField( "oneLayout.y0", layouts[0]->y0().inUnits( units ) );
|
||||
setField( "oneLayout.dx", layouts[0]->dx().inUnits( units ) );
|
||||
setField( "oneLayout.dy", layouts[0]->dy().inUnits( units ) );
|
||||
setField( "oneLayout.nx", layouts[0].nx() );
|
||||
setField( "oneLayout.ny", layouts[0].ny() );
|
||||
setField( "oneLayout.x0", layouts[0].x0().inUnits( units ) );
|
||||
setField( "oneLayout.y0", layouts[0].y0().inUnits( units ) );
|
||||
setField( "oneLayout.dx", layouts[0].dx().inUnits( units ) );
|
||||
setField( "oneLayout.dy", layouts[0].dy().inUnits( units ) );
|
||||
}
|
||||
else if ( layouts.size() > 1 )
|
||||
{
|
||||
setField( "twoLayout.nx1", layouts[0]->nx() );
|
||||
setField( "twoLayout.ny1", layouts[0]->ny() );
|
||||
setField( "twoLayout.x01", layouts[0]->x0().inUnits( units ) );
|
||||
setField( "twoLayout.y01", layouts[0]->y0().inUnits( units ) );
|
||||
setField( "twoLayout.dx1", layouts[0]->dx().inUnits( units ) );
|
||||
setField( "twoLayout.dy1", layouts[0]->dy().inUnits( units ) );
|
||||
setField( "twoLayout.nx1", layouts[0].nx() );
|
||||
setField( "twoLayout.ny1", layouts[0].ny() );
|
||||
setField( "twoLayout.x01", layouts[0].x0().inUnits( units ) );
|
||||
setField( "twoLayout.y01", layouts[0].y0().inUnits( units ) );
|
||||
setField( "twoLayout.dx1", layouts[0].dx().inUnits( units ) );
|
||||
setField( "twoLayout.dy1", layouts[0].dy().inUnits( units ) );
|
||||
|
||||
setField( "twoLayout.nx2", layouts[1]->nx() );
|
||||
setField( "twoLayout.ny2", layouts[1]->ny() );
|
||||
setField( "twoLayout.x02", layouts[1]->x0().inUnits( units ) );
|
||||
setField( "twoLayout.y02", layouts[1]->y0().inUnits( units ) );
|
||||
setField( "twoLayout.dx2", layouts[1]->dx().inUnits( units ) );
|
||||
setField( "twoLayout.dy2", layouts[1]->dy().inUnits( units ) );
|
||||
setField( "twoLayout.nx2", layouts[1].nx() );
|
||||
setField( "twoLayout.ny2", layouts[1].ny() );
|
||||
setField( "twoLayout.x02", layouts[1].x0().inUnits( units ) );
|
||||
setField( "twoLayout.y02", layouts[1].y0().inUnits( units ) );
|
||||
setField( "twoLayout.dx2", layouts[1].dx().inUnits( units ) );
|
||||
setField( "twoLayout.dy2", layouts[1].dy().inUnits( units ) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -583,7 +638,20 @@ namespace glabels
|
||||
{
|
||||
if ( auto td = dynamic_cast<TemplateDesigner*>( wizard() ) )
|
||||
{
|
||||
td->loadFromTemplate( tmplate );
|
||||
if ( dynamic_cast<model::FramePath*>(tmplate->frames().constFirst()) )
|
||||
{
|
||||
td->mIsTemplatePathBased = true;
|
||||
}
|
||||
else if ( dynamic_cast<model::FrameContinuous*>(tmplate->frames().constFirst()) )
|
||||
{
|
||||
td->mIsTemplateContinuousBased = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
td->mIsTemplatePathBased = false;
|
||||
td->mIsTemplateContinuousBased = false;
|
||||
td->loadFromTemplate( tmplate );
|
||||
}
|
||||
td->next();
|
||||
}
|
||||
}
|
||||
@@ -658,20 +726,30 @@ namespace glabels
|
||||
setupUi( widget );
|
||||
|
||||
pageSizeCombo->insertItem( 0, tr("Other") );
|
||||
pageSizeCombo->insertItems( 1, model::Db::paperNames() );
|
||||
pageSizeCombo->insertItem( 1, tr("Roll") );
|
||||
pageSizeCombo->insertItems( 2, model::Db::paperNames() );
|
||||
pageSizeCombo->setCurrentText( defaultPageSize[ model::Settings::preferedPageSizeFamily() ] );
|
||||
|
||||
bool isOther = pageSizeCombo->currentText() == tr("Other");
|
||||
bool isRoll = pageSizeCombo->currentText() == tr("Roll");
|
||||
|
||||
wSpin->setSuffix( " " + model::Settings::units().toTrName() );
|
||||
wSpin->setDecimals( model::Settings::units().resolutionDigits() );
|
||||
wSpin->setSingleStep( model::Settings::units().resolution() );
|
||||
wSpin->setMaximum( maxPageSize[ model::Settings::units().toEnum() ] );
|
||||
wSpin->setEnabled( pageSizeCombo->currentText() == tr("Other") );
|
||||
wSpin->setEnabled( isOther || isRoll );
|
||||
|
||||
hSpin->setSuffix( " " + model::Settings::units().toTrName() );
|
||||
hSpin->setDecimals( model::Settings::units().resolutionDigits() );
|
||||
hSpin->setSingleStep( model::Settings::units().resolution() );
|
||||
hSpin->setMaximum( maxPageSize[ model::Settings::units().toEnum() ] );
|
||||
hSpin->setEnabled( pageSizeCombo->currentText() == tr("Other") );
|
||||
hSpin->setEnabled( isOther || isRoll );
|
||||
|
||||
rollWSpin->setSuffix( " " + model::Settings::units().toTrName() );
|
||||
rollWSpin->setDecimals( model::Settings::units().resolutionDigits() );
|
||||
rollWSpin->setSingleStep( model::Settings::units().resolution() );
|
||||
rollWSpin->setMaximum( maxPageSize[ model::Settings::units().toEnum() ] );
|
||||
rollWSpin->setEnabled( isRoll );
|
||||
|
||||
if ( pageSizeCombo->currentText() != tr("Other") )
|
||||
{
|
||||
@@ -683,6 +761,7 @@ namespace glabels
|
||||
registerField( "pageSize.pageSize", pageSizeCombo, "currentText" );
|
||||
registerField( "pageSize.w", wSpin, "value" );
|
||||
registerField( "pageSize.h", hSpin, "value" );
|
||||
registerField( "pageSize.rollW", rollWSpin, "value" );
|
||||
|
||||
connect( pageSizeCombo, &QComboBox::currentTextChanged, this, &TemplateDesignerPageSizePage::onComboChanged );
|
||||
|
||||
@@ -705,15 +784,29 @@ namespace glabels
|
||||
|
||||
void TemplateDesignerPageSizePage::onComboChanged()
|
||||
{
|
||||
if ( pageSizeCombo->currentText() != tr("Other") )
|
||||
bool isOther = pageSizeCombo->currentText() == tr("Other");
|
||||
bool isRoll = pageSizeCombo->currentText() == tr("Roll");
|
||||
|
||||
if ( !isOther && !isRoll )
|
||||
{
|
||||
const model::Paper* paper = model::Db::lookupPaperFromName( pageSizeCombo->currentText() );
|
||||
wSpin->setValue( paper->width().inUnits( model::Settings::units() ) );
|
||||
hSpin->setValue( paper->height().inUnits( model::Settings::units() ) );
|
||||
}
|
||||
|
||||
wSpin->setEnabled( pageSizeCombo->currentText() == tr("Other") );
|
||||
hSpin->setEnabled( pageSizeCombo->currentText() == tr("Other") );
|
||||
if ( !isRoll )
|
||||
{
|
||||
rollWSpin->setValue( 0 );
|
||||
}
|
||||
|
||||
wLabel->setEnabled( isOther || isRoll );
|
||||
wSpin->setEnabled( isOther || isRoll );
|
||||
|
||||
hLabel->setEnabled( isOther || isRoll );
|
||||
hSpin->setEnabled( isOther || isRoll );
|
||||
|
||||
rollWLabel->setEnabled( isRoll );
|
||||
rollWSpin->setEnabled( isRoll );
|
||||
}
|
||||
|
||||
|
||||
@@ -781,16 +874,21 @@ namespace glabels
|
||||
yWasteSpin->setDecimals( model::Settings::units().resolutionDigits() );
|
||||
yWasteSpin->setSingleStep( model::Settings::units().resolution() );
|
||||
|
||||
marginSpin->setSuffix( " " + model::Settings::units().toTrName() );
|
||||
marginSpin->setDecimals( model::Settings::units().resolutionDigits() );
|
||||
marginSpin->setSingleStep( model::Settings::units().resolution() );
|
||||
xMarginSpin->setSuffix( " " + model::Settings::units().toTrName() );
|
||||
xMarginSpin->setDecimals( model::Settings::units().resolutionDigits() );
|
||||
xMarginSpin->setSingleStep( model::Settings::units().resolution() );
|
||||
|
||||
registerField( "rect.w", wSpin, "value" );
|
||||
registerField( "rect.h", hSpin, "value" );
|
||||
registerField( "rect.r", rSpin, "value" );
|
||||
registerField( "rect.xWaste", xWasteSpin, "value" );
|
||||
registerField( "rect.yWaste", yWasteSpin, "value" );
|
||||
registerField( "rect.margin", marginSpin, "value" );
|
||||
yMarginSpin->setSuffix( " " + model::Settings::units().toTrName() );
|
||||
yMarginSpin->setDecimals( model::Settings::units().resolutionDigits() );
|
||||
yMarginSpin->setSingleStep( model::Settings::units().resolution() );
|
||||
|
||||
registerField( "rect.w", wSpin, "value" );
|
||||
registerField( "rect.h", hSpin, "value" );
|
||||
registerField( "rect.r", rSpin, "value" );
|
||||
registerField( "rect.xWaste", xWasteSpin, "value" );
|
||||
registerField( "rect.yWaste", yWasteSpin, "value" );
|
||||
registerField( "rect.xMargin", xMarginSpin, "value" );
|
||||
registerField( "rect.yMargin", yMarginSpin, "value" );
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout;
|
||||
layout->addWidget( widget );
|
||||
@@ -811,7 +909,8 @@ namespace glabels
|
||||
rSpin->setMaximum( std::min(wMax,hMax)/2.0 );
|
||||
xWasteSpin->setMaximum( std::min(wMax,hMax)/4.0 );
|
||||
yWasteSpin->setMaximum( std::min(wMax,hMax)/4.0 );
|
||||
marginSpin->setMaximum( std::min(wMax,hMax)/4.0 );
|
||||
xMarginSpin->setMaximum( std::min(wMax,hMax)/4.0 );
|
||||
yMarginSpin->setMaximum( std::min(wMax,hMax)/4.0 );
|
||||
|
||||
static bool alreadyInitialized = false;
|
||||
if ( !td->isBasedOnCopy() && !alreadyInitialized )
|
||||
@@ -824,7 +923,8 @@ namespace glabels
|
||||
rSpin->setValue( defaultRectR.inUnits( model::Settings::units() ) );
|
||||
xWasteSpin->setValue( defaultWaste.inUnits( model::Settings::units() ) );
|
||||
yWasteSpin->setValue( defaultWaste.inUnits( model::Settings::units() ) );
|
||||
marginSpin->setValue( defaultMargin.inUnits( model::Settings::units() ) );
|
||||
xMarginSpin->setValue( defaultMargin.inUnits( model::Settings::units() ) );
|
||||
yMarginSpin->setValue( defaultMargin.inUnits( model::Settings::units() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1059,6 +1159,54 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Path Product Page
|
||||
///
|
||||
TemplateDesignerPathPage::TemplateDesignerPathPage( QWidget* parent ) : QWizardPage(parent)
|
||||
{
|
||||
setTitle( tr("Unsupported Product Style") );
|
||||
setSubTitle( tr("Path based product templates are not currently supported by the Product Template Designer.") );
|
||||
|
||||
QWidget* widget = new QWidget;
|
||||
setupUi( widget );
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout;
|
||||
layout->addWidget( widget );
|
||||
setLayout( layout );
|
||||
}
|
||||
|
||||
|
||||
bool TemplateDesignerPathPage::isComplete() const
|
||||
{
|
||||
// Must "Cancel" or "Back" from this page
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Continuous Product Page
|
||||
///
|
||||
TemplateDesignerContinuousPage::TemplateDesignerContinuousPage( QWidget* parent ) : QWizardPage(parent)
|
||||
{
|
||||
setTitle( tr("Unsupported Product Style") );
|
||||
setSubTitle( tr("Continuous tape product templates are not currently supported by the Product Template Designer.") );
|
||||
|
||||
QWidget* widget = new QWidget;
|
||||
setupUi( widget );
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout;
|
||||
layout->addWidget( widget );
|
||||
setLayout( layout );
|
||||
}
|
||||
|
||||
|
||||
bool TemplateDesignerContinuousPage::isComplete() const
|
||||
{
|
||||
// Must "Cancel" or "Back" from this page
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Number of Layouts Page
|
||||
///
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
#include "ui_TemplateDesignerRoundPage.h"
|
||||
#include "ui_TemplateDesignerEllipsePage.h"
|
||||
#include "ui_TemplateDesignerCdPage.h"
|
||||
#include "ui_TemplateDesignerPathPage.h"
|
||||
#include "ui_TemplateDesignerContinuousPage.h"
|
||||
#include "ui_TemplateDesignerNLayoutsPage.h"
|
||||
#include "ui_TemplateDesignerOneLayoutPage.h"
|
||||
#include "ui_TemplateDesignerTwoLayoutPage.h"
|
||||
@@ -59,6 +61,8 @@ namespace glabels
|
||||
friend class TemplateDesignerRoundPage;
|
||||
friend class TemplateDesignerEllipsePage;
|
||||
friend class TemplateDesignerCdPage;
|
||||
friend class TemplateDesignerPathPage;
|
||||
friend class TemplateDesignerContinuousPage;
|
||||
friend class TemplateDesignerNLayoutsPage;
|
||||
friend class TemplateDesignerOneLayoutPage;
|
||||
friend class TemplateDesignerTwoLayoutPage;
|
||||
@@ -92,7 +96,9 @@ namespace glabels
|
||||
// Private methods
|
||||
/////////////////////////////////
|
||||
private:
|
||||
bool mIsBasedOnCopy;
|
||||
bool mIsBasedOnCopy{false};
|
||||
bool mIsTemplatePathBased{false};
|
||||
bool mIsTemplateContinuousBased{false};
|
||||
};
|
||||
|
||||
|
||||
@@ -220,6 +226,32 @@ namespace glabels
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// Path Page
|
||||
//
|
||||
class TemplateDesignerPathPage : public QWizardPage, public Ui::TemplateDesignerPathPage
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TemplateDesignerPathPage( QWidget* parent = nullptr );
|
||||
|
||||
bool isComplete() const override;
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// Continuous Page
|
||||
//
|
||||
class TemplateDesignerContinuousPage : public QWizardPage, public Ui::TemplateDesignerContinuousPage
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TemplateDesignerContinuousPage( QWidget* parent = nullptr );
|
||||
|
||||
bool isComplete() const override;
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// NLayouts Page
|
||||
//
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>806</width>
|
||||
<width>886</width>
|
||||
<height>742</height>
|
||||
</rect>
|
||||
</property>
|
||||
@@ -25,7 +25,7 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<layout class="QGridLayout" name="gridLayout_5" columnstretch="0,0,0,0,1">
|
||||
<item row="0" column="4">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
@@ -42,7 +42,16 @@
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="margin">
|
||||
<property name="leftMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item>
|
||||
@@ -256,6 +265,51 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="parametersGroupBox">
|
||||
<property name="title">
|
||||
<string>Adjustable Parameters</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="horizontalSpacing">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QDoubleSpinBox" name="lengthSpin">
|
||||
<property name="accelerated">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true"> in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Label length:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>10</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="orientationGroupBox">
|
||||
<property name="sizePolicy">
|
||||
@@ -385,8 +439,8 @@
|
||||
<slot>onChangeProductButtonClicked()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>309</x>
|
||||
<y>239</y>
|
||||
<x>342</x>
|
||||
<y>291</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>728</x>
|
||||
@@ -401,8 +455,8 @@
|
||||
<slot>onOrientationActivated()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>308</x>
|
||||
<y>334</y>
|
||||
<x>342</x>
|
||||
<y>467</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>802</x>
|
||||
@@ -410,9 +464,26 @@
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>lengthSpin</sender>
|
||||
<signal>valueChanged(double)</signal>
|
||||
<receiver>PropertiesView</receiver>
|
||||
<slot>onLengthSpinChanged()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>188</x>
|
||||
<y>349</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>801</x>
|
||||
<y>376</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
<slots>
|
||||
<slot>onChangeProductButtonClicked()</slot>
|
||||
<slot>onOrientationActivated()</slot>
|
||||
<slot>onLengthSpinChanged()</slot>
|
||||
</slots>
|
||||
</ui>
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>TemplateDesignerContinuousPage</class>
|
||||
<widget class="QWidget" name="TemplateDesignerContinuousPage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>400</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>640</width>
|
||||
<height>400</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>18</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p>Click &quot;Cancel&quot; to quit, or click &quot;Back&quot; to begin with a different product.</p></body></html></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -25,54 +25,19 @@
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Page size:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Width:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="wSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Height:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QDoubleSpinBox" name="hSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="pageSizeCombo"/>
|
||||
</item>
|
||||
</layout>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="1" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>173</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="horizontalSpacer">
|
||||
@@ -87,18 +52,80 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="spacing">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>173</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="1">
|
||||
<widget class="QDoubleSpinBox" name="hSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="rollWLabel">
|
||||
<property name="text">
|
||||
<string>Roll width:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="hLabel">
|
||||
<property name="text">
|
||||
<string>Height:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="pageSizeCombo"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="wLabel">
|
||||
<property name="text">
|
||||
<string>Width:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QDoubleSpinBox" name="rollWSpin">
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="wSpin">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Page size:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>TemplateDesignerPathPage</class>
|
||||
<widget class="QWidget" name="TemplateDesignerPathPage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>400</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>640</width>
|
||||
<height>400</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>18</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p>Click &quot;Cancel&quot; to quit, or click &quot;Back&quot; to begin with a different product.</p></body></html></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -30,25 +30,15 @@
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>2. Height:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QDoubleSpinBox" name="rSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
<string>4. Horizontal waste:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QDoubleSpinBox" name="marginSpin">
|
||||
<widget class="QDoubleSpinBox" name="xMarginSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
@@ -57,23 +47,10 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QDoubleSpinBox" name="yWasteSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="hSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>3. Corner radius</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -94,24 +71,54 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>4. Horizontal waste:</string>
|
||||
<item row="2" column="1">
|
||||
<widget class="QDoubleSpinBox" name="rSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>3. Corner radius</string>
|
||||
<string>5. Vertical waste:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="hSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QDoubleSpinBox" name="yWasteSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string notr="true">in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>2. Height:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>6. Margin:</string>
|
||||
<string>6. Margin (X):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -125,10 +132,20 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>5. Vertical waste:</string>
|
||||
<string>7. Margin (Y):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QDoubleSpinBox" name="yMarginSpin">
|
||||
<property name="accelerated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string>in</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -26,7 +26,9 @@ set (Model_sources
|
||||
FileUtil.cpp
|
||||
Frame.cpp
|
||||
FrameCd.cpp
|
||||
FrameContinuous.cpp
|
||||
FrameEllipse.cpp
|
||||
FramePath.cpp
|
||||
FrameRect.cpp
|
||||
FrameRound.cpp
|
||||
Handles.cpp
|
||||
|
||||
+15
-11
@@ -67,13 +67,10 @@ namespace glabels
|
||||
QList<Vendor*> Db::mVendors;
|
||||
QStringList Db::mVendorNames;
|
||||
QList<Template*> Db::mTemplates;
|
||||
QString Db::mPaperNameOther;
|
||||
|
||||
|
||||
Db::Db()
|
||||
{
|
||||
mPaperNameOther = tr("Other");
|
||||
|
||||
readPapers();
|
||||
readCategories();
|
||||
readVendors();
|
||||
@@ -209,6 +206,15 @@ namespace glabels
|
||||
{
|
||||
if ( !name.isNull() && !name.isEmpty() )
|
||||
{
|
||||
if ( name == tr("Other") )
|
||||
{
|
||||
return "other";
|
||||
}
|
||||
else if ( name == tr("Roll") )
|
||||
{
|
||||
return "roll";
|
||||
}
|
||||
|
||||
const Paper *paper = lookupPaperFromName( name );
|
||||
if ( paper != nullptr )
|
||||
{
|
||||
@@ -225,9 +231,13 @@ namespace glabels
|
||||
{
|
||||
if ( !id.isNull() && !id.isEmpty() )
|
||||
{
|
||||
if ( isPaperIdOther( id ) )
|
||||
if ( id == "roll" )
|
||||
{
|
||||
return mPaperNameOther;
|
||||
return tr("Roll");
|
||||
}
|
||||
else
|
||||
{
|
||||
return tr("Other");
|
||||
}
|
||||
|
||||
const Paper *paper = lookupPaperFromId( id );
|
||||
@@ -256,12 +266,6 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
bool Db::isPaperIdOther( const QString& id )
|
||||
{
|
||||
return ( id == "Other" );
|
||||
}
|
||||
|
||||
|
||||
void Db::registerCategory( Category *category )
|
||||
{
|
||||
if ( !isCategoryIdKnown( category->id() ) )
|
||||
|
||||
@@ -71,7 +71,6 @@ namespace glabels
|
||||
static QString lookupPaperIdFromName( const QString& name );
|
||||
static QString lookupPaperNameFromId( const QString& id );
|
||||
static bool isPaperIdKnown( const QString& id );
|
||||
static bool isPaperIdOther( const QString& id );
|
||||
|
||||
static void registerCategory( Category *category );
|
||||
static const Category *lookupCategoryFromName( const QString& name );
|
||||
@@ -134,8 +133,6 @@ namespace glabels
|
||||
|
||||
static QList<Template*> mTemplates;
|
||||
|
||||
static QString mPaperNameOther;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -208,3 +208,13 @@ namespace glabels
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Distance& distance )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << distance.pt() << "pt";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ namespace glabels
|
||||
|
||||
Distance& operator+=( const Distance& d );
|
||||
Distance& operator-=( const Distance& d );
|
||||
Distance& operator*=( double f );
|
||||
Distance operator-();
|
||||
|
||||
friend inline Distance operator+( const Distance& d1, const Distance& d2 );
|
||||
@@ -100,6 +101,10 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Distance& distance );
|
||||
|
||||
|
||||
//
|
||||
// Inline methods
|
||||
//
|
||||
@@ -200,6 +205,13 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
inline Distance& Distance::operator*=( double f )
|
||||
{
|
||||
mDPts *= f;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
inline Distance Distance::operator-()
|
||||
{
|
||||
return Distance::pt( -mDPts );
|
||||
|
||||
+66
-11
@@ -20,6 +20,12 @@
|
||||
|
||||
#include "Frame.h"
|
||||
|
||||
#include "FrameCd.h"
|
||||
#include "FrameContinuous.h"
|
||||
#include "FrameEllipse.h"
|
||||
#include "FramePath.h"
|
||||
#include "FrameRect.h"
|
||||
#include "FrameRound.h"
|
||||
#include "Markup.h"
|
||||
|
||||
#include <algorithm>
|
||||
@@ -42,12 +48,12 @@ namespace glabels
|
||||
mId = other.mId;
|
||||
mNLabels = 0;
|
||||
|
||||
foreach ( Layout *layout, mLayouts )
|
||||
foreach ( const Layout& layout, other.mLayouts )
|
||||
{
|
||||
addLayout( layout->dup() );
|
||||
addLayout( layout );
|
||||
}
|
||||
|
||||
foreach ( Markup *markup, mMarkups )
|
||||
foreach ( Markup *markup, other.mMarkups )
|
||||
{
|
||||
addMarkup( markup->dup() );
|
||||
}
|
||||
@@ -72,7 +78,7 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
const QList<Layout*>& Frame::layouts() const
|
||||
const QList<Layout>& Frame::layouts() const
|
||||
{
|
||||
return mLayouts;
|
||||
}
|
||||
@@ -89,13 +95,13 @@ namespace glabels
|
||||
QVector<Point> origins( nLabels() );
|
||||
|
||||
int i = 0;
|
||||
foreach ( Layout *layout, mLayouts )
|
||||
foreach ( const Layout& layout, mLayouts )
|
||||
{
|
||||
for ( int iy = 0; iy < layout->ny(); iy++ )
|
||||
for ( int iy = 0; iy < layout.ny(); iy++ )
|
||||
{
|
||||
for ( int ix = 0; ix < layout->nx(); ix++ )
|
||||
for ( int ix = 0; ix < layout.nx(); ix++ )
|
||||
{
|
||||
origins[i++] = Point( ix*layout->dx() + layout->x0(), iy*layout->dy() + layout->y0() );
|
||||
origins[i++] = Point( ix*layout.dx() + layout.x0(), iy*layout.dy() + layout.y0() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -106,12 +112,12 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
void Frame::addLayout( Layout *layout )
|
||||
void Frame::addLayout( const Layout& layout )
|
||||
{
|
||||
mLayouts << layout;
|
||||
|
||||
// Update total number of labels
|
||||
mNLabels += layout->nx() * layout->ny();
|
||||
mNLabels += layout.nx() * layout.ny();
|
||||
|
||||
// Update layout description
|
||||
if ( mLayouts.size() == 1 )
|
||||
@@ -122,7 +128,7 @@ namespace glabels
|
||||
* %3 = total number of labels on a page (sheet).
|
||||
*/
|
||||
mLayoutDescription = QString( tr("%1 x %2 (%3 per sheet)") )
|
||||
.arg(layout->nx()).arg(layout->ny()).arg(mNLabels);
|
||||
.arg(layout.nx()).arg(layout.ny()).arg(mNLabels);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -137,5 +143,54 @@ namespace glabels
|
||||
mMarkups << markup;
|
||||
}
|
||||
|
||||
|
||||
void Frame::setH( const Distance& h )
|
||||
{
|
||||
// Default implementation does nothing
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Frame& frame )
|
||||
{
|
||||
if ( auto* frameCd = dynamic_cast<const glabels::model::FrameCd*>(&frame) )
|
||||
{
|
||||
dbg << *frameCd;
|
||||
return dbg;
|
||||
}
|
||||
else if ( auto* frameContinuous = dynamic_cast<const glabels::model::FrameContinuous*>(&frame) )
|
||||
{
|
||||
dbg << *frameContinuous;
|
||||
return dbg;
|
||||
}
|
||||
else if ( auto* frameEllipse = dynamic_cast<const glabels::model::FrameEllipse*>(&frame) )
|
||||
{
|
||||
dbg << *frameEllipse;
|
||||
return dbg;
|
||||
}
|
||||
else if ( auto* framePath = dynamic_cast<const glabels::model::FramePath*>(&frame) )
|
||||
{
|
||||
dbg << *framePath;
|
||||
return dbg;
|
||||
}
|
||||
else if ( auto* frameRect = dynamic_cast<const glabels::model::FrameRect*>(&frame) )
|
||||
{
|
||||
dbg << *frameRect;
|
||||
return dbg;
|
||||
}
|
||||
else if ( auto* frameRound = dynamic_cast<const glabels::model::FrameRound*>(&frame) )
|
||||
{
|
||||
dbg << *frameRound;
|
||||
return dbg;
|
||||
}
|
||||
else
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "UNKNOWN FRAME";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
}
|
||||
|
||||
+12
-4
@@ -27,6 +27,7 @@
|
||||
#include "Point.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
#include <QList>
|
||||
#include <QPainterPath>
|
||||
#include <QString>
|
||||
@@ -56,23 +57,26 @@ namespace glabels
|
||||
QString id() const;
|
||||
int nLabels() const;
|
||||
QString layoutDescription() const;
|
||||
const QList<Layout*>& layouts() const;
|
||||
const QList<Layout>& layouts() const;
|
||||
const QList<Markup*>& markups() const;
|
||||
|
||||
QVector<Point> getOrigins() const;
|
||||
|
||||
void addLayout( Layout* layout );
|
||||
void addLayout( const Layout& layout );
|
||||
void addMarkup( Markup* markup );
|
||||
|
||||
virtual Distance w() const = 0;
|
||||
virtual Distance h() const = 0;
|
||||
|
||||
virtual void setH( const Distance& h );
|
||||
|
||||
virtual QString sizeDescription( const Units& units ) const = 0;
|
||||
virtual bool isSimilarTo( Frame* other ) const = 0;
|
||||
|
||||
virtual const QPainterPath& path() const = 0;
|
||||
virtual const QPainterPath& clipPath() const = 0;
|
||||
virtual QPainterPath marginPath( const Distance& size ) const = 0;
|
||||
virtual QPainterPath marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const = 0;
|
||||
|
||||
|
||||
private:
|
||||
@@ -80,7 +84,7 @@ namespace glabels
|
||||
int mNLabels;
|
||||
QString mLayoutDescription;
|
||||
|
||||
QList<Layout*> mLayouts;
|
||||
QList<Layout> mLayouts;
|
||||
QList<Markup*> mMarkups;
|
||||
};
|
||||
|
||||
@@ -88,4 +92,8 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Frame& frame );
|
||||
|
||||
|
||||
#endif // model_Frame_h
|
||||
|
||||
+24
-10
@@ -93,15 +93,6 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
FrameCd::FrameCd( const FrameCd& other )
|
||||
: Frame(other),
|
||||
mR1(other.mR1), mR2(other.mR2), mW(other.mW), mH(other.mH), mWaste(other.mWaste),
|
||||
mPath(other.mPath)
|
||||
{
|
||||
// empty
|
||||
}
|
||||
|
||||
|
||||
Frame* FrameCd::dup() const
|
||||
{
|
||||
return new FrameCd( *this );
|
||||
@@ -187,8 +178,12 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
QPainterPath FrameCd::marginPath( const Distance& size ) const
|
||||
QPainterPath FrameCd::marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const
|
||||
{
|
||||
// Note: ignore ySize, assume xSize == ySize
|
||||
Distance size = xSize;
|
||||
|
||||
Distance wReal = (mW == 0) ? 2*mR1 : mW;
|
||||
Distance hReal = (mH == 0) ? 2*mR1 : mH;
|
||||
|
||||
@@ -219,3 +214,22 @@ namespace glabels
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameCd& frame )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "FrameCd{ "
|
||||
<< frame.id() << ","
|
||||
<< frame.r1() << ","
|
||||
<< frame.r2() << ","
|
||||
<< frame.waste() << ","
|
||||
<< frame.w() << ","
|
||||
<< frame.h() << ","
|
||||
<< frame.layouts() << ","
|
||||
<< frame.markups()
|
||||
<< " }";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
|
||||
+7
-2
@@ -42,7 +42,7 @@ namespace glabels
|
||||
const Distance& waste,
|
||||
const QString& id = "0" );
|
||||
|
||||
FrameCd( const FrameCd &other );
|
||||
FrameCd( const FrameCd &other ) = default;
|
||||
|
||||
Frame *dup() const override;
|
||||
|
||||
@@ -58,7 +58,8 @@ namespace glabels
|
||||
|
||||
const QPainterPath& path() const override;
|
||||
const QPainterPath& clipPath() const override;
|
||||
QPainterPath marginPath( const Distance& size ) const override;
|
||||
QPainterPath marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const override;
|
||||
|
||||
|
||||
private:
|
||||
@@ -77,4 +78,8 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameCd& frame );
|
||||
|
||||
|
||||
#endif // model_FrameCd_h
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
/* FrameContinuous.cpp
|
||||
*
|
||||
* Copyright (C) 2018 Jim 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 "FrameContinuous.h"
|
||||
|
||||
#include "Constants.h"
|
||||
#include "StrUtil.h"
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
namespace model
|
||||
{
|
||||
|
||||
FrameContinuous::FrameContinuous( const Distance& w,
|
||||
const Distance& hMin,
|
||||
const Distance& hMax,
|
||||
const Distance& hDefault,
|
||||
const QString& id )
|
||||
: Frame(id), mW(w), mHMin(hMin), mHMax(hMax), mHDefault(hDefault), mH(hDefault)
|
||||
{
|
||||
mPath.addRect( 0, 0, mW.pt(), mH.pt() );
|
||||
}
|
||||
|
||||
|
||||
Frame* FrameContinuous::dup() const
|
||||
{
|
||||
return new FrameContinuous( *this );
|
||||
}
|
||||
|
||||
|
||||
Distance FrameContinuous::w() const
|
||||
{
|
||||
return mW;
|
||||
}
|
||||
|
||||
|
||||
Distance FrameContinuous::h() const
|
||||
{
|
||||
return mH;
|
||||
}
|
||||
|
||||
|
||||
Distance FrameContinuous::hMin() const
|
||||
{
|
||||
return mHMin;
|
||||
}
|
||||
|
||||
|
||||
Distance FrameContinuous::hMax() const
|
||||
{
|
||||
return mHMax;
|
||||
}
|
||||
|
||||
|
||||
Distance FrameContinuous::hDefault() const
|
||||
{
|
||||
return mHDefault;
|
||||
}
|
||||
|
||||
|
||||
void FrameContinuous::setH( const Distance& h )
|
||||
{
|
||||
mH = h;
|
||||
mPath = QPainterPath(); // clear path
|
||||
mPath.addRect( 0, 0, mW.pt(), mH.pt() );
|
||||
}
|
||||
|
||||
|
||||
QString FrameContinuous::sizeDescription( const Units& units ) const
|
||||
{
|
||||
if ( units.toEnum() == Units::IN )
|
||||
{
|
||||
QString wStr = StrUtil::formatFraction( mW.in() );
|
||||
|
||||
return QString().sprintf( "%s %s %s",
|
||||
qPrintable(wStr),
|
||||
qPrintable(units.toTrName()),
|
||||
qPrintable(tr("wide")) );
|
||||
}
|
||||
else
|
||||
{
|
||||
return QString().sprintf( "%.3f %s %s",
|
||||
mW.inUnits(units),
|
||||
qPrintable(units.toTrName()),
|
||||
qPrintable(tr("wide")) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool FrameContinuous::isSimilarTo( Frame* other ) const
|
||||
{
|
||||
if ( auto *otherContinuous = dynamic_cast<FrameContinuous*>(other) )
|
||||
{
|
||||
if ( fabs( mW - otherContinuous->mW ) <= EPSILON )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
const QPainterPath& FrameContinuous::path() const
|
||||
{
|
||||
return mPath;
|
||||
}
|
||||
|
||||
|
||||
const QPainterPath& FrameContinuous::clipPath() const
|
||||
{
|
||||
return mPath;
|
||||
}
|
||||
|
||||
|
||||
QPainterPath FrameContinuous::marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const
|
||||
{
|
||||
Distance w = mW - 2*xSize;
|
||||
Distance h = mH - 2*ySize;
|
||||
|
||||
QPainterPath path;
|
||||
path.addRect( xSize.pt(), ySize.pt(), w.pt(), h.pt() );
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameContinuous& frame )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "FrameContinuous{ "
|
||||
<< frame.id() << ","
|
||||
<< frame.w() << ","
|
||||
<< frame.h() << ","
|
||||
<< frame.hMin() << ","
|
||||
<< frame.hMax() << ","
|
||||
<< frame.hDefault() << ","
|
||||
<< frame.layouts() << ","
|
||||
<< frame.markups()
|
||||
<< " }";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
/* FrameContinuous.h
|
||||
*
|
||||
* Copyright (C) 2018 Jim 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_FrameContinuous_h
|
||||
#define model_FrameContinuous_h
|
||||
|
||||
|
||||
#include "Frame.h"
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
namespace model
|
||||
{
|
||||
|
||||
class FrameContinuous : public Frame
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(FrameContinuous)
|
||||
|
||||
public:
|
||||
FrameContinuous( const Distance& w,
|
||||
const Distance& hMin,
|
||||
const Distance& hMax,
|
||||
const Distance& hDefault,
|
||||
const QString& id = "0" );
|
||||
|
||||
FrameContinuous( const FrameContinuous& other ) = default;
|
||||
|
||||
Frame* dup() const override;
|
||||
|
||||
Distance w() const override;
|
||||
Distance h() const override;
|
||||
|
||||
Distance hMin() const;
|
||||
Distance hMax() const;
|
||||
Distance hDefault() const;
|
||||
|
||||
void setH( const Distance& h ) override;
|
||||
|
||||
QString sizeDescription( const Units& units ) const override;
|
||||
|
||||
bool isSimilarTo( Frame* other ) const override;
|
||||
|
||||
const QPainterPath& path() const override;
|
||||
const QPainterPath& clipPath() const override;
|
||||
QPainterPath marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const override;
|
||||
|
||||
|
||||
private:
|
||||
Distance mW;
|
||||
Distance mHMin;
|
||||
Distance mHMax;
|
||||
Distance mHDefault;
|
||||
Distance mH;
|
||||
|
||||
QPainterPath mPath;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameContinuous& frame );
|
||||
|
||||
|
||||
#endif // model_FrameContinuous_h
|
||||
+22
-8
@@ -40,13 +40,6 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
FrameEllipse::FrameEllipse( const FrameEllipse& other )
|
||||
: Frame(other), mW(other.mW), mH(other.mH), mWaste(other.mWaste), mPath(other.mPath)
|
||||
{
|
||||
// empty
|
||||
}
|
||||
|
||||
|
||||
Frame* FrameEllipse::dup() const
|
||||
{
|
||||
return new FrameEllipse( *this );
|
||||
@@ -119,8 +112,12 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
QPainterPath FrameEllipse::marginPath( const Distance& size ) const
|
||||
QPainterPath FrameEllipse::marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const
|
||||
{
|
||||
// Note: ignore ySize, assume xSize == ySize
|
||||
Distance size = xSize;
|
||||
|
||||
Distance w = mW - 2*size;
|
||||
Distance h = mH - 2*size;
|
||||
|
||||
@@ -132,3 +129,20 @@ namespace glabels
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameEllipse& frame )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "FrameEllipse{ "
|
||||
<< frame.id() << ","
|
||||
<< frame.w() << ","
|
||||
<< frame.h() << ","
|
||||
<< frame.waste() << ","
|
||||
<< frame.layouts() << ","
|
||||
<< frame.markups()
|
||||
<< " }";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace glabels
|
||||
const Distance& waste,
|
||||
const QString& id = "0" );
|
||||
|
||||
FrameEllipse( const FrameEllipse& other );
|
||||
FrameEllipse( const FrameEllipse& other ) = default;
|
||||
|
||||
Frame* dup() const override;
|
||||
|
||||
@@ -54,7 +54,8 @@ namespace glabels
|
||||
|
||||
const QPainterPath& path() const override;
|
||||
const QPainterPath& clipPath() const override;
|
||||
QPainterPath marginPath( const Distance& size ) const override;
|
||||
QPainterPath marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const override;
|
||||
|
||||
|
||||
private:
|
||||
@@ -71,4 +72,8 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameEllipse& frame );
|
||||
|
||||
|
||||
#endif // model_FrameEllipse_h
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
/* FramePath.cpp
|
||||
*
|
||||
* Copyright (C) 2018 Jim 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 "FramePath.h"
|
||||
|
||||
#include "Constants.h"
|
||||
#include "StrUtil.h"
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
namespace model
|
||||
{
|
||||
|
||||
FramePath::FramePath( const QPainterPath& path,
|
||||
const Distance& xWaste,
|
||||
const Distance& yWaste,
|
||||
const Units& originalUnits,
|
||||
const QString& id )
|
||||
: Frame(id), mXWaste(xWaste), mYWaste(yWaste), mPath(path), mOriginalUnits(originalUnits)
|
||||
{
|
||||
QRectF r = path.boundingRect();
|
||||
|
||||
mW = Distance::pt( r.width() );
|
||||
mH = Distance::pt( r.height() );
|
||||
|
||||
mClipPath.addRect( r.x()-mXWaste.pt(), r.y()-mYWaste.pt(),
|
||||
r.width() + 2*mXWaste.pt(), r.height() + 2*mYWaste.pt() );
|
||||
}
|
||||
|
||||
|
||||
Frame* FramePath::dup() const
|
||||
{
|
||||
return new FramePath( *this );
|
||||
}
|
||||
|
||||
|
||||
Distance FramePath::w() const
|
||||
{
|
||||
return mW;
|
||||
}
|
||||
|
||||
|
||||
Distance FramePath::h() const
|
||||
{
|
||||
return mH;
|
||||
}
|
||||
|
||||
|
||||
Distance FramePath::xWaste() const
|
||||
{
|
||||
return mXWaste;
|
||||
}
|
||||
|
||||
|
||||
Distance FramePath::yWaste() const
|
||||
{
|
||||
return mYWaste;
|
||||
}
|
||||
|
||||
|
||||
Units FramePath::originalUnits() const
|
||||
{
|
||||
return mOriginalUnits;
|
||||
}
|
||||
|
||||
|
||||
QString FramePath::sizeDescription( const Units& units ) const
|
||||
{
|
||||
if ( units.toEnum() == Units::IN )
|
||||
{
|
||||
QString wStr = StrUtil::formatFraction( mW.in() );
|
||||
QString hStr = StrUtil::formatFraction( mH.in() );
|
||||
|
||||
return QString().sprintf( "%s x %s %s",
|
||||
qPrintable(wStr),
|
||||
qPrintable(hStr),
|
||||
qPrintable(units.toTrName()) );
|
||||
}
|
||||
else
|
||||
{
|
||||
return QString().sprintf( "%.5g x %.5g %s",
|
||||
mW.inUnits(units),
|
||||
mH.inUnits(units),
|
||||
qPrintable(units.toTrName()) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool FramePath::isSimilarTo( Frame* other ) const
|
||||
{
|
||||
if ( auto *otherPath = dynamic_cast<FramePath*>(other) )
|
||||
{
|
||||
if ( mPath == otherPath->mPath )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
const QPainterPath& FramePath::path() const
|
||||
{
|
||||
return mPath;
|
||||
}
|
||||
|
||||
|
||||
const QPainterPath& FramePath::clipPath() const
|
||||
{
|
||||
return mClipPath;
|
||||
}
|
||||
|
||||
|
||||
QPainterPath FramePath::marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const
|
||||
{
|
||||
return mPath; // No margin
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FramePath& frame )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "FramePath{ "
|
||||
<< frame.id() << ","
|
||||
<< frame.path() << ","
|
||||
<< frame.xWaste() << ","
|
||||
<< frame.yWaste() << ","
|
||||
<< frame.layouts() << ","
|
||||
<< frame.markups()
|
||||
<< " }";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
/* FramePath.h
|
||||
*
|
||||
* Copyright (C) 2018 Jim 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_FramePath_h
|
||||
#define model_FramePath_h
|
||||
|
||||
|
||||
#include "Frame.h"
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
namespace model
|
||||
{
|
||||
|
||||
class FramePath : public Frame
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(FramePath)
|
||||
|
||||
public:
|
||||
FramePath( const QPainterPath& path,
|
||||
const Distance& xWaste,
|
||||
const Distance& yWaste,
|
||||
const Units& originalUnits,
|
||||
const QString& id = "0" );
|
||||
|
||||
FramePath( const FramePath& other ) = default;
|
||||
|
||||
Frame* dup() const override;
|
||||
|
||||
Distance xWaste() const;
|
||||
Distance yWaste() const;
|
||||
|
||||
Units originalUnits() const;
|
||||
|
||||
Distance w() const override;
|
||||
Distance h() const override;
|
||||
|
||||
QString sizeDescription( const Units& units ) const override;
|
||||
|
||||
bool isSimilarTo( Frame* other ) const override;
|
||||
|
||||
const QPainterPath& path() const override;
|
||||
const QPainterPath& clipPath() const override;
|
||||
QPainterPath marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const override;
|
||||
|
||||
|
||||
private:
|
||||
Distance mW;
|
||||
Distance mH;
|
||||
Distance mXWaste;
|
||||
Distance mYWaste;
|
||||
|
||||
QPainterPath mPath;
|
||||
QPainterPath mClipPath;
|
||||
|
||||
Units mOriginalUnits;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FramePath& frame );
|
||||
|
||||
|
||||
#endif // model_FramePath_h
|
||||
+25
-14
@@ -44,16 +44,7 @@ namespace glabels
|
||||
mR.pt(), mR.pt() );
|
||||
}
|
||||
|
||||
|
||||
FrameRect::FrameRect( const FrameRect &other )
|
||||
: Frame(other),
|
||||
mW(other.mW), mH(other.mH), mR(other.mR), mXWaste(other.mXWaste),
|
||||
mYWaste(other.mYWaste), mPath(other.mPath)
|
||||
{
|
||||
// empty
|
||||
}
|
||||
|
||||
|
||||
Frame* FrameRect::dup() const
|
||||
{
|
||||
return new FrameRect( *this );
|
||||
@@ -138,14 +129,15 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
QPainterPath FrameRect::marginPath( const Distance& size ) const
|
||||
QPainterPath FrameRect::marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const
|
||||
{
|
||||
Distance w = mW - 2*size;
|
||||
Distance h = mH - 2*size;
|
||||
Distance r = std::max( mR - size, Distance(0.0) );
|
||||
Distance w = mW - 2*xSize;
|
||||
Distance h = mH - 2*ySize;
|
||||
Distance r = std::max( mR - std::min(xSize, ySize), Distance(0.0) );
|
||||
|
||||
QPainterPath path;
|
||||
path.addRoundedRect( size.pt(), size.pt(), w.pt(), h.pt(), r.pt(), r.pt() );
|
||||
path.addRoundedRect( xSize.pt(), ySize.pt(), w.pt(), h.pt(), r.pt(), r.pt() );
|
||||
|
||||
return path;
|
||||
}
|
||||
@@ -153,3 +145,22 @@ namespace glabels
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameRect& frame )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "FrameRect{ "
|
||||
<< frame.id() << ","
|
||||
<< frame.w() << ","
|
||||
<< frame.h() << ","
|
||||
<< frame.r() << ","
|
||||
<< frame.xWaste() << ","
|
||||
<< frame.yWaste() << ","
|
||||
<< frame.layouts() << ","
|
||||
<< frame.markups()
|
||||
<< " }";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
|
||||
+7
-2
@@ -42,7 +42,7 @@ namespace glabels
|
||||
const Distance& yWaste,
|
||||
const QString& id = "0" );
|
||||
|
||||
FrameRect( const FrameRect& other );
|
||||
FrameRect( const FrameRect& other ) = default;
|
||||
|
||||
Frame* dup() const override;
|
||||
|
||||
@@ -59,7 +59,8 @@ namespace glabels
|
||||
|
||||
const QPainterPath& path() const override;
|
||||
const QPainterPath& clipPath() const override;
|
||||
QPainterPath marginPath( const Distance& size ) const override;
|
||||
QPainterPath marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const override;
|
||||
|
||||
|
||||
private:
|
||||
@@ -78,4 +79,8 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameRect& frame );
|
||||
|
||||
|
||||
#endif // model_FrameRect_h
|
||||
|
||||
+21
-8
@@ -40,13 +40,6 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
FrameRound::FrameRound( const FrameRound& other )
|
||||
: Frame(other), mR(other.mR), mWaste(other.mWaste), mPath(other.mPath)
|
||||
{
|
||||
// empty
|
||||
}
|
||||
|
||||
|
||||
Frame* FrameRound::dup() const
|
||||
{
|
||||
return new FrameRound( *this );
|
||||
@@ -123,8 +116,12 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
QPainterPath FrameRound::marginPath( const Distance& size ) const
|
||||
QPainterPath FrameRound::marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const
|
||||
{
|
||||
// Note: ignore ySize, assume xSize == ySize
|
||||
Distance size = xSize;
|
||||
|
||||
Distance r = mR - size;
|
||||
|
||||
QPainterPath path;
|
||||
@@ -135,3 +132,19 @@ namespace glabels
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameRound& frame )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "FrameRound{ "
|
||||
<< frame.id() << ","
|
||||
<< frame.r() << ","
|
||||
<< frame.waste() << ","
|
||||
<< frame.layouts() << ","
|
||||
<< frame.markups()
|
||||
<< " }";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
|
||||
+7
-2
@@ -39,7 +39,7 @@ namespace glabels
|
||||
const Distance& waste,
|
||||
const QString& id = "0" );
|
||||
|
||||
FrameRound( const FrameRound &other );
|
||||
FrameRound( const FrameRound &other ) = default;
|
||||
|
||||
Frame *dup() const override;
|
||||
|
||||
@@ -54,7 +54,8 @@ namespace glabels
|
||||
|
||||
const QPainterPath& path() const override;
|
||||
const QPainterPath& clipPath() const override;
|
||||
QPainterPath marginPath( const Distance& size ) const override;
|
||||
QPainterPath marginPath( const Distance& xSize,
|
||||
const Distance& ySize ) const override;
|
||||
|
||||
|
||||
private:
|
||||
@@ -70,4 +71,8 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::FrameRound& frame );
|
||||
|
||||
|
||||
#endif // model_FrameRound_h
|
||||
|
||||
+24
-14
@@ -86,22 +86,32 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
bool Layout::isSimilarTo( const Layout *other )
|
||||
bool Layout::isSimilarTo( const Layout& other ) const
|
||||
{
|
||||
return ( (mNx == other->mNx) &&
|
||||
(mNy == other->mNy) &&
|
||||
(fabs(mX0 - other->mX0) < EPSILON) &&
|
||||
(fabs(mY0 - other->mY0) < EPSILON) &&
|
||||
(fabs(mDx - other->mDx) < EPSILON) &&
|
||||
(fabs(mDy - other->mDy) < EPSILON) );
|
||||
}
|
||||
|
||||
|
||||
Layout* Layout::dup() const
|
||||
{
|
||||
auto *other = new Layout( *this );
|
||||
return other;
|
||||
return ( (mNx == other.mNx) &&
|
||||
(mNy == other.mNy) &&
|
||||
(fabs(mX0 - other.mX0) < EPSILON) &&
|
||||
(fabs(mY0 - other.mY0) < EPSILON) &&
|
||||
(fabs(mDx - other.mDx) < EPSILON) &&
|
||||
(fabs(mDy - other.mDy) < EPSILON) );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Layout& layout )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "Layout{ "
|
||||
<< layout.nx() << ","
|
||||
<< layout.ny() << ","
|
||||
<< layout.x0() << ","
|
||||
<< layout.y0() << ","
|
||||
<< layout.dx() << ","
|
||||
<< layout.dy()
|
||||
<< " }";
|
||||
|
||||
return dbg;
|
||||
}
|
||||
|
||||
+7
-3
@@ -24,6 +24,8 @@
|
||||
|
||||
#include "Distance.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
@@ -52,9 +54,7 @@ namespace glabels
|
||||
Distance dx() const;
|
||||
Distance dy() const;
|
||||
|
||||
bool isSimilarTo( const Layout *other );
|
||||
|
||||
Layout* dup() const;
|
||||
bool isSimilarTo( const Layout& other ) const;
|
||||
|
||||
|
||||
private:
|
||||
@@ -71,4 +71,8 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Layout& layout );
|
||||
|
||||
|
||||
#endif // model_Layout_h
|
||||
|
||||
+27
-8
@@ -26,29 +26,48 @@ namespace glabels
|
||||
namespace model
|
||||
{
|
||||
|
||||
const QPainterPath& Markup::path() const
|
||||
QPainterPath Markup::path( const Frame* frame ) const
|
||||
{
|
||||
// Use cached path -- default does not depend on frame size
|
||||
return mPath;
|
||||
}
|
||||
|
||||
|
||||
MarkupMargin::MarkupMargin( const Frame* frame,
|
||||
const Distance& size )
|
||||
: mFrame(frame), mSize(size)
|
||||
MarkupMargin::MarkupMargin( const Distance& size )
|
||||
: mXSize(size), mYSize(size)
|
||||
{
|
||||
mPath = frame->marginPath( size );
|
||||
}
|
||||
|
||||
|
||||
MarkupMargin::MarkupMargin( const Distance& xSize,
|
||||
const Distance& ySize )
|
||||
: mXSize(xSize), mYSize(ySize)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
QPainterPath MarkupMargin::path( const Frame* frame ) const
|
||||
{
|
||||
// Re-calculate path -- frame size may have changed
|
||||
return frame->marginPath( mXSize, mYSize );
|
||||
}
|
||||
|
||||
|
||||
Markup* MarkupMargin::dup() const
|
||||
{
|
||||
return new MarkupMargin( mFrame, mSize );
|
||||
return new MarkupMargin( mXSize, mYSize );
|
||||
}
|
||||
|
||||
|
||||
Distance MarkupMargin::size() const
|
||||
Distance MarkupMargin::xSize() const
|
||||
{
|
||||
return mSize;
|
||||
return mXSize;
|
||||
}
|
||||
|
||||
|
||||
Distance MarkupMargin::ySize() const
|
||||
{
|
||||
return mYSize;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+11
-6
@@ -37,7 +37,7 @@ namespace glabels
|
||||
public:
|
||||
virtual Markup* dup() const = 0;
|
||||
|
||||
const QPainterPath& path() const;
|
||||
virtual QPainterPath path( const Frame* frame ) const;
|
||||
|
||||
protected:
|
||||
QPainterPath mPath;
|
||||
@@ -47,16 +47,21 @@ namespace glabels
|
||||
class MarkupMargin : public Markup
|
||||
{
|
||||
public:
|
||||
MarkupMargin( const Frame* frame,
|
||||
const Distance& size );
|
||||
MarkupMargin( const Distance& size );
|
||||
|
||||
Distance size() const;
|
||||
MarkupMargin( const Distance& xSize,
|
||||
const Distance& ySize );
|
||||
|
||||
QPainterPath path( const Frame* frame ) const override;
|
||||
|
||||
Distance xSize() const;
|
||||
Distance ySize() const;
|
||||
|
||||
Markup* dup() const override;
|
||||
|
||||
private:
|
||||
const Frame* mFrame;
|
||||
Distance mSize;
|
||||
Distance mXSize;
|
||||
Distance mYSize;
|
||||
};
|
||||
|
||||
|
||||
|
||||
+50
-15
@@ -55,12 +55,21 @@ namespace glabels
|
||||
/// Default constructor.
|
||||
///
|
||||
Model::Model()
|
||||
: mUntitledInstance(0), mModified(true), mTmplate(nullptr), mFrame(nullptr), mRotate(false)
|
||||
: mUntitledInstance(0), mModified(true), mRotate(false)
|
||||
{
|
||||
mMerge = new merge::None();
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Destructor.
|
||||
///
|
||||
Model::~Model()
|
||||
{
|
||||
delete mMerge;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Save model state
|
||||
///
|
||||
@@ -90,7 +99,6 @@ namespace glabels
|
||||
mModified = savedModel->mModified;
|
||||
mFileName = savedModel->mFileName;
|
||||
mTmplate = savedModel->mTmplate;
|
||||
mFrame = savedModel->mFrame;
|
||||
mRotate = savedModel->mRotate;
|
||||
|
||||
foreach ( ModelObject* savedObject, savedModel->mObjectList )
|
||||
@@ -155,7 +163,7 @@ namespace glabels
|
||||
///
|
||||
const Template* Model::tmplate() const
|
||||
{
|
||||
return mTmplate;
|
||||
return &mTmplate;
|
||||
}
|
||||
|
||||
|
||||
@@ -164,7 +172,7 @@ namespace glabels
|
||||
///
|
||||
const Frame* Model::frame() const
|
||||
{
|
||||
return mFrame;
|
||||
return mTmplate.frames().constFirst();
|
||||
}
|
||||
|
||||
|
||||
@@ -173,18 +181,14 @@ namespace glabels
|
||||
///
|
||||
void Model::setTmplate( const Template* tmplate )
|
||||
{
|
||||
if (mTmplate != tmplate)
|
||||
{
|
||||
mTmplate = tmplate;
|
||||
mFrame = tmplate->frames().first();
|
||||
mTmplate = *tmplate;
|
||||
|
||||
setModified();
|
||||
setModified();
|
||||
|
||||
emit changed();
|
||||
emit sizeChanged();
|
||||
emit changed();
|
||||
emit sizeChanged();
|
||||
|
||||
Settings::addToRecentTemplateList( tmplate->name() );
|
||||
}
|
||||
Settings::addToRecentTemplateList( tmplate->name() );
|
||||
}
|
||||
|
||||
|
||||
@@ -219,7 +223,14 @@ namespace glabels
|
||||
///
|
||||
Distance Model::w() const
|
||||
{
|
||||
return mRotate ? mFrame->h() : mFrame->w();
|
||||
if ( auto* frame = mTmplate.frames().constFirst() )
|
||||
{
|
||||
return mRotate ? frame->h() : frame->w();
|
||||
}
|
||||
else
|
||||
{
|
||||
return Distance::pt(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -228,7 +239,31 @@ namespace glabels
|
||||
///
|
||||
Distance Model::h() const
|
||||
{
|
||||
return mRotate ? mFrame->w() : mFrame->h();
|
||||
if ( auto* frame = mTmplate.frames().constFirst() )
|
||||
{
|
||||
return mRotate ? frame->w() : frame->h();
|
||||
}
|
||||
else
|
||||
{
|
||||
return Distance::pt(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Set height (if variable length)
|
||||
///
|
||||
void Model::setH( const Distance& h )
|
||||
{
|
||||
if ( auto* frame = mTmplate.frames().first() )
|
||||
{
|
||||
frame->setH( h );
|
||||
|
||||
setModified();
|
||||
|
||||
emit changed();
|
||||
emit sizeChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+5
-4
@@ -57,7 +57,7 @@ namespace glabels
|
||||
/////////////////////////////////
|
||||
public:
|
||||
Model();
|
||||
~Model() override = default;
|
||||
~Model();
|
||||
|
||||
|
||||
/////////////////////////////////
|
||||
@@ -103,6 +103,8 @@ namespace glabels
|
||||
Distance w() const;
|
||||
Distance h() const;
|
||||
|
||||
void setH( const Distance& h );
|
||||
|
||||
const QList<ModelObject*>& objectList() const;
|
||||
|
||||
merge::Merge* merge() const;
|
||||
@@ -222,11 +224,10 @@ namespace glabels
|
||||
int mUntitledInstance;
|
||||
bool mModified;
|
||||
QString mFileName;
|
||||
const Template* mTmplate;
|
||||
const Frame* mFrame;
|
||||
Template mTmplate;
|
||||
bool mRotate;
|
||||
|
||||
QList<ModelObject*> mObjectList;
|
||||
QList<ModelObject*> mObjectList;
|
||||
|
||||
merge::Merge* mMerge;
|
||||
};
|
||||
|
||||
+13
-9
@@ -193,6 +193,10 @@ namespace glabels
|
||||
void PageRenderer::print( QPrinter* printer ) const
|
||||
{
|
||||
QSizeF pageSize( mModel->tmplate()->pageWidth().pt(), mModel->tmplate()->pageHeight().pt() );
|
||||
if ( mModel->tmplate()->pageWidth().pt() > mModel->tmplate()->pageHeight().pt() )
|
||||
{
|
||||
printer->setOrientation( QPrinter::Landscape );
|
||||
}
|
||||
printer->setPageSize( QPageSize(pageSize, QPageSize::Point) );
|
||||
printer->setFullPage( true );
|
||||
printer->setPageMargins( 0, 0, 0, 0, QPrinter::Point );
|
||||
@@ -338,16 +342,16 @@ namespace glabels
|
||||
Distance w = mModel->frame()->w();
|
||||
Distance h = mModel->frame()->h();
|
||||
|
||||
foreach ( Layout* layout, mModel->frame()->layouts() )
|
||||
foreach ( const Layout& layout, mModel->frame()->layouts() )
|
||||
{
|
||||
Distance xMin = layout->x0();
|
||||
Distance yMin = layout->y0();
|
||||
Distance xMax = layout->x0() + layout->dx()*(layout->nx()-1) + w;
|
||||
Distance yMax = layout->y0() + layout->dy()*(layout->ny()-1) + h;
|
||||
Distance xMin = layout.x0();
|
||||
Distance yMin = layout.y0();
|
||||
Distance xMax = layout.x0() + layout.dx()*(layout.nx()-1) + w;
|
||||
Distance yMax = layout.y0() + layout.dy()*(layout.ny()-1) + h;
|
||||
|
||||
for ( int ix = 0; ix < layout->nx(); ix++ )
|
||||
for ( int ix = 0; ix < layout.nx(); ix++ )
|
||||
{
|
||||
Distance x1 = xMin + ix*layout->dx();
|
||||
Distance x1 = xMin + ix*layout.dx();
|
||||
Distance x2 = x1 + w;
|
||||
|
||||
Distance y1 = max( yMin-tickOffset, Distance::pt(0) );
|
||||
@@ -362,9 +366,9 @@ namespace glabels
|
||||
painter->drawLine( x2.pt(), y3.pt(), x2.pt(), y4.pt() );
|
||||
}
|
||||
|
||||
for ( int iy = 0; iy < layout->ny(); iy++ )
|
||||
for ( int iy = 0; iy < layout.ny(); iy++ )
|
||||
{
|
||||
Distance y1 = yMin + iy*layout->dy();
|
||||
Distance y1 = yMin + iy*layout.dy();
|
||||
Distance y2 = y1 + h;
|
||||
|
||||
Distance x1 = max( xMin-tickOffset, Distance::pt(0) );
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@ namespace glabels
|
||||
if ( denom[i] == 0.0 )
|
||||
{
|
||||
/* None of our denominators work. */
|
||||
return QString().sprintf( "%.5g", x );
|
||||
return QString().sprintf( "%.3f", x );
|
||||
}
|
||||
if ( denom[i] == 1.0 )
|
||||
{
|
||||
|
||||
+97
-8
@@ -21,6 +21,7 @@
|
||||
#include "Template.h"
|
||||
|
||||
#include "Db.h"
|
||||
#include "FrameContinuous.h"
|
||||
|
||||
#include <QtDebug>
|
||||
|
||||
@@ -36,6 +37,7 @@ namespace glabels
|
||||
const QString& paperId,
|
||||
const Distance& pageWidth,
|
||||
const Distance& pageHeight,
|
||||
const Distance& rollWidth,
|
||||
bool isUserDefined )
|
||||
: mBrand(brand),
|
||||
mPart(part),
|
||||
@@ -43,6 +45,7 @@ namespace glabels
|
||||
mPaperId(paperId),
|
||||
mPageWidth(pageWidth),
|
||||
mPageHeight(pageHeight),
|
||||
mRollWidth(rollWidth),
|
||||
mIsUserDefined(isUserDefined),
|
||||
mIsSizeIso(false),
|
||||
mIsSizeUs(false),
|
||||
@@ -56,6 +59,8 @@ namespace glabels
|
||||
mIsSizeIso = paper->isSizeIso();
|
||||
mIsSizeUs = paper->isSizeUs();
|
||||
}
|
||||
|
||||
mIsRoll = (paperId == "roll");
|
||||
}
|
||||
|
||||
|
||||
@@ -67,15 +72,17 @@ namespace glabels
|
||||
mPaperId = other.mPaperId;
|
||||
mPageWidth = other.mPageWidth;
|
||||
mPageHeight = other.mPageHeight;
|
||||
mRollWidth = other.mRollWidth;
|
||||
mIsSizeIso = other.mIsSizeIso;
|
||||
mIsSizeUs = other.mIsSizeUs;
|
||||
mIsRoll = other.mIsRoll;
|
||||
mEquivPart = other.mEquivPart;
|
||||
mName = other.mName;
|
||||
mProductUrl = other.mProductUrl;
|
||||
|
||||
foreach ( Frame* frame, other.mFrames )
|
||||
{
|
||||
addFrame( frame );
|
||||
addFrame( frame->dup() );
|
||||
}
|
||||
|
||||
foreach ( QString categoryId, other.mCategoryIds )
|
||||
@@ -85,9 +92,50 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
Template* Template::dup() const
|
||||
Template::~Template()
|
||||
{
|
||||
return new Template( *this );
|
||||
while ( !mFrames.isEmpty() )
|
||||
{
|
||||
delete mFrames.takeFirst();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Template& Template::operator=( const Template& other )
|
||||
{
|
||||
if ( this != &other )
|
||||
{
|
||||
mBrand = other.mBrand;
|
||||
mPart = other.mPart;
|
||||
mDescription = other.mDescription;
|
||||
mPaperId = other.mPaperId;
|
||||
mPageWidth = other.mPageWidth;
|
||||
mPageHeight = other.mPageHeight;
|
||||
mRollWidth = other.mRollWidth;
|
||||
mIsSizeIso = other.mIsSizeIso;
|
||||
mIsSizeUs = other.mIsSizeUs;
|
||||
mIsRoll = other.mIsRoll;
|
||||
mEquivPart = other.mEquivPart;
|
||||
mName = other.mName;
|
||||
mProductUrl = other.mProductUrl;
|
||||
|
||||
while ( !mFrames.isEmpty() )
|
||||
{
|
||||
delete mFrames.takeFirst();
|
||||
}
|
||||
foreach ( Frame* frame, other.mFrames )
|
||||
{
|
||||
addFrame( frame->dup() );
|
||||
}
|
||||
|
||||
mCategoryIds.clear();
|
||||
foreach ( QString categoryId, other.mCategoryIds )
|
||||
{
|
||||
addCategory( categoryId );
|
||||
}
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +155,7 @@ namespace glabels
|
||||
const Template* other = Db::lookupTemplateFromBrandPart( brand, equivPart );
|
||||
if ( other != nullptr )
|
||||
{
|
||||
Template* tmplate = other->dup();
|
||||
Template* tmplate = new Template( *other );
|
||||
|
||||
tmplate->mPart = part;
|
||||
tmplate->mEquivPart = equivPart;
|
||||
@@ -159,7 +207,22 @@ namespace glabels
|
||||
|
||||
Distance Template::pageHeight() const
|
||||
{
|
||||
return mPageHeight;
|
||||
// Adjust height if continuous tape
|
||||
const model::Frame* frame = mFrames.constFirst();
|
||||
if ( const auto* frameContinuous = dynamic_cast<const model::FrameContinuous*>(frame) )
|
||||
{
|
||||
return frameContinuous->h();
|
||||
}
|
||||
else
|
||||
{
|
||||
return mPageHeight;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Distance Template::rollWidth() const
|
||||
{
|
||||
return mRollWidth;
|
||||
}
|
||||
|
||||
|
||||
@@ -181,6 +244,12 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
bool Template::isRoll() const
|
||||
{
|
||||
return mIsRoll;
|
||||
}
|
||||
|
||||
|
||||
bool Template::isUserDefined() const
|
||||
{
|
||||
return mIsUserDefined;
|
||||
@@ -274,12 +343,12 @@ namespace glabels
|
||||
}
|
||||
|
||||
// Are they layed out similarly?
|
||||
foreach ( Layout* layout1, frame1->layouts() )
|
||||
foreach ( const Layout& layout1, frame1->layouts() )
|
||||
{
|
||||
bool matchFound = false;
|
||||
foreach ( Layout* layout2, frame2->layouts() )
|
||||
foreach ( const Layout& layout2, frame2->layouts() )
|
||||
{
|
||||
if ( layout1->isSimilarTo(layout2) )
|
||||
if ( layout1.isSimilarTo( layout2 ) )
|
||||
{
|
||||
matchFound = true;
|
||||
break;
|
||||
@@ -297,3 +366,23 @@ namespace glabels
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Template& tmplate )
|
||||
{
|
||||
QDebugStateSaver saver(dbg);
|
||||
|
||||
dbg.nospace() << "Template{ "
|
||||
<< tmplate.brand() << "," << tmplate.part() << "," << tmplate.description() << ","
|
||||
<< tmplate.paperId() << ","
|
||||
<< tmplate.pageWidth() << ","
|
||||
<< tmplate.pageHeight() << ","
|
||||
<< tmplate.rollWidth() << ","
|
||||
<< tmplate.isSizeIso() << ","
|
||||
<< tmplate.isSizeUs() << ","
|
||||
<< tmplate.isSizeOther() << ","
|
||||
<< tmplate.isRoll() << ","
|
||||
<< *tmplate.frames().constFirst() << ","
|
||||
<< " }";
|
||||
return dbg;
|
||||
}
|
||||
|
||||
+15
-1
@@ -43,17 +43,22 @@ namespace glabels
|
||||
|
||||
public:
|
||||
|
||||
Template() = default;
|
||||
|
||||
Template( const QString& brand,
|
||||
const QString& part,
|
||||
const QString& description,
|
||||
const QString& paperId,
|
||||
const Distance& pageWidth,
|
||||
const Distance& pageHeight,
|
||||
const Distance& rollWidth = 0,
|
||||
bool isUserDefined = false );
|
||||
|
||||
Template( const Template& other );
|
||||
|
||||
Template* dup() const;
|
||||
~Template();
|
||||
|
||||
Template& operator=( const Template& other );
|
||||
|
||||
// Generic full page template
|
||||
static Template* fullPage( const QString& paperId );
|
||||
@@ -71,9 +76,11 @@ namespace glabels
|
||||
QString paperId() const;
|
||||
Distance pageWidth() const;
|
||||
Distance pageHeight() const;
|
||||
Distance rollWidth() const;
|
||||
bool isSizeIso() const;
|
||||
bool isSizeUs() const;
|
||||
bool isSizeOther() const;
|
||||
bool isRoll() const;
|
||||
|
||||
bool isUserDefined() const;
|
||||
|
||||
@@ -104,8 +111,10 @@ namespace glabels
|
||||
QString mPaperId;
|
||||
Distance mPageWidth;
|
||||
Distance mPageHeight;
|
||||
Distance mRollWidth;
|
||||
bool mIsSizeIso;
|
||||
bool mIsSizeUs;
|
||||
bool mIsRoll;
|
||||
|
||||
bool mIsUserDefined;
|
||||
|
||||
@@ -119,7 +128,12 @@ namespace glabels
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Debugging support
|
||||
QDebug operator<<( QDebug dbg, const glabels::model::Template& tmplate );
|
||||
|
||||
|
||||
#endif // model_Template_h
|
||||
|
||||
@@ -91,7 +91,10 @@ namespace glabels
|
||||
XmlUtil::setLengthAttr( node, "width", tmplate->pageWidth() );
|
||||
XmlUtil::setLengthAttr( node, "height", tmplate->pageHeight() );
|
||||
}
|
||||
|
||||
if ( tmplate->isRoll() )
|
||||
{
|
||||
XmlUtil::setLengthAttr( node, "roll_width", tmplate->rollWidth() );
|
||||
}
|
||||
|
||||
XmlUtil::setStringAttr( node, "description", tmplate->description() );
|
||||
|
||||
@@ -141,6 +144,14 @@ namespace glabels
|
||||
{
|
||||
createLabelCdNode( parent, frameCd );
|
||||
}
|
||||
else if ( const auto* framePath = dynamic_cast<const FramePath*>(frame) )
|
||||
{
|
||||
createLabelPathNode( parent, framePath );
|
||||
}
|
||||
else if ( const auto* frameContinuous = dynamic_cast<const FrameContinuous*>(frame) )
|
||||
{
|
||||
createLabelContinuousNode( parent, frameContinuous );
|
||||
}
|
||||
else
|
||||
{
|
||||
Q_ASSERT_X( false, "XmlTemplateCreator::createLabelNode", "Invalid frame type." );
|
||||
@@ -217,6 +228,39 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateCreator::createLabelPathNode( QDomElement &parent, const FramePath* frame )
|
||||
{
|
||||
QDomDocument doc = parent.ownerDocument();
|
||||
QDomElement node = doc.createElement( "Label-path" );
|
||||
parent.appendChild( node );
|
||||
|
||||
XmlUtil::setStringAttr( node, "id", frame->id() );
|
||||
XmlUtil::setLengthAttr( node, "x_waste", frame->xWaste() );
|
||||
XmlUtil::setLengthAttr( node, "y_waste", frame->yWaste() );
|
||||
XmlUtil::setUnitsAttr( node, "d_units", frame->originalUnits() );
|
||||
XmlUtil::setPathDataAttr( node, "d", frame->path(), frame->originalUnits() );
|
||||
|
||||
createLabelNodeCommon( node, frame );
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateCreator::createLabelContinuousNode( QDomElement &parent, const FrameContinuous* frame )
|
||||
{
|
||||
QDomDocument doc = parent.ownerDocument();
|
||||
QDomElement node = doc.createElement( "Label-continuous" );
|
||||
parent.appendChild( node );
|
||||
|
||||
XmlUtil::setStringAttr( node, "id", frame->id() );
|
||||
XmlUtil::setLengthAttr( node, "width", frame->w() );
|
||||
XmlUtil::setLengthAttr( node, "height", frame->h() );
|
||||
XmlUtil::setLengthAttr( node, "min_height", frame->hMin() );
|
||||
XmlUtil::setLengthAttr( node, "max_height", frame->hMin() );
|
||||
XmlUtil::setLengthAttr( node, "default_height", frame->hDefault() );
|
||||
|
||||
createLabelNodeCommon( node, frame );
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateCreator::createLabelNodeCommon( QDomElement &node, const Frame *frame )
|
||||
{
|
||||
foreach ( Markup* markup, frame->markups() )
|
||||
@@ -247,27 +291,27 @@ namespace glabels
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( Layout* layout, frame->layouts() )
|
||||
foreach ( const Layout& layout, frame->layouts() )
|
||||
{
|
||||
createLayoutNode( node, layout );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateCreator::createLayoutNode( QDomElement& parent, const Layout* layout )
|
||||
void XmlTemplateCreator::createLayoutNode( QDomElement& parent, const Layout& layout )
|
||||
{
|
||||
QDomDocument doc = parent.ownerDocument();
|
||||
QDomElement node = doc.createElement( "Layout" );
|
||||
parent.appendChild( node );
|
||||
|
||||
XmlUtil::setIntAttr( node, "nx", layout->nx() );
|
||||
XmlUtil::setIntAttr( node, "ny", layout->ny() );
|
||||
XmlUtil::setIntAttr( node, "nx", layout.nx() );
|
||||
XmlUtil::setIntAttr( node, "ny", layout.ny() );
|
||||
|
||||
XmlUtil::setLengthAttr( node, "x0", layout->x0() );
|
||||
XmlUtil::setLengthAttr( node, "y0", layout->y0() );
|
||||
XmlUtil::setLengthAttr( node, "x0", layout.x0() );
|
||||
XmlUtil::setLengthAttr( node, "y0", layout.y0() );
|
||||
|
||||
XmlUtil::setLengthAttr( node, "dx", layout->dx() );
|
||||
XmlUtil::setLengthAttr( node, "dy", layout->dy() );
|
||||
XmlUtil::setLengthAttr( node, "dx", layout.dx() );
|
||||
XmlUtil::setLengthAttr( node, "dy", layout.dy() );
|
||||
}
|
||||
|
||||
|
||||
@@ -277,7 +321,15 @@ namespace glabels
|
||||
QDomElement node = doc.createElement( "Markup-margin" );
|
||||
parent.appendChild( node );
|
||||
|
||||
XmlUtil::setLengthAttr( node, "size", markup->size() );
|
||||
if ( markup->xSize() == markup->ySize() )
|
||||
{
|
||||
XmlUtil::setLengthAttr( node, "size", markup->xSize() );
|
||||
}
|
||||
else
|
||||
{
|
||||
XmlUtil::setLengthAttr( node, "x_size", markup->xSize() );
|
||||
XmlUtil::setLengthAttr( node, "y_size", markup->ySize() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,9 @@
|
||||
|
||||
|
||||
#include "FrameCd.h"
|
||||
#include "FrameContinuous.h"
|
||||
#include "FrameEllipse.h"
|
||||
#include "FramePath.h"
|
||||
#include "FrameRect.h"
|
||||
#include "FrameRound.h"
|
||||
#include "Layout.h"
|
||||
@@ -55,8 +57,10 @@ namespace glabels
|
||||
void createLabelEllipseNode( QDomElement& parent, const FrameEllipse* frame );
|
||||
void createLabelRoundNode( QDomElement& parent, const FrameRound* frame );
|
||||
void createLabelCdNode( QDomElement& parent, const FrameCd* frame );
|
||||
void createLabelPathNode( QDomElement& parent, const FramePath* frame );
|
||||
void createLabelContinuousNode( QDomElement& parent, const FrameContinuous* frame );
|
||||
void createLabelNodeCommon( QDomElement& node, const Frame* frame );
|
||||
void createLayoutNode( QDomElement& parent, const Layout* layout );
|
||||
void createLayoutNode( QDomElement& parent, const Layout& layout );
|
||||
void createMarkupMarginNode( QDomElement& parent, const MarkupMargin* markupMargin );
|
||||
void createMarkupLineNode( QDomElement& parent, const MarkupLine* markupLine );
|
||||
void createMarkupCircleNode( QDomElement& parent, const MarkupCircle* markupCircle );
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
#include "FrameCd.h"
|
||||
#include "FrameRound.h"
|
||||
#include "FrameEllipse.h"
|
||||
#include "FramePath.h"
|
||||
#include "FrameContinuous.h"
|
||||
#include "Layout.h"
|
||||
#include "Markup.h"
|
||||
#include "Template.h"
|
||||
@@ -153,7 +155,7 @@ namespace glabels
|
||||
QString description = XmlUtil::getI18nAttr( node, "description", "" );
|
||||
QString paperId = XmlUtil::getStringAttr( node, "size", "" );
|
||||
|
||||
if ( !Db::isPaperIdOther( paperId ) )
|
||||
if ( Db::isPaperIdKnown( paperId ) )
|
||||
{
|
||||
const Paper *paper = Db::lookupPaperFromId( paperId );
|
||||
if ( paper == nullptr )
|
||||
@@ -169,8 +171,9 @@ namespace glabels
|
||||
{
|
||||
Distance width = XmlUtil::getLengthAttr( node, "width", Distance(0) );
|
||||
Distance height = XmlUtil::getLengthAttr( node, "height", Distance(0) );
|
||||
Distance rollWidth = XmlUtil::getLengthAttr( node, "roll_width", Distance(0) );
|
||||
|
||||
tmplate = new Template( brand, part, description, paperId, width, height, isUserDefined );
|
||||
tmplate = new Template( brand, part, description, paperId, width, height, rollWidth, isUserDefined );
|
||||
}
|
||||
|
||||
for ( QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling() )
|
||||
@@ -195,6 +198,14 @@ namespace glabels
|
||||
{
|
||||
parseLabelCdNode( child.toElement(), tmplate );
|
||||
}
|
||||
else if ( child.toElement().tagName() == "Label-path" )
|
||||
{
|
||||
parseLabelPathNode( child.toElement(), tmplate );
|
||||
}
|
||||
else if ( child.toElement().tagName() == "Label-continuous" )
|
||||
{
|
||||
parseLabelContinuousNode( child.toElement(), tmplate );
|
||||
}
|
||||
else if ( !child.isComment() )
|
||||
{
|
||||
qWarning() << "Warning: bad element: "
|
||||
@@ -303,6 +314,57 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateParser::parseLabelPathNode( const QDomElement &node, Template *tmplate )
|
||||
{
|
||||
QString id = XmlUtil::getStringAttr( node, "id", "0" );
|
||||
|
||||
Units dUnits = XmlUtil::getUnitsAttr( node, "d_units", Units::pc() );
|
||||
QPainterPath d = XmlUtil::getPathDataAttr( node, "d", dUnits );
|
||||
|
||||
Distance xWaste, yWaste;
|
||||
|
||||
Distance waste = XmlUtil::getLengthAttr( node, "waste", Distance(-1) );
|
||||
if ( waste >= Distance(0) )
|
||||
{
|
||||
xWaste = waste;
|
||||
yWaste = waste;
|
||||
}
|
||||
else
|
||||
{
|
||||
xWaste = XmlUtil::getLengthAttr( node, "x_waste", Distance(0) );
|
||||
yWaste = XmlUtil::getLengthAttr( node, "y_waste", Distance(0) );
|
||||
}
|
||||
|
||||
Frame *frame = new FramePath( d, xWaste, yWaste, dUnits, id );
|
||||
|
||||
parseLabelNodeCommon( node, frame );
|
||||
|
||||
tmplate->addFrame( frame );
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateParser::parseLabelContinuousNode( const QDomElement &node, Template *tmplate )
|
||||
{
|
||||
QString id = XmlUtil::getStringAttr( node, "id", "0" );
|
||||
|
||||
Distance w = XmlUtil::getLengthAttr( node, "width", Distance(0) );
|
||||
Distance h = XmlUtil::getLengthAttr( node, "height", Distance(0) );
|
||||
Distance hMin = XmlUtil::getLengthAttr( node, "min_height", Distance(0) );
|
||||
Distance hMax = XmlUtil::getLengthAttr( node, "max_height", Distance(0) );
|
||||
Distance hDefault = XmlUtil::getLengthAttr( node, "default_height", Distance(0) );
|
||||
|
||||
Frame *frame = new FrameContinuous( w, hMin, hMax, hDefault, id );
|
||||
if ( h > Distance(0) )
|
||||
{
|
||||
frame->setH( h );
|
||||
}
|
||||
|
||||
parseLabelNodeCommon( node, frame );
|
||||
|
||||
tmplate->addFrame( frame );
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateParser::parseLabelNodeCommon( const QDomElement &node, Frame *frame )
|
||||
{
|
||||
for ( QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling() )
|
||||
@@ -352,15 +414,24 @@ namespace glabels
|
||||
Distance dX = XmlUtil::getLengthAttr( node, "dx", Distance(0) );
|
||||
Distance dY = XmlUtil::getLengthAttr( node, "dy", Distance(0) );
|
||||
|
||||
frame->addLayout( new Layout( nX, nY, x0, y0, dX, dY ) );
|
||||
frame->addLayout( Layout( nX, nY, x0, y0, dX, dY ) );
|
||||
}
|
||||
|
||||
|
||||
void XmlTemplateParser::parseMarkupMarginNode( const QDomElement &node, Frame *frame )
|
||||
{
|
||||
Distance size = XmlUtil::getLengthAttr( node, "size", Distance(0) );
|
||||
Distance size = XmlUtil::getLengthAttr( node, "size", Distance(0) );
|
||||
Distance xSize = XmlUtil::getLengthAttr( node, "x_size", Distance(0) );
|
||||
Distance ySize = XmlUtil::getLengthAttr( node, "y_size", Distance(0) );
|
||||
|
||||
frame->addMarkup( new MarkupMargin( frame, size ) );
|
||||
if ( size > Distance(0) )
|
||||
{
|
||||
frame->addMarkup( new MarkupMargin( size ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
frame->addMarkup( new MarkupMargin( xSize, ySize ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -48,6 +48,8 @@ namespace glabels
|
||||
void parseLabelEllipseNode( const QDomElement &node, Template *tmplate );
|
||||
void parseLabelRoundNode( const QDomElement &node, Template *tmplate );
|
||||
void parseLabelCdNode( const QDomElement &node, Template *tmplate );
|
||||
void parseLabelPathNode( const QDomElement &node, Template *tmplate );
|
||||
void parseLabelContinuousNode( const QDomElement &node, Template *tmplate );
|
||||
void parseLabelNodeCommon( const QDomElement &node, Frame *frame );
|
||||
void parseLayoutNode( const QDomElement &node, Frame *frame );
|
||||
void parseMarkupMarginNode( const QDomElement &node, Frame *frame );
|
||||
|
||||
@@ -325,6 +325,149 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
Units XmlUtil::getUnitsAttr( const QDomElement& node,
|
||||
const QString& name,
|
||||
const Units& default_value )
|
||||
{
|
||||
init();
|
||||
|
||||
QString valueString = node.attribute( name, "" );
|
||||
if ( valueString != "" )
|
||||
{
|
||||
return Units( valueString );
|
||||
}
|
||||
|
||||
return default_value;
|
||||
}
|
||||
|
||||
|
||||
QPainterPath XmlUtil::getPathDataAttr( const QDomElement& node,
|
||||
const QString& name,
|
||||
const Units& units )
|
||||
{
|
||||
init();
|
||||
|
||||
QPainterPath d;
|
||||
|
||||
//
|
||||
// Simple path data parser
|
||||
//
|
||||
QStringList tokens = node.attribute( name, "" ).split( " ", QString::SkipEmptyParts );
|
||||
|
||||
enum { CMD, MX, MY, MDX, MDY, LX, LY, LDX, LDY, HX, HDX, VY, VDY } state = CMD;
|
||||
Distance x = 0;
|
||||
Distance y = 0;
|
||||
Distance dx = 0;
|
||||
Distance dy = 0;
|
||||
QPointF c;
|
||||
|
||||
for ( unsigned int i = 0; i < tokens.size(); i++ )
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case CMD:
|
||||
switch (tokens[i][0].unicode())
|
||||
{
|
||||
case 'M':
|
||||
state = MX;
|
||||
break;
|
||||
case 'm':
|
||||
state = MDX;
|
||||
break;
|
||||
case 'L':
|
||||
state = LX;
|
||||
break;
|
||||
case 'l':
|
||||
state = LDX;
|
||||
break;
|
||||
case 'H':
|
||||
state = HX;
|
||||
break;
|
||||
case 'h':
|
||||
state = HDX;
|
||||
break;
|
||||
case 'V':
|
||||
state = VY;
|
||||
break;
|
||||
case 'v':
|
||||
state = VDY;
|
||||
break;
|
||||
case 'Z':
|
||||
case 'z':
|
||||
d.closeSubpath();
|
||||
state = CMD;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MX:
|
||||
x = Distance( tokens[i].toDouble(), units );
|
||||
state = MY;
|
||||
break;
|
||||
case MY:
|
||||
y = Distance( tokens[i].toDouble(), units );
|
||||
d.moveTo( x.pt(), y.pt() );
|
||||
state = CMD;
|
||||
break;
|
||||
case MDX:
|
||||
dx = Distance( tokens[i].toDouble(), units );
|
||||
state = MDY;
|
||||
break;
|
||||
case MDY:
|
||||
dy = Distance( tokens[i].toDouble(), units );
|
||||
c = d.currentPosition();
|
||||
d.moveTo( c.x()+x.pt(), c.y()+y.pt() );
|
||||
state = CMD;
|
||||
break;
|
||||
case LX:
|
||||
x = Distance( tokens[i].toDouble(), units );
|
||||
state = LY;
|
||||
break;
|
||||
case LY:
|
||||
y = Distance( tokens[i].toDouble(), units );
|
||||
d.lineTo( x.pt(), y.pt() );
|
||||
state = CMD;
|
||||
break;
|
||||
case LDX:
|
||||
dx = Distance( tokens[i].toDouble(), units );
|
||||
state = LDY;
|
||||
break;
|
||||
case LDY:
|
||||
dy = Distance( tokens[i].toDouble(), units );
|
||||
c = d.currentPosition();
|
||||
d.lineTo( c.x()+dx.pt(), c.y()+dy.pt() );
|
||||
state = CMD;
|
||||
break;
|
||||
case HX:
|
||||
x = Distance( tokens[i].toDouble(), units );
|
||||
c = d.currentPosition();
|
||||
d.lineTo( x.pt(), c.y() );
|
||||
state = CMD;
|
||||
break;
|
||||
case HDX:
|
||||
dx = Distance( tokens[i].toDouble(), units );
|
||||
c = d.currentPosition();
|
||||
d.lineTo( c.x()+dx.pt(), c.y() );
|
||||
state = CMD;
|
||||
break;
|
||||
case VY:
|
||||
y = Distance( tokens[i].toDouble(), units );
|
||||
c = d.currentPosition();
|
||||
d.lineTo( c.x(), y.pt() );
|
||||
state = CMD;
|
||||
break;
|
||||
case VDY:
|
||||
dy = Distance( tokens[i].toDouble(), units );
|
||||
c = d.currentPosition();
|
||||
d.lineTo( c.x(), c.y()+dy.pt() );
|
||||
state = CMD;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
|
||||
void XmlUtil::setStringAttr( QDomElement& node,
|
||||
const QString& name,
|
||||
const QString& value )
|
||||
@@ -456,5 +599,50 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
void XmlUtil::setUnitsAttr( QDomElement& node,
|
||||
const QString& name,
|
||||
const Units& value )
|
||||
{
|
||||
node.setAttribute( name, value.toIdString() );
|
||||
}
|
||||
|
||||
|
||||
void XmlUtil::setPathDataAttr( QDomElement& node,
|
||||
const QString& name,
|
||||
const QPainterPath& path,
|
||||
const Units& units )
|
||||
{
|
||||
QString pathString;
|
||||
for ( int i = 0; i < path.elementCount(); i++ )
|
||||
{
|
||||
auto element = path.elementAt( i );
|
||||
|
||||
// QPainterPath is natively in pts
|
||||
Distance x = Distance::pt( element.x );
|
||||
Distance y = Distance::pt( element.y );
|
||||
|
||||
// Translate desired units for path data
|
||||
double xValue = x.inUnits( units );
|
||||
double yValue = y.inUnits( units );
|
||||
|
||||
if ( element.isMoveTo() )
|
||||
{
|
||||
pathString.append( QString( "M %1 %2" ).arg( xValue ).arg( yValue ) );
|
||||
}
|
||||
else if ( element.isLineTo() )
|
||||
{
|
||||
pathString.append( QString( "L %1 %2" ).arg( xValue ).arg( yValue ) );
|
||||
}
|
||||
|
||||
if ( i < (path.elementCount() - 1) )
|
||||
{
|
||||
pathString.append( " " );
|
||||
}
|
||||
}
|
||||
|
||||
node.setAttribute( name, pathString );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include <QDomElement>
|
||||
#include <QFont>
|
||||
#include <QPainterPath>
|
||||
#include <QString>
|
||||
#include <Qt>
|
||||
#include <QTextOption>
|
||||
@@ -91,6 +92,14 @@ namespace glabels
|
||||
const QString& name,
|
||||
QTextOption::WrapMode default_value );
|
||||
|
||||
static Units getUnitsAttr( const QDomElement& node,
|
||||
const QString& name,
|
||||
const Units& default_value );
|
||||
|
||||
static QPainterPath getPathDataAttr( const QDomElement& node,
|
||||
const QString& name,
|
||||
const Units& units );
|
||||
|
||||
|
||||
static void setStringAttr( QDomElement& node,
|
||||
const QString& name,
|
||||
@@ -128,6 +137,16 @@ namespace glabels
|
||||
const QString& name,
|
||||
QTextOption::WrapMode value );
|
||||
|
||||
static void setUnitsAttr( QDomElement& node,
|
||||
const QString& name,
|
||||
const Units& value );
|
||||
|
||||
static void setPathDataAttr( QDomElement& node,
|
||||
const QString& name,
|
||||
const QPainterPath& value,
|
||||
const Units& units );
|
||||
|
||||
|
||||
|
||||
private:
|
||||
Units mUnits;
|
||||
|
||||
@@ -7,49 +7,75 @@
|
||||
*********************************************************************
|
||||
Labels for the Brother QL-500/550/650 PC Label Printers
|
||||
|
||||
These templates are based on the exact media sizes and measurements
|
||||
in version 1.1 of the 'Brother-QL-500-ptouch.ppd' file.
|
||||
|
||||
Currently only have templates for a few of the popular sizes.
|
||||
|
||||
REFERENCES:
|
||||
|
||||
Brother Industries, Ltd. (October 3, 2011), "Brother QL Series
|
||||
Command Reference (QL-500/550/560/570/580N/650TD/700/1050/1060N)",
|
||||
http://download.brother.com/welcome/docp000678/cv_qlseries_eng_raster_600.pdf
|
||||
|
||||
*********************************************************************
|
||||
*********************************************************************
|
||||
-->
|
||||
|
||||
<Template brand="Brother" part="DK-1201" size="Other" width="82pt" height="255pt" _description="Address labels">
|
||||
<!-- ********************************************************************* -->
|
||||
<!-- Die-cut Labels -->
|
||||
<!-- ********************************************************************* -->
|
||||
|
||||
<Template brand="Brother" part="DK-1201" _description="Address labels"
|
||||
size="roll" roll_width="32mm" width="28.96mm" height="89.83mm" >
|
||||
<Meta category="label"/>
|
||||
<Meta category="mail"/>
|
||||
<Label-rectangle id="0" width="82pt" height="255pt" round="4pt" x_waste="0" y_waste="0">
|
||||
<Markup-rect x1="4.25pt" y1="8.5pt" w="73.5pt" h="238pt" r="0" />
|
||||
<Label-rectangle id="0" width="28.96mm" height="89.83mm" round="1.5mm" x_waste="0" y_waste="0">
|
||||
<Markup-margin x_size="1.5mm" y_size="3.0mm" /> <!-- Print Area -->
|
||||
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
<Template brand="Brother" part="DK-1202" size="Other" width="176pt" height="283pt" _description="Shipping labels">
|
||||
<Template brand="Brother" part="DK-1202" _description="Shipping labels"
|
||||
size="roll" roll_width="67mm" width="61.98mm" height="99.82mm" >
|
||||
<Meta category="label"/>
|
||||
<Meta category="mail"/>
|
||||
<Label-rectangle id="0" width="176pt" height="283pt" round="4pt" x_waste="0" y_waste="0">
|
||||
<Markup-rect x1="4.25pt" y1="8.5pt" w="167.5pt" h="266pt" r="0" />
|
||||
<Label-rectangle id="0" width="61.98mm" height="99.82mm" round="1.5mm" x_waste="0" y_waste="0">
|
||||
<Markup-margin x_size="1.5mm" y_size="3.0mm" /> <!-- Print Area -->
|
||||
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
<Template brand="Brother" part="DK-1204" size="Other" width="48pt" height="153pt" _description="Multipurpose labels">
|
||||
<Template brand="Brother" part="DK-1204" _description="Multipurpose labels"
|
||||
size="roll" roll_width="20mm" width="17.02mm" height="53.85mm" >
|
||||
<Meta category="label"/>
|
||||
<Label-rectangle id="0" width="48pt" height="153pt" round="4pt" x_waste="0" y_waste="0">
|
||||
<Markup-rect x1="4.25pt" y1="8.5pt" w="39.5pt" h="136pt" r="0" />
|
||||
<Label-rectangle id="0" width="17.02mm" height="53.85mm" round="1.5mm" x_waste="0" y_waste="0">
|
||||
<Markup-margin x_size="1.5mm" y_size="3.0mm" /> <!-- Print Area -->
|
||||
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
<Template brand="Brother" part="DK-1208" size="Other" width="108pt" height="255pt" _description="Address labels">
|
||||
<Template brand="Brother" part="DK-1208" _description="Address labels"
|
||||
size="roll" roll_width="43mm" width="38.01mm" height="89.83mm" >
|
||||
<Meta category="label"/>
|
||||
<Meta category="mail"/>
|
||||
<Label-rectangle id="0" width="108pt" height="255pt" round="4pt" x_waste="0" y_waste="0">
|
||||
<Markup-rect x1="4.25pt" y1="8.5pt" w="99.5pt" h="238pt" r="0" />
|
||||
<Label-rectangle id="0" width="38.01mm" height="89.83mm" round="1.5mm" x_waste="0" y_waste="0">
|
||||
<Markup-margin x_size="1.5mm" y_size="3.0mm" /> <!-- Print Area -->
|
||||
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
|
||||
<!-- ********************************************************************* -->
|
||||
<!-- Continuous Label Tapes -->
|
||||
<!-- ********************************************************************* -->
|
||||
|
||||
<Template brand="Brother" part="DK-2205" _description="Continuous label tape"
|
||||
size="roll" roll_width="67mm" width="61.98mm" >
|
||||
<Meta category="label"/>
|
||||
<Meta category="mail"/>
|
||||
<Label-continuous id="0" width="61.98mm" min_height="25mm" max_height="1000mm" default_height="100mm" >
|
||||
<Markup-margin x_size="1.5mm" y_size="3.0mm" />
|
||||
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0"/>
|
||||
</Label-continuous>
|
||||
</Template>
|
||||
|
||||
|
||||
</Glabels-templates>
|
||||
|
||||
@@ -3,15 +3,54 @@
|
||||
<Glabels-templates>
|
||||
|
||||
<!-- =================================================================== -->
|
||||
<!-- Dymo 11352 Return address labels. -->
|
||||
<!-- 28mm x 89mm Address labels. -->
|
||||
<!-- =================================================================== -->
|
||||
<Template brand="Dymo" part="11352" size="Other" width="25mm" height="54mm" _description="Return address labels">
|
||||
<Template brand="Dymo" part="30252" _description="Address labels"
|
||||
size="roll" roll_width="31mm" width="28mm" height="89mm" >
|
||||
<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" />
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
<Template brand="Dymo" part="99010" equiv="30252" />
|
||||
|
||||
<!-- =================================================================== -->
|
||||
<!-- Postage stamp labels. -->
|
||||
<!-- =================================================================== -->
|
||||
<Template brand="Dymo" part="30915" _description="Postage stamp labels"
|
||||
size="roll" roll_width="51mm" width="41mm" height="31mm" >
|
||||
<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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
H 0
|
||||
Z" >
|
||||
<Markup-rect x1="1mm" y1="6mm" w="33mm" h="24mm" />
|
||||
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0" />
|
||||
</Label-path>
|
||||
</Template>
|
||||
|
||||
<!-- =================================================================== -->
|
||||
<!-- 25mm x 54mm Return address labels. -->
|
||||
<!-- =================================================================== -->
|
||||
<Template brand="Dymo" part="11352" _description="Return address labels"
|
||||
size="roll" roll_width="28mm" width="25mm" height="54mm" >
|
||||
<Meta category="label"/>
|
||||
<Meta category="mail"/>
|
||||
<Meta product_url="http://global.dymo.com/deAT/Labels/S0722520.html"/>
|
||||
<Label-rectangle id="0" width="25mm" height="54mm" round="0pt" x_waste="0pt" y_waste="0pt">
|
||||
<Label-rectangle id="0" width="25mm" height="54mm" round="1mm" x_waste="0mm" y_waste="0mm">
|
||||
<Markup-rect x1="1mm" y1="6mm" w="23mm" h="42mm" />
|
||||
<Markup-margin size="0pt"/>
|
||||
<Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="25mm" dy="54mm"/>
|
||||
<Layout nx="1" ny="1" x0="0" y0="0" dx="0" dy="0" />
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
@@ -150,18 +189,6 @@
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
<!-- =================================================================== -->
|
||||
<!-- Dymo 99010 Address labels. -->
|
||||
<!-- =================================================================== -->
|
||||
<Template brand="Dymo" part="99010" size="Other" width="28mm" height="89mm" _description="Address labels">
|
||||
<Meta category="label"/>
|
||||
<Meta category="mail"/>
|
||||
<Label-rectangle id="0" width="28mm" height="89mm" round="0pt" x_waste="0pt" y_waste="0pt">
|
||||
<Markup-margin size="0pt"/>
|
||||
<Layout nx="1" ny="1" x0="0pt" y0="0pt" dx="28mm" dy="89mm"/>
|
||||
</Label-rectangle>
|
||||
</Template>
|
||||
|
||||
<!-- =================================================================== -->
|
||||
<!-- Dymo 99012 Large address labels. -->
|
||||
<!-- =================================================================== -->
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
"(built-in |
|
||||
gnu-barcode |
|
||||
zint |
|
||||
libiec16022 |
|
||||
libqrencode")
|
||||
-->
|
||||
<!ENTITY % BC_STYLE_TYPE "CDATA">
|
||||
@@ -181,7 +180,7 @@
|
||||
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
||||
<!-- Template Section -->
|
||||
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
||||
<!ENTITY % label_element "Label-rectangle | Label-round | Label-ellipse | Label-cd">
|
||||
<!ENTITY % label_element "Label-rectangle | Label-round | Label-ellipse | Label-cd | Label-continuous">
|
||||
<!ENTITY % markup_element "Markup-margin | Markup-line | Markup-circle | Markup-rect | Markup-ellipse">
|
||||
|
||||
<!ELEMENT Template (Meta*, (%label_element;)*)>
|
||||
@@ -193,6 +192,7 @@
|
||||
size %STRING_TYPE; #IMPLIED
|
||||
width %LENGTH_TYPE; #IMPLIED
|
||||
height %LENGTH_TYPE; #IMPLIED
|
||||
roll_width %LENGTH_TYPE; #IMPLIED
|
||||
description %STRING_TYPE; #IMPLIED
|
||||
_description %STRING_TYPE; #IMPLIED
|
||||
>
|
||||
@@ -240,9 +240,21 @@
|
||||
waste %LENGTH_TYPE; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT Label-continuous ((%markup_element;)*, Layout+)>
|
||||
<!ATTLIST Label-continuous
|
||||
id %STRING_TYPE; #REQUIRED
|
||||
width %LENGTH_TYPE; #REQUIRED
|
||||
min_height %LENGTH_TYPE; #REQUIRED
|
||||
max_height %LENGTH_TYPE; #REQUIRED
|
||||
default_height %LENGTH_TYPE; #REQUIRED
|
||||
height %LENGTH_TYPE; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT Markup-margin EMPTY>
|
||||
<!ATTLIST Markup-margin
|
||||
size %LENGTH_TYPE; #REQUIRED
|
||||
size %LENGTH_TYPE; #IMPLIED
|
||||
x_size %LENGTH_TYPE; #IMPLIED
|
||||
y_size %LENGTH_TYPE; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT Markup-line EMPTY>
|
||||
|
||||
+278
-173
@@ -210,10 +210,17 @@
|
||||
<context>
|
||||
<name>Db</name>
|
||||
<message>
|
||||
<location filename="../model/Db.cpp" line="75"/>
|
||||
<location filename="../model/Db.cpp" line="209"/>
|
||||
<location filename="../model/Db.cpp" line="240"/>
|
||||
<source>Other</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../model/Db.cpp" line="213"/>
|
||||
<location filename="../model/Db.cpp" line="236"/>
|
||||
<source>Roll</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Factory</name>
|
||||
@@ -267,12 +274,12 @@
|
||||
<context>
|
||||
<name>Frame</name>
|
||||
<message>
|
||||
<location filename="../model/Frame.cpp" line="124"/>
|
||||
<location filename="../model/Frame.cpp" line="130"/>
|
||||
<source>%1 x %2 (%3 per sheet)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../model/Frame.cpp" line="130"/>
|
||||
<location filename="../model/Frame.cpp" line="136"/>
|
||||
<source>%1 per sheet</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -280,17 +287,26 @@
|
||||
<context>
|
||||
<name>FrameCd</name>
|
||||
<message>
|
||||
<location filename="../model/FrameCd.cpp" line="150"/>
|
||||
<location filename="../model/FrameCd.cpp" line="157"/>
|
||||
<location filename="../model/FrameCd.cpp" line="141"/>
|
||||
<location filename="../model/FrameCd.cpp" line="148"/>
|
||||
<source>diameter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FrameContinuous</name>
|
||||
<message>
|
||||
<location filename="../model/FrameContinuous.cpp" line="96"/>
|
||||
<location filename="../model/FrameContinuous.cpp" line="103"/>
|
||||
<source>wide</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FrameRound</name>
|
||||
<message>
|
||||
<location filename="../model/FrameRound.cpp" line="82"/>
|
||||
<location filename="../model/FrameRound.cpp" line="89"/>
|
||||
<location filename="../model/FrameRound.cpp" line="96"/>
|
||||
<source>diameter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -345,6 +361,11 @@
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="64"/>
|
||||
<source>Object properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="77"/>
|
||||
<source>Text</source>
|
||||
@@ -375,6 +396,17 @@
|
||||
<source>Word</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="310"/>
|
||||
<source>Anywhere</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="315"/>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="787"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="338"/>
|
||||
<source>Allow printing to shrink text to fit object</source>
|
||||
@@ -454,17 +486,6 @@
|
||||
<source>File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="315"/>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="787"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="310"/>
|
||||
<source>Anywhere</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="802"/>
|
||||
<source>Select File...</source>
|
||||
@@ -578,11 +599,6 @@
|
||||
<source>Opacity:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="64"/>
|
||||
<source>Object properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
@@ -708,82 +724,92 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="70"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="79"/>
|
||||
<source>Product</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="84"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="93"/>
|
||||
<source>Vendor:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="97"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="123"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="149"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="175"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="201"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="227"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="106"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="132"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="158"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="184"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="210"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="236"/>
|
||||
<source>TextLabel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="110"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="119"/>
|
||||
<source>Part #:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="136"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="145"/>
|
||||
<source>Description:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="162"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="171"/>
|
||||
<source>Page size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="188"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="197"/>
|
||||
<source>Label size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="214"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="223"/>
|
||||
<source>Layout:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="236"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="245"/>
|
||||
<source><html><head/><body><p>Select another product for this gLabels project.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="242"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="251"/>
|
||||
<source>Change product</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="268"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="271"/>
|
||||
<source>Adjustable Parameters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="293"/>
|
||||
<source>Label length:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="322"/>
|
||||
<source>Orientation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="282"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="336"/>
|
||||
<source>Select horizontal or vertical orientation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="292"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="346"/>
|
||||
<source>Horizontal orientation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="301"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="355"/>
|
||||
<source>Vertical orientation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="324"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="378"/>
|
||||
<source>Similar Products</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -919,6 +945,16 @@
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="46"/>
|
||||
<source>6. Margin:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="53"/>
|
||||
<source>1. Outer radius:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="73"/>
|
||||
<source>4. Clipping height:</source>
|
||||
@@ -930,8 +966,8 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="53"/>
|
||||
<source>1. Outer radius:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="87"/>
|
||||
<source>3. Clipping width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -939,14 +975,17 @@
|
||||
<source>5. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TemplateDesignerContinuousPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="87"/>
|
||||
<source>3. Clipping width:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerContinuousPage.ui" line="26"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="46"/>
|
||||
<source>6. Margin:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerContinuousPage.ui" line="35"/>
|
||||
<source><html><head/><body><p>Click &quot;Cancel&quot; to quit, or click &quot;Back&quot; to begin with a different product.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -957,11 +996,6 @@
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="73"/>
|
||||
<source>3. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="59"/>
|
||||
<source>2. Height:</source>
|
||||
@@ -972,6 +1006,11 @@
|
||||
<source>1. Width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="73"/>
|
||||
<source>3. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="90"/>
|
||||
<source>4. Margin:</source>
|
||||
@@ -1057,13 +1096,13 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="70"/>
|
||||
<source>Brand:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="63"/>
|
||||
<source>(e.g. "Mailing Labels," "Business Cards," ...)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="117"/>
|
||||
<source>(e.g. Avery, Acme, ...)</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="70"/>
|
||||
<source>Brand:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1071,19 +1110,19 @@
|
||||
<source>Part #:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="107"/>
|
||||
<source>(e.g. 8163A)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="97"/>
|
||||
<source>Description:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="63"/>
|
||||
<source>(e.g. "Mailing Labels," "Business Cards," ...)</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="107"/>
|
||||
<source>(e.g. 8163A)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="117"/>
|
||||
<source>(e.g. Avery, Acme, ...)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1111,7 +1150,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerOneLayoutPage.ui" line="82"/>
|
||||
<source>Distance from top edge (y0);</source>
|
||||
<source>Distance from top edge (y0):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1138,18 +1177,36 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="34"/>
|
||||
<source>Page size:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="75"/>
|
||||
<source>Roll width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="41"/>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="82"/>
|
||||
<source>Height:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="92"/>
|
||||
<source>Width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="58"/>
|
||||
<source>Height:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="122"/>
|
||||
<source>Page size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TemplateDesignerPathPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPathPage.ui" line="26"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPathPage.ui" line="35"/>
|
||||
<source><html><head/><body><p>Click &quot;Cancel&quot; to quit, or click &quot;Back&quot; to begin with a different product.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1161,33 +1218,43 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="83"/>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="114"/>
|
||||
<source>2. Height:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="60"/>
|
||||
<source>1. Width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="36"/>
|
||||
<source>2. Height:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="107"/>
|
||||
<source>3. Corner radius</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="100"/>
|
||||
<source>4. Horizontal waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="131"/>
|
||||
<source>5. Vertical waste:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="53"/>
|
||||
<source>3. Corner radius</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="114"/>
|
||||
<source>6. Margin:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="121"/>
|
||||
<source>6. Margin (X):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="138"/>
|
||||
<source>7. Margin (Y):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="148"/>
|
||||
<source>in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="87"/>
|
||||
<source>5. Vertical waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1199,8 +1266,8 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="93"/>
|
||||
<source>2. Waste:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="79"/>
|
||||
<source>3. Margin</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1209,8 +1276,8 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="79"/>
|
||||
<source>3. Margin</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="93"/>
|
||||
<source>2. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1261,7 +1328,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerTwoLayoutPage.ui" line="74"/>
|
||||
<source>Distance from top edge (y0);</source>
|
||||
<source>Distance from top edge (y0):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1362,43 +1429,43 @@
|
||||
<context>
|
||||
<name>glabels::File</name>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="104"/>
|
||||
<location filename="../glabels/File.cpp" line="105"/>
|
||||
<source>gLabels - Open Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="106"/>
|
||||
<location filename="../glabels/File.cpp" line="187"/>
|
||||
<location filename="../glabels/File.cpp" line="107"/>
|
||||
<location filename="../glabels/File.cpp" line="188"/>
|
||||
<source>glabels files (*.glabels);;All files (*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="133"/>
|
||||
<location filename="../glabels/File.cpp" line="134"/>
|
||||
<source>Unable to open "</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="133"/>
|
||||
<location filename="../glabels/File.cpp" line="134"/>
|
||||
<source>".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="185"/>
|
||||
<location filename="../glabels/File.cpp" line="186"/>
|
||||
<source>gLabels - Save Project As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="198"/>
|
||||
<location filename="../glabels/File.cpp" line="199"/>
|
||||
<source>Save Label As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="200"/>
|
||||
<location filename="../glabels/File.cpp" line="201"/>
|
||||
<source>%1 already exists.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="201"/>
|
||||
<location filename="../glabels/File.cpp" line="202"/>
|
||||
<source>Do you want to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1427,21 +1494,46 @@
|
||||
<source>Welcome</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="87"/>
|
||||
<source>Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="88"/>
|
||||
<source>Select <b>Edit</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="94"/>
|
||||
<source>Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="95"/>
|
||||
<source>Select <b>Properties</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="101"/>
|
||||
<source>Merge</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="102"/>
|
||||
<source>Select <b>Merge</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="108"/>
|
||||
<source>Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="109"/>
|
||||
<source>Select <b>Print</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="233"/>
|
||||
<source>&New...</source>
|
||||
@@ -1482,6 +1574,12 @@
|
||||
<source>Save current gLabels project to a different name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="257"/>
|
||||
<location filename="../glabels/MainWindow.cpp" line="558"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="259"/>
|
||||
<source>Select project Edit mode</source>
|
||||
@@ -1968,37 +2066,6 @@
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="257"/>
|
||||
<location filename="../glabels/MainWindow.cpp" line="558"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="87"/>
|
||||
<source>Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="88"/>
|
||||
<source>Select <b>Edit</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="95"/>
|
||||
<source>Select <b>Properties</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="102"/>
|
||||
<source>Select <b>Merge</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="109"/>
|
||||
<source>Select <b>Print</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="572"/>
|
||||
<source>&View</source>
|
||||
@@ -2354,7 +2421,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/PrintView.cpp" line="85"/>
|
||||
<location filename="../glabels/PrintView.cpp" line="93"/>
|
||||
<source>(Will print a total of %1 items on %2 pages.)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2362,17 +2429,17 @@
|
||||
<context>
|
||||
<name>glabels::PropertiesView</name>
|
||||
<message>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="44"/>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="45"/>
|
||||
<source>Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="191"/>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="224"/>
|
||||
<source>Product Rotate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="220"/>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="253"/>
|
||||
<source>Change Product</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2380,7 +2447,7 @@
|
||||
<context>
|
||||
<name>glabels::SimplePreview</name>
|
||||
<message>
|
||||
<location filename="../glabels/SimplePreview.cpp" line="238"/>
|
||||
<location filename="../glabels/SimplePreview.cpp" line="245"/>
|
||||
<source>Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2388,12 +2455,20 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesigner</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="111"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="115"/>
|
||||
<source>Product Template Designer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="455"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="185"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="195"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="205"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="215"/>
|
||||
<source>Roll</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="508"/>
|
||||
<source>Copy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2401,23 +2476,23 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerApplyPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1386"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1413"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1534"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1561"/>
|
||||
<source>Save Product Template</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1387"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1535"/>
|
||||
<source>Click "Save" to save your custom product template!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1415"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1563"/>
|
||||
<source>User product template (%1 %2) already exists.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1416"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1564"/>
|
||||
<source>Do you want to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2425,25 +2500,38 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerCdPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="981"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1081"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="982"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1082"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerContinuousPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1191"/>
|
||||
<source>Unsupported Product Style</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1192"/>
|
||||
<source>Continuous tape product templates are not currently supported by the Product Template Designer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerEllipsePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="909"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1009"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="910"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1010"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2451,12 +2539,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerIntroPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="553"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="608"/>
|
||||
<source>Welcome</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="554"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="609"/>
|
||||
<source>Welcome to the gLabels Product Template Designer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2464,12 +2552,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerNLayoutsPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1067"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1215"/>
|
||||
<source>Number of Layouts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1068"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1216"/>
|
||||
<source>Please select the number of layouts required.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2477,17 +2565,17 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerNamePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="604"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="672"/>
|
||||
<source>Name and Description</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="605"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="673"/>
|
||||
<source>Please enter the following identifying information about the product.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="636"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="704"/>
|
||||
<source>Brand and part number match an existing built-in product template!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2495,12 +2583,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerOneLayoutPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1098"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1246"/>
|
||||
<source>Layout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1099"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1247"/>
|
||||
<source>Please enter parameters for your single layout.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2508,36 +2596,53 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerPageSizePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="654"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="722"/>
|
||||
<source>Page Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="655"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="723"/>
|
||||
<source>Please select the product page size.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="660"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="668"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="674"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="676"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="708"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="715"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="716"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="728"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="733"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="754"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="787"/>
|
||||
<source>Other</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="729"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="734"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="788"/>
|
||||
<source>Roll</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerPathPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1167"/>
|
||||
<source>Unsupported Product Style</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1168"/>
|
||||
<source>Path based product templates are not currently supported by the Product Template Designer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerRectPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="758"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="851"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="759"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="852"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2545,12 +2650,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerRoundPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="844"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="944"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="845"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="945"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2558,12 +2663,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerShapePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="725"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="818"/>
|
||||
<source>Product Shape</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="726"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="819"/>
|
||||
<source>Please select the basic product shape.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2571,12 +2676,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerTwoLayoutPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1220"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1368"/>
|
||||
<source>Layouts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1221"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1369"/>
|
||||
<source>Please enter parameters for your two layouts.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -3049,7 +3154,7 @@
|
||||
<context>
|
||||
<name>glabels::model::Model</name>
|
||||
<message>
|
||||
<location filename="../model/Model.cpp" line="260"/>
|
||||
<location filename="../model/Model.cpp" line="295"/>
|
||||
<source>Untitled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
+1031
-400
File diff suppressed because it is too large
Load Diff
+1031
-271
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+953
-193
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+890
-785
File diff suppressed because it is too large
Load Diff
+1031
-271
File diff suppressed because it is too large
Load Diff
+1031
-271
File diff suppressed because it is too large
Load Diff
+1030
-315
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-324
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1031
-336
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-291
File diff suppressed because it is too large
Load Diff
+1028
-342
File diff suppressed because it is too large
Load Diff
+1031
-271
File diff suppressed because it is too large
Load Diff
+1028
-327
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1031
-384
File diff suppressed because it is too large
Load Diff
+1031
-271
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1031
-275
File diff suppressed because it is too large
Load Diff
+1031
-271
File diff suppressed because it is too large
Load Diff
+1030
-272
File diff suppressed because it is too large
Load Diff
+1031
-271
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+1030
-270
File diff suppressed because it is too large
Load Diff
+279
-174
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="uk" sourcelanguage="en_US">
|
||||
<TS version="2.1" language="uk_UA">
|
||||
<context>
|
||||
<name>AboutDialog</name>
|
||||
<message>
|
||||
@@ -210,10 +210,17 @@
|
||||
<context>
|
||||
<name>Db</name>
|
||||
<message>
|
||||
<location filename="../model/Db.cpp" line="75"/>
|
||||
<location filename="../model/Db.cpp" line="209"/>
|
||||
<location filename="../model/Db.cpp" line="240"/>
|
||||
<source>Other</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../model/Db.cpp" line="213"/>
|
||||
<location filename="../model/Db.cpp" line="236"/>
|
||||
<source>Roll</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Factory</name>
|
||||
@@ -267,12 +274,12 @@
|
||||
<context>
|
||||
<name>Frame</name>
|
||||
<message>
|
||||
<location filename="../model/Frame.cpp" line="124"/>
|
||||
<location filename="../model/Frame.cpp" line="130"/>
|
||||
<source>%1 x %2 (%3 per sheet)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../model/Frame.cpp" line="130"/>
|
||||
<location filename="../model/Frame.cpp" line="136"/>
|
||||
<source>%1 per sheet</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -280,17 +287,26 @@
|
||||
<context>
|
||||
<name>FrameCd</name>
|
||||
<message>
|
||||
<location filename="../model/FrameCd.cpp" line="150"/>
|
||||
<location filename="../model/FrameCd.cpp" line="157"/>
|
||||
<location filename="../model/FrameCd.cpp" line="141"/>
|
||||
<location filename="../model/FrameCd.cpp" line="148"/>
|
||||
<source>diameter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FrameContinuous</name>
|
||||
<message>
|
||||
<location filename="../model/FrameContinuous.cpp" line="96"/>
|
||||
<location filename="../model/FrameContinuous.cpp" line="103"/>
|
||||
<source>wide</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FrameRound</name>
|
||||
<message>
|
||||
<location filename="../model/FrameRound.cpp" line="82"/>
|
||||
<location filename="../model/FrameRound.cpp" line="89"/>
|
||||
<location filename="../model/FrameRound.cpp" line="96"/>
|
||||
<source>diameter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -345,6 +361,11 @@
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="64"/>
|
||||
<source>Object properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="77"/>
|
||||
<source>Text</source>
|
||||
@@ -375,6 +396,17 @@
|
||||
<source>Word</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="310"/>
|
||||
<source>Anywhere</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="315"/>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="787"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="338"/>
|
||||
<source>Allow printing to shrink text to fit object</source>
|
||||
@@ -454,17 +486,6 @@
|
||||
<source>File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="315"/>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="787"/>
|
||||
<source>None</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="310"/>
|
||||
<source>Anywhere</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="802"/>
|
||||
<source>Select File...</source>
|
||||
@@ -578,11 +599,6 @@
|
||||
<source>Opacity:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/ObjectEditor.ui" line="64"/>
|
||||
<source>Object properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
@@ -708,82 +724,92 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="70"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="79"/>
|
||||
<source>Product</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="84"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="93"/>
|
||||
<source>Vendor:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="97"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="123"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="149"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="175"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="201"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="227"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="106"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="132"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="158"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="184"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="210"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="236"/>
|
||||
<source>TextLabel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="110"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="119"/>
|
||||
<source>Part #:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="136"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="145"/>
|
||||
<source>Description:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="162"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="171"/>
|
||||
<source>Page size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="188"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="197"/>
|
||||
<source>Label size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="214"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="223"/>
|
||||
<source>Layout:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="236"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="245"/>
|
||||
<source><html><head/><body><p>Select another product for this gLabels project.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="242"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="251"/>
|
||||
<source>Change product</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="268"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="271"/>
|
||||
<source>Adjustable Parameters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="293"/>
|
||||
<source>Label length:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="322"/>
|
||||
<source>Orientation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="282"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="336"/>
|
||||
<source>Select horizontal or vertical orientation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="292"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="346"/>
|
||||
<source>Horizontal orientation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="301"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="355"/>
|
||||
<source>Vertical orientation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="324"/>
|
||||
<location filename="../glabels/ui/PropertiesView.ui" line="378"/>
|
||||
<source>Similar Products</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -919,6 +945,16 @@
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="46"/>
|
||||
<source>6. Margin:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="53"/>
|
||||
<source>1. Outer radius:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="73"/>
|
||||
<source>4. Clipping height:</source>
|
||||
@@ -930,8 +966,8 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="53"/>
|
||||
<source>1. Outer radius:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="87"/>
|
||||
<source>3. Clipping width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -939,14 +975,17 @@
|
||||
<source>5. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TemplateDesignerContinuousPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="87"/>
|
||||
<source>3. Clipping width:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerContinuousPage.ui" line="26"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerCdPage.ui" line="46"/>
|
||||
<source>6. Margin:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerContinuousPage.ui" line="35"/>
|
||||
<source><html><head/><body><p>Click &quot;Cancel&quot; to quit, or click &quot;Back&quot; to begin with a different product.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -957,11 +996,6 @@
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="73"/>
|
||||
<source>3. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="59"/>
|
||||
<source>2. Height:</source>
|
||||
@@ -972,6 +1006,11 @@
|
||||
<source>1. Width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="73"/>
|
||||
<source>3. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerEllipsePage.ui" line="90"/>
|
||||
<source>4. Margin:</source>
|
||||
@@ -1057,13 +1096,13 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="70"/>
|
||||
<source>Brand:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="63"/>
|
||||
<source>(e.g. "Mailing Labels," "Business Cards," ...)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="117"/>
|
||||
<source>(e.g. Avery, Acme, ...)</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="70"/>
|
||||
<source>Brand:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1071,19 +1110,19 @@
|
||||
<source>Part #:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="107"/>
|
||||
<source>(e.g. 8163A)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="97"/>
|
||||
<source>Description:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="63"/>
|
||||
<source>(e.g. "Mailing Labels," "Business Cards," ...)</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="107"/>
|
||||
<source>(e.g. 8163A)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerNamePage.ui" line="117"/>
|
||||
<source>(e.g. Avery, Acme, ...)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1111,7 +1150,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerOneLayoutPage.ui" line="82"/>
|
||||
<source>Distance from top edge (y0);</source>
|
||||
<source>Distance from top edge (y0):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1138,18 +1177,36 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="34"/>
|
||||
<source>Page size:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="75"/>
|
||||
<source>Roll width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="41"/>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="82"/>
|
||||
<source>Height:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="92"/>
|
||||
<source>Width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="58"/>
|
||||
<source>Height:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerPageSizePage.ui" line="122"/>
|
||||
<source>Page size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TemplateDesignerPathPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPathPage.ui" line="26"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerPathPage.ui" line="35"/>
|
||||
<source><html><head/><body><p>Click &quot;Cancel&quot; to quit, or click &quot;Back&quot; to begin with a different product.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1161,33 +1218,43 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="83"/>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="114"/>
|
||||
<source>2. Height:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="60"/>
|
||||
<source>1. Width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="36"/>
|
||||
<source>2. Height:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="107"/>
|
||||
<source>3. Corner radius</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="100"/>
|
||||
<source>4. Horizontal waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="131"/>
|
||||
<source>5. Vertical waste:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="53"/>
|
||||
<source>3. Corner radius</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="114"/>
|
||||
<source>6. Margin:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="121"/>
|
||||
<source>6. Margin (X):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="138"/>
|
||||
<source>7. Margin (Y):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="148"/>
|
||||
<source>in</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRectPage.ui" line="87"/>
|
||||
<source>5. Vertical waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1199,8 +1266,8 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="93"/>
|
||||
<source>2. Waste:</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="79"/>
|
||||
<source>3. Margin</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1209,8 +1276,8 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="79"/>
|
||||
<source>3. Margin</source>
|
||||
<location filename="../glabels/ui/TemplateDesignerRoundPage.ui" line="93"/>
|
||||
<source>2. Waste:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1261,7 +1328,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/ui/TemplateDesignerTwoLayoutPage.ui" line="74"/>
|
||||
<source>Distance from top edge (y0);</source>
|
||||
<source>Distance from top edge (y0):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -1362,43 +1429,43 @@
|
||||
<context>
|
||||
<name>glabels::File</name>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="104"/>
|
||||
<location filename="../glabels/File.cpp" line="105"/>
|
||||
<source>gLabels - Open Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="106"/>
|
||||
<location filename="../glabels/File.cpp" line="187"/>
|
||||
<location filename="../glabels/File.cpp" line="107"/>
|
||||
<location filename="../glabels/File.cpp" line="188"/>
|
||||
<source>glabels files (*.glabels);;All files (*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="133"/>
|
||||
<location filename="../glabels/File.cpp" line="134"/>
|
||||
<source>Unable to open "</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="133"/>
|
||||
<location filename="../glabels/File.cpp" line="134"/>
|
||||
<source>".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="185"/>
|
||||
<location filename="../glabels/File.cpp" line="186"/>
|
||||
<source>gLabels - Save Project As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="198"/>
|
||||
<location filename="../glabels/File.cpp" line="199"/>
|
||||
<source>Save Label As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="200"/>
|
||||
<location filename="../glabels/File.cpp" line="201"/>
|
||||
<source>%1 already exists.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/File.cpp" line="201"/>
|
||||
<location filename="../glabels/File.cpp" line="202"/>
|
||||
<source>Do you want to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1427,21 +1494,46 @@
|
||||
<source>Welcome</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="87"/>
|
||||
<source>Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="88"/>
|
||||
<source>Select <b>Edit</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="94"/>
|
||||
<source>Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="95"/>
|
||||
<source>Select <b>Properties</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="101"/>
|
||||
<source>Merge</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="102"/>
|
||||
<source>Select <b>Merge</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="108"/>
|
||||
<source>Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="109"/>
|
||||
<source>Select <b>Print</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="233"/>
|
||||
<source>&New...</source>
|
||||
@@ -1482,6 +1574,12 @@
|
||||
<source>Save current gLabels project to a different name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="257"/>
|
||||
<location filename="../glabels/MainWindow.cpp" line="558"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="259"/>
|
||||
<source>Select project Edit mode</source>
|
||||
@@ -1968,37 +2066,6 @@
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="257"/>
|
||||
<location filename="../glabels/MainWindow.cpp" line="558"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="87"/>
|
||||
<source>Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="88"/>
|
||||
<source>Select <b>Edit</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="95"/>
|
||||
<source>Select <b>Properties</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="102"/>
|
||||
<source>Select <b>Merge</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="109"/>
|
||||
<source>Select <b>Print</b> mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/MainWindow.cpp" line="572"/>
|
||||
<source>&View</source>
|
||||
@@ -2354,7 +2421,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/PrintView.cpp" line="85"/>
|
||||
<location filename="../glabels/PrintView.cpp" line="93"/>
|
||||
<source>(Will print a total of %1 items on %2 pages.)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2362,17 +2429,17 @@
|
||||
<context>
|
||||
<name>glabels::PropertiesView</name>
|
||||
<message>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="44"/>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="45"/>
|
||||
<source>Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="191"/>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="224"/>
|
||||
<source>Product Rotate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="220"/>
|
||||
<location filename="../glabels/PropertiesView.cpp" line="253"/>
|
||||
<source>Change Product</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2380,7 +2447,7 @@
|
||||
<context>
|
||||
<name>glabels::SimplePreview</name>
|
||||
<message>
|
||||
<location filename="../glabels/SimplePreview.cpp" line="238"/>
|
||||
<location filename="../glabels/SimplePreview.cpp" line="245"/>
|
||||
<source>Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2388,12 +2455,20 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesigner</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="111"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="115"/>
|
||||
<source>Product Template Designer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="455"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="185"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="195"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="205"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="215"/>
|
||||
<source>Roll</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="508"/>
|
||||
<source>Copy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2401,23 +2476,23 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerApplyPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1386"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1413"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1534"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1561"/>
|
||||
<source>Save Product Template</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1387"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1535"/>
|
||||
<source>Click "Save" to save your custom product template!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1415"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1563"/>
|
||||
<source>User product template (%1 %2) already exists.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1416"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1564"/>
|
||||
<source>Do you want to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2425,25 +2500,38 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerCdPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="981"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1081"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="982"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1082"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerContinuousPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1191"/>
|
||||
<source>Unsupported Product Style</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1192"/>
|
||||
<source>Continuous tape product templates are not currently supported by the Product Template Designer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerEllipsePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="909"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1009"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="910"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1010"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2451,12 +2539,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerIntroPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="553"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="608"/>
|
||||
<source>Welcome</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="554"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="609"/>
|
||||
<source>Welcome to the gLabels Product Template Designer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2464,12 +2552,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerNLayoutsPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1067"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1215"/>
|
||||
<source>Number of Layouts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1068"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1216"/>
|
||||
<source>Please select the number of layouts required.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2477,17 +2565,17 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerNamePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="604"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="672"/>
|
||||
<source>Name and Description</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="605"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="673"/>
|
||||
<source>Please enter the following identifying information about the product.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="636"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="704"/>
|
||||
<source>Brand and part number match an existing built-in product template!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2495,12 +2583,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerOneLayoutPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1098"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1246"/>
|
||||
<source>Layout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1099"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1247"/>
|
||||
<source>Please enter parameters for your single layout.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2508,36 +2596,53 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerPageSizePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="654"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="722"/>
|
||||
<source>Page Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="655"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="723"/>
|
||||
<source>Please select the product page size.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="660"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="668"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="674"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="676"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="708"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="715"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="716"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="728"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="733"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="754"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="787"/>
|
||||
<source>Other</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="729"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="734"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="788"/>
|
||||
<source>Roll</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerPathPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1167"/>
|
||||
<source>Unsupported Product Style</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1168"/>
|
||||
<source>Path based product templates are not currently supported by the Product Template Designer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerRectPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="758"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="851"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="759"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="852"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2545,12 +2650,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerRoundPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="844"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="944"/>
|
||||
<source>Product Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="845"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="945"/>
|
||||
<source>Please adjust the size parameters of a single product item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2558,12 +2663,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerShapePage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="725"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="818"/>
|
||||
<source>Product Shape</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="726"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="819"/>
|
||||
<source>Please select the basic product shape.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2571,12 +2676,12 @@
|
||||
<context>
|
||||
<name>glabels::TemplateDesignerTwoLayoutPage</name>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1220"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1368"/>
|
||||
<source>Layouts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1221"/>
|
||||
<location filename="../glabels/TemplateDesigner.cpp" line="1369"/>
|
||||
<source>Please enter parameters for your two layouts.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -3049,7 +3154,7 @@
|
||||
<context>
|
||||
<name>glabels::model::Model</name>
|
||||
<message>
|
||||
<location filename="../model/Model.cpp" line="260"/>
|
||||
<location filename="../model/Model.cpp" line="295"/>
|
||||
<source>Untitled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
+1031
-308
File diff suppressed because it is too large
Load Diff
+1031
-319
File diff suppressed because it is too large
Load Diff
+1031
-319
File diff suppressed because it is too large
Load Diff
+96
-88
@@ -27,6 +27,14 @@
|
||||
<source>Barcode labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bookplate labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bottle/jar labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Business card CD labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -63,6 +71,18 @@
|
||||
<source>CD/DVD center hub labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD insert (back)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD insert (front)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -79,6 +99,10 @@
|
||||
<source>CD/DVD labels (rectangles)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels (spine labels)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels (spine only)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -91,6 +115,10 @@
|
||||
<source>CD/DVD tray</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Candle labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Candy labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -99,6 +127,10 @@
|
||||
<source>Cassette labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Classification labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coffee and tea labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -111,6 +143,10 @@
|
||||
<source>DLT labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DVD insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Digital media labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -123,6 +159,10 @@
|
||||
<source>Diskette labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Divider labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Elliptical labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -131,6 +171,10 @@
|
||||
<source>File folder labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Filing labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -175,6 +219,10 @@
|
||||
<source>ID labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Index cards</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -183,6 +231,14 @@
|
||||
<source>Large address labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Large arch file labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Large round labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lever arch file labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -263,6 +319,14 @@
|
||||
<source>Photo products</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Post cards</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Postage stamp labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Printable mousepad</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -299,6 +363,10 @@
|
||||
<source>Target stickers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tent cards</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Trapezoid labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -307,6 +375,26 @@
|
||||
<source>Triangular labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tube labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS face labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS-C insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Video labels (face only)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -319,94 +407,6 @@
|
||||
<source>Video tape spine labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zip disc labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bookplate labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bottle/jar labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Candle labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Classification labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS face labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Large arch file labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tube labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD insert (back)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD insert (front)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels (spine labels)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DVD insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Divider labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Index cards</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Large round labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Post cards</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tent cards</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VHS-C insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Video-8 insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -419,5 +419,13 @@
|
||||
<source>Zip disc insert</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zip disc labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Continuous label tape</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="ar" sourcelanguage="en_US">
|
||||
<TS version="2.1" language="ar_EG">
|
||||
<context>
|
||||
<name>XmlStrings</name>
|
||||
<message>
|
||||
<source>Address labels</source>
|
||||
<translation type="unfinished">ملصقات عناوين</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any card</source>
|
||||
<translation type="unfinished">كل البطاقات</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any label</source>
|
||||
<translation type="unfinished">كل الملصقات</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Arch file inserts</source>
|
||||
@@ -45,7 +45,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Business cards</source>
|
||||
<translation type="unfinished">بطاقة رجال الأعمال</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD booklet</source>
|
||||
@@ -85,7 +85,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels</source>
|
||||
<translation type="unfinished">ملصقات سيدي/دفيدي</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels (disc labels)</source>
|
||||
@@ -109,7 +109,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD or other media</source>
|
||||
<translation type="unfinished">بطاقات أقراص حاسب</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD tray</source>
|
||||
@@ -157,7 +157,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Diskette labels</source>
|
||||
<translation type="unfinished">ملصقات الأقراص المرنة</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Divider labels</source>
|
||||
@@ -165,7 +165,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Elliptical labels</source>
|
||||
<translation type="unfinished">ملصقات بيضاوية</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File folder labels</source>
|
||||
@@ -181,21 +181,19 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Floppy disk labels</source>
|
||||
<translation type="unfinished">ملصقات القرص المرن</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Flyer paper</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Foldable business cards</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Foldable cards</source>
|
||||
<translation type="unfinished">بطاقات مطوية</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Full face CD/DVD labels</source>
|
||||
@@ -211,7 +209,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Greeting cards</source>
|
||||
<translation type="unfinished">بطاقات تهنئة</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hanging folder labels</source>
|
||||
@@ -227,7 +225,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Labels</source>
|
||||
<translation type="unfinished">الملصقات</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Large address labels</source>
|
||||
@@ -251,11 +249,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Mailing labels</source>
|
||||
<translation type="unfinished">ملصقات بريدية</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mailing/shipping products</source>
|
||||
<translation type="unfinished">مغلفات البريد/الشحن</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Medical chart labels</source>
|
||||
@@ -263,7 +261,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Membership cards</source>
|
||||
<translation type="unfinished">بطاقات عضوية</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Metal tin container labels</source>
|
||||
@@ -275,8 +273,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Mini Disc labels</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mini address labels</source>
|
||||
@@ -300,8 +297,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Name plates</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nutritional labels</source>
|
||||
@@ -313,29 +309,31 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Passport photo labels</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Photo labels</source>
|
||||
<translation type="unfinished">ملصقات الصور</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Photo products</source>
|
||||
<translation type="unfinished">صور</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Post cards</source>
|
||||
<translation type="unfinished">بطاقة بريدية</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Postage stamp labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Printable mousepad</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rectangular labels</source>
|
||||
<translation type="unfinished">ملصقات مستطيلة</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Return address labels</source>
|
||||
@@ -343,12 +341,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Round labels</source>
|
||||
<translation type="unfinished">ملصقات دائرية</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SD card labels</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Seal labels</source>
|
||||
@@ -356,11 +353,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Shipping labels</source>
|
||||
<translation type="unfinished">ملصقات شحن</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Square labels</source>
|
||||
<translation type="unfinished">ملصقات مربعة</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Target stickers</source>
|
||||
@@ -372,13 +369,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Trapezoid labels</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Triangular labels</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tube labels</source>
|
||||
@@ -426,8 +421,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Zip disc labels</source>
|
||||
<translation type="unfinished">
|
||||
</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Continuous label tape</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="bs" sourcelanguage="en_US">
|
||||
<TS version="2.1" language="bs_BA">
|
||||
<context>
|
||||
<name>XmlStrings</name>
|
||||
<message>
|
||||
<source>Address labels</source>
|
||||
<translation type="unfinished">Adresne naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any card</source>
|
||||
<translation type="unfinished">Bilo koja karta</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any label</source>
|
||||
<translation type="unfinished">Bilo koja oznaka</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Arch file inserts</source>
|
||||
@@ -45,7 +45,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Business cards</source>
|
||||
<translation type="unfinished">Vizit karta</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD booklet</source>
|
||||
@@ -85,7 +85,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels</source>
|
||||
<translation type="unfinished">CD/DVD naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD labels (disc labels)</source>
|
||||
@@ -109,7 +109,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD or other media</source>
|
||||
<translation type="unfinished">CD/DVD ili drugi medij</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CD/DVD tray</source>
|
||||
@@ -157,7 +157,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Diskette labels</source>
|
||||
<translation type="unfinished">Dikseta naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Divider labels</source>
|
||||
@@ -165,7 +165,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Elliptical labels</source>
|
||||
<translation type="unfinished">Eliprična oznaka</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File folder labels</source>
|
||||
@@ -181,19 +181,19 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Floppy disk labels</source>
|
||||
<translation type="unfinished">Floppy disk naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Flyer paper</source>
|
||||
<translation type="unfinished">Letak papir</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Foldable business cards</source>
|
||||
<translation type="unfinished">Sklopive vizit karte</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Foldable cards</source>
|
||||
<translation type="unfinished">Sklopive karte</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Full face CD/DVD labels</source>
|
||||
@@ -209,7 +209,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Greeting cards</source>
|
||||
<translation type="unfinished">Čestitke</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hanging folder labels</source>
|
||||
@@ -225,7 +225,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Labels</source>
|
||||
<translation type="unfinished">Oznake</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Large address labels</source>
|
||||
@@ -249,11 +249,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Mailing labels</source>
|
||||
<translation type="unfinished">Slanje naljepnica</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mailing/shipping products</source>
|
||||
<translation type="unfinished">Slanje/Otpremanje proizvoda</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Medical chart labels</source>
|
||||
@@ -261,7 +261,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Membership cards</source>
|
||||
<translation type="unfinished">Članske kartice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Metal tin container labels</source>
|
||||
@@ -273,7 +273,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Mini Disc labels</source>
|
||||
<translation type="unfinished">Mini Disk naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mini address labels</source>
|
||||
@@ -297,7 +297,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Name plates</source>
|
||||
<translation type="unfinished">Ploče sa imenima</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nutritional labels</source>
|
||||
@@ -309,27 +309,31 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Passport photo labels</source>
|
||||
<translation type="unfinished">Naljepnice za sliku pasoša</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Photo labels</source>
|
||||
<translation type="unfinished">Foto naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Photo products</source>
|
||||
<translation type="unfinished">Foto proizvodi</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Post cards</source>
|
||||
<translation type="unfinished">Poštanske karte</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Postage stamp labels</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Printable mousepad</source>
|
||||
<translation type="unfinished">Pogdloga za miša koja se može štampati</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rectangular labels</source>
|
||||
<translation type="unfinished">Pravougaona oznaka</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Return address labels</source>
|
||||
@@ -337,11 +341,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Round labels</source>
|
||||
<translation type="unfinished">Okrugla oznaka</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SD card labels</source>
|
||||
<translation type="unfinished">Naljepnice za SD kartice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Seal labels</source>
|
||||
@@ -349,11 +353,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Shipping labels</source>
|
||||
<translation type="unfinished">Naljepnice za dostavu</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Square labels</source>
|
||||
<translation type="unfinished">Kvadratna oznaka</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Target stickers</source>
|
||||
@@ -365,11 +369,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Trapezoid labels</source>
|
||||
<translation type="unfinished">Trapezoidni naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Triangular labels</source>
|
||||
<translation type="unfinished">Trougaone naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tube labels</source>
|
||||
@@ -417,7 +421,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Zip disc labels</source>
|
||||
<translation type="unfinished">Zip disk naljepnice</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Continuous label tape</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user