Style reconciliation.

This commit is contained in:
Jim Evins
2013-12-28 11:32:28 -05:00
parent f1de981804
commit a46bc43a4d
33 changed files with 1525 additions and 289 deletions
+36 -1
View File
@@ -24,7 +24,9 @@
namespace glabels
{
///
/// Default Constructor
///
BarcodeStyle::BarcodeStyle ()
: mId( "" ),
mName( "" ),
@@ -39,6 +41,9 @@ namespace glabels
}
///
/// Constructor From Data
///
BarcodeStyle::BarcodeStyle ( const QString& id,
const QString& name,
bool canText,
@@ -61,60 +66,90 @@ namespace glabels
}
///
/// ID Property Getter
///
const QString& BarcodeStyle::id() const
{
return mId;
}
///
/// Name Property Getter
///
const QString& BarcodeStyle::name() const
{
return mName;
}
///
/// Can Text Property Getter
///
bool BarcodeStyle::canText() const
{
return mCanText;
}
///
/// Text Optional Property Getter
///
bool BarcodeStyle::textOptional() const
{
return mTextOptional;
}
///
/// Can Checksum Property Getter
///
bool BarcodeStyle::canChecksum() const
{
return mCanChecksum;
}
///
/// Checksum Optional Property Getter
///
bool BarcodeStyle::checksumOptional() const
{
return mChecksumOptional;
}
///
/// Default Digits Property Getter
///
const QString& BarcodeStyle::defaultDigits() const
{
return mDefaultDigits;
}
///
/// Can Freeform Property Getter
///
bool BarcodeStyle::canFreeform() const
{
return mCanFreeform;
}
///
/// Prefered N Property Getter
///
int BarcodeStyle::preferedN() const
{
return mPreferedN;
}
///
/// Generate Example Digits
///
QString BarcodeStyle::exampleDigits( int n ) const
{
if ( mCanFreeform )
+17 -1
View File
@@ -27,9 +27,15 @@
namespace glabels
{
class BarcodeStyle
///
/// Barcode Style Type
///
struct BarcodeStyle
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
BarcodeStyle ();
@@ -44,6 +50,9 @@ namespace glabels
int preferedN );
/////////////////////////////////
// Properties
/////////////////////////////////
const QString& id() const;
const QString& name() const;
@@ -63,9 +72,16 @@ namespace glabels
int preferedN() const;
/////////////////////////////////
// Methods
/////////////////////////////////
public:
QString exampleDigits( int n ) const;
/////////////////////////////////
// Private Data
/////////////////////////////////
private:
QString mId;
QString mName;
+2 -2
View File
@@ -27,10 +27,10 @@ set (glabels_qobject_headers
LabelModel.h
LabelModelObject.h
LabelModelBoxObject.h
MainWindow.h
TemplatePicker.h
NewLabelDialog.h
MainWindow.h
SimplePreview.h
TemplatePicker.h
View.h
)
+45 -18
View File
@@ -24,30 +24,45 @@
namespace glabels
{
///
/// Default Constructor
///
ColorNode::ColorNode()
: mFieldFlag(false), mColor(QColor::fromRgba(0x00000000)), mKey("")
{
}
///
/// Constructor From Data
///
ColorNode::ColorNode( bool fieldFlag, const QColor& color, const QString& key )
: mFieldFlag(fieldFlag), mColor(color), mKey(key)
{
}
///
/// Constructor From Color
///
ColorNode::ColorNode( const QColor& color )
: mFieldFlag(false), mColor(color), mKey("")
{
}
///
/// Constructor From Key
///
ColorNode::ColorNode( const QString& key )
: mFieldFlag(true), mColor(QColor::fromRgba(0x00000000)), mKey(key)
{
}
///
/// == Operator
///
bool ColorNode::operator==( const ColorNode& cn )
{
return ( (mFieldFlag == cn.mFieldFlag) &&
@@ -56,6 +71,9 @@ namespace glabels
}
///
/// != Operator
///
bool ColorNode::operator!=( const ColorNode& cn )
{
return ( (mFieldFlag != cn.mFieldFlag) ||
@@ -64,6 +82,33 @@ namespace glabels
}
///
/// Field Flag Property Getter
///
bool ColorNode::fieldFlag( void ) const
{
return mFieldFlag;
}
///
/// Color Property Getter
///
const QColor& ColorNode::color( void ) const
{
return mColor;
}
///
/// Key Property
///
const QString& ColorNode::key( void ) const
{
return mKey;
}
#if TODO
QColor ColorNode::expand( MergeRecord? record )
{
@@ -102,23 +147,5 @@ namespace glabels
}
#endif
bool ColorNode::fieldFlag( void ) const
{
return mFieldFlag;
}
const QColor& ColorNode::color( void ) const
{
return mColor;
}
const QString& ColorNode::key( void ) const
{
return mKey;
}
}
+43 -13
View File
@@ -28,9 +28,15 @@
namespace glabels
{
class ColorNode
///
/// Color Node Type
///
struct ColorNode
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
ColorNode();
@@ -40,27 +46,51 @@ namespace glabels
ColorNode( const QString& key );
/////////////////////////////////
// Operators
/////////////////////////////////
public:
bool operator==( const ColorNode& cn );
bool operator!=( const ColorNode& cn );
/////////////////////////////////
// Properties
/////////////////////////////////
public:
//
// Field Flag Property
//
bool fieldFlag( void ) const;
//
// Color Property
//
const QColor& color( void ) const;
//
// Key Property
//
const QString& key( void ) const;
/////////////////////////////////
// Methods
/////////////////////////////////
public:
#if TODO
QColor expand( MergeRecord? record );
#endif
// field flag property
bool fieldFlag( void ) const;
// color property
const QColor& color( void ) const;
// key property
const QString& key( void ) const;
/////////////////////////////////
// Private Data
/////////////////////////////////
private:
bool mFieldFlag;
QColor mColor;
+3
View File
@@ -26,6 +26,9 @@
namespace glabels
{
///
/// Open a New Label Dialog
///
void File::newLabel( QWidget *parent )
{
NewLabelDialog newDialog( parent );
+3
View File
@@ -28,6 +28,9 @@
namespace glabels
{
///
/// File Actions
///
namespace File
{
void newLabel( QWidget *parent );
+6
View File
@@ -28,12 +28,18 @@
namespace glabels
{
///
/// Display Help Contents
///
void Help::displayContents( QWidget *parent )
{
std::cout << "TODO: Help::displayContents" << std::endl;
}
///
/// Display Help->About Dialog
///
void Help::displayAbout( QWidget *parent )
{
QMessageBox aboutBox( QMessageBox::NoIcon,
+3
View File
@@ -28,6 +28,9 @@
namespace glabels
{
///
/// Help Actions
///
namespace Help
{
void displayContents( QWidget *parent );
+46 -4
View File
@@ -27,6 +27,9 @@
namespace glabels
{
///
/// Glabels Icons
///
namespace Icons
{
@@ -40,6 +43,7 @@ namespace glabels
}
};
class Barcode : public QIcon
{
public:
@@ -50,6 +54,7 @@ namespace glabels
}
};
class Box : public QIcon
{
public:
@@ -60,6 +65,7 @@ namespace glabels
}
};
class Ellipse : public QIcon
{
public:
@@ -70,6 +76,7 @@ namespace glabels
}
};
class Image : public QIcon
{
public:
@@ -80,6 +87,7 @@ namespace glabels
}
};
class Line : public QIcon
{
public:
@@ -90,6 +98,7 @@ namespace glabels
}
};
class Text : public QIcon
{
public:
@@ -100,6 +109,7 @@ namespace glabels
}
};
class Merge : public QIcon
{
public:
@@ -110,6 +120,7 @@ namespace glabels
}
};
class ObjectProperties : public QIcon
{
public:
@@ -120,6 +131,7 @@ namespace glabels
}
};
class AlignLeft : public QIcon
{
public:
@@ -129,6 +141,7 @@ namespace glabels
}
};
class AlignHCenter : public QIcon
{
public:
@@ -138,6 +151,7 @@ namespace glabels
}
};
class AlignRight : public QIcon
{
public:
@@ -147,6 +161,7 @@ namespace glabels
}
};
class AlignBottom : public QIcon
{
public:
@@ -156,6 +171,7 @@ namespace glabels
}
};
class AlignVCenter : public QIcon
{
public:
@@ -165,6 +181,7 @@ namespace glabels
}
};
class AlignTop : public QIcon
{
public:
@@ -174,6 +191,7 @@ namespace glabels
}
};
class CenterHoriz : public QIcon
{
public:
@@ -183,6 +201,7 @@ namespace glabels
}
};
class CenterVert : public QIcon
{
public:
@@ -192,6 +211,7 @@ namespace glabels
}
};
class FlipHoriz : public QIcon
{
public:
@@ -201,6 +221,7 @@ namespace glabels
}
};
class FlipVert : public QIcon
{
public:
@@ -210,6 +231,7 @@ namespace glabels
}
};
class RotateLeft : public QIcon
{
public:
@@ -219,6 +241,7 @@ namespace glabels
}
};
class RotateRight : public QIcon
{
public:
@@ -228,6 +251,7 @@ namespace glabels
}
};
class OrderBottom : public QIcon
{
public:
@@ -237,6 +261,7 @@ namespace glabels
}
};
class OrderTop : public QIcon
{
public:
@@ -246,6 +271,7 @@ namespace glabels
}
};
class AlignTextBottom : public QIcon
{
public:
@@ -255,6 +281,7 @@ namespace glabels
}
};
class AlignTextMiddle : public QIcon
{
public:
@@ -264,6 +291,7 @@ namespace glabels
}
};
class AlignTextTop : public QIcon
{
public:
@@ -273,6 +301,7 @@ namespace glabels
}
};
class BucketFill : public QIcon
{
public:
@@ -283,6 +312,7 @@ namespace glabels
}
};
class Pencil : public QIcon
{
public:
@@ -293,6 +323,7 @@ namespace glabels
}
};
class Glabels : public QIcon
{
public:
@@ -307,10 +338,10 @@ namespace glabels
};
/*
* Fallback Icons. These are fallbacks for icons that would normally come from the current theme,
* if supported. These icons are copied from the mate-icon-theme (GPL-v3 or CC-BY-SA-v3).
*/
///
/// Fallback Icons. These are fallbacks for icons that would normally come from the current theme,
/// if supported. These icons are copied from the mate-icon-theme (GPL-v3 or CC-BY-SA-v3).
///
namespace Fallback
{
@@ -323,6 +354,7 @@ namespace glabels
}
};
class EditCut : public QIcon
{
public:
@@ -332,6 +364,7 @@ namespace glabels
}
};
class EditPaste : public QIcon
{
public:
@@ -341,6 +374,7 @@ namespace glabels
}
};
class FileNew : public QIcon
{
public:
@@ -350,6 +384,7 @@ namespace glabels
}
};
class FileOpen : public QIcon
{
public:
@@ -359,6 +394,7 @@ namespace glabels
}
};
class FilePrint : public QIcon
{
public:
@@ -368,6 +404,7 @@ namespace glabels
}
};
class FileSave : public QIcon
{
public:
@@ -377,6 +414,7 @@ namespace glabels
}
};
class FileSaveAs : public QIcon
{
public:
@@ -386,6 +424,7 @@ namespace glabels
}
};
class ZoomBestFit : public QIcon
{
public:
@@ -395,6 +434,7 @@ namespace glabels
}
};
class ZoomIn : public QIcon
{
public:
@@ -404,6 +444,7 @@ namespace glabels
}
};
class ZoomOriginal : public QIcon
{
public:
@@ -413,6 +454,7 @@ namespace glabels
}
};
class ZoomOut : public QIcon
{
public:
+160 -40
View File
@@ -29,17 +29,17 @@
namespace glabels
{
/**
* Default constructor.
*/
///
/// Default constructor.
///
LabelModel::LabelModel() : mModified(true), mTmplate(0), mRotate(false)
{
}
/**
* Add object.
*/
///
/// Add object.
///
void LabelModel::addObject( LabelModelObject* object )
{
object->setParent( this );
@@ -55,6 +55,9 @@ namespace glabels
}
///
/// Object Changed Slot
///
void LabelModel::onObjectChanged()
{
mModified = true;
@@ -64,6 +67,9 @@ namespace glabels
}
///
/// Object Moved Slot
///
void LabelModel::onObjectMoved()
{
mModified = true;
@@ -73,6 +79,9 @@ namespace glabels
}
///
/// Delete Object
///
void LabelModel::deleteObject( LabelModelObject* object )
{
object->unselect();
@@ -87,9 +96,9 @@ namespace glabels
}
/**
* Select object.
*/
///
/// Select Object
///
void LabelModel::selectObject( LabelModelObject* object )
{
object->select();
@@ -98,9 +107,9 @@ namespace glabels
}
/**
* Unselect object.
*/
///
/// Unselect Object
///
void LabelModel::unselectObject( LabelModelObject* object )
{
object->unselect();
@@ -109,9 +118,9 @@ namespace glabels
}
/**
* Select all objects.
*/
///
/// Select All Objects
///
void LabelModel::selectAll()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -123,9 +132,9 @@ namespace glabels
}
/**
* Unselect object all objects.
*/
///
/// Unselect All Objects
///
void LabelModel::unselectAll()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -137,6 +146,9 @@ namespace glabels
}
///
/// Select Region
///
void LabelModel::selectRegion( const LabelRegion &region )
{
double rX1 = std::min( region.x1(), region.x2() );
@@ -161,6 +173,9 @@ namespace glabels
}
///
/// Is Selection Empty?
///
bool LabelModel::isSelectionEmpty()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -175,6 +190,9 @@ namespace glabels
}
///
/// Is Selection Atomic?
///
bool LabelModel::isSelectionAtomic()
{
int nSelected = 0;
@@ -195,6 +213,9 @@ namespace glabels
}
///
/// Get List of Selected Objects
///
QList<LabelModelObject*> LabelModel::getSelection()
{
QList<LabelModelObject*> selectedList;
@@ -210,6 +231,9 @@ namespace glabels
}
///
/// Get First Object in Selection List
///
LabelModelObject* LabelModel::getFirstSelectedObject()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -222,6 +246,9 @@ namespace glabels
}
///
/// Can Any Objects in Selection Accept Text Properties?
///
bool LabelModel::canSelectionText()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -236,6 +263,9 @@ namespace glabels
}
///
/// Can Any Objects in Selection Accept Fill Property?
///
bool LabelModel::canSelectionFill()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -250,6 +280,9 @@ namespace glabels
}
///
/// Can Any Objects in Selection Accept Line Color Property?
///
bool LabelModel::canSelectionLineColor()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -264,6 +297,9 @@ namespace glabels
}
///
/// Can Any Objects in Selection Accept Line Width Property?
///
bool LabelModel::canSelectionLineWidth()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -278,6 +314,9 @@ namespace glabels
}
///
/// Delete Selected Objects
///
void LabelModel::deleteSelection()
{
QList<LabelModelObject*> selectedList = getSelection();
@@ -294,6 +333,9 @@ namespace glabels
}
///
/// Raise Selected Objects To Top
///
void LabelModel::raiseSelectionToTop()
{
QList<LabelModelObject*> selectedList = getSelection();
@@ -303,7 +345,7 @@ namespace glabels
mObjectList.removeOne( object );
}
/* Move to end of list, representing top most object. */
/// Move to end of list, representing top most object.
foreach ( LabelModelObject* object, selectedList )
{
mObjectList.push_back( object );
@@ -316,6 +358,9 @@ namespace glabels
}
///
/// Lower Selected Objects To Bottom
///
void LabelModel::lowerSelectionToBottom()
{
QList<LabelModelObject*> selectedList = getSelection();
@@ -325,7 +370,7 @@ namespace glabels
mObjectList.removeOne( object );
}
/* Move to front of list, representing bottom most object. */
/// Move to front of list, representing bottom most object.
foreach ( LabelModelObject* object, selectedList )
{
mObjectList.push_front( object );
@@ -338,6 +383,9 @@ namespace glabels
}
///
/// Rotate Selected Objects
///
void LabelModel::rotateSelection( double thetaDegs )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -354,18 +402,27 @@ namespace glabels
}
///
/// Rotate Selected Objects Left 90 degrees
///
void LabelModel::rotateSelectionLeft()
{
rotateSelection( -90.0 );
}
///
/// Rotate Selected Objects Right 90 degrees
///
void LabelModel::rotateSelectionRight()
{
rotateSelection( 90.0 );
}
///
/// Flip Selected Objects Horizontally
///
void LabelModel::flipSelectionHoriz()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -382,6 +439,9 @@ namespace glabels
}
///
/// Flip Selected Objects Vertically
///
void LabelModel::flipSelectionVert()
{
foreach ( LabelModelObject* object, mObjectList )
@@ -398,6 +458,9 @@ namespace glabels
}
///
/// Align Selected Objects To Their Left Edges
///
void LabelModel::alignSelectionLeft()
{
if ( isSelectionEmpty() || isSelectionAtomic() )
@@ -407,15 +470,15 @@ namespace glabels
QList<LabelModelObject*> selectedList = getSelection();
/* Find left-most edge. */
double x1_min = 7200; /* Start with a very large value: 7200pts = 100in */
/// Find left-most edge.
double x1_min = 7200; /// Start with a very large value: 7200pts = 100in
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
if ( r.x1() < x1_min ) x1_min = r.x1();
}
/* Now adjust the object positions to line up the left edges at left-most edge. */
/// Now adjust the object positions to line up the left edges at left-most edge.
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
@@ -429,6 +492,9 @@ namespace glabels
}
///
/// Align Selected Objects To Their Right Edges
///
void LabelModel::alignSelectionRight()
{
if ( isSelectionEmpty() || isSelectionAtomic() )
@@ -438,15 +504,15 @@ namespace glabels
QList<LabelModelObject*> selectedList = getSelection();
/* Find right-most edge. */
double x1_max = -7200; /* Start with a very large negative value: 7200pts = 100in */
/// Find right-most edge.
double x1_max = -7200; /// Start with a very large negative value: 7200pts = 100in
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
if ( r.x1() > x1_max ) x1_max = r.x1();
}
/* Now adjust the object positions to line up the right edges at right-most edge. */
/// Now adjust the object positions to line up the right edges at right-most edge.
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
@@ -460,6 +526,9 @@ namespace glabels
}
///
/// Align Selected Objects To Their Horizontal Centers
///
void LabelModel::alignSelectionHCenter()
{
if ( isSelectionEmpty() || isSelectionAtomic() )
@@ -469,7 +538,7 @@ namespace glabels
QList<LabelModelObject*> selectedList = getSelection();
/* Find average center of objects. */
/// Find average center of objects.
double xsum = 0;
int n = 0;
foreach ( LabelModelObject* object, selectedList )
@@ -480,8 +549,8 @@ namespace glabels
}
double xavg = xsum / n;
/* Find object closest to average center of objects. */
double xcenter = 7200; /* Start with very large value. */
/// Find object closest to average center of objects.
double xcenter = 7200; /// Start with very large value.
double dxmin = fabs( xavg - xcenter );
foreach ( LabelModelObject* object, selectedList )
{
@@ -494,7 +563,7 @@ namespace glabels
}
}
/* Now adjust the object positions to line up with the center of this object. */
/// Now adjust the object positions to line up with the center of this object.
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
@@ -508,6 +577,9 @@ namespace glabels
}
///
/// Align Selected Objects To Their Top Edges
///
void LabelModel::alignSelectionTop()
{
if ( isSelectionEmpty() || isSelectionAtomic() )
@@ -517,15 +589,15 @@ namespace glabels
QList<LabelModelObject*> selectedList = getSelection();
/* Find top-most edge. */
double y1_min = 7200; /* Start with a very large value: 7200pts = 100in */
/// Find top-most edge.
double y1_min = 7200; /// Start with a very large value: 7200pts = 100in
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
if ( r.y1() < y1_min ) y1_min = r.y1();
}
/* Now adjust the object positions to line up the top edges at top-most edge. */
/// Now adjust the object positions to line up the top edges at top-most edge.
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
@@ -539,6 +611,9 @@ namespace glabels
}
///
/// Align Selected Objects To Their Bottom Edges
///
void LabelModel::alignSelectionBottom()
{
if ( isSelectionEmpty() || isSelectionAtomic() )
@@ -548,15 +623,15 @@ namespace glabels
QList<LabelModelObject*> selectedList = getSelection();
/* Find bottom-most edge. */
double y1_max = -7200; /* Start with a very large negative value: 7200pts = 100in */
/// Find bottom-most edge.
double y1_max = -7200; /// Start with a very large negative value: 7200pts = 100in
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
if ( r.y1() > y1_max ) y1_max = r.y1();
}
/* Now adjust the object positions to line up the bottom edges at bottom-most edge. */
/// Now adjust the object positions to line up the bottom edges at bottom-most edge.
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
@@ -570,6 +645,9 @@ namespace glabels
}
///
/// Align Selected Objects To Their Vertical Centers Edges
///
void LabelModel::alignSelectionVCenter()
{
if ( isSelectionEmpty() || isSelectionAtomic() )
@@ -579,7 +657,7 @@ namespace glabels
QList<LabelModelObject*> selectedList = getSelection();
/* Find average center of objects. */
/// Find average center of objects.
double ysum = 0;
int n = 0;
foreach ( LabelModelObject* object, selectedList )
@@ -590,8 +668,8 @@ namespace glabels
}
double yavg = ysum / n;
/* Find object closest to average center of objects. */
double ycenter = 7200; /* Start with very large value. */
/// Find object closest to average center of objects.
double ycenter = 7200; /// Start with very large value.
double dymin = fabs( yavg - ycenter );
foreach ( LabelModelObject* object, selectedList )
{
@@ -604,7 +682,7 @@ namespace glabels
}
}
/* Now adjust the object positions to line up with the center of this object. */
/// Now adjust the object positions to line up with the center of this object.
foreach ( LabelModelObject* object, selectedList )
{
LabelRegion r = object->getExtent();
@@ -618,6 +696,9 @@ namespace glabels
}
///
/// Align Selected Objects To Center Of Label Horizontally
///
void LabelModel::centerSelectionHoriz()
{
double xLabelCenter = w() / 2.0;
@@ -639,6 +720,9 @@ namespace glabels
}
///
/// Align Selected Objects To Center Of Label Vertically
///
void LabelModel::centerSelectionVert()
{
double yLabelCenter = h() / 2.0;
@@ -660,6 +744,9 @@ namespace glabels
}
///
/// Move Selected Objects By dx,dy
///
void LabelModel::moveSelection( double dx, double dy )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -676,6 +763,9 @@ namespace glabels
}
///
/// Set Font Family Of Selected Objects
///
void LabelModel::setSelectionFontFamily( const QString &fontFamily )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -692,6 +782,9 @@ namespace glabels
}
///
/// Set Font Size Of Selected Objects
///
void LabelModel::setSelectionFontSize( double fontSize )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -708,6 +801,9 @@ namespace glabels
}
///
/// Set Font Weight Of Selected Objects
///
void LabelModel::setSelectionFontWeight( QFont::Weight fontWeight )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -724,6 +820,9 @@ namespace glabels
}
///
/// Set Font Italic Flag Of Selected Objects
///
void LabelModel::setSelectionFontItalicFlag( bool fontItalicFlag )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -740,6 +839,9 @@ namespace glabels
}
///
/// Set Text Horizontal Alignment Of Selected Objects
///
void LabelModel::setSelectionTextHAlign( Qt::Alignment textHAlign )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -756,6 +858,9 @@ namespace glabels
}
///
/// Set Text Vertical Alignment Of Selected Objects
///
void LabelModel::setSelectionTextVAlign( Qt::Alignment textVAlign )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -772,6 +877,9 @@ namespace glabels
}
///
/// Set Text Line Spacing Of Selected Objects
///
void LabelModel::setSelectionTextLineSpacing( double textLineSpacing )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -788,6 +896,9 @@ namespace glabels
}
///
/// Set Text Color Node Of Selected Objects
///
void LabelModel::setSelectionTextColorNode( ColorNode textColorNode )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -804,6 +915,9 @@ namespace glabels
}
///
/// Set Line Width Of Selected Objects
///
void LabelModel::setSelectionLineWidth( double lineWidth )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -820,6 +934,9 @@ namespace glabels
}
///
/// Set Line Color Node Of Selected Objects
///
void LabelModel::setSelectionLineColorNode( ColorNode lineColorNode )
{
foreach ( LabelModelObject* object, mObjectList )
@@ -836,6 +953,9 @@ namespace glabels
}
///
/// Set Fill Color Node Of Selected Objects
///
void LabelModel::setSelectionFillColorNode( ColorNode fillColorNode )
{
foreach ( LabelModelObject* object, mObjectList )
+39 -2
View File
@@ -28,23 +28,35 @@
namespace glabels
{
///
/// Constructor
///
LabelModelBoxObject::LabelModelBoxObject( QObject* parent ) : LabelModelObject(parent)
{
/* TODO: initialize default line and fill poperties. */
}
///
/// Destructor
///
LabelModelBoxObject::~LabelModelBoxObject()
{
}
///
/// Line Width Property Getter
///
double LabelModelBoxObject::lineWidth( void ) const
{
return mLineWidth;
}
///
/// Line Width Property Setter
///
void LabelModelBoxObject::setLineWidth( double value )
{
if ( mLineWidth != value )
@@ -55,12 +67,18 @@ namespace glabels
}
///
/// Line Color Node Property Getter
///
ColorNode LabelModelBoxObject::lineColorNode( void ) const
{
return mLineColorNode;
}
///
/// Line Color Node Property Setter
///
void LabelModelBoxObject::setLineColorNode( const ColorNode& value )
{
if ( mLineColorNode != value )
@@ -71,12 +89,18 @@ namespace glabels
}
///
/// Fill Color Node Property Getter
///
ColorNode LabelModelBoxObject::fillColorNode( void ) const
{
return mFillColorNode;
}
///
/// Fill Color Node Property Setter
///
void LabelModelBoxObject::setFillColorNode( const ColorNode& value )
{
if ( mFillColorNode != value )
@@ -87,25 +111,36 @@ namespace glabels
}
///
/// Can Fill Capability Implementation
///
bool LabelModelBoxObject::canFill()
{
return true;
}
///
/// Can Line Color Capability Implementation
///
bool LabelModelBoxObject::canLineColor()
{
return true;
}
///
/// Can Line Width Capability Implementation
///
bool LabelModelBoxObject::canLineWidth()
{
return true;
}
// Create QGraphicsItem suitable for representing this object
///
/// Create QGraphicsItem suitable for representing this object
///
QGraphicsItem* LabelModelBoxObject::createGraphicsItem()
{
QGraphicsRectItem *rectItem = new QGraphicsRectItem( x0(), y0(), w(), h() );
@@ -125,7 +160,9 @@ namespace glabels
}
// Update a QGraphicsItem to keep it in sync with this object
///
/// Update a QGraphicsItem to keep it in sync with this object
///
void LabelModelBoxObject::updateGraphicsItem( QGraphicsItem* graphicsItem )
{
QGraphicsRectItem *rectItem = dynamic_cast<QGraphicsRectItem*>(graphicsItem);
+17 -14
View File
@@ -27,6 +27,9 @@
namespace glabels
{
///
/// Label Model Box Object
///
class LabelModelBoxObject : public LabelModelObject
{
Q_OBJECT
@@ -40,32 +43,32 @@ namespace glabels
///////////////////////////////////////////////////////////////
// Properties
// Property Implementations
///////////////////////////////////////////////////////////////
public:
/*
* Virtual Shape Property: lineWidth
*/
//
// Shape Property: lineWidth
//
virtual double lineWidth( void ) const;
virtual void setLineWidth( double value );
/*
* Virtual Shape Property: lineColorNode
*/
//
// Shape Property: lineColorNode
//
virtual ColorNode lineColorNode( void ) const;
virtual void setLineColorNode( const ColorNode& value );
/*
* Virtual Shape Property: fillColorNode
*/
//
// Shape Property: fillColorNode
//
virtual ColorNode fillColorNode( void ) const;
virtual void setFillColorNode( const ColorNode& value );
///////////////////////////////////////////////////////////////
// Capabilities
// Capability Implementations
///////////////////////////////////////////////////////////////
public:
virtual bool canFill();
@@ -74,11 +77,11 @@ namespace glabels
///////////////////////////////////////////////////////////////
// QGraphicsItem methods
// QGraphicsItem Method Implementations
///////////////////////////////////////////////////////////////
public:
QGraphicsItem* createGraphicsItem();
void updateGraphicsItem( QGraphicsItem* graphicsItem );
virtual QGraphicsItem* createGraphicsItem();
virtual void updateGraphicsItem( QGraphicsItem* graphicsItem );
///////////////////////////////////////////////////////////////
+293 -10
View File
@@ -35,14 +35,18 @@
namespace glabels
{
int LabelModelObject::lastId = 0;
///
/// Next Object ID
///
int LabelModelObject::msNextId = 0;
/*
* Default constructor.
*/
///
/// Constructor
///
LabelModelObject::LabelModelObject( QObject *parent = 0 ) : QObject(parent)
{
mId = lastId++;
mId = msNextId++;
mX0 = 0;
mY0 = 0;
@@ -60,41 +64,62 @@ namespace glabels
}
///
/// Destructor
///
LabelModelObject::~LabelModelObject()
{
}
///
/// ID Property Getter
///
int LabelModelObject::id() const
{
return mId;
}
///
/// Selected Property Getter
///
bool LabelModelObject::isSelected() const
{
return mSelectedFlag;
}
///
/// Selected Property Setter
///
void LabelModelObject::select( bool value )
{
mSelectedFlag = value;
}
///
/// Clear Selected Property Setter
///
void LabelModelObject::unselect()
{
mSelectedFlag = false;
}
///
/// X0 Property Getter
///
double LabelModelObject::x0() const
{
return mX0;
}
///
/// X0 Property Setter
///
void LabelModelObject::setX0( double value )
{
if ( mX0 != value )
@@ -105,12 +130,18 @@ namespace glabels
}
///
/// Y0 Property Getter
///
double LabelModelObject::y0() const
{
return mY0;
}
///
/// Y0 Property Setter
///
void LabelModelObject::setY0( double value )
{
if ( mY0 != value )
@@ -121,12 +152,18 @@ namespace glabels
}
///
/// W (Width) Property Getter
///
double LabelModelObject::w() const
{
return mW;
}
///
/// W (Width) Property Setter
///
void LabelModelObject::setW( double value )
{
if ( mW != value )
@@ -137,12 +174,18 @@ namespace glabels
}
///
/// H (Height) Property Getter
///
double LabelModelObject::h() const
{
return mH;
}
///
/// H (Height) Property Setter
///
void LabelModelObject::setH( double value )
{
if ( mH != value )
@@ -153,12 +196,18 @@ namespace glabels
}
///
/// Matrix Property Getter
///
QTransform LabelModelObject::matrix() const
{
return mMatrix;
}
///
/// Matrix Property Setter
///
void LabelModelObject::setMatrix( const QTransform& value )
{
if ( mMatrix != value )
@@ -169,12 +218,18 @@ namespace glabels
}
///
/// Shadow State Property Getter
///
bool LabelModelObject::shadow() const
{
return mShadowState;
}
///
/// Shadow State Property Setter
///
void LabelModelObject::setShadow( bool value )
{
if ( mShadowState != value )
@@ -185,12 +240,18 @@ namespace glabels
}
///
/// Shadow X Property Getter
///
double LabelModelObject::shadowX() const
{
return mShadowX;
}
///
/// Shadow X Property Setter
///
void LabelModelObject::setShadowX( double value )
{
if ( mShadowX != value )
@@ -201,12 +262,18 @@ namespace glabels
}
///
/// Shadow Y Property Getter
///
double LabelModelObject::shadowY() const
{
return mShadowY;
}
///
/// Shadow Y Property Setter
///
void LabelModelObject::setShadowY( double value )
{
if ( mShadowY != value )
@@ -217,12 +284,18 @@ namespace glabels
}
///
/// Shadow Opacity Property Getter
///
double LabelModelObject::shadowOpacity() const
{
return mShadowOpacity;
}
///
/// Shadow Opacity Property Setter
///
void LabelModelObject::setShadowOpacity( double value )
{
if ( mShadowOpacity != value )
@@ -233,12 +306,18 @@ namespace glabels
}
///
/// Shadow Color Node Property Getter
///
ColorNode LabelModelObject::shadowColorNode() const
{
return mShadowColorNode;
}
///
/// Shadow Color Node Property Setter
///
void LabelModelObject::setShadowColorNode( const ColorNode& value )
{
if ( mShadowColorNode != value )
@@ -249,239 +328,410 @@ namespace glabels
}
///
/// Virtual Font Family Property Default Getter
/// (Overridden by concrete class)
///
QString LabelModelObject::fontFamily() const
{
return "";
}
///
/// Virtual Font Family Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setFontFamily( const QString& value )
{
}
///
/// Virtual Font Size Property Default Getter
/// (Overridden by concrete class)
///
double LabelModelObject::fontSize() const
{
return 0;
}
///
/// Virtual Font Size Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setFontSize( double value )
{
}
///
/// Virtual Font Weight Property Default Getter
/// (Overridden by concrete class)
///
QFont::Weight LabelModelObject::fontWeight() const
{
return QFont::Normal;
}
///
/// Virtual Font Weight Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setFontWeight( QFont::Weight value )
{
}
///
/// Virtual Font Italic Flag Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::fontItalicFlag() const
{
return false;
}
///
/// Virtual Font Italic Flag Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setFontItalicFlag( bool value )
{
}
///
/// Virtual Font Underline Flag Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::fontUnderlineFlag() const
{
return false;
}
///
/// Virtual Font Underline Flag Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setFontUnderlineFlag( bool value )
{
}
///
/// Virtual Text Color Node Property Default Getter
/// (Overridden by concrete class)
///
ColorNode LabelModelObject::textColorNode() const
{
return ColorNode( QColor::fromRgba(0x00000000) );
}
///
/// Virtual Text Color Node Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setTextColorNode( const ColorNode &value )
{
}
///
/// Virtual Text Horizontal Alignment Property Default Getter
/// (Overridden by concrete class)
///
Qt::Alignment LabelModelObject::textHAlign() const
{
return Qt::AlignLeft;
}
///
/// Virtual Text Horizontal Alignment Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setTextHAlign( Qt::Alignment value )
{
}
///
/// Virtual Text Vertical Alignment Property Default Getter
/// (Overridden by concrete class)
///
Qt::Alignment LabelModelObject::textVAlign() const
{
return Qt::AlignTop;
}
///
/// Virtual Text Vertical Alignment Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setTextVAlign( Qt::Alignment value )
{
}
///
/// Virtual Text Line Spacing Property Default Getter
/// (Overridden by concrete class)
///
double LabelModelObject::textLineSpacing() const
{
return 0;
}
///
/// Virtual Text Line Spacing Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setTextLineSpacing( double value )
{
}
///
/// Virtual Filename Node Property Default Getter
/// (Overridden by concrete class)
///
TextNode LabelModelObject::filenameNode() const
{
return TextNode();
}
///
/// Virtual Filename Node Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setFilenameNode( const TextNode& value )
{
}
///
/// Virtual Line Width Property Default Getter
/// (Overridden by concrete class)
///
double LabelModelObject::lineWidth() const
{
return 0;
}
///
/// Virtual Line Width Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setLineWidth( double value )
{
}
///
/// Virtual Line Color Node Property Default Getter
/// (Overridden by concrete class)
///
ColorNode LabelModelObject::lineColorNode() const
{
return ColorNode( QColor::fromRgba(0x00000000) );
}
///
/// Virtual Line Color Node Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setLineColorNode( const ColorNode &value )
{
}
///
/// Virtual Fill Color Node Property Default Getter
/// (Overridden by concrete class)
///
ColorNode LabelModelObject::fillColorNode() const
{
return ColorNode( QColor::fromRgba(0x00000000) );
}
///
/// Virtual Fill Color Node Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setFillColorNode( const ColorNode &value )
{
}
///
/// Virtual Barcode Data Node Property Default Getter
/// (Overridden by concrete class)
///
TextNode LabelModelObject::bcDataNode() const
{
return TextNode();
}
///
/// Virtual Barcode Data Node Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setBcDataNode( const TextNode &value )
{
}
///
/// Virtual Barcode Text Flag Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::bcTextFlag() const
{
return false;
}
///
/// Virtual Barcode Text Flag Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setBcTextFlag( bool value )
{
}
///
/// Virtual Barcode Checksum Flag Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::bcChecksumFlag() const
{
return false;
}
///
/// Virtual Barcode Checksum Flag Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setBcChecksumFlag( bool value )
{
}
///
/// Virtual Barcode Color Node Property Default Getter
/// (Overridden by concrete class)
///
ColorNode LabelModelObject::bcColorNode() const
{
return ColorNode( QColor::fromRgba(0x00000000) );
}
///
/// Virtual Barcode Color Node Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setBcColorNode( const ColorNode &value )
{
}
///
/// Virtual Barcode Style Property Default Getter
/// (Overridden by concrete class)
///
BarcodeStyle LabelModelObject::bcStyle() const
{
return BarcodeStyle();
}
///
/// Virtual Barcode Style Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setBcStyle( const BarcodeStyle &value )
{
}
///
/// Virtual Barcode Format Digits Property Default Getter
/// (Overridden by concrete class)
///
int LabelModelObject::bcFormatDigits() const
{
return false;
return 0;
}
///
/// Virtual Barcode Format Digits Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setBcFormatDigits( int value )
{
}
///
/// Virtual Can Text Capability Read-Only Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::canText() const
{
return false;
}
///
/// Virtual Can Fill Capability Read-Only Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::canFill() const
{
return false;
}
///
/// Virtual Can Line Color Capability Read-Only Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::canLineColor() const
{
return false;
}
///
/// Virtual Can Line Width Capability Read-Only Property Default Getter
/// (Overridden by concrete class)
///
bool LabelModelObject::canLineWidth() const
{
return false;
}
///
/// Set Absolute Position
///
void LabelModelObject::setPosition( double x0, double y0 )
{
if ( ( mX0 != x0 ) || ( mY0 != y0 ) )
@@ -494,6 +744,9 @@ namespace glabels
}
///
/// Set Relative Position
///
void LabelModelObject::setPositionRelative( double dx, double dy )
{
if ( ( dx != 0 ) || ( dy != 0 ) )
@@ -506,6 +759,9 @@ namespace glabels
}
///
/// Set Size
///
void LabelModelObject::setSize( double w, double h )
{
mW = w;
@@ -513,6 +769,9 @@ namespace glabels
}
///
/// Set Size (But Maintain Current Aspect Ratio)
///
void LabelModelObject::setSizeHonorAspect( double w, double h )
{
double aspectRatio = mH / mW;
@@ -536,6 +795,9 @@ namespace glabels
}
///
/// Set Width (But Maintain Current Aspect Ratio)
///
void LabelModelObject::setWHonorAspect( double w )
{
double aspectRatio = mH / mW;
@@ -551,6 +813,9 @@ namespace glabels
}
///
/// Set Height (But Maintain Current Aspect Ratio)
///
void LabelModelObject::setHHonorAspect( double h )
{
double aspectRatio = mH / mW;
@@ -566,6 +831,9 @@ namespace glabels
}
///
/// Get Extent of Bounding Box
///
LabelRegion LabelModelObject::getExtent()
{
QPointF a1( - lineWidth()/2, - lineWidth()/2 );
@@ -579,15 +847,18 @@ namespace glabels
a4 = mMatrix.map( a4 );
LabelRegion region;
region.x1( std::min( a1.x(), std::min( a2.x(), std::min( a3.x(), a4.x() ) ) ) + mX0 );
region.y1( std::min( a1.y(), std::min( a2.y(), std::min( a3.y(), a4.y() ) ) ) + mY0 );
region.x2( std::max( a1.x(), std::max( a2.x(), std::max( a3.x(), a4.x() ) ) ) + mX0 );
region.y2( std::max( a1.y(), std::max( a2.y(), std::max( a3.y(), a4.y() ) ) ) + mY0 );
region.setX1( std::min( a1.x(), std::min( a2.x(), std::min( a3.x(), a4.x() ) ) ) + mX0 );
region.setY1( std::min( a1.y(), std::min( a2.y(), std::min( a3.y(), a4.y() ) ) ) + mY0 );
region.setX2( std::max( a1.x(), std::max( a2.x(), std::max( a3.x(), a4.x() ) ) ) + mX0 );
region.setY2( std::max( a1.y(), std::max( a2.y(), std::max( a3.y(), a4.y() ) ) ) + mY0 );
return region;
}
///
/// Rotate Object
///
void LabelModelObject::rotate( double thetaDegs )
{
if ( thetaDegs != 0 )
@@ -598,6 +869,9 @@ namespace glabels
}
///
/// Flip Object Horizontally
///
void LabelModelObject::flipHoriz()
{
mMatrix = mMatrix.scale( -1, 1 );
@@ -605,6 +879,9 @@ namespace glabels
}
///
/// Flip Object Vertically
///
void LabelModelObject::flipVert()
{
mMatrix = mMatrix.scale( 1, -1 );
@@ -612,12 +889,18 @@ namespace glabels
}
///
/// Update Representative Graphics Item with Object's Transformation Matrix
///
void LabelModelObject::updateGraphicsItemMatrix( QGraphicsItem* graphicsItem )
{
graphicsItem->setTransform( mMatrix );
}
///
/// Update Representative Graphics Item with Object's Shadow Properties
///
void LabelModelObject::updateGraphicsItemShadow( QGraphicsItem* graphicsItem )
{
QGraphicsDropShadowEffect *shadowEffect = new QGraphicsDropShadowEffect();
+97 -94
View File
@@ -39,6 +39,9 @@ namespace glabels
class MergeRecord;
///
/// Label Model Object Base Class
///
class LabelModelObject : public QObject
{
Q_OBJECT
@@ -63,16 +66,16 @@ namespace glabels
// Common Properties
///////////////////////////////////////////////////////////////
public:
/*
* ID Property.
*/
//
// ID Property.
//
Q_PROPERTY( int id READ id )
int id() const;
/*
* Selected Property.
*/
//
// Selected Property.
//
Q_PROPERTY( bool selected READ isSelected WRITE select RESET unselect )
bool isSelected() const;
@@ -80,90 +83,90 @@ namespace glabels
void unselect();
/*
* x0 Property ( x coordinate of origin )
*/
//
// x0 Property ( x coordinate of origin )
//
Q_PROPERTY( double x0 READ x0 WRITE setX0 );
double x0() const;
void setX0( double value );
/*
* y0 Property ( y coordinate of origin )
*/
//
// y0 Property ( y coordinate of origin )
//
Q_PROPERTY( double y0 READ y0 WRITE setY0 );
double y0() const;
void setY0( double value );
/*
* w Property ( width of bounding box )
*/
//
// w Property ( width of bounding box )
//
Q_PROPERTY( double w READ w WRITE setW );
double w() const;
void setW( double value );
/*
* h Property ( height of bounding box )
*/
//
// h Property ( height of bounding box )
//
Q_PROPERTY( double h READ h WRITE setH );
double h() const;
void setH( double value );
/*
* Transformation Matrix Property
*/
//
// Transformation Matrix Property
//
Q_PROPERTY( QTransform matrix READ matrix WRITE setMatrix );
QTransform matrix() const;
void setMatrix( const QTransform& value );
/*
* Shadow State Property
*/
//
// Shadow State Property
//
Q_PROPERTY( bool shadow READ shadow WRITE setShadow );
bool shadow() const;
void setShadow( bool value );
/*
* Shadow x Offset Property
*/
//
// Shadow x Offset Property
//
Q_PROPERTY( double shadowX READ shadowX WRITE setShadowX );
double shadowX() const;
void setShadowX( double value );
/*
* Shadow y Offset Property
*/
//
// Shadow y Offset Property
//
Q_PROPERTY( double shadowY READ shadowY WRITE setShadowY );
double shadowY() const;
void setShadowY( double value );
/*
* Shadow opacity Property
*/
//
// Shadow opacity Property
//
Q_PROPERTY( double shadowOpacity READ shadowOpacity WRITE setShadowOpacity );
double shadowOpacity() const;
void setShadowOpacity( double value );
/*
* Shadow Color Property
*/
//
// Shadow Color Property
//
Q_PROPERTY( ColorNode shadowColorNode READ shadowColorNode WRITE setShadowColorNode );
ColorNode shadowColorNode() const;
@@ -174,81 +177,81 @@ namespace glabels
// Text Properties Virtual Interface
///////////////////////////////////////////////////////////////
public:
/*
* Virtual Text Property: fontFamily
*/
//
// Virtual Text Property: fontFamily
//
Q_PROPERTY( QString fontFamily READ fontFamily WRITE setFontFamily );
virtual QString fontFamily() const;
virtual void setFontFamily( const QString &value );
/*
* Virtual Text Property: fontSize
*/
//
// Virtual Text Property: fontSize
//
Q_PROPERTY( double fontSize READ fontSize WRITE setFontSize );
virtual double fontSize() const;
virtual void setFontSize( double value );
/*
* Virtual Text Property: fontWeight
*/
//
// Virtual Text Property: fontWeight
//
Q_PROPERTY( QFont::Weight fontWeight READ fontWeight WRITE setFontWeight );
virtual QFont::Weight fontWeight() const;
virtual void setFontWeight( QFont::Weight value );
/*
* Virtual Text Property: fontItalicFlag
*/
//
// Virtual Text Property: fontItalicFlag
//
Q_PROPERTY( bool fontItalicFlag READ fontItalicFlag WRITE setFontItalicFlag );
virtual bool fontItalicFlag() const;
virtual void setFontItalicFlag( bool value );
/*
* Virtual Text Property: fontUnderlineFlag
*/
//
// Virtual Text Property: fontUnderlineFlag
//
Q_PROPERTY( bool fontUnderlineFlag READ fontUnderlineFlag WRITE setFontUnderlineFlag );
virtual bool fontUnderlineFlag() const;
virtual void setFontUnderlineFlag( bool value );
/*
* Virtual Text Property: textColorNode
*/
//
// Virtual Text Property: textColorNode
//
Q_PROPERTY( ColorNode textColorNode READ textColorNode WRITE setTextColorNode );
virtual ColorNode textColorNode() const;
virtual void setTextColorNode( const ColorNode &value );
/*
* Virtual Text Property: textHAlign
*/
//
// Virtual Text Property: textHAlign
//
Q_PROPERTY( Qt::Alignment textHAlign READ textHAlign WRITE setTextHAlign );
virtual Qt::Alignment textHAlign() const;
virtual void setTextHAlign( Qt::Alignment value );
/*
* Virtual Text Property: textVAlign
*/
//
// Virtual Text Property: textVAlign
//
Q_PROPERTY( Qt::Alignment textVAlign READ textVAlign WRITE setTextVAlign );
virtual Qt::Alignment textVAlign() const;
virtual void setTextVAlign( Qt::Alignment value );
/*
* Virtual Text Property: textLineSpacing
*/
//
// Virtual Text Property: textLineSpacing
//
Q_PROPERTY( double textLineSpacing READ textLineSpacing WRITE setTextLineSpacing );
virtual double textLineSpacing() const;
@@ -259,9 +262,9 @@ namespace glabels
// Image Properties Virtual Interface
///////////////////////////////////////////////////////////////
public:
/*
* Virtual Image Property: filenameNode
*/
//
// Virtual Image Property: filenameNode
//
Q_PROPERTY( TextNode filenameNode READ filenameNode WRITE setFilenameNode );
virtual TextNode filenameNode() const;
@@ -272,27 +275,27 @@ namespace glabels
// Shape Properties Virtual Interface
///////////////////////////////////////////////////////////////
public:
/*
* Virtual Shape Property: lineWidth
*/
//
// Virtual Shape Property: lineWidth
//
Q_PROPERTY( double lineWidth READ lineWidth WRITE setLineWidth );
virtual double lineWidth() const;
virtual void setLineWidth( double value );
/*
* Virtual Shape Property: lineColorNode
*/
//
// Virtual Shape Property: lineColorNode
//
Q_PROPERTY( ColorNode lineColorNode READ lineColorNode WRITE setLineColorNode );
virtual ColorNode lineColorNode() const;
virtual void setLineColorNode( const ColorNode &value );
/*
* Virtual Shape Property: fillColorNode
*/
//
// Virtual Shape Property: fillColorNode
//
Q_PROPERTY( ColorNode fillColorNode READ fillColorNode WRITE setFillColorNode );
virtual ColorNode fillColorNode() const;
@@ -303,54 +306,54 @@ namespace glabels
// Barcode Properties Virtual Interface
///////////////////////////////////////////////////////////////
public:
/*
* Virtual Barcode Property: bcDataNode
*/
//
// Virtual Barcode Property: bcDataNode
//
Q_PROPERTY( TextNode bcDataNode READ bcDataNode WRITE setBcDataNode );
virtual TextNode bcDataNode() const;
virtual void setBcDataNode( const TextNode &value );
/*
* Virtual Barcode Property: bcTextFlag
*/
//
// Virtual Barcode Property: bcTextFlag
//
Q_PROPERTY( bool bcTextFlag READ bcTextFlag WRITE setBcTextFlag );
virtual bool bcTextFlag() const;
virtual void setBcTextFlag( bool value );
/*
* Virtual Barcode Property: bcChecksumFlag
*/
//
// Virtual Barcode Property: bcChecksumFlag
//
Q_PROPERTY( bool bcChecksumFlag READ bcChecksumFlag WRITE setBcChecksumFlag );
virtual bool bcChecksumFlag() const;
virtual void setBcChecksumFlag( bool value );
/*
* Virtual Barcode Property: bcColorNode
*/
//
// Virtual Barcode Property: bcColorNode
//
Q_PROPERTY( ColorNode bcColorNode READ bcColorNode WRITE setBcColorNode );
virtual ColorNode bcColorNode() const;
virtual void setBcColorNode( const ColorNode &value );
/*
* Virtual Barcode Property: bcStyle
*/
//
// Virtual Barcode Property: bcStyle
//
Q_PROPERTY( BarcodeStyle bcStyle READ bcStyle WRITE setBcStyle );
virtual BarcodeStyle bcStyle() const;
virtual void setBcStyle( const BarcodeStyle &value );
/*
* Virtual Barcode Property: bcFormatDigits
*/
//
// Virtual Barcode Property: bcFormatDigits
//
Q_PROPERTY( int bcFormatDigits READ bcFormatDigits WRITE setBcFormatDigits );
virtual int bcFormatDigits() const;
@@ -399,7 +402,7 @@ namespace glabels
// Private Members
///////////////////////////////////////////////////////////////
private:
static int lastId;
static int msNextId;
int mId;
bool mSelectedFlag;
+88 -11
View File
@@ -25,22 +25,48 @@
namespace glabels
{
///
/// Label Region Type
///
struct LabelRegion
{
/////////////////////////////////
// Properties
/////////////////////////////////
public:
inline double x1( void ) const { return mX1; }
inline void x1( double value ) { mX1 = value; }
inline double y1( void ) const { return mY1; }
inline void y1( double value ) { mY1 = value; }
inline double x2( void ) const { return mX2; }
inline void x2( double value ) { mX2 = value; }
inline double y2( void ) const { return mY2; }
inline void y2( double value ) { mY2 = value; }
//
// X1 Property
//
inline double x1( void ) const;
inline void setX1( double value );
//
// Y1 Property
//
inline double y1( void ) const;
inline void setY1( double value );
//
// X2 Property
//
inline double x2( void ) const;
inline void setX2( double value );
//
// Y2 Property
//
inline double y2( void ) const;
inline void setY2( double value );
/////////////////////////////////
// Private Data
/////////////////////////////////
private:
double mX1;
double mY1;
@@ -48,6 +74,57 @@ namespace glabels
double mY2;
};
/////////////////////////////////
// INLINE METHODS
/////////////////////////////////
double LabelRegion::x1( void ) const
{
return mX1;
}
void LabelRegion::setX1( double value )
{
mX1 = value;
}
double LabelRegion::y1( void ) const
{
return mY1;
}
void LabelRegion::setY1( double value )
{
mY1 = value;
}
double LabelRegion::x2( void ) const
{
return mX2;
}
void LabelRegion::setX2( double value )
{
mX2 = value;
}
double LabelRegion::y2( void ) const
{
return mY2;
}
void LabelRegion::setY2( double value )
{
mY2 = value;
}
}
#endif // glabels_LabelRegion_h
+205 -16
View File
@@ -43,6 +43,9 @@
namespace glabels
{
///
/// Constructor
///
MainWindow::MainWindow()
{
/////////////// TEMPORARY TESTING ///////////////
@@ -87,6 +90,9 @@ namespace glabels
}
///
/// Close Event Handler
///
void MainWindow::closeEvent( QCloseEvent *event )
{
std::cout << "CLOSE EVENT" << std::endl;
@@ -95,6 +101,9 @@ namespace glabels
}
///
/// Create Actions
///
void MainWindow::createActions()
{
/* File actions */
@@ -385,6 +394,9 @@ namespace glabels
}
///
/// Create Menus
///
void MainWindow::createMenus()
{
fileMenu = menuBar()->addMenu( tr("&File") );
@@ -468,6 +480,9 @@ namespace glabels
}
///
/// Create Tool Bars
///
void MainWindow::createToolBars()
{
fileToolBar = addToolBar( tr("&File") );
@@ -502,6 +517,9 @@ namespace glabels
}
///
/// Create Status Bar
///
void MainWindow::createStatusBar()
{
zoomInfoLabel = new QLabel( " 999% " );
@@ -525,9 +543,9 @@ namespace glabels
}
/*
* Set enabled state of actions associated with a document.
*/
///
/// Set enabled state of actions associated with a document.
///
void MainWindow::setDocVerbsEnabled( bool enabled )
{
filePropertiesAction->setEnabled( enabled );
@@ -579,27 +597,27 @@ namespace glabels
}
/*
* Set enabled state of actions associated with a document being modified since last save.
*/
///
/// Set enabled state of actions associated with a document being modified since last save.
///
void MainWindow::setDocModifiedVerbsEnabled( bool enabled )
{
fileSaveAction->setEnabled( enabled );
}
/*
* Set enabled state of actions associated with data being available on clipboard.
*/
///
/// Set enabled state of actions associated with data being available on clipboard.
///
void MainWindow::setPasteVerbsEnabled( bool enabled )
{
editPasteAction->setEnabled( enabled );
}
/*
* Set enabled state of actions associated with a non-empty selection.
*/
///
/// Set enabled state of actions associated with a non-empty selection.
///
void MainWindow::setSelectionVerbsEnabled( bool enabled )
{
editCutAction->setEnabled( enabled );
@@ -620,9 +638,9 @@ namespace glabels
}
/*
* Set enabled state of actions associated with a non-atomic selection.
*/
///
/// Set enabled state of actions associated with a non-atomic selection.
///
void MainWindow::setMultiSelectionVerbsEnabled( bool enabled )
{
objectsAlignMenu->setEnabled( enabled );
@@ -635,6 +653,9 @@ namespace glabels
}
///
/// Read MainWindow Settings
///
void MainWindow::readSettings()
{
QSettings settings;
@@ -664,6 +685,9 @@ namespace glabels
}
///
/// Write MainWindow Settings
///
void MainWindow::writeSettings()
{
QSettings settings;
@@ -679,318 +703,477 @@ namespace glabels
}
///
/// File->New Action
///
void MainWindow::fileNew()
{
File::newLabel( this );
}
///
/// File->Open Action
///
void MainWindow::fileOpen()
{
std::cout << "ACTION: file->Open" << std::endl;
}
///
/// File->Save Action
///
void MainWindow::fileSave()
{
std::cout << "ACTION: file->Save" << std::endl;
}
///
/// File->Save As Action
///
void MainWindow::fileSaveAs()
{
std::cout << "ACTION: file->Save As" << std::endl;
}
///
/// File->Print Action
///
void MainWindow::filePrint()
{
std::cout << "ACTION: file->Print" << std::endl;
}
///
/// File->Properties Action
///
void MainWindow::fileProperties()
{
std::cout << "ACTION: file->Properties" << std::endl;
}
///
/// File->Template Designer Action
///
void MainWindow::fileTemplateDesigner()
{
std::cout << "ACTION: file->Template Designer" << std::endl;
}
///
/// File->Close Action
///
void MainWindow::fileClose()
{
std::cout << "ACTION: file->Close" << std::endl;
}
///
/// File->Exit Action
///
void MainWindow::fileExit()
{
std::cout << "ACTION: file->Exit" << std::endl;
}
///
/// Edit->Undo Action
///
void MainWindow::editUndo()
{
std::cout << "ACTION: edit->Undo" << std::endl;
}
///
/// Edit->Redo Action
///
void MainWindow::editRedo()
{
std::cout << "ACTION: edit->Redo" << std::endl;
}
///
/// Edit->Cut Action
///
void MainWindow::editCut()
{
std::cout << "ACTION: edit->Cut" << std::endl;
}
///
/// Edit->Copy Action
///
void MainWindow::editCopy()
{
std::cout << "ACTION: edit->Copy" << std::endl;
}
///
/// Edit->Paste Action
///
void MainWindow::editPaste()
{
std::cout << "ACTION: edit->Paste" << std::endl;
}
///
/// Edit->Delete Action
///
void MainWindow::editDelete()
{
std::cout << "ACTION: edit->Delete" << std::endl;
}
///
/// Edit->Select All Action
///
void MainWindow::editSelectAll()
{
std::cout << "ACTION: edit->Select All" << std::endl;
}
///
/// Edit->Unselect All Action
///
void MainWindow::editUnSelectAll()
{
std::cout << "ACTION: edit->Un-select All" << std::endl;
}
///
/// Edit->Preferences Action
///
void MainWindow::editPreferences()
{
std::cout << "ACTION: edit->Preferences" << std::endl;
}
///
/// View->File Tool Bar Toggle Action
///
void MainWindow::viewFileToolBar( bool state )
{
fileToolBar->setVisible( state );
}
///
/// View->Objects Tool Bar Toggle Action
///
void MainWindow::viewObjectsToolBar( bool state )
{
objectsToolBar->setVisible( state );
}
///
/// View->Edit Tool Bar Toggle Action
///
void MainWindow::viewEditToolBar( bool state )
{
editToolBar->setVisible( state );
}
///
/// View->View Tool Bar Toggle Action
///
void MainWindow::viewViewToolBar( bool state )
{
viewToolBar->setVisible( state );
}
///
/// View->Grid Toggle Action
///
void MainWindow::viewGrid( bool state )
{
view->setGridVisible( state );
}
///
/// View->Markup Toggle Action
///
void MainWindow::viewMarkup( bool state )
{
view->setMarkupVisible( state );
}
///
/// View->Zoom In Action
///
void MainWindow::viewZoomIn()
{
view->zoomIn();
}
///
/// View->Zoom Out Action
///
void MainWindow::viewZoomOut()
{
view->zoomOut();
}
///
/// View->Zoom 1:1 Action
///
void MainWindow::viewZoom1To1()
{
view->zoom1To1();
}
///
/// View->Zoom To Fit Action
///
void MainWindow::viewZoomToFit()
{
view->zoomToFit();
}
///
/// Objects->Arrow Mode Action
///
void MainWindow::objectsArrowMode()
{
std::cout << "ACTION: objects->Select Mode" << std::endl;
}
///
/// Objects->Create Text Mode Action
///
void MainWindow::objectsCreateText()
{
std::cout << "ACTION: objects->Create->Text" << std::endl;
}
///
/// Objects->Create Box Mode Action
///
void MainWindow::objectsCreateBox()
{
std::cout << "ACTION: objects->Create->Box" << std::endl;
}
///
/// Objects->Create Line Mode Action
///
void MainWindow::objectsCreateLine()
{
std::cout << "ACTION: objects->Create->Line" << std::endl;
}
///
/// Objects->Create Ellipse Mode Action
///
void MainWindow::objectsCreateEllipse()
{
std::cout << "ACTION: objects->Create->Ellipse" << std::endl;
}
///
/// Objects->Create Image Mode Action
///
void MainWindow::objectsCreateImage()
{
std::cout << "ACTION: objects->Create->Image" << std::endl;
}
///
/// Objects->Create Barcode Mode Action
///
void MainWindow::objectsCreateBarcode()
{
std::cout << "ACTION: objects->Create->Barcode" << std::endl;
}
///
/// Objects->Order->Bring To Front Action
///
void MainWindow::objectsOrderRaise()
{
std::cout << "ACTION: objects->Order->Bring to front" << std::endl;
}
///
/// Objects->Order->Send To Back Action
///
void MainWindow::objectsOrderLower()
{
std::cout << "ACTION: objects->Order->Send to back" << std::endl;
}
///
/// Objects->Rotate/Flip->Rotate Left Action
///
void MainWindow::objectsXformRotateLeft()
{
std::cout << "ACTION: objects->Rotate/Flip->Rotate Left" << std::endl;
}
///
/// Objects->Rotate/Flip->Rotate Right Action
///
void MainWindow::objectsXformRotateRight()
{
std::cout << "ACTION: objects->Rotate/Flip->Rotate Right" << std::endl;
}
///
/// Objects->Rotate/Flip->Flip Horizontally Action
///
void MainWindow::objectsXformFlipHoriz()
{
std::cout << "ACTION: objects->Rotate/Flip->Flip Horizontally" << std::endl;
}
///
/// Objects->Rotate/Flip->Flip Vertically Action
///
void MainWindow::objectsXformFlipVert()
{
std::cout << "ACTION: objects->Rotate/Flip->Flip Vertically" << std::endl;
}
///
/// Objects->Align->Left Action
///
void MainWindow::objectsAlignLeft()
{
std::cout << "ACTION: objects->Align->Left" << std::endl;
}
///
/// Objects->Align->Center Horizontally Action
///
void MainWindow::objectsAlignHCenter()
{
std::cout << "ACTION: objects->Align->Center Horizontally" << std::endl;
}
///
/// Objects->Align->Right Action
///
void MainWindow::objectsAlignRight()
{
std::cout << "ACTION: objects->Align->Right" << std::endl;
}
///
/// Objects->Align->Top Action
///
void MainWindow::objectsAlignTop()
{
std::cout << "ACTION: objects->Align->Top" << std::endl;
}
///
/// Objects->Align->Center Vertically Action
///
void MainWindow::objectsAlignVCenter()
{
std::cout << "ACTION: objects->Align->Center Vertically" << std::endl;
}
///
/// Objects->Align->Bottom Action
///
void MainWindow::objectsAlignBottom()
{
std::cout << "ACTION: objects->Align->Bottom" << std::endl;
}
///
/// Objects->Center->Horizontally Action
///
void MainWindow::objectsCenterHoriz()
{
std::cout << "ACTION: objects->Center->Horizontally" << std::endl;
}
///
/// Objects->Center->Vertically Action
///
void MainWindow::objectsCenterVert()
{
std::cout << "ACTION: objects->Center->Vertically" << std::endl;
}
///
/// Objects->Merge Properties Action
///
void MainWindow::objectsMergeProperties()
{
std::cout << "ACTION: objects->Merge Properties..." << std::endl;
}
///
/// Help->Contents Action
///
void MainWindow::helpContents()
{
Help::displayContents( this );
}
///
/// Help->About Action
///
void MainWindow::helpAbout()
{
Help::displayAbout( this );
}
///
/// Update Zoom Information in Status Bar
///
void MainWindow::updateZoomInfo()
{
zoomInfoLabel->setText( QString( " %1% " ).arg(100*view->zoom(), 0, 'f', 0) );
@@ -1000,6 +1183,9 @@ namespace glabels
}
///
/// Update Cursor Information in Status Bar
///
void MainWindow::updateCursorInfo( double x, double y )
{
/* TODO: convert x,y to locale units and set precision accordingly. */
@@ -1007,7 +1193,10 @@ namespace glabels
}
/* Clears cursor info. E.g. when pointer exits view. */
///
/// Update Zoom Information in Status Bar (Clears information)
/// E.g. when pointer exits view.
///
void MainWindow::updateCursorInfo()
{
cursorInfoLabel->setText( "" );
+3 -5
View File
@@ -37,11 +37,9 @@ namespace glabels
class View;
//////////////////////////////////////////////
//////////////////////////////////////////////
// MainWindow
//////////////////////////////////////////////
//////////////////////////////////////////////
///
/// MainWindow Widget
///
class MainWindow : public QMainWindow
{
Q_OBJECT
+52 -7
View File
@@ -27,21 +27,66 @@
namespace glabels
{
///
/// Merge Field Structure
///
struct MergeField
{
/////////////////////////////////
// Properties
/////////////////////////////////
public:
inline QString key( void ) { return m_key; }
inline void key( const QString &value ) { m_key = value; }
inline QString value( void ) { return m_value; }
inline void value( const QString &value ) { m_value = value; }
//
// Key Property
//
inline const QString key( void ) const;
inline void setKey( const QString &value );
//
// Value Property
//
inline const QString value( void ) const;
inline void setValue( const QString &value );
/////////////////////////////////
// Private data
/////////////////////////////////
private:
QString m_key;
QString m_value;
QString mKey;
QString mValue;
};
/////////////////////////////////
// INLINE METHODS
/////////////////////////////////
const QString MergeField::key( void ) const
{
return mKey;
}
void MergeField::setKey( const QString &value )
{
mKey = value;
}
const QString MergeField::value( void ) const
{
return mValue;
}
void MergeField::setValue( const QString &value )
{
mValue = value;
}
}
#endif // glabels_MergeField_h
+14
View File
@@ -20,3 +20,17 @@
#include "MergeRecord.h"
namespace glabels
{
///
/// Constructor
///
MergeRecord::MergeRecord() : mSelected( false )
{
}
}
+47 -12
View File
@@ -22,37 +22,72 @@
#define glabels_MergeRecord_h
#include <QString>
#include <list>
#include <QList>
#include "MergeField.h"
using namespace std;
namespace glabels
{
///
/// Merge Record Structure
///
struct MergeRecord
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
MergeRecord() : m_selected( false )
{
}
MergeRecord();
/////////////////////////////////
// Properties
/////////////////////////////////
public:
inline bool selected( void ) { return m_selected; }
inline void selected( bool value ) { m_selected = value; }
inline bool selected( void ) const;
inline void setSelected( bool value );
inline list<MergeField> field_list( void ) { return m_field_list; }
inline void field_list( list<MergeField> &value ) { m_field_list = value; }
inline const QList<MergeField>& fieldList( void ) const;
inline void setFieldList( QList<MergeField>& value );
/////////////////////////////////
// Private data
/////////////////////////////////
private:
bool m_selected;
list<MergeField> m_field_list;
bool mSelected;
QList<MergeField> mFieldList;
};
/////////////////////////////////
// INLINE METHODS
/////////////////////////////////
bool MergeRecord::selected( void ) const
{
return mSelected;
}
void MergeRecord::setSelected( bool value )
{
mSelected = value;
}
const QList<MergeField>& MergeRecord::fieldList( void ) const
{
return mFieldList;
}
void MergeRecord::setFieldList( QList<MergeField>& value )
{
mFieldList = value;
}
}
#endif // glabels_MergeRecord_h
+18
View File
@@ -29,6 +29,9 @@
namespace glabels
{
///
/// Constructor
///
NewLabelDialog::NewLabelDialog( QWidget *parent = 0 )
{
setupUi( this );
@@ -66,6 +69,9 @@ namespace glabels
}
///
/// Search Entry Text Changed Slot
///
void NewLabelDialog::searchEntryTextChanged( const QString &text )
{
templatePicker->applyFilter( text,
@@ -75,6 +81,9 @@ namespace glabels
}
///
/// Page Size Radio Toggled Slot
///
void NewLabelDialog::pageSizeRadioToggled( bool checked )
{
if ( checked )
@@ -87,6 +96,9 @@ namespace glabels
}
///
/// Template Picker Selection Changed Slot
///
void NewLabelDialog::templatePickerSelectionChanged()
{
orientationNormalRadio->setChecked( true );
@@ -164,6 +176,9 @@ namespace glabels
}
///
/// Orientation Radio Button Toggled Slot
///
void NewLabelDialog::orientationRadioToggled( bool checked )
{
if ( checked )
@@ -173,6 +188,9 @@ namespace glabels
}
///
/// Create Button Clicked Slot
///
void NewLabelDialog::createButtonClicked()
{
const libglabels::Template *tmplate = templatePicker->selectedTemplate();
+11
View File
@@ -27,13 +27,24 @@
namespace glabels
{
///
/// New Label Dialog Widget
///
class NewLabelDialog : public QDialog, public Ui_NewLabelDialog
{
Q_OBJECT
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
NewLabelDialog( QWidget *parent );
/////////////////////////////////
// Slots
/////////////////////////////////
private slots:
void searchEntryTextChanged( const QString &text );
void pageSizeRadioToggled( bool checked );
+30
View File
@@ -25,6 +25,9 @@
#include <iostream>
//
// Private Configuration Data
//
namespace
{
const QColor paperColor( 255, 255, 255 );
@@ -51,6 +54,9 @@ namespace
namespace glabels
{
///
/// Constructor
///
SimplePreview::SimplePreview( QWidget *parent = 0 )
: mScale(1), mTmplate(NULL), mRotateFlag(false), QGraphicsView(parent)
{
@@ -65,6 +71,9 @@ namespace glabels
}
///
/// Template Property Setter
///
void SimplePreview::setTemplate( const libglabels::Template *tmplate )
{
mTmplate = tmplate;
@@ -72,6 +81,9 @@ namespace glabels
}
///
/// Rotate Property Setter
///
void SimplePreview::setRotate( bool rotateFlag )
{
mRotateFlag = rotateFlag;
@@ -79,6 +91,9 @@ namespace glabels
}
///
/// Update View
///
void SimplePreview::update()
{
clearScene();
@@ -103,6 +118,9 @@ namespace glabels
}
///
/// Clear View
///
void SimplePreview::clearScene()
{
foreach ( QGraphicsItem *item, mScene->items() )
@@ -113,6 +131,9 @@ namespace glabels
}
///
/// Draw Paper
///
void SimplePreview::drawPaper( double pw, double ph )
{
QGraphicsDropShadowEffect *shadowEffect = new QGraphicsDropShadowEffect();
@@ -133,6 +154,9 @@ namespace glabels
}
///
/// Draw Labels on Paper
///
void SimplePreview::drawLabels()
{
libglabels::Frame *frame = mTmplate->frames().first();
@@ -144,6 +168,9 @@ namespace glabels
}
///
/// Draw a Single Label at x,y
///
void SimplePreview::drawLabel( double x, double y, const QPainterPath &path )
{
QBrush brush( labelColor );
@@ -159,6 +186,9 @@ namespace glabels
}
///
/// Draw Arrow Indicating Top of First Label
///
void SimplePreview::drawArrow()
{
libglabels::Frame *frame = mTmplate->frames().first();
+24 -2
View File
@@ -32,16 +32,32 @@
namespace glabels
{
///
/// Simple Preview Widget
///
class SimplePreview : public QGraphicsView
{
Q_OBJECT
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
SimplePreview( QWidget *parent );
/////////////////////////////////
// Properties
/////////////////////////////////
public:
void setTemplate( const libglabels::Template *tmplate );
void setRotate( bool rotateFlag );
/////////////////////////////////
// Internal Methods
/////////////////////////////////
private:
void update();
void clearScene();
@@ -50,11 +66,17 @@ namespace glabels
void drawLabel( double x, double y, const QPainterPath &path );
void drawArrow();
QGraphicsScene *mScene;
double mScale;
/////////////////////////////////
// Private Data
/////////////////////////////////
private:
const libglabels::Template *mTmplate;
bool mRotateFlag;
QGraphicsScene *mScene;
double mScale;
};
}
+12
View File
@@ -28,6 +28,9 @@
namespace glabels
{
///
/// Constructor
///
TemplatePicker::TemplatePicker( QWidget *parent ) : QListWidget(parent)
{
setViewMode( QListView::IconMode );
@@ -39,6 +42,9 @@ namespace glabels
}
///
/// Set List of Templates to Pick From
///
void TemplatePicker::setTemplates( const QList <libglabels::Template*> &tmplates )
{
foreach (libglabels::Template *tmplate, tmplates)
@@ -48,6 +54,9 @@ namespace glabels
}
///
/// Apply Filter to Narrow Template Choices
///
void TemplatePicker::applyFilter( const QString &searchString,
bool isoMask, bool usMask, bool otherMask )
{
@@ -72,6 +81,9 @@ namespace glabels
}
///
/// Get Currently Selected Template
///
const libglabels::Template *TemplatePicker::selectedTemplate()
{
QList<QListWidgetItem *> items = selectedItems();
+16
View File
@@ -31,15 +31,31 @@
namespace glabels
{
///
/// Template Picker Widget
///
class TemplatePicker : public QListWidget
{
Q_OBJECT
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
TemplatePicker( QWidget *parent = 0 );
/////////////////////////////////
// Properties
/////////////////////////////////
public:
void setTemplates( const QList <libglabels::Template*> &tmplates );
/////////////////////////////////
// Methods
/////////////////////////////////
void applyFilter( const QString &searchString, bool isoMask, bool usMask, bool otherMask );
const libglabels::Template *selectedTemplate();
+13 -1
View File
@@ -28,8 +28,11 @@
namespace glabels
{
///
/// Constructor
///
TemplatePickerItem::TemplatePickerItem( libglabels::Template *tmplate,
QListWidget *parent = 0 )
QListWidget *parent )
: QListWidgetItem(parent)
{
mTmplate = tmplate;
@@ -40,5 +43,14 @@ namespace glabels
setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
}
///
/// Template Property Getter
///
const libglabels::Template *TemplatePickerItem::tmplate() const
{
return mTmplate;
}
}
+17 -2
View File
@@ -31,14 +31,29 @@
namespace glabels
{
///
/// Template Picker Item Widget
///
class TemplatePickerItem : public QListWidgetItem
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
TemplatePickerItem( libglabels::Template *tmplate, QListWidget *parent );
TemplatePickerItem( libglabels::Template *tmplate, QListWidget *parent = 0 );
inline const libglabels::Template *tmplate() const { return mTmplate; }
/////////////////////////////////
// Properties
/////////////////////////////////
public:
const libglabels::Template *tmplate() const;
/////////////////////////////////
// Private Data
/////////////////////////////////
private:
libglabels::Template *mTmplate;
+61 -2
View File
@@ -36,6 +36,27 @@ namespace {
namespace glabels
{
///
/// Default Constructor
///
TextNode::TextNode()
: mFieldFlag(false), mData("")
{
}
///
/// Constructor from Data
///
TextNode::TextNode( bool field_flag, const QString &data )
: mFieldFlag(field_flag), mData(data)
{
}
///
/// Constructor from Parsing Next Token in Text
///
TextNode::TextNode( const QString &text, int i_start, int &i_next )
{
State state = START;
@@ -175,13 +196,51 @@ namespace glabels
}
m_field_flag = field_flag;
m_data = field_flag ? field_name : literal_text;
mFieldFlag = field_flag;
mData = field_flag ? field_name : literal_text;
i_next = i;
}
///
/// == Operator
///
bool TextNode::operator==( const TextNode& other )
{
return ( (mFieldFlag == other.mFieldFlag) &&
(mData == other.mData) );
}
///
/// != Operator
///
bool TextNode::operator!=( const TextNode& other )
{
return ( (mFieldFlag != other.mFieldFlag) ||
(mData != other.mData) );
}
///
/// Field Flag Property Getter
///
bool TextNode::fieldFlag( void ) const
{
return mFieldFlag;
}
///
/// Data Property Getter
///
const QString& TextNode::data( void ) const
{
return mData;
}
#if TODO
public string expand( MergeRecord? record )
{
+38 -27
View File
@@ -27,53 +27,64 @@
namespace glabels
{
class TextNode
///
/// Text Node Type
///
struct TextNode
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
public:
TextNode()
: m_field_flag(false), m_data("")
{
}
TextNode( bool field_flag, const QString &data )
: m_field_flag(field_flag), m_data(data)
{
}
virtual ~TextNode() {}
TextNode();
TextNode( bool field_flag, const QString &data );
TextNode( const QString &text, int i_start, int &i_next );
bool operator==( const TextNode &tn )
{
return ( (m_field_flag == tn.m_field_flag) &&
(m_data == tn.m_data) );
}
/////////////////////////////////
// Operators
/////////////////////////////////
public:
bool operator==( const TextNode& other );
bool operator!=( const TextNode& other );
bool operator!=( const TextNode &tn )
{
return ( (m_field_flag != tn.m_field_flag) ||
(m_data != tn.m_data) );
}
/////////////////////////////////
// Properties
/////////////////////////////////
public:
//
// Field Flag Property
//
bool fieldFlag( void ) const;
//
// Data Property
//
const QString& data( void ) const;
/////////////////////////////////
// Methods
/////////////////////////////////
#if TODO
string expand( MergeRecord? record );
bool is_empty_field( MergeRecord? record );
#endif
bool field_flag( void ) { return m_field_flag; }
QString data( void ) { return m_data; }
/////////////////////////////////
// Private Data
/////////////////////////////////
private:
bool m_field_flag;
QString m_data;
bool mFieldFlag;
QString mData;
};
+63
View File
@@ -38,6 +38,9 @@
#include "libglabels/FrameCd.h"
//
// Private Configuration Data
//
namespace
{
const int nZoomLevels = 14;
@@ -65,6 +68,9 @@ namespace
namespace glabels
{
///
/// Constructor
///
View::View( QWidget *parent ) : QGraphicsView(parent)
{
setZoomReal( 1, false );
@@ -86,6 +92,9 @@ namespace glabels
}
///
/// Model Parameter Setter
///
void View::setModel( LabelModel* model )
{
mModel = model;
@@ -103,18 +112,27 @@ namespace glabels
}
///
/// Grid Visibility Parameter Setter
///
void View::setGridVisible( bool visibleFlag )
{
mGridLayer->setVisible( visibleFlag );
}
///
/// Markup Visibility Parameter Setter
///
void View::setMarkupVisible( bool visibleFlag )
{
mMarkupLayer->setVisible( visibleFlag );
}
///
/// Zoom In "One Notch"
///
void View::zoomIn()
{
// Find closest standard zoom level to our current zoom
@@ -137,6 +155,9 @@ namespace glabels
}
///
/// Zoom Out "One Notch"
///
void View::zoomOut()
{
// Find closest standard zoom level to our current zoom
@@ -159,12 +180,18 @@ namespace glabels
}
///
/// Zoom To 1:1 Scale
///
void View::zoom1To1()
{
setZoomReal( 1.0, false );
}
///
/// Zoom To Fit
///
void View::zoomToFit()
{
double x_scale = (72.0/physicalDpiX()) * ( width() - ZOOM_TO_FIT_PAD ) / mModel->w();
@@ -179,18 +206,27 @@ namespace glabels
}
///
/// Is Zoom at Maximum?
///
bool View::isZoomMax() const
{
return ( mZoom >= zoomLevels[0] );
}
///
/// Is Zoom at Minimum?
///
bool View::isZoomMin() const
{
return ( mZoom <= zoomLevels[nZoomLevels-1] );
}
///
/// Set Zoom to Value
///
void View::setZoomReal( double zoom, bool zoomToFitFlag )
{
mZoom = zoom;
@@ -203,6 +239,9 @@ namespace glabels
}
///
/// Resize Event Handler
///
void View::resizeEvent( QResizeEvent *event )
{
if ( mZoomToFitFlag )
@@ -218,6 +257,9 @@ namespace glabels
}
///
/// Mouse Movement Event Handler
///
void View::mouseMoveEvent( QMouseEvent* event )
{
QPointF pointer = mapToScene( event->x(), event->y() );
@@ -225,12 +267,18 @@ namespace glabels
}
///
/// Leave Event Handler
///
void View::leaveEvent( QEvent* event )
{
emit pointerExited();
}
///
/// Clear Layer (Item Group) of All Child Items
///
void View::clearLayer( QGraphicsItemGroup* layer )
{
foreach( QGraphicsItem* item, layer->childItems() )
@@ -240,6 +288,9 @@ namespace glabels
}
///
/// Create Label Layer
///
void View::createLabelLayer()
{
clearLayer( mLabelLayer );
@@ -259,6 +310,9 @@ namespace glabels
}
///
/// Create Grid Layer
///
void View::createGridLayer()
{
clearLayer( mGridLayer );
@@ -302,6 +356,9 @@ namespace glabels
}
///
/// Create Markup Layer
///
void View::createMarkupLayer()
{
clearLayer( mMarkupLayer );
@@ -321,6 +378,9 @@ namespace glabels
}
///
/// Add Object to Object Layer
///
void View::addObjectToObjectLayer( LabelModelObject* object )
{
QGraphicsItem* item = object->createGraphicsItem();
@@ -328,6 +388,9 @@ namespace glabels
}
///
/// Create Foreground Layer
///
void View::createForegroundLayer()
{
clearLayer( mForegroundLayer );
+3 -5
View File
@@ -34,11 +34,9 @@ namespace glabels
class LabelModelObject;
//////////////////////////////////////////////
//////////////////////////////////////////////
// View
//////////////////////////////////////////////
//////////////////////////////////////////////
///
/// View Widget
///
class View : public QGraphicsView
{
Q_OBJECT