Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f3fd65866 |
@@ -1,38 +0,0 @@
|
||||
Qt lightScribe Installaton instructions
|
||||
=======================================
|
||||
|
||||
To compile and install, first download release from http://qlscribe.sourceforge.net/
|
||||
or check out project from subversion repository for particular release:
|
||||
|
||||
svn co https://qlscribe.svn.sourceforge.net/svnroot/qlscribe/tags/release-N.M qlscribe
|
||||
|
||||
or if you want to test latest development version:
|
||||
|
||||
svn co https://qlscribe.svn.sourceforge.net/svnroot/qlscribe/trunk qlscribe
|
||||
|
||||
Then go to the source directory and type:
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
|
||||
(If you want to install in a different path, use instead:
|
||||
cmake .. -DCMAKE_INSTALL_PREFIX=/install/path)
|
||||
make
|
||||
sudo make install
|
||||
|
||||
If cmake fails to find lightScribe API specify environment variable LIGHTSCRIBEDIR:
|
||||
|
||||
LIGHTSCRIBEDIR=/opt/lightscribe cmake ..
|
||||
|
||||
Include files should be in ${LIGHTSCRIBEDIR}/include and lib in ${LIGHTSCRIBEDIR}/lib
|
||||
|
||||
Once installed, you can start Qt lightScribe by typing "qlscribe", but due to API
|
||||
requirement if you want to burn qlscribe has to be started by root as "sudo qlscribe"
|
||||
|
||||
You need to download lightScribe SDK for qlscribe to build and lightScribe runtime
|
||||
for qlscribe to run. For details see lightScribe webpage:
|
||||
|
||||
http://www.lightscribe.org/
|
||||
|
||||
Enjoy!
|
||||
@@ -1,17 +1,6 @@
|
||||
NEWS - list of user-visible changes between releases of qlscribe
|
||||
|
||||
New in 0.3:
|
||||
Documents keep their names and detect changes (changes on item postion through window
|
||||
itself is not detected yet)
|
||||
Main window on close scan all documents and confirm to save changed ones
|
||||
Document window confirm to save on close
|
||||
|
||||
New in 0.2:
|
||||
Print progress dialog shows elapsed/estimated time
|
||||
Bugfix for not loading angle in round text item
|
||||
Image items can be scaled now
|
||||
|
||||
New in 0.1:
|
||||
Open/save as implemented. Text, round text and image items can be inserted and edited
|
||||
Print preview and print is working (no exclusive lock or tray lock on printing yet)
|
||||
New in 0.1:
|
||||
* First release of qlscribe
|
||||
* *
|
||||
|
||||
|
||||
@@ -1,17 +1,7 @@
|
||||
Qt lightScribe V 0.1 by Vyacheslav Kononenko <vyacheslav@kononenko.net>
|
||||
qlscribe
|
||||
********
|
||||
|
||||
Qt lightScribe is Qt base application to burn CD/DVD labels on lightScribe capable
|
||||
drives and medias
|
||||
Introduction
|
||||
============
|
||||
|
||||
This is the first alpha release. Program functionality is very limited at this stage.
|
||||
Please check the project page for more information, and to report new bugs.
|
||||
|
||||
http://qlscribe.sourceforge.net/
|
||||
|
||||
Application based on lightScribe(c) API: http://www.lightscribe.org
|
||||
and requires lightScribe API, available to download from:
|
||||
|
||||
http://www.lightscribe.org/downloadSection/linux/index.aspx
|
||||
|
||||
Thanks and regards,
|
||||
Vyacheslav
|
||||
|
||||
@@ -18,14 +18,13 @@
|
||||
#
|
||||
# $Id$
|
||||
|
||||
FIND_PATH( LSCRIBE_INCLUDE_DIR lightscribe.h /usr/local/include $ENV{LIGHTSCRIBEDIR}/include )
|
||||
FIND_PATH( LSCRIBE_INCLUDE_DIR lightscribe.h /usr/local/include )
|
||||
|
||||
FIND_LIBRARY( LSCRIBE_LIBRARY lightscribe /usr/local/lib $ENV{LIGHTSCRIBEDIR}/lib )
|
||||
FIND_LIBRARY( LSCRIBE_LIBRARY lightscribe /usr/local/lib )
|
||||
|
||||
if( LSCRIBE_INCLUDE_DIR AND LSCRIBE_LIBRARY )
|
||||
SET( LSCRIBE_FOUND TRUE )
|
||||
SET( LSCRIBE_LIBRARIES ${LSCRIBE_LIBRARY} )
|
||||
INCLUDE_DIRECTORIES(${LSCRIBE_INCLUDE_DIR})
|
||||
ENDIF( LSCRIBE_INCLUDE_DIR AND LSCRIBE_LIBRARY )
|
||||
|
||||
IF( LSCRIBE_FOUND )
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
app.addLibraryPath( "/usr/lib32/qt4/plugins" );
|
||||
MainWindow mwindow;
|
||||
mwindow.show();
|
||||
|
||||
|
||||
+56
-84
@@ -34,8 +34,16 @@
|
||||
#include <QMessageBox>
|
||||
#include <QSignalMapper>
|
||||
#include <QFileDialog>
|
||||
#include <QXmlStreamWriter>
|
||||
#include <QLabel>
|
||||
#include <QCloseEvent>
|
||||
|
||||
/*#include <QImage>
|
||||
#include <QBuffer>
|
||||
#include <QGraphicsScene>
|
||||
#include <QFontDialog>
|
||||
#include <QPainter>*/
|
||||
|
||||
//#include <lightscribe.h>
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
@@ -108,75 +116,11 @@ MainWindow::~MainWindow()
|
||||
lscribe->wait( 1000 );
|
||||
}
|
||||
|
||||
bool MainWindow::saveSceneAs( QCDScene *scene )
|
||||
{
|
||||
QString fileName =
|
||||
QFileDialog::getSaveFileName( this,
|
||||
scene->name() + tr( ": save as" ),
|
||||
QString(),
|
||||
tr("qlscribe document (*.qlx)") );
|
||||
if( fileName.isNull() )
|
||||
return false;
|
||||
|
||||
if( !fileName.contains( '.' ) )
|
||||
fileName += ".qlx";
|
||||
|
||||
return scene->saveAs( fileName );
|
||||
}
|
||||
|
||||
bool MainWindow::saveScene( QCDScene *scene )
|
||||
{
|
||||
return scene->isUnnamed() ? saveSceneAs( scene ) : scene->save();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
bool saveAll = false;
|
||||
QList< QMdiSubWindow * > subs = m_mdiArea->subWindowList();
|
||||
foreach( QMdiSubWindow *sub, subs ) {
|
||||
QCDView *cdview = dynamic_cast< QCDView * >( sub->widget() );
|
||||
if( !cdview )
|
||||
continue;
|
||||
|
||||
QCDScene *scene = cdview->scene();
|
||||
if( !scene || scene->isSaved() )
|
||||
continue;
|
||||
|
||||
bool save = saveAll;
|
||||
if( !save ) {
|
||||
QMessageBox::StandardButton button =
|
||||
QMessageBox::question( this,
|
||||
tr( "Confirmation" ),
|
||||
scene->name() + tr( " is unsaved, do you want to save?" ),
|
||||
QMessageBox::Save | QMessageBox::SaveAll | QMessageBox::Discard | QMessageBox::Cancel );
|
||||
if( button == QMessageBox::Cancel ) {
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
if( button == QMessageBox::SaveAll ) {
|
||||
saveAll = true;
|
||||
save = true;
|
||||
}
|
||||
if( button == QMessageBox::Save )
|
||||
save = true;
|
||||
}
|
||||
if( save )
|
||||
if( !saveScene( scene ) ) {
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
}
|
||||
event->accept();
|
||||
}
|
||||
|
||||
void MainWindow::onMenuNew()
|
||||
{
|
||||
QCDView *newView = new QCDView;
|
||||
QCDScene *scene = new QCDScene( newView );
|
||||
newView->setScene( scene );
|
||||
scene->setName();
|
||||
|
||||
newView->setScene( new QCDScene( newView ) );
|
||||
//newView->setWindowTitle( "Baba" );
|
||||
QMdiSubWindow *subWindow = m_mdiArea->addSubWindow( newView );
|
||||
subWindow->show();
|
||||
}
|
||||
@@ -217,7 +161,6 @@ void MainWindow::onMenuInsert( int id )
|
||||
item->setFlag( QGraphicsItem::ItemIsMovable, true );
|
||||
item->setFlag( QGraphicsItem::ItemIsSelectable, true );
|
||||
cdscene->addItem( item );
|
||||
cdscene->setChanged();
|
||||
}
|
||||
|
||||
void MainWindow::onMenuOpen()
|
||||
@@ -230,31 +173,33 @@ void MainWindow::onMenuOpen()
|
||||
if( fileName.isNull() )
|
||||
return;
|
||||
|
||||
QFile file( fileName );
|
||||
if( !file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "Cannot open file for reading\n" ) + fileName );
|
||||
return;
|
||||
}
|
||||
|
||||
QCDView *newView = new QCDView;
|
||||
QCDScene *scene = new QCDScene( newView );
|
||||
newView->setScene( scene );
|
||||
|
||||
if( !scene->load( fileName ) ) {
|
||||
|
||||
QXmlStreamReader reader( &file );
|
||||
try {
|
||||
scene->read( reader );
|
||||
}
|
||||
catch( const QString &err ) {
|
||||
QMessageBox::critical( this, tr( "Error" ), tr( "Cannot read file " ) + fileName + "\n" + err );
|
||||
delete newView;
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//newView->setWindowTitle( "Baba" );
|
||||
QMdiSubWindow *subWindow = m_mdiArea->addSubWindow( newView );
|
||||
subWindow->show();
|
||||
}
|
||||
|
||||
void MainWindow::onMenuSave()
|
||||
{
|
||||
QCDScene *scene = getScene( m_mdiArea );
|
||||
if( scene )
|
||||
saveScene( scene );
|
||||
}
|
||||
|
||||
void MainWindow::onMenuSaveAs()
|
||||
{
|
||||
QCDScene *scene = getScene( m_mdiArea );
|
||||
if( scene )
|
||||
saveSceneAs( scene );
|
||||
}
|
||||
|
||||
void MainWindow::onMenuPrintPreview()
|
||||
@@ -274,7 +219,6 @@ void MainWindow::onMenuPrintPreview()
|
||||
QLabel *label = new QLabel;
|
||||
label->setPixmap( pixmap );
|
||||
QMdiSubWindow *subWindow = m_mdiArea->addSubWindow( label );
|
||||
subWindow->setWindowTitle( "Preview: " + cdscene->name() );
|
||||
subWindow->show();
|
||||
}
|
||||
catch( const QString &err ) {
|
||||
@@ -291,12 +235,40 @@ void MainWindow::onMenuPrint()
|
||||
QDialogProgress::exec( this, cdscene );
|
||||
}
|
||||
|
||||
void MainWindow::onMenuSaveAs()
|
||||
{
|
||||
QCDScene *cdscene = getScene( m_mdiArea );
|
||||
if( !cdscene )
|
||||
return;
|
||||
|
||||
QString fileName =
|
||||
QFileDialog::getSaveFileName( this,
|
||||
tr( "Save as:" ),
|
||||
QString(),
|
||||
tr("qlscribe document (*.qlx)") );
|
||||
if( fileName.isNull() )
|
||||
return;
|
||||
|
||||
if( !fileName.contains( '.' ) )
|
||||
fileName += ".qlx";
|
||||
|
||||
QFile file( fileName );
|
||||
if( !file.open( QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text ) ) {
|
||||
QMessageBox::warning( this, tr( "Warning" ), tr( "Cannot open file for writing: " ) + fileName );
|
||||
return;
|
||||
}
|
||||
QXmlStreamWriter writer( &file );
|
||||
writer.setAutoFormatting( true );
|
||||
cdscene->write( writer );
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::onMenuAbout()
|
||||
{
|
||||
QMessageBox::about( this,
|
||||
tr( "About" ),
|
||||
tr( "<h3>qlscribe - Qt lisghtScribe</h3>"
|
||||
"<p>release 0.3 $Revision$</p>"
|
||||
"<p>$Revision$</p>"
|
||||
"<p>visit project at home page "
|
||||
"<a href=\"http://qlscribe.sourceforge.net/\">qlscribe.sourceforge.net</a></p>" ) );
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
class QMdiArea;
|
||||
class QSignalMapper;
|
||||
class QCDScene;
|
||||
|
||||
class MainWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
@@ -34,10 +33,6 @@ public:
|
||||
explicit MainWindow(QWidget *parent = 0);
|
||||
virtual ~MainWindow();
|
||||
|
||||
bool saveScene( QCDScene *scene );
|
||||
protected:
|
||||
virtual void closeEvent( QCloseEvent *event );
|
||||
|
||||
private slots:
|
||||
void onMenuNew();
|
||||
void onMenuOpen();
|
||||
@@ -50,8 +45,6 @@ private slots:
|
||||
void onMenuQtAbout();
|
||||
|
||||
private:
|
||||
bool saveSceneAs( QCDScene *scene );
|
||||
|
||||
QMdiArea *m_mdiArea;
|
||||
|
||||
QMenu *m_menuFile;
|
||||
|
||||
+2
-96
@@ -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:$ */
|
||||
|
||||
#include "qcdscene.h"
|
||||
#include "qshapefactory.h"
|
||||
@@ -25,17 +25,10 @@
|
||||
#include <QMessageBox>
|
||||
#include <QGraphicsItem>
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include <QFile>
|
||||
#include <QXmlStreamReader>
|
||||
#include <QXmlStreamWriter>
|
||||
#include <QMessageBox>
|
||||
#include <QGraphicsView>
|
||||
#include <QRegExp>
|
||||
|
||||
QCDScene::QCDScene( QObject * parent )
|
||||
: QGraphicsScene( parent ),
|
||||
m_index( 0 ),
|
||||
m_saved( true )
|
||||
: QGraphicsScene( parent )
|
||||
{
|
||||
setSceneRect( -60.0, -60.0, 60.0 * 2, 60.0 * 2 );
|
||||
}
|
||||
@@ -46,93 +39,6 @@ QCDScene::~QCDScene()
|
||||
{
|
||||
}
|
||||
|
||||
bool QCDScene::load( const QString &fileName )
|
||||
{
|
||||
QFile file( fileName );
|
||||
if( !file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
||||
QMessageBox::critical( 0, tr( "Error" ), tr( "Cannot open file for reading\n" ) + fileName );
|
||||
return false;
|
||||
}
|
||||
QXmlStreamReader reader( &file );
|
||||
try {
|
||||
read( reader );
|
||||
}
|
||||
catch( const QString &err ) {
|
||||
QMessageBox::critical( 0, tr( "Error" ), tr( "Cannot read file " ) + fileName + "\n" + err );
|
||||
return false;
|
||||
}
|
||||
m_fileName = fileName;
|
||||
m_saved = true;
|
||||
setName();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool QCDScene::save()
|
||||
{
|
||||
QFile file( m_fileName );
|
||||
if( !file.open( QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text ) ) {
|
||||
QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot open file for writing: " ) + m_fileName );
|
||||
return false;
|
||||
}
|
||||
QXmlStreamWriter writer( &file );
|
||||
writer.setAutoFormatting( true );
|
||||
write( writer );
|
||||
m_saved = true;
|
||||
setName();
|
||||
return true;
|
||||
}
|
||||
|
||||
void QCDScene::setName()
|
||||
{
|
||||
if( m_fileName.isEmpty() ) {
|
||||
if( !m_index ) {
|
||||
static int index = 1;
|
||||
m_index = index++;
|
||||
}
|
||||
m_name = "Unnamed_" + QString::number( m_index );
|
||||
} else {
|
||||
QRegExp rx( "(.*/)?(.*)\\.qlx" );
|
||||
rx.indexIn( m_fileName );
|
||||
m_name = rx.cap( 2 );
|
||||
}
|
||||
|
||||
updateTitles();
|
||||
}
|
||||
|
||||
void QCDScene::setChanged()
|
||||
{
|
||||
m_saved = false;
|
||||
updateTitles();
|
||||
}
|
||||
|
||||
void QCDScene::updateTitles() const
|
||||
{
|
||||
QString name = m_name;
|
||||
if( !m_saved )
|
||||
name += " *";
|
||||
|
||||
QList<QGraphicsView *> allViews = views();
|
||||
foreach( QGraphicsView *view, allViews ) {
|
||||
view->setWindowTitle( name );
|
||||
}
|
||||
}
|
||||
|
||||
bool QCDScene::saveAs( const QString &fileName )
|
||||
{
|
||||
QFile file( fileName );
|
||||
if( !file.open( QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text ) ) {
|
||||
QMessageBox::warning( 0, tr( "Warning" ), tr( "Cannot open file for writing: " ) + fileName );
|
||||
return false;
|
||||
}
|
||||
QXmlStreamWriter writer( &file );
|
||||
writer.setAutoFormatting( true );
|
||||
write( writer );
|
||||
m_saved = true;
|
||||
m_fileName = fileName;
|
||||
setName();
|
||||
return true;
|
||||
}
|
||||
|
||||
void QCDScene::write( QXmlStreamWriter &writer )
|
||||
{
|
||||
writer.writeStartDocument();
|
||||
|
||||
+3
-22
@@ -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 QCDSCENE_H
|
||||
#define QCDSCENE_H
|
||||
@@ -32,33 +32,14 @@ public:
|
||||
QCDScene( QObject * parent = 0 );
|
||||
virtual ~QCDScene();
|
||||
|
||||
bool isSaved() const { return m_saved; }
|
||||
bool isUnnamed() const { return m_fileName.isEmpty(); }
|
||||
|
||||
void setChanged();
|
||||
void setName();
|
||||
bool load( const QString &fileName );
|
||||
bool save();
|
||||
bool saveAs( const QString &fileName );
|
||||
|
||||
void updateTitles() const;
|
||||
QString name() const { return m_name; }
|
||||
void write( QXmlStreamWriter &writer );
|
||||
void read( QXmlStreamReader &reader );
|
||||
|
||||
protected:
|
||||
virtual void contextMenuEvent( QGraphicsSceneContextMenuEvent *contextMenuEvent );
|
||||
|
||||
private slots:
|
||||
void onMenuEdit();
|
||||
|
||||
private:
|
||||
void write( QXmlStreamWriter &writer );
|
||||
void read( QXmlStreamReader &reader );
|
||||
|
||||
private:
|
||||
QString m_name;
|
||||
QString m_fileName;
|
||||
int m_index;
|
||||
bool m_saved;
|
||||
};
|
||||
|
||||
#endif //QCDSCENE_H
|
||||
|
||||
+1
-32
@@ -16,14 +16,10 @@
|
||||
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:$ */
|
||||
|
||||
#include "qcdview.h"
|
||||
#include "qcdscene.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QCloseEvent>
|
||||
#include <QMessageBox>
|
||||
|
||||
QCDView::QCDView( QWidget *parent )
|
||||
: QGraphicsView( parent ),
|
||||
@@ -53,33 +49,6 @@ QCDScene *QCDView::scene() const
|
||||
return static_cast< QCDScene * >( QGraphicsView::scene() );
|
||||
}
|
||||
|
||||
void QCDView::closeEvent( QCloseEvent *event )
|
||||
{
|
||||
QCDScene *cdscene = scene();
|
||||
if( cdscene && !cdscene->isSaved() ) {
|
||||
QMessageBox::StandardButton button =
|
||||
QMessageBox::question( this,
|
||||
tr( "Confitmation" ),
|
||||
cdscene->name() + tr( " is changed, do you want to save it?" ),
|
||||
QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel );
|
||||
|
||||
if( button == QMessageBox::Cancel ) {
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
if( button == QMessageBox::Yes ) {
|
||||
QWidget *parent = parentWidget();
|
||||
for( ; parent->parentWidget(); parent = parent->parentWidget() );
|
||||
if( !static_cast< MainWindow * >( parent )->saveScene( cdscene ) ) {
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
event->accept();
|
||||
}
|
||||
|
||||
inline
|
||||
void drawCircle( QPainter *painter, double radi )
|
||||
{
|
||||
|
||||
+1
-2
@@ -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 QCDVIEW_H
|
||||
#define QCDVIEW_H
|
||||
@@ -39,7 +39,6 @@ public:
|
||||
virtual QSize sizeHint () const;
|
||||
|
||||
protected:
|
||||
virtual void closeEvent( QCloseEvent *event );
|
||||
|
||||
void drawForeground ( QPainter * painter, const QRectF & rect );
|
||||
void drawBackground ( QPainter * painter, const QRectF & rect );
|
||||
|
||||
+1
-46
@@ -66,20 +66,11 @@ bool QDialogPixmap::exec( QGraphicsItem *graphicsItem )
|
||||
m_item->setOffset( item->offset() );
|
||||
m_item->setPixmap( item->pixmap() );
|
||||
m_item->setData( 0, item->data( 0 ) );
|
||||
m_item->setTransform( item->transform() );
|
||||
|
||||
scene.addItem( m_item );
|
||||
|
||||
m_ui->spinX->setValue( m_item->pos().x() );
|
||||
m_ui->spinY->setValue( m_item->pos().y() );
|
||||
m_ui->lineEdit->setText( m_item->data( 0 ).toString() );
|
||||
if( !m_item->pixmap().isNull() ) {
|
||||
QSize size = m_item->pixmap().size();
|
||||
QPointF scale = m_item->transform().map( QPointF( size.width(), size.height() ) );
|
||||
m_ui->spinWidth->setValue( scale.x() );
|
||||
m_ui->spinHeight->setValue( scale.y() );
|
||||
m_ui->lockedRatio->setChecked( scale.x() == scale.y() ? Qt::Checked : Qt::Unchecked );
|
||||
}
|
||||
|
||||
connect( m_ui->spinX, SIGNAL(valueChanged(double)),
|
||||
this, SLOT(posChanged()) );
|
||||
@@ -87,25 +78,12 @@ bool QDialogPixmap::exec( QGraphicsItem *graphicsItem )
|
||||
connect( m_ui->spinY, SIGNAL(valueChanged(double)),
|
||||
this, SLOT(posChanged()) );
|
||||
|
||||
connect( m_ui->spinWidth, SIGNAL(valueChanged(double)),
|
||||
this, SLOT(sizeChanged()) );
|
||||
|
||||
connect( m_ui->spinHeight, SIGNAL(valueChanged(double)),
|
||||
this, SLOT(sizeChanged()) );
|
||||
|
||||
connect( m_ui->btnSizeReset, SIGNAL(clicked()),
|
||||
this, SLOT(onResetSize()) );
|
||||
|
||||
connect( m_ui->lockedRatio, SIGNAL(stateChanged(int)),
|
||||
this, SLOT(sizeChanged()) );
|
||||
|
||||
if( QDialog::exec() == Rejected ) return false;
|
||||
|
||||
item->setPos( m_item->pos() );
|
||||
item->setOffset( m_item->offset() );
|
||||
item->setPixmap( m_item->pixmap() );
|
||||
item->setData( 0, m_item->data( 0 ) );
|
||||
item->setTransform( m_item->transform() );
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -131,36 +109,13 @@ void QDialogPixmap::onLoadImage()
|
||||
}
|
||||
m_item->setPixmap( pixmap );
|
||||
m_item->setData( 0, fileName );
|
||||
m_item->setOffset( -QPointF( pixmap.size().width(), pixmap.size().height() ) / 2.0 );
|
||||
m_item->setOffset( -QPointF( pixmap.size().height(), pixmap.size().width() ) / 2.0 );
|
||||
|
||||
m_ui->lineEdit->setText( fileName );
|
||||
m_ui->buttonBox->setStandardButtons( m_ui->buttonBox->standardButtons() | QDialogButtonBox::Ok );
|
||||
onResetSize();
|
||||
}
|
||||
|
||||
void QDialogPixmap::posChanged()
|
||||
{
|
||||
m_item->setPos( m_ui->spinX->value(), m_ui->spinY->value() );
|
||||
}
|
||||
|
||||
void QDialogPixmap::onResetSize()
|
||||
{
|
||||
m_ui->spinWidth->setValue( m_item->pixmap().size().width() / 10.0 );
|
||||
m_ui->spinHeight->setValue( m_item->pixmap().size().height() / 10.0 );
|
||||
}
|
||||
|
||||
void QDialogPixmap::sizeChanged()
|
||||
{
|
||||
if( m_ui->lockedRatio->checkState() == Qt::Checked ) {
|
||||
QObject *senderObj = sender();
|
||||
QSize size = m_item->pixmap().size();
|
||||
if( senderObj == m_ui->spinWidth || senderObj == m_ui->lockedRatio ) {
|
||||
m_ui->spinHeight->setValue( m_ui->spinWidth->value() / size.width() * size.height() );
|
||||
} else {
|
||||
m_ui->spinWidth->setValue( m_ui->spinHeight->value() / size.height() * size.width() );
|
||||
}
|
||||
|
||||
}
|
||||
m_item->setTransform( QTransform().scale( m_ui->spinWidth->value() / m_item->pixmap().size().width(),
|
||||
m_ui->spinHeight->value() / m_item->pixmap().size().height() ) );
|
||||
}
|
||||
|
||||
@@ -44,8 +44,6 @@ protected:
|
||||
private slots:
|
||||
void onLoadImage();
|
||||
void posChanged();
|
||||
void onResetSize();
|
||||
void sizeChanged();
|
||||
|
||||
private:
|
||||
Ui::QDialogPixmap *m_ui;
|
||||
|
||||
+21
-87
@@ -8,12 +8,12 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>464</width>
|
||||
<height>618</height>
|
||||
<width>542</width>
|
||||
<height>649</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Image properties</string>
|
||||
<string>Text properties</string>
|
||||
</property>
|
||||
<property name="modal" >
|
||||
<bool>false</bool>
|
||||
@@ -32,9 +32,15 @@
|
||||
<property name="lineWidth" >
|
||||
<number>3</number>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3" >
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2" >
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" >
|
||||
<property name="sizeConstraint" >
|
||||
<enum>QLayout::SetMaximumSize</enum>
|
||||
</property>
|
||||
<property name="bottomMargin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout" >
|
||||
<item row="0" column="0" >
|
||||
@@ -80,105 +86,33 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout_2" >
|
||||
<layout class="QFormLayout" name="formLayout_3" >
|
||||
<property name="fieldGrowthPolicy" >
|
||||
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||
</property>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="label_3" >
|
||||
<widget class="QLabel" name="label_5" >
|
||||
<property name="text" >
|
||||
<string>Width:</string>
|
||||
<string>Image:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QDoubleSpinBox" name="spinWidth" >
|
||||
<property name="minimum" >
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum" >
|
||||
<double>70.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="label_4" >
|
||||
<property name="text" >
|
||||
<string>Height:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QDoubleSpinBox" name="spinHeight" >
|
||||
<property name="minimum" >
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum" >
|
||||
<double>70.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2" >
|
||||
<item>
|
||||
<widget class="QCheckBox" name="lockedRatio" >
|
||||
<property name="text" >
|
||||
<string>Locked ratio</string>
|
||||
</property>
|
||||
<property name="checked" >
|
||||
<widget class="QLineEdit" name="lineEdit" >
|
||||
<property name="readOnly" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnSizeReset" >
|
||||
<item row="1" column="1" >
|
||||
<widget class="QPushButton" name="btnImage" >
|
||||
<property name="text" >
|
||||
<string>Reset size</string>
|
||||
<string>Load image...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<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>Image:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QLineEdit" name="lineEdit" >
|
||||
<property name="readOnly" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QPushButton" name="btnImage" >
|
||||
<property name="text" >
|
||||
<string>Load image...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
||||
@@ -1,23 +1,3 @@
|
||||
/* qlscribe - Qt based application to print lightScribe discs
|
||||
|
||||
Copyright (C) 2009 Vyacheslav Kononenko <vyacheslav@kononenko.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
$Id$ */
|
||||
|
||||
#include "qdialogprint.h"
|
||||
#include "ui_qdialogprint.h"
|
||||
|
||||
|
||||
@@ -1,23 +1,3 @@
|
||||
/* qlscribe - Qt based application to print lightScribe discs
|
||||
|
||||
Copyright (C) 2009 Vyacheslav Kononenko <vyacheslav@kononenko.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
$Id$ */
|
||||
|
||||
#ifndef QDIALOGPRINT_H
|
||||
#define QDIALOGPRINT_H
|
||||
|
||||
|
||||
+2
-47
@@ -1,51 +1,21 @@
|
||||
/* qlscribe - Qt based application to print lightScribe discs
|
||||
|
||||
Copyright (C) 2009 Vyacheslav Kononenko <vyacheslav@kononenko.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
$Id$ */
|
||||
|
||||
#include "qdialogprogress.h"
|
||||
#include "ui_qdialogprogress.h"
|
||||
#include "qlightscribe.h"
|
||||
#include "qdialogprint.h"
|
||||
#include "qcdscene.h"
|
||||
|
||||
#include <QMessageBox>
|
||||
#include <QAbstractButton>
|
||||
#include <QTime>
|
||||
#include <QTimer>
|
||||
|
||||
QDialogProgress::QDialogProgress(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
m_ui(new Ui::QDialogProgress),
|
||||
m_start( new QTime ),
|
||||
m_timer( new QTimer( this ) )
|
||||
m_ui(new Ui::QDialogProgress)
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
m_start->start();
|
||||
connect( m_timer, SIGNAL(timeout()), this, SLOT(onTimeout()) );
|
||||
m_timer->start( 500 );
|
||||
}
|
||||
|
||||
QDialogProgress::~QDialogProgress()
|
||||
{
|
||||
delete m_start;
|
||||
delete m_timer;
|
||||
delete m_ui;
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void QDialogProgress::changeEvent(QEvent *e)
|
||||
@@ -68,7 +38,6 @@ bool QDialogProgress::exec( QWidget *parent, QCDScene *scene )
|
||||
|
||||
QLightScribe *scribe = QLightScribe::instance();
|
||||
QDialogProgress dialog( parent );
|
||||
dialog.setWindowTitle( tr( "Printing: " ) + scene->name() );
|
||||
|
||||
connect( dialog.m_ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), &dialog, SLOT(onButtonClicked(QAbstractButton*)) );
|
||||
connect( scribe, SIGNAL(prepareProgress(long,long)), &dialog, SLOT(onPrepareProgress(long,long)) );
|
||||
@@ -106,28 +75,14 @@ void QDialogProgress::onLabelProgress( long current, long final )
|
||||
{
|
||||
m_ui->progressPrinting->setMaximum( final );
|
||||
m_ui->progressPrinting->setValue( current );
|
||||
|
||||
if( current && double( current ) / final > 0.1 ) {
|
||||
int elapsed = m_start->elapsed();
|
||||
int estimate = double( elapsed ) / current * final;
|
||||
m_ui->timeEstimated->setTime( QTime().addMSecs( estimate ) );
|
||||
}
|
||||
}
|
||||
|
||||
void QDialogProgress::onTimeEstimate( long time )
|
||||
{
|
||||
m_ui->timeEstimated->setTime( QTime().addSecs( time ) );
|
||||
}
|
||||
|
||||
void QDialogProgress::onFinished(int status )
|
||||
{
|
||||
m_timer->stop();
|
||||
m_ui->progressPrinting->setValue( m_ui->progressPrinting->maximum() );
|
||||
m_ui->lineResult->setText( status ? tr( "Failed - error code: 0x" ) + QString::number( status, 16 ) : tr( "Success" ) );
|
||||
m_ui->buttonBox->setStandardButtons( QDialogButtonBox::Close );
|
||||
}
|
||||
|
||||
void QDialogProgress::onTimeout()
|
||||
{
|
||||
m_ui->timeElapsed->setTime( QTime().addMSecs( m_start->elapsed() ) );
|
||||
}
|
||||
|
||||
@@ -1,23 +1,3 @@
|
||||
/* qlscribe - Qt based application to print lightScribe discs
|
||||
|
||||
Copyright (C) 2009 Vyacheslav Kononenko <vyacheslav@kononenko.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
$Id$ */
|
||||
|
||||
#ifndef QDIALOGPROGRESS_H
|
||||
#define QDIALOGPROGRESS_H
|
||||
|
||||
@@ -29,8 +9,6 @@ namespace Ui {
|
||||
|
||||
class QCDScene;
|
||||
class QAbstractButton;
|
||||
class QTime;
|
||||
class QTimer;
|
||||
|
||||
class QDialogProgress : public QDialog {
|
||||
Q_OBJECT
|
||||
@@ -44,7 +22,6 @@ protected slots:
|
||||
void onLabelProgress( long current, long final );
|
||||
void onTimeEstimate( long time );
|
||||
void onFinished(int status );
|
||||
void onTimeout();
|
||||
|
||||
protected:
|
||||
virtual void changeEvent(QEvent *e);
|
||||
@@ -54,8 +31,6 @@ private:
|
||||
virtual ~QDialogProgress();
|
||||
|
||||
Ui::QDialogProgress *m_ui;
|
||||
QTime *m_start;
|
||||
QTimer *m_timer;
|
||||
};
|
||||
|
||||
#endif // QDIALOGPROGRESS_H
|
||||
|
||||
+1
-10
@@ -10,7 +10,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Print progress</string>
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2" >
|
||||
<item>
|
||||
@@ -85,9 +85,6 @@
|
||||
<property name="displayFormat" >
|
||||
<string>hh:mm:ss</string>
|
||||
</property>
|
||||
<property name="currentSectionIndex" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
@@ -175,12 +172,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>buttonBox</tabstop>
|
||||
<tabstop>lineResult</tabstop>
|
||||
<tabstop>timeEstimated</tabstop>
|
||||
<tabstop>timeElapsed</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -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:$ */
|
||||
|
||||
#include "qgraphicsroundtextitem.h"
|
||||
#include "qdialogroundtext.h"
|
||||
@@ -287,11 +287,6 @@ void QShapeControllerRoundText::readData( const QString &element,
|
||||
return;
|
||||
}
|
||||
|
||||
if( element == "angle" ) {
|
||||
textItem->setAngle( data.toDouble() );
|
||||
return;
|
||||
}
|
||||
|
||||
if( element == "alignment" ) {
|
||||
textItem->setAlignment( Qt::Alignment( data.toInt() ) );
|
||||
return;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
TEMPLATE = app
|
||||
LANGUAGE = C++
|
||||
CONFIG += qt
|
||||
INCLUDEPATH += ../build/src
|
||||
QMAKE_CXXFLAGS += -m32
|
||||
QMAKE_LFLAGS += -m32
|
||||
QMAKE_LIBDIR = /usr/lib32
|
||||
|
||||
@@ -105,11 +105,7 @@ QString QShapeControllerPixmap::menuName() const
|
||||
|
||||
QGraphicsItem *QShapeControllerPixmap::create() const
|
||||
{
|
||||
QGraphicsPixmapItem *item = new QGraphicsPixmapItem;
|
||||
item->setShapeMode( QGraphicsPixmapItem::BoundingRectShape );
|
||||
item->setTransformationMode( Qt::SmoothTransformation );
|
||||
|
||||
return item;
|
||||
return new QGraphicsPixmapItem;
|
||||
}
|
||||
|
||||
QItemDialog *QShapeControllerPixmap::createDialog( QWidget *parent ) const
|
||||
@@ -125,16 +121,10 @@ void QShapeControllerPixmap::writeData( QXmlStreamWriter &writer, const QGraphic
|
||||
writer.writeEmptyElement( "pos" );
|
||||
writer.writeAttribute(
|
||||
QXmlStreamAttribute( "x", QString::number( pixmapItem->pos().x() ) ) );
|
||||
|
||||
writer.writeAttribute(
|
||||
QXmlStreamAttribute( "y", QString::number( pixmapItem->pos().y() ) ) );
|
||||
|
||||
QPointF scale = pixmapItem->transform().map( QPointF( 1.0, 1.0 ) );
|
||||
writer.writeEmptyElement( "scale" );
|
||||
writer.writeAttribute(
|
||||
QXmlStreamAttribute( "sx", QString::number( scale.x() ) ) );
|
||||
writer.writeAttribute(
|
||||
QXmlStreamAttribute( "sy", QString::number( scale.y() ) ) );
|
||||
|
||||
writer.writeTextElement( "image", pixmapItem->data( 0 ).toString() );
|
||||
}
|
||||
|
||||
@@ -152,11 +142,6 @@ void QShapeControllerPixmap::readData( const QString &element,
|
||||
return;
|
||||
}
|
||||
|
||||
if( element == "scale" ) {
|
||||
pixmapItem->setTransform( QTransform().scale( attrs.value( "sx" ).toString().toDouble(),
|
||||
attrs.value( "sy" ).toString().toDouble() ) );
|
||||
}
|
||||
|
||||
if( element == "image" ) {
|
||||
pixmapItem->setData( 0, data );
|
||||
QPixmap pixmap( data );
|
||||
|
||||
@@ -16,10 +16,9 @@
|
||||
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:$ */
|
||||
|
||||
#include "qshapefactory.h"
|
||||
#include "qcdscene.h"
|
||||
|
||||
#include <QGraphicsItem>
|
||||
#include <QMessageBox>
|
||||
@@ -44,10 +43,6 @@ bool QShapeController::edit( QGraphicsItem *item, QWidget *parent ) const
|
||||
throw;
|
||||
}
|
||||
delete dialog;
|
||||
|
||||
if( rez && item->scene() )
|
||||
static_cast< QCDScene * >( item->scene() )->setChanged();
|
||||
|
||||
return rez;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user