24 Commits

Author SHA1 Message Date
ruglory 1139318732 Tagging the 0.16 release
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/tags/release-0.16@190 cac9541e-1b8d-4bfa-827e-589bba606050
2014-02-15 19:21:40 +00:00
ruglory 7a0d3262ac 01.6 tagged
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/tags/release-0.16@188 cac9541e-1b8d-4bfa-827e-589bba606050
2014-02-15 19:15:26 +00:00
ruglory dc96e6f6d8 NEWS updated
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@187 cac9541e-1b8d-4bfa-827e-589bba606050
2014-02-15 19:13:23 +00:00
ruglory de8eceae1b v0.15 bugfixes
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@186 cac9541e-1b8d-4bfa-827e-589bba606050
2014-02-15 19:06:26 +00:00
ruglory b45ed50368 Michal Suchanek patch for dependency in debian files
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@185 cac9541e-1b8d-4bfa-827e-589bba606050
2011-04-04 03:01:03 +00:00
ruglory 9d756d716c Fix for invalid offset for pixmap item, thanks Stefan Pöschel
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@184 cac9541e-1b8d-4bfa-827e-589bba606050
2011-04-04 02:50:23 +00:00
ruglory 3e38fc464a updated INSTALL to describe required packages to build
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@183 cac9541e-1b8d-4bfa-827e-589bba606050
2011-04-04 02:48:50 +00:00
ruglory 6b2b9dee08 Removed flag to enforce Qt open dialog. Prepaired for next release
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@182 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-12 02:00:38 +00:00
ruglory bbcd213258 NEWS updated
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@179 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-11 18:19:17 +00:00
ruglory cce010828c Debian file updated for 0.15
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@177 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-11 18:11:39 +00:00
ruglory 2ad40d2507 Prepared for release 0.15
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@174 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-11 18:02:00 +00:00
ruglory dac561fdad Preview label added to Qt openfile dialog
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@173 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-11 17:51:36 +00:00
ruglory 82e4a20b80 Added alignment for text item
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@172 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-04 02:35:32 +00:00
ruglory 527033561e Formatting
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@171 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-04 02:34:59 +00:00
ruglory 66570f00c1 Formatting
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@170 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-04 02:33:43 +00:00
ruglory 8b5ff178eb Fixed issue with image open dialog
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@169 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-04 02:33:04 +00:00
ruglory aab969817e Fixed issue in open dialog filters
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@168 cac9541e-1b8d-4bfa-827e-589bba606050
2011-01-04 02:32:24 +00:00
ruglory 716c35655a changes for release 0.14
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@166 cac9541e-1b8d-4bfa-827e-589bba606050
2010-01-19 02:43:00 +00:00
ruglory f856d58660 /etc/init.d/dbus call replaced by invoke-rc.d
explicit dependency on lightscribe removed


git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@165 cac9541e-1b8d-4bfa-827e-589bba606050
2010-01-19 02:15:51 +00:00
ruglory a69001b273 new element is inserted with z coordinate on top
when old qlx file is open (all elemets has z == 0 ) elements ordered on Z


git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@164 cac9541e-1b8d-4bfa-827e-589bba606050
2010-01-19 02:07:50 +00:00
ruglory f7dbf18fb3 implemented first version of software preview
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@163 cac9541e-1b8d-4bfa-827e-589bba606050
2010-01-17 07:30:27 +00:00
ruglory df16dfcc47 better late than never NEWS updated for 0.13
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@162 cac9541e-1b8d-4bfa-827e-589bba606050
2009-05-23 18:35:54 +00:00
ruglory 000135760b Added stdint.h for gcc-4.4
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@161 cac9541e-1b8d-4bfa-827e-589bba606050
2009-05-23 18:33:03 +00:00
ruglory d3e38888b2 Prerelease 0.14 started
git-svn-id: https://svn.code.sf.net/p/qlscribe/svn/trunk@160 cac9541e-1b8d-4bfa-827e-589bba606050
2009-05-23 18:32:17 +00:00
36 changed files with 627 additions and 215 deletions
+1 -1
View File
@@ -3,5 +3,5 @@
* For historical reasons: this is when I imported qlscribe into
SourceForge.
$Revision:$ $Date:$
$Revision$ $Date$
+25 -1
View File
@@ -1,6 +1,30 @@
Qt lightScribe Installaton instructions
=======================================
To compile qlscribe succesfully you may need additional packages installed.
So for Ubuntu folowing packages are required:
build-essential
cmake
libqt4-dev
libdbus-1-dev
For 64 bit Ubuntu you need also to install folowing packages:
ia32-libs
libc6-dev-i386 (maverick only, see notes)
g++-multilib
(Note: this will work for maverick (10.10) version, for lucid and karmic
/usr/lib32/libstdc++.so.5 is missing in ia32-libs so you would have to
find it see https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/431091 )
(Note: On 64 bit if you get "undefined reference std::_Rb_tree_increment..." link error it is
possible that link /usr/lib32/libstdc++.so points to /usr/lib32/libstdc++.so.5... change it
so it points /usr/lib32/libstdc++.so.6...)
For 64 bit Ubuntu libdbus-1-dev does not have link for i386 libdbus-1.so you may need to create one manually:
sudo ln -s libdbus-1.so.3 /lib/i386-linux-gnu/libdbus-1.so
To compile and install, first download release from http://qlscribe.sourceforge.net/
or check out project from subversion repository for particular release:
@@ -30,7 +54,7 @@ Include files should be in ${LIGHTSCRIBEDIR}/include and lib in ${LIGHTSCRIBEDIR
You need manually install dbus config and service files. They are located in INSTALL_PATH/share/qlscribe
So on my ubuntu system I do
sudo cp /usr/local/share/qlscribe/lightscribe.conf /etc/dbus-1/system.d/
sudo cp /usr/local/share/qlscribe/org.lightscribe.Manager.service /usr/share/dbus-1/system-services/
sudo cp /usr/local/share/qlscribe/org.lightscribe.printManager.service /usr/share/dbus-1/system-services/
sudo /etc/init.d/dbus reload
Your system may have different path please refer dbus system daemon documentation
+18
View File
@@ -1,5 +1,23 @@
NEWS - list of user-visible changes between releases of qlscribe
New in 0.16
Fixed build on 64 bit Ubuntu Saucy
Fixed bug with alarm() not found
Added instructions for 64 bit
New in 0.15
Added ability to align regular text to left, right or center the same way as rounded text
Fixed issue with filters in open dialog
Added image preview to Qt open file dialog
New in 0.14
Added Software Render for preview to make preview when no drive is available
Items have Z coordinate set to remove ambiguity
Saves from previous versions will have Z coordinate of items reordered on load
New in 0.13:
Fixes in dbus config for Ubuntu Jaunty
New in 0.12:
Fixed bug for round text not updating last used font
Main window stores/restores position and size from/to config
+1 -1
View File
@@ -32,7 +32,7 @@ FIND_LIBRARY( DBUS_LIBRARY dbus-1 )
get_filename_component( _dbusLibPath ${DBUS_LIBRARY} PATH )
FIND_PATH( DBUS_LIBINCLUDE_DIR dbus/dbus-arch-deps.h
PATHS /lib /usr/lib /usr/local/lib ${_dbusLibPath}
PATHS /lib /usr/lib /usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib/i386-linux-gnu ${_dbusLibPath}
PATH_SUFFIXES dbus-1.0/include )
if( DBUS_INCLUDE_DIR AND DBUS_LIBINCLUDE_DIR AND DBUS_LIBRARY )
+4 -1
View File
@@ -1,4 +1,7 @@
qlscribe (0.13-0ubuntu1) unstable; urgency=low
qlscribe (0.15-0lenny1) unstable; urgency=low
* Release 0.16 imported
* Release 0.15 imported
* Release 0.14 imported
* Release 0.13 imported
* Release 0.12 imported
* Release 0.11 imported
+2 -2
View File
@@ -2,12 +2,12 @@ Source: qlscribe
Section: qt
Priority: optional
Maintainer: Vyacheslav Kononenko <vyacheslav@kononenko.net>
Build-Depends: debhelper (>= 7)
Build-Depends: debhelper (>= 7), cmake, qt4-qmake, libqt4-dev, libdbus-1-dev, lightscribepublicsdk, lightscribe
Standards-Version: 3.7.3
Homepage: http://qlscribe.sourceforge.net/
Package: qlscribe
Architecture: any
Depends: ${shlibs:Depends}, lightscribe
Depends: ${shlibs:Depends}
Description: Qt based application to print lightScribe discs
Qt lightScribe is a GUI application to burn labels on lightScribe capable drives.
+2 -2
View File
@@ -9,7 +9,7 @@ Upstream Author(s):
Copyright:
<Copyright (C) 2009 Vyacheslav Kononenko>
<Copyright (C) 2009-2010 Vyacheslav Kononenko>
License:
@@ -30,7 +30,7 @@ License:
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
The Debian packaging is (C) 2009, Vyacheslav Kononenko <vyacheslav@kononenko.net> and
The Debian packaging is (C) 2009-2010, Vyacheslav Kononenko <vyacheslav@kononenko.net> and
is licensed under the GPL, see above.
+1 -1
View File
@@ -2,7 +2,7 @@
set -e
if [ "$1" = "configure" ] ; then
/etc/init.d/dbus reload
invoke-rc.d dbus reload
fi
#DEBHELPER#
+1 -1
View File
@@ -8,7 +8,7 @@ if [ "$1" = "remove" -o "$1" = "upgrade" ] ; then
fi
if [ "$1" = "remove" ] ; then
/etc/init.d/dbus reload
invoke-rc.d dbus reload
fi
#DEBHELPER#
+1
View File
@@ -22,6 +22,7 @@
#define DBUSCPP_H
#include <dbus/dbus.h>
#include <stdint.h>
#include <string>
#include <map>
+1 -1
View File
@@ -278,7 +278,7 @@ void Drive::routine()
function = "LS_DiscPrintMgr_EnumDiscPrinters";
EnumDiscPrinters printers = manager.EnumDiscPrinters();
if( m_index >= printers.Count() )
if( m_index >= int( printers.Count() ) )
throw std::string( "internal error: invalid index" );
DiscPrinter printer = printers.Item( m_index );
+1
View File
@@ -23,6 +23,7 @@
#include <signal.h>
#include <stdlib.h>
#include <syslog.h>
#include <unistd.h>
#include "lscribed.h"
#include "dbuscpp.h"
+2 -2
View File
@@ -25,14 +25,14 @@ SET( QLSCRIBE_SRCS main.cpp mainwindow.cpp qcdscene.cpp qcdview.cpp
qdialogpixmap.cpp qdialogroundtext.cpp qdialogtext.cpp qlightroundtextitem.cpp
qlightscribe.cpp qshapefactory.cpp qlighttextitem.cpp qlightpixmapitem.cpp
qdialogprint.cpp qdialogprogress.cpp qdialogcdproperties.cpp qconsoleprintprogress.cpp
qdialogsettings.cpp )
qdialogsettings.cpp previewinjector.cpp )
SET( QLSCRIBE_UIS qdialogtext.ui qdialogroundtext.ui qdialogpixmap.ui
qdialogprint.ui qdialogprogress.ui qdialogcdproperties.ui qdialogsettings.ui )
SET( QLSCRIBE_MOC_HDRS mainwindow.h qcdscene.h qdialogpixmap.h qdialogroundtext.h
qdialogtext.h qlightscribe.h qdialogprint.h qdialogprogress.h
qdialogcdproperties.h qconsoleprintprogress.h qdialogsettings.h )
qdialogcdproperties.h qconsoleprintprogress.h qdialogsettings.h previewinjector.h )
ADD_DEFINITIONS( -Wall )
+103 -18
View File
@@ -28,6 +28,7 @@
#include "qdialogprogress.h"
#include "qdialogcdproperties.h"
#include "qdialogsettings.h"
#include "previewinjector.h"
#include <QMenuBar>
#include <QStatusBar>
@@ -42,6 +43,7 @@
#include <QClipboard>
#include <QSettings>
#include <QImageReader>
#include <QPicture>
MainWindow::MainWindow( bool enablePrint )
@@ -323,24 +325,29 @@ void MainWindow::onMenuInsert( int id )
return;
}
cdscene->addItem( item );
cdscene->addItem( item, true );
cdscene->setChanged();
}
void MainWindow::onMenuOpen()
{
QString filter( tr("qlscribe document (*.qlx)\nImages ( ") );
QString filter( tr("qlscribe document (*.qlx);;Images ( ") );
QList<QByteArray> list = QImageReader::supportedImageFormats();
foreach( QByteArray arr, list ) {
filter += QString( "*." ) + arr.data() + " ";
}
filter += tr( ")\nAll Files (*)" );
filter += tr( ");;All Files (*)" );
QString fileName = QFileDialog::getOpenFileName( this,
tr( "Open:" ),
QString(),
filter );
QFileDialog fd( this, "Open:", QString(), filter );
bool injectPreview = QSettings().value( cfgInjectPreview, true ).toBool();
PreviewInjector pj( injectPreview ? &fd : 0 );
fd.setFileMode( QFileDialog::ExistingFile );
if( fd.exec() != QDialog::Accepted )
return;
QString fileName = fd.selectedFiles().value(0);
if( fileName.isNull() )
return;
@@ -380,6 +387,24 @@ void MainWindow::onMenuProperties()
QDialogCDProperties::exec( this, scene );
}
namespace {
const int bigImageSize = 1600;
}
inline
void drawCircle( QPainter &painter, double radi )
{
const int half = bigImageSize / 2;
painter.drawEllipse( QRectF( half - radi, half - radi, radi * 2, radi * 2 ) );
}
inline
void drawCircle( QPainterPath &path, double radi )
{
const int half = bigImageSize / 2;
path.addEllipse( QRectF( half - radi, half - radi, radi * 2, radi * 2 ) );
}
void MainWindow::onMenuPrintPreview()
{
QCDScene *cdscene = getScene( m_mdiArea );
@@ -388,21 +413,81 @@ void MainWindow::onMenuPrintPreview()
PrintParameters params;
params.m_labelMode = cdscene->labelMode();
QLightDrive *drive = QDialogPrint::exec( this, params );
if( !drive )
QPair< bool, QLightDrive * > bd = QDialogPrint::exec( this, params, true );
if( !bd.first )
return;
try {
QPixmap pixmap = drive->preview( params, cdscene, QSize( 400, 400 ) );
if( !bd.second ) {
// software "rendering"
QPixmap image( bigImageSize, bigImageSize );
image.fill( 0xFFFFFFFF );
cdscene->clearSelection();
{
QPainter painter( &image );
QColor circleColor( 0xd8, 0xd8, 0xd8 );
painter.setPen( circleColor );
painter.setBrush( circleColor );
drawCircle( painter, bigImageSize / 2 );
cdscene->render( &painter, image.rect() );
QPainterPath p1;
p1.addRect( image.rect() );
{
QPainterPath p2;
drawCircle( p2, bigImageSize / 2 );
painter.setClipPath( p1.subtracted( p2 ) );
painter.fillRect( image.rect(), Qt::white );
painter.setClipPath( p1 );
}
painter.setBrush( circleColor );
if( params.m_labelMode == modeTitle ) {
// 3.22
QPainterPath p2;
drawCircle( p2, bigImageSize / 3.20 );
painter.setClipPath( p1.subtracted( p2 ) );
drawCircle( painter, bigImageSize / 2 );
// 3.74
painter.setClipPath( p1 );
drawCircle( painter, bigImageSize / 3.74 );
} else
if( params.m_labelMode == modeContent ) {
// 3.22
QPainterPath p2;
drawCircle( p2, bigImageSize / 3.20 );
painter.setClipPath( p1.subtracted( p2 ) );
drawCircle( painter, bigImageSize / 2 );
// 4.69
painter.setClipPath( p1 );
drawCircle( painter, bigImageSize / 4.69 );
}
painter.setBrush( Qt::white );
drawCircle( painter, bigImageSize / 4.93 );
}
QLabel *label = new QLabel;
label->setPixmap( pixmap );
label->setPixmap( image.scaled( QSize( 400, 400 ) ) );
QMdiSubWindow *subWindow = m_mdiArea->addSubWindow( label );
subWindow->setWindowTitle( "Preview: " + cdscene->name() );
subWindow->setWindowTitle( "Software preview: " + cdscene->name() );
subWindow->show();
}
catch( const QString &err ) {
QMessageBox::critical( this, tr( "Error on print preview" ), err );
} else {
try {
QPixmap pixmap = bd.second->preview( params, cdscene, QSize( 400, 400 ) );
QLabel *label = new QLabel;
label->setPixmap( pixmap );
QMdiSubWindow *subWindow = m_mdiArea->addSubWindow( label );
subWindow->setWindowTitle( "Preview: " + cdscene->name() );
subWindow->show();
}
catch( const QString &err ) {
QMessageBox::critical( this, tr( "Error on print preview" ), err );
}
}
}
@@ -460,7 +545,7 @@ void MainWindow::onMenuAbout()
QMessageBox::about( this,
tr( "About" ),
tr( "<h3>qlscribe - Qt lisghtScribe</h3>"
"<p>release 0.13 $Revision$</p>"
"<p>release 0.16 $Revision$</p>"
"<p>visit project at home page "
"<a href=\"http://qlscribe.sourceforge.net/\">qlscribe.sourceforge.net</a></p>" ) );
}
+61
View File
@@ -0,0 +1,61 @@
#include "previewinjector.h"
#include <QFileDialog>
#include <QLabel>
#include <QSplitter>
#include <QImageReader>
PreviewInjector::PreviewInjector( QFileDialog * dl ) :
m_label( 0 ),
m_size( 160, 120 )
{
if( !dl )
return;
QSplitter *sp = qFindChild<QSplitter *>( dl, "splitter" );
if( !sp )
return;
m_label = new QLabel;
m_label->resize( m_size );
sp->addWidget( m_label );
connect( dl, SIGNAL(currentChanged(QString)),SLOT(onSelectionChanged(QString)));
}
PreviewInjector::~PreviewInjector()
{
delete m_label;
}
void PreviewInjector::onSelectionChanged(QString file)
{
QImageReader reader( file );
if( !reader.canRead() ) {
m_label->setPixmap( QPixmap() );
return;
}
m_label->resize( m_size );
QSize toSize = m_size;
QSize sz = reader.size();
if( !sz.isNull() ) {
double r1 = m_label->size().width() / double( sz.width() );
double r2 = m_label->size().height() / double( sz.height() );
double ratio = std::max( r1, r2 );
if( ratio < 1.0 ) {
toSize.setWidth( sz.width() * ratio );
toSize.setHeight( sz.height() * ratio );
}
}
reader.setScaledSize( toSize );
QImage img = reader.read();
if( img.isNull() ) {
m_label->setPixmap( QPixmap() );
return;
}
m_label->setPixmap( QPixmap::fromImage( img ) );
}
+27
View File
@@ -0,0 +1,27 @@
#ifndef PREVIEWINJECTOR_HPP
#define PREVIEWINJECTOR_HPP
#include <QObject>
#include <QSize>
class QFileDialog;
class QLabel;
class PreviewInjector : public QObject {
Q_OBJECT
public:
PreviewInjector( QFileDialog * dl );
~PreviewInjector();
bool injected() const { return m_label; }
private slots:
void onSelectionChanged(QString );
private:
QLabel *m_label;
QSize m_size;
};
#endif // PREVIEWINJECTOR_HPP
+37 -5
View File
@@ -108,12 +108,29 @@ bool QCDScene::load( const QString &fileName, QString *errMessage )
setName();
pushUndo();
QList<QGraphicsItem *> list = items();
bool oldFormat = true;
foreach(QGraphicsItem *item, list ) {
if( item->zValue() != 0.0 ) {
oldFormat = false;
break;
}
}
if( oldFormat ) {
double z = 1.0;
foreach(QGraphicsItem *item, list ) {
item->setZValue( z );
z += 0.1;
}
}
return true;
}
QShapeFactory &sfactory = QShapeFactory::instance();
QLightPixmapItem *item =
static_cast<QLightPixmapItem *>(sfactory.create( QShapeControllerPixmap::Type ) );
addItem( item );
addItem( item, true );
if( item->loadImage( fileName ) ) {
QSize size = item->pixmap().size();
item->setOffset( -QPointF( size.height(), size.width() ) / 2.0 );
@@ -261,8 +278,22 @@ void QCDScene::write( QXmlStreamWriter &writer )
writer.writeEndDocument();
}
void QCDScene::addItem( QGraphicsItem *item, bool top )
{
if( top ) {
double topZ = 1.0;
QList<QGraphicsItem *> list = items();
foreach(QGraphicsItem *item, list ) {
if( item->zValue() >= topZ )
topZ = item->zValue() + 0.1;
}
item->setZValue( topZ );
}
QGraphicsScene::addItem( item );
}
bool QCDScene::readItem( QXmlStreamReader &reader )
bool QCDScene::readItem( QXmlStreamReader &reader, bool top )
{
QShapeFactory &sfactory = QShapeFactory::instance();
@@ -279,7 +310,7 @@ bool QCDScene::readItem( QXmlStreamReader &reader )
if( item ) {
item->setFlag( QGraphicsItem::ItemIsMovable, true );
item->setFlag( QGraphicsItem::ItemIsSelectable, true );
addItem( item );
addItem( item, top );
return true;
}
return false;
@@ -308,7 +339,7 @@ void QCDScene::read( QXmlStreamReader &reader )
}
if( elementName == "item" ) {
readItem( reader );
readItem( reader, false );
} else
throw QString( "QCDScene: unknown element \"" ) + elementName + "\"";
}
@@ -366,7 +397,7 @@ void QCDScene::getItemFromClipboard()
QString elementName = reader.name().toString();
if( elementName == "item" ) {
if( readItem( reader ) )
if( readItem( reader, true ) )
setChanged();
}
}
@@ -489,3 +520,4 @@ void QCDScene::unredo( bool undo )
}
setChanged( false );
}
+2 -1
View File
@@ -60,6 +60,7 @@ public:
void putItemToClipboard( bool move );
void getItemFromClipboard();
void addItem( QGraphicsItem *item, bool top );
void updateTitles() const;
void redrawViews() const;
@@ -82,7 +83,7 @@ private slots:
private:
void write( QXmlStreamWriter &writer );
bool readItem( QXmlStreamReader &reader );
bool readItem( QXmlStreamReader &reader, bool top );
void read( QXmlStreamReader &reader );
void sendItemTo( bool front );
void pushUndo();
+16 -3
View File
@@ -22,10 +22,12 @@
#include "ui_qdialogpixmap.h"
#include "qlightpixmapitem.h"
#include "qcdscene.h"
#include "previewinjector.h"
#include <QImageReader>
#include <QFileDialog>
#include <QMessageBox>
#include <QSettings>
QDialogPixmap::QDialogPixmap(QWidget *parent) :
QItemDialog( parent ),
@@ -68,7 +70,7 @@ bool QDialogPixmap::exec( QGraphicsItem *graphicsItem )
m_item->imageName( item->imageName() );
m_item->setTransform( item->transform() );
scene.addItem( m_item );
scene.addItem( m_item, true );
m_ui->spinX->setValue( m_item->pos().x() );
m_ui->spinY->setValue( m_item->pos().y() );
@@ -118,8 +120,19 @@ void QDialogPixmap::onLoadImage()
foreach( QByteArray arr, list ) {
filter += QString( "*." ) + arr.data() + " ";
}
filter += tr( ")\nAll Files (*)" );
QString fileName = QFileDialog::getOpenFileName( this, "Load image:", QString(), filter );
filter += tr( ");;All Files (*.*)" );
QFileDialog fd( this, "Load image:", QString(), filter );
//fd.setOption( QFileDialog::DontUseNativeDialog ); // for testing
bool injectPreview = QSettings().value( cfgInjectPreview, true ).toBool();
PreviewInjector pj( injectPreview ? &fd : 0 );
fd.setFileMode( QFileDialog::ExistingFile );
if( fd.exec() != QDialog::Accepted )
return;
QString fileName = fd.selectedFiles().value(0);
if( fileName.isNull() )
return;
+14 -5
View File
@@ -46,12 +46,14 @@ void QDialogPrint::changeEvent(QEvent *e)
}
}
QLightDrive *QDialogPrint::exec( QWidget *parent, PrintParameters &params )
QPair<bool, QLightDrive *> QDialogPrint::exec( QWidget *parent, PrintParameters &params, bool preview )
{
QPair<bool, QLightDrive *> rez( false, 0 );
QList<QLightDrive *> drives = QLightScribe::instance()->getDrives();
if( drives.isEmpty() ) {
if( !preview && drives.isEmpty() ) {
QMessageBox::critical( parent, tr( "Error" ), tr( "Cannot find any lightScribe drive" ) );
return 0;
return rez;
}
QDialogPrint dialog( parent );
switch( params.m_labelMode ) {
@@ -64,8 +66,11 @@ QLightDrive *QDialogPrint::exec( QWidget *parent, PrintParameters &params )
foreach( QLightDrive *drv, drives ) {
dialog.m_ui->comboDrive->insertItem( index++, drv->displayName() );
}
if( preview )
dialog.m_ui->comboDrive->insertItem( index++, tr( "Software renderer" ) );
if( dialog.QDialog::exec() == Rejected )
return 0;
return rez;
params = PrintParameters(); // reset to default
@@ -87,5 +92,9 @@ QLightDrive *QDialogPrint::exec( QWidget *parent, PrintParameters &params )
if( dialog.m_ui->radioMediaGeneric->isChecked() )
params.m_mediaOptimizationLevel = mediaGeneric;
return drives.at( dialog.m_ui->comboDrive->currentIndex() );
rez.first = true;
if( dialog.m_ui->comboDrive->currentIndex() < drives.size() )
rez.second = drives.at( dialog.m_ui->comboDrive->currentIndex() );
return rez;
}
+1 -1
View File
@@ -33,7 +33,7 @@ class QDialogPrint : public QDialog {
Q_OBJECT
Q_DISABLE_COPY(QDialogPrint)
public:
static QLightDrive *exec( QWidget *parent, PrintParameters &params );
static QPair<bool, QLightDrive *> exec( QWidget *parent, PrintParameters &params, bool preview );
protected:
explicit QDialogPrint(QWidget *parent = 0);
+1 -1
View File
@@ -65,7 +65,7 @@ bool QDialogProgress::exec( QWidget *parent, QCDScene *scene )
{
PrintParameters params;
params.m_labelMode = scene->labelMode();
QLightDrive *drive = QDialogPrint::exec( parent, params );
QLightDrive *drive = QDialogPrint::exec( parent, params, false ).second;
if( !drive )
return false;
+1 -1
View File
@@ -73,7 +73,7 @@ bool QDialogRoundText::exec( QGraphicsItem *graphicsItem )
m_item->setAlignment( item->alignment() );
m_item->setOutside( item->outside() );
scene.addItem( m_item );
scene.addItem( m_item, true );
m_ui->spinX->setValue( m_item->pos().x() );
m_ui->spinY->setValue( m_item->pos().y() );
+2
View File
@@ -60,11 +60,13 @@ bool QDialogSettings::exec( QWidget *parent )
dialog.m_font = sts.value( cfgDefaultFont ).value<QFont>();
dialog.m_ui->fontName->setCurrentFont( dialog.m_font );
dialog.m_ui->chkEject->setChecked( sts.value( cfgEjectAfterFinish, false ).toBool() );
dialog.m_ui->chkPreview->setChecked( sts.value( cfgInjectPreview, true ).toBool() );
if( dialog.QDialog::exec() == Rejected ) return false;
sts.setValue( cfgDefaultFont, dialog.m_font );
sts.setValue( cfgEjectAfterFinish, dialog.m_ui->chkEject->isChecked() );
sts.setValue( cfgInjectPreview, dialog.m_ui->chkPreview->isChecked() );
return true;
}
+46 -38
View File
@@ -1,48 +1,49 @@
<ui version="4.0" >
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QDialogSettings</class>
<widget class="QDialog" name="QDialogSettings" >
<property name="windowModality" >
<widget class="QDialog" name="QDialogSettings">
<property name="windowModality">
<enum>Qt::NonModal</enum>
</property>
<property name="geometry" >
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>305</width>
<height>156</height>
<width>320</width>
<height>170</height>
</rect>
</property>
<property name="windowTitle" >
<property name="windowTitle">
<string>Settings</string>
</property>
<property name="modal" >
<property name="modal">
<bool>false</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" >
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QFrame" name="frame" >
<property name="frameShape" >
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow" >
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout" >
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QFormLayout" name="formLayout" >
<item row="0" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Default font:</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QFontComboBox" name="fontName" >
<property name="enabled" >
<item row="0" column="1">
<widget class="QFontComboBox" name="fontName">
<property name="enabled">
<bool>false</bool>
</property>
<property name="editable" >
<property name="editable">
<bool>false</bool>
</property>
</widget>
@@ -50,13 +51,13 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout" >
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer" >
<property name="orientation" >
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
@@ -65,15 +66,15 @@
</spacer>
</item>
<item>
<widget class="QPushButton" name="btnFont" >
<property name="text" >
<widget class="QPushButton" name="btnFont">
<property name="text">
<string>Font...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnLastUsedFont" >
<property name="text" >
<widget class="QPushButton" name="btnLastUsedFont">
<property name="text">
<string>Last used</string>
</property>
</widget>
@@ -81,21 +82,28 @@
</layout>
</item>
<item>
<widget class="QCheckBox" name="chkEject" >
<property name="text" >
<widget class="QCheckBox" name="chkEject">
<property name="text">
<string>Eject tray after finish</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="chkPreview">
<property name="text">
<string>Enable image preview in open dialog</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox" >
<property name="orientation" >
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons" >
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
@@ -110,11 +118,11 @@
<receiver>QDialogSettings</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel" >
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel" >
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
@@ -126,11 +134,11 @@
<receiver>QDialogSettings</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel" >
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel" >
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
+25 -10
View File
@@ -22,8 +22,8 @@
#include "ui_qdialogtext.h"
#include "qcdscene.h"
#include "qdialogsettings.h"
#include "qlighttextitem.h"
#include <QGraphicsSimpleTextItem>
#include <QFontDialog>
#include <QColorDialog>
@@ -55,39 +55,48 @@ void QDialogText::changeEvent(QEvent *e)
bool QDialogText::exec( QGraphicsItem *graphicsItem )
{
QGraphicsSimpleTextItem *item = dynamic_cast< QGraphicsSimpleTextItem * >( graphicsItem );
QLightTextItem *item = dynamic_cast< QLightTextItem * >( graphicsItem );
if( !item )
return false;
QCDScene scene;
m_ui->cdView->setScene( &scene );
m_item = new QGraphicsSimpleTextItem;
m_item = new QLightTextItem;
m_item->setPos( item->pos() );
m_item->setText( item->text() );
m_item->setFont( item->font() );
m_item->setBrush( item->brush() );
m_item->setColor( item->color() );
m_item->setTransform( item->transform() );
m_item->setAlignment( item->alignment() );
scene.addItem( m_item );
scene.addItem( m_item, true );
m_ui->spinX->setValue( m_item->pos().x() );
m_ui->spinY->setValue( m_item->pos().y() );
m_ui->textEdit->setPlainText( m_item->text() );
int index = 0;
if( m_item->alignment() == Qt::AlignRight ) index = 2;
else if( m_item->alignment() == Qt::AlignCenter ) index = 1;
m_ui->comboAlignment->setCurrentIndex( index );
colorChanged();
fontChanged();
connect( m_ui->textEdit, SIGNAL(textChanged()), this, SLOT(textChanged()) );
connect( m_ui->spinX, SIGNAL(valueChanged(double)), this, SLOT(posChanged()) );
connect( m_ui->spinY, SIGNAL(valueChanged(double)), this, SLOT(posChanged()) );
connect( m_ui->comboAlignment, SIGNAL(currentIndexChanged(int)),this, SLOT(alignChanged()) );
if( QDialog::exec() == Rejected ) return false;
item->setPos( m_item->pos() );
item->setText( m_item->text() );
item->setFont( m_item->font() );
item->setBrush( m_item->brush() );
item->setColor( m_item->color() );
item->setAlignment( m_item->alignment() );
return true;
}
@@ -105,11 +114,11 @@ void QDialogText::onFont()
void QDialogText::onColor()
{
QColor color = QColorDialog::getColor( m_item->brush().color(), this );
QColor color = QColorDialog::getColor( m_item->color(), this );
if( color.isValid() ){
m_item->setBrush( color );
m_item->setColor( color );
colorChanged();
}
}
}
void QDialogText::fontChanged()
@@ -120,7 +129,7 @@ void QDialogText::fontChanged()
void QDialogText::colorChanged()
{
QPixmap pixmap( m_ui->colorWidget->size() );
pixmap.fill( m_item->brush().color() );
pixmap.fill( m_item->color() );
m_ui->colorWidget->setPixmap( pixmap );
}
@@ -134,3 +143,9 @@ void QDialogText::posChanged()
m_item->setPos( m_ui->spinX->value(), m_ui->spinY->value() );
}
void QDialogText::alignChanged()
{
Qt::Alignment align[] = { Qt::AlignLeft, Qt::AlignCenter, Qt::AlignRight };
m_item->setAlignment( align[ m_ui->comboAlignment->currentIndex() ] );
}
+5 -4
View File
@@ -16,7 +16,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
$Id:$ */
$Id$ */
#ifndef QDIALOGTEXT_H
#define QDIALOGTEXT_H
@@ -27,7 +27,7 @@ namespace Ui {
class QDialogText;
}
class QGraphicsSimpleTextItem;
class QLightTextItem;
class QDialogText : public QItemDialog {
Q_OBJECT
@@ -48,10 +48,11 @@ private slots:
void fontChanged();
void colorChanged();
void posChanged();
void alignChanged();
private:
Ui::QDialogText *m_ui;
QGraphicsSimpleTextItem *m_item;
Ui::QDialogText *m_ui;
QLightTextItem *m_item;
};
#endif // QDIALOGTEXT_H
+127 -92
View File
@@ -1,10 +1,11 @@
<ui version="4.0" >
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QDialogText</class>
<widget class="QDialog" name="QDialogText" >
<property name="enabled" >
<widget class="QDialog" name="QDialogText">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry" >
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@@ -12,70 +13,70 @@
<height>627</height>
</rect>
</property>
<property name="windowTitle" >
<property name="windowTitle">
<string>Text properties</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3" >
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QVBoxLayout" name="verticalLayout" >
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QFrame" name="frame" >
<property name="frameShape" >
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow" >
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<property name="lineWidth" >
<property name="lineWidth">
<number>3</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" >
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout" >
<property name="sizeConstraint" >
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum>
</property>
<property name="bottomMargin" >
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QFormLayout" name="formLayout" >
<item row="0" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>X:</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QDoubleSpinBox" name="spinX" >
<property name="decimals" >
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="spinX">
<property name="decimals">
<number>1</number>
</property>
<property name="minimum" >
<property name="minimum">
<double>-61.000000000000000</double>
</property>
<property name="maximum" >
<property name="maximum">
<double>61.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_2" >
<property name="text" >
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Y:</string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QDoubleSpinBox" name="spinY" >
<property name="decimals" >
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="spinY">
<property name="decimals">
<number>1</number>
</property>
<property name="minimum" >
<property name="minimum">
<double>-61.000000000000000</double>
</property>
<property name="maximum" >
<property name="maximum">
<double>61.000000000000000</double>
</property>
</widget>
@@ -83,11 +84,11 @@
</layout>
</item>
<item>
<spacer name="horizontalSpacer" >
<property name="orientation" >
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>20</height>
@@ -96,70 +97,104 @@
</spacer>
</item>
<item>
<layout class="QFormLayout" name="formLayout_3" >
<item row="0" column="0" >
<widget class="QLabel" name="label_5" >
<property name="text" >
<layout class="QFormLayout" name="formLayout_3">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Font:</string>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_6" >
<property name="text" >
<item row="0" column="1">
<widget class="QFontComboBox" name="fontName">
<property name="enabled">
<bool>false</bool>
</property>
<property name="editable">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Color:</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QFontComboBox" name="fontName" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="editable" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QLabel" name="colorWidget" >
<property name="minimumSize" >
<item row="3" column="1">
<widget class="QLabel" name="colorWidget">
<property name="minimumSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="maximumSize" >
<property name="maximumSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="baseSize" >
<property name="baseSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="frameShape" >
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="text" >
</property>
<property name="text">
<string/>
</property>
<property name="textFormat" >
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboAlignment" >
<property name="currentIndex" >
<number>0</number>
</property>
<item>
<property name="text" >
<string>Left</string>
</property>
</item>
<item>
<property name="text" >
<string>Center</string>
</property>
</item>
<item>
<property name="text" >
<string>Right</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Alignment:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_2" >
<property name="orientation" >
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<property name="sizeHint" stdset="0">
<size>
<width>17</width>
<height>20</height>
@@ -168,20 +203,20 @@
</spacer>
</item>
<item>
<layout class="QFormLayout" name="formLayout_4" >
<property name="fieldGrowthPolicy" >
<layout class="QFormLayout" name="formLayout_4">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="1" column="0" >
<widget class="QPushButton" name="btnColor" >
<property name="text" >
<item row="1" column="0">
<widget class="QPushButton" name="btnColor">
<property name="text">
<string>Color...</string>
</property>
</widget>
</item>
<item row="0" column="0" >
<widget class="QPushButton" name="btnFont" >
<property name="text" >
<item row="0" column="0">
<widget class="QPushButton" name="btnFont">
<property name="text">
<string>Font...</string>
</property>
</widget>
@@ -191,26 +226,26 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" >
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_3" >
<property name="text" >
<widget class="QLabel" name="label_3">
<property name="text">
<string>Text</string>
</property>
<property name="alignment" >
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
<item>
<widget class="QPlainTextEdit" name="textEdit" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<widget class="QPlainTextEdit" name="textEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize" >
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
@@ -221,20 +256,20 @@
</layout>
</item>
<item>
<widget class="QCDView" name="cdView" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<widget class="QCDView" name="cdView">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>2</verstretch>
</sizepolicy>
</property>
<property name="baseSize" >
<property name="baseSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="interactive" >
<property name="interactive">
<bool>false</bool>
</property>
</widget>
@@ -243,11 +278,11 @@
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox" >
<property name="orientation" >
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons" >
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
@@ -278,11 +313,11 @@
<receiver>QDialogText</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel" >
<hint type="sourcelabel">
<x>258</x>
<y>582</y>
</hint>
<hint type="destinationlabel" >
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
@@ -294,11 +329,11 @@
<receiver>QDialogText</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel" >
<hint type="sourcelabel">
<x>326</x>
<y>582</y>
</hint>
<hint type="destinationlabel" >
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
+1 -1
View File
@@ -123,7 +123,7 @@ void QShapeControllerPixmap::readData( const QString &element,
}
pixmapItem->imageName( data );
pixmapItem->setPixmap( pixmap );
pixmapItem->setOffset( -QPointF( pixmap.size().height(), pixmap.size().width() ) / 2.0 );
pixmapItem->setOffset( -QPointF( pixmap.size().width(), pixmap.size().height() ) / 2.0 );
return;
}
}
+1 -1
View File
@@ -227,7 +227,7 @@ void QLightRoundTextItem::paint( QPainter *painter, const QStyleOptionGraphicsIt
painter->restore();
if (option->state & QStyle::State_Selected) {
painter->setPen( QPen( option->palette.windowText(), 0, Qt::DashLine ) );
painter->setBrush(Qt::NoBrush);
painter->setBrush( Qt::NoBrush );
painter->drawPath( shape() );
}
}
+1 -1
View File
@@ -28,7 +28,7 @@
class QLightRoundTextItem : public QAbstractGraphicsShapeItem {
public:
enum { Type = UserType + 1 };
enum { Type = UserType + 1 };
QLightRoundTextItem( QGraphicsItem * parent = 0 );
+14 -13
View File
@@ -109,21 +109,22 @@ QLightDrive::QLightDrive( QObject *parent, const QString &path, const QString &n
static
void printScene( QCDScene *scene, QByteArray &array )
{
QImage image( 2772, 2772, QImage::Format_RGB888 );
image.fill( 0xFFFFFFFF );
const int resolution = 2772;
QImage image( resolution, resolution, QImage::Format_RGB888 );
image.fill( 0xFFFFFFFF );
scene->clearSelection();
{
QPainter painter( &image );
scene->render( &painter, image.rect() );
}
image.setDotsPerMeterX( 23622 );
image.setDotsPerMeterY( 23622 );
scene->clearSelection();
{
QPainter painter( &image );
scene->render( &painter, image.rect() );
}
image.setDotsPerMeterX( resolution * 8 );
image.setDotsPerMeterY( resolution * 8 );
array.clear();
QBuffer buffer( &array );
buffer.open( QIODevice::WriteOnly );
image.save( &buffer, "bmp", 100 );
array.clear();
QBuffer buffer( &array );
buffer.open( QIODevice::WriteOnly );
image.save( &buffer, "bmp", 100 );
}
QPixmap QLightDrive::preview( const PrintParameters &params, QCDScene *scene, const QSize &size ) throw( QString )
+64 -5
View File
@@ -25,6 +25,7 @@
#include <QXmlStreamWriter>
#include <QXmlStreamReader>
#include <QTextDocument>
QLightTextItem::QLightTextItem()
@@ -39,6 +40,58 @@ QVariant QLightTextItem::itemChange( GraphicsItemChange change, const QVariant &
return value;
}
QString QLightTextItem::text() const
{
return QGraphicsSimpleTextItem::text();
}
QColor QLightTextItem::color() const
{
return this->brush().color();
}
Qt::Alignment QLightTextItem::alignment() const
{
return m_alignment;
}
void QLightTextItem::setText( const QString &txt )
{
QGraphicsSimpleTextItem::setText( txt );
updateTrans();
}
void QLightTextItem::setFont( const QFont &font )
{
QGraphicsSimpleTextItem::setFont( font );
updateTrans();
}
void QLightTextItem::setColor( const QColor &color )
{
this->setBrush( color );
}
void QLightTextItem::setAlignment( Qt::Alignment align )
{
m_alignment = align;
updateTrans();
}
void QLightTextItem::updateTrans()
{
double size = this->boundingRect().width();
QTransform trans;
trans.scale( 0.5, 0.5 );
switch( m_alignment ) {
case Qt::AlignRight : trans.translate( -size, 0 ); break;
case Qt::AlignCenter : trans.translate( -size / 2.0, 0 ); break;
}
this->setTransform( trans );
}
RegisterController< QShapeControllerText > regControllerText;
@@ -69,20 +122,21 @@ QItemDialog *QShapeControllerText::createDialog( QWidget *parent ) const
void QShapeControllerText::writeData( QXmlStreamWriter &writer, const QGraphicsItem *item ) const
{
const QGraphicsSimpleTextItem *textItem = static_cast< const QGraphicsSimpleTextItem * >( item );
const QLightTextItem *textItem = static_cast< const QLightTextItem * >( item );
writer.writeEmptyElement( "pos" );
writer.writeAttribute( QXmlStreamAttribute( "x", QString::number( textItem->pos().x() ) ) );
writer.writeAttribute( QXmlStreamAttribute( "y", QString::number( textItem->pos().y() ) ) );
writer.writeAttribute( QXmlStreamAttribute( "z", QString::number( textItem->zValue() ) ) );
writer.writeTextElement( "font", textItem->font().toString() );
writer.writeTextElement( "color", textItem->brush().color().name() );
writer.writeTextElement( "color", textItem->color().name() );
writer.writeTextElement( "text", textItem->text() );
writer.writeTextElement( "alignment", QString::number( textItem->alignment() ) );
}
void QShapeControllerText::replace( QGraphicsItem *item, const QString &from, const QString &to ) const
{
QGraphicsSimpleTextItem *textItem = static_cast< QGraphicsSimpleTextItem * >( item );
QLightTextItem *textItem = static_cast< QLightTextItem * >( item );
bool placeHolder = textItem->text().left( 1 ) == "?" && textItem->text().right( 1 ) == "?";
@@ -102,7 +156,7 @@ void QShapeControllerText::readData( const QString &element,
const QString &data,
QGraphicsItem *item ) const
{
QGraphicsSimpleTextItem *textItem = static_cast< QGraphicsSimpleTextItem * >( item );
QLightTextItem *textItem = static_cast< QLightTextItem * >( item );
if( element == "pos" ) {
textItem->setPos( attrs.value( "x" ).toString().toDouble(),
@@ -119,7 +173,7 @@ void QShapeControllerText::readData( const QString &element,
}
if( element == "color" ) {
textItem->setBrush( QColor( data ) );
textItem->setColor( QColor( data ) );
return;
}
@@ -127,4 +181,9 @@ void QShapeControllerText::readData( const QString &element,
textItem->setText( data );
return;
}
if( element == "alignment" ) {
textItem->setAlignment( Qt::Alignment( data.toInt() ) );
return;
}
}
+13
View File
@@ -30,9 +30,22 @@ class QLightTextItem : public QGraphicsSimpleTextItem
public:
QLightTextItem();
QString text() const;
Qt::Alignment alignment() const;
QColor color() const;
void setText( const QString &txt );
void setColor( const QColor &color );
void setFont( const QFont &font );
void setAlignment( Qt::Alignment align );
protected:
virtual QVariant itemChange ( GraphicsItemChange change, const QVariant & value );
private:
void updateTrans();
Qt::Alignment m_alignment;
};
class QShapeControllerText : public QShapeController {
+1
View File
@@ -67,6 +67,7 @@ const char * const DBusManagerPath = "@QLSCRIBE_DBUS_MANAGER_PATH@";
// config keys
const char * const cfgDefaultFont = "DefaultTextFont";
const char * const cfgEjectAfterFinish = "EjectAfterFinish";
const char * const cfgInjectPreview = "InjectPreview";
#endif // QLSCRIBE_H
+4 -2
View File
@@ -21,7 +21,8 @@ SOURCES += main.cpp \
qlightpixmapitem.cpp \
qdialogcdproperties.cpp \
qconsoleprintprogress.cpp \
qdialogsettings.cpp
qdialogsettings.cpp \
previewinjector.cpp
QMAKE_LIBS += -llightscribe
HEADERS += mainwindow.h \
qlightroundtextitem.h \
@@ -38,7 +39,8 @@ HEADERS += mainwindow.h \
qlightpixmapitem.h \
qdialogcdproperties.h \
qconsoleprintprogress.h \
qdialogsettings.h
qdialogsettings.h \
previewinjector.h
FORMS += qdialogtext.ui \
qdialogroundtext.ui \
qdialogpixmap.ui \