diff --git a/app/NewLabelDialog.cpp b/app/NewLabelDialog.cpp index 1b9abce..16ce540 100644 --- a/app/NewLabelDialog.cpp +++ b/app/NewLabelDialog.cpp @@ -55,6 +55,9 @@ namespace gLabels connect( pageSizeOtherRadio, SIGNAL(toggled(bool)), this, SLOT(pageSizeRadioToggled(bool)) ); connect( templatePicker, SIGNAL(itemSelectionChanged()), this, SLOT(templatePickerSelectionChanged()) ); + + connect( orientationNormalRadio, SIGNAL(toggled(bool)), this, SLOT(orientationRadioToggled(bool)) ); + connect( orientationRotatedRadio, SIGNAL(toggled(bool)), this, SLOT(orientationRadioToggled(bool)) ); } @@ -81,6 +84,8 @@ namespace gLabels void NewLabelDialog::templatePickerSelectionChanged() { + orientationNormalRadio->setChecked( true ); + QList selectedItems = templatePicker->selectedItems(); if ( selectedItems.isEmpty() ) @@ -97,6 +102,7 @@ namespace gLabels const libglabels::Frame *frame = tmplate->frames().first(); simplePreview->setTemplate( tmplate ); + simplePreview->setRotate( false ); const libglabels::Vendor *vendor = libglabels::Db::lookupVendorFromName( tmplate->brand() ); if ( (vendor != NULL) && (vendor->url() != NULL) ) @@ -148,7 +154,19 @@ namespace gLabels } similarBrowser->setText( similarListString ); } + + orientationGroupBox->setEnabled( frame->w() != frame->h() ); } } + + void NewLabelDialog::orientationRadioToggled( bool checked ) + { + if ( checked ) + { + simplePreview->setRotate( orientationRotatedRadio->isChecked() ); + } + } + + } diff --git a/app/NewLabelDialog.h b/app/NewLabelDialog.h index 1d71fe7..5d3d7c1 100644 --- a/app/NewLabelDialog.h +++ b/app/NewLabelDialog.h @@ -38,6 +38,7 @@ namespace gLabels void searchEntryTextChanged( const QString &text ); void pageSizeRadioToggled( bool checked ); void templatePickerSelectionChanged(); + void orientationRadioToggled( bool checked ); }; diff --git a/app/SimplePreview.cpp b/app/SimplePreview.cpp index 23821f7..d6ac8f9 100644 --- a/app/SimplePreview.cpp +++ b/app/SimplePreview.cpp @@ -39,11 +39,11 @@ namespace const QColor labelOutlineColor( 128, 128, 255 ); const double labelOutlineWidthPixels = 2; - const QColor arrowColor( 224, 224, 255 ); + const QColor arrowColor( 192, 192, 255, 128 ); const double arrowScale = 0.35; - const QColor upColor( 224, 224, 255 ); - const double upScale = 0.15; + const QColor upColor( 192, 192, 255, 128 ); + const double upScale = 0.15; const QString upFontFamily( "Sans" ); } @@ -166,47 +166,51 @@ namespace gLabels double w = frame->w(); double h = frame->h(); - if ( w != h ) + double min = ( w < h ) ? w : h; + + QPen pen( arrowColor ); + pen.setWidthF( 0.25*min*arrowScale ); + pen.setCapStyle( Qt::FlatCap ); + pen.setJoinStyle( Qt::MiterJoin ); + + QBrush brush( upColor ); + + libglabels::Point origin = frame->getOrigins().first(); + double x0 = origin.x(); + double y0 = origin.y(); + + QPainterPath path; + path.moveTo( 0, min*arrowScale/3 ); + path.lineTo( 0, -min*arrowScale ); + path.moveTo( -min*arrowScale/2, -min*arrowScale/2 ); + path.lineTo( 0, -min*arrowScale ); + path.lineTo( min*arrowScale/2, -min*arrowScale/2 ); + + QGraphicsPathItem *arrowItem = new QGraphicsPathItem( path ); + arrowItem->setPen( pen ); + arrowItem->setPos( x0+w/2, y0+h/2 ); + if ( mRotateFlag ) { - double min = ( w < h ) ? w : h; - - QPen pen( arrowColor ); - pen.setWidthF( 0.25*min*arrowScale ); - pen.setCapStyle( Qt::FlatCap ); - pen.setJoinStyle( Qt::MiterJoin ); - - QBrush brush( upColor ); - - libglabels::Point origin = frame->getOrigins().first(); - double x0 = origin.x(); - double y0 = origin.y(); - - QPainterPath path; - path.moveTo( 0, min*arrowScale/3 ); - path.lineTo( 0, -min*arrowScale ); - path.moveTo( -min*arrowScale/2, -min*arrowScale/2 ); - path.lineTo( 0, -min*arrowScale ); - path.lineTo( min*arrowScale/2, -min*arrowScale/2 ); - - QGraphicsPathItem *arrowItem = new QGraphicsPathItem( path ); - arrowItem->setPen( pen ); - arrowItem->setPos( x0+w/2, y0+h/2 ); - - QGraphicsSimpleTextItem *upItem = new QGraphicsSimpleTextItem( tr("Up") ); - upItem->setBrush( brush ); - upItem->setFont( QFont( upFontFamily, min*upScale, QFont::Bold ) ); - QRectF rect = upItem->boundingRect(); - upItem->setPos( x0+w/2-rect.width()/2, y0+h/2+min/8 ); - - if ( mRotateFlag ) - { - arrowItem->setRotation( -90 ); - upItem->setRotation( -90 ); - } - - mScene->addItem( arrowItem ); - mScene->addItem( upItem ); + arrowItem->setRotation( 90 ); } + + QGraphicsSimpleTextItem *upItem = new QGraphicsSimpleTextItem( tr("Up") ); + upItem->setBrush( brush ); + upItem->setFont( QFont( upFontFamily, min*upScale, QFont::Bold ) ); + upItem->setPos( x0+w/2, y0+h/2 ); + QRectF rect = upItem->boundingRect(); + if ( mRotateFlag ) + { + upItem->setPos( upItem->x()-min/8, upItem->y()-rect.width()/2 ); + upItem->setRotation( 90 ); + } + else + { + upItem->setPos( upItem->x()-rect.width()/2, upItem->y()+min/8 ); + } + + mScene->addItem( arrowItem ); + mScene->addItem( upItem ); } } diff --git a/app/ui/NewLabelDialog.ui b/app/ui/NewLabelDialog.ui index ba6c6f6..063a2a2 100644 --- a/app/ui/NewLabelDialog.ui +++ b/app/ui/NewLabelDialog.ui @@ -245,6 +245,9 @@ TextLabel + + false + @@ -327,7 +330,7 @@ - + 0