MainWindow tracks model status.
This commit is contained in:
@@ -65,6 +65,16 @@ namespace glabels
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Clear modified status
|
||||||
|
///
|
||||||
|
void LabelModel::clearModified()
|
||||||
|
{
|
||||||
|
mModified = false;
|
||||||
|
emit modifiedChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Add object.
|
/// Add object.
|
||||||
///
|
///
|
||||||
@@ -80,6 +90,7 @@ namespace glabels
|
|||||||
|
|
||||||
emit objectAdded( object );
|
emit objectAdded( object );
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -92,6 +103,7 @@ namespace glabels
|
|||||||
|
|
||||||
emit objectChanged( qobject_cast<LabelModelObject*>(sender()) );
|
emit objectChanged( qobject_cast<LabelModelObject*>(sender()) );
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -104,6 +116,7 @@ namespace glabels
|
|||||||
|
|
||||||
emit objectMoved( qobject_cast<LabelModelObject*>(sender()) );
|
emit objectMoved( qobject_cast<LabelModelObject*>(sender()) );
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -121,6 +134,7 @@ namespace glabels
|
|||||||
|
|
||||||
emit objectDeleted( object );
|
emit objectDeleted( object );
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -361,6 +375,7 @@ namespace glabels
|
|||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
emit selectionChanged();
|
emit selectionChanged();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -386,6 +401,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -411,6 +427,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -430,6 +447,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -467,6 +485,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -486,6 +505,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -520,6 +540,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -554,6 +575,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -605,6 +627,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -639,6 +662,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -673,6 +697,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -724,6 +749,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -748,6 +774,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -772,6 +799,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -791,6 +819,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -810,6 +839,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -829,6 +859,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -848,6 +879,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -867,6 +899,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -886,6 +919,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -905,6 +939,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -924,6 +959,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -943,6 +979,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -962,6 +999,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -981,6 +1019,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1000,6 +1039,7 @@ namespace glabels
|
|||||||
mModified = true;
|
mModified = true;
|
||||||
|
|
||||||
emit changed();
|
emit changed();
|
||||||
|
emit modifiedChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ namespace glabels
|
|||||||
void nameChanged();
|
void nameChanged();
|
||||||
void sizeChanged();
|
void sizeChanged();
|
||||||
void selectionChanged();
|
void selectionChanged();
|
||||||
|
void modifiedChanged();
|
||||||
void objectChanged( LabelModelObject* object );
|
void objectChanged( LabelModelObject* object );
|
||||||
void objectMoved( LabelModelObject* object );
|
void objectMoved( LabelModelObject* object );
|
||||||
void objectAdded( LabelModelObject* object );
|
void objectAdded( LabelModelObject* object );
|
||||||
@@ -74,7 +75,7 @@ namespace glabels
|
|||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
public:
|
public:
|
||||||
inline bool isModified() const;
|
inline bool isModified() const;
|
||||||
inline void clearModified();
|
void clearModified();
|
||||||
|
|
||||||
QString shortName();
|
QString shortName();
|
||||||
inline const QString& filename() const;
|
inline const QString& filename() const;
|
||||||
@@ -205,12 +206,6 @@ namespace glabels
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline void LabelModel::clearModified()
|
|
||||||
{
|
|
||||||
mModified = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
inline const QString& LabelModel::filename() const
|
inline const QString& LabelModel::filename() const
|
||||||
{
|
{
|
||||||
return mFilename;
|
return mFilename;
|
||||||
|
|||||||
+81
-12
@@ -65,6 +65,7 @@ namespace glabels
|
|||||||
|
|
||||||
setDocVerbsEnabled( false );
|
setDocVerbsEnabled( false );
|
||||||
setPasteVerbsEnabled( false );
|
setPasteVerbsEnabled( false );
|
||||||
|
setTitle();
|
||||||
|
|
||||||
readSettings();
|
readSettings();
|
||||||
|
|
||||||
@@ -99,6 +100,12 @@ namespace glabels
|
|||||||
mView->setModel( mModel );
|
mView->setModel( mModel );
|
||||||
|
|
||||||
setDocVerbsEnabled( true );
|
setDocVerbsEnabled( true );
|
||||||
|
setTitle();
|
||||||
|
|
||||||
|
connect( mModel, SIGNAL(nameChanged()), this, SLOT(onNameChanged()) );
|
||||||
|
connect( mModel, SIGNAL(modifiedChanged()), this, SLOT(onModifiedChanged()) );
|
||||||
|
connect( mModel, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged()) );
|
||||||
|
connect( mModel, SIGNAL(changed()), this, SLOT(onLabelChanged()) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -563,12 +570,13 @@ namespace glabels
|
|||||||
statusBar()->addWidget( zoomInfoLabel );
|
statusBar()->addWidget( zoomInfoLabel );
|
||||||
statusBar()->addWidget( cursorInfoLabel, 1 );
|
statusBar()->addWidget( cursorInfoLabel, 1 );
|
||||||
|
|
||||||
updateZoomInfo();
|
onZoomChanged();
|
||||||
updateCursorInfo();
|
onPointerExit();
|
||||||
|
|
||||||
connect( mView, SIGNAL(zoomChanged()), this, SLOT(updateZoomInfo()) );
|
connect( mView, SIGNAL(zoomChanged()), this, SLOT(onZoomChanged()) );
|
||||||
connect( mView, SIGNAL(pointerMoved(double, double)), this, SLOT(updateCursorInfo(double, double)) );
|
connect( mView, SIGNAL(pointerMoved(double, double)),
|
||||||
connect( mView, SIGNAL(pointerExited()), this, SLOT(updateCursorInfo()) );
|
this, SLOT(onPointerMoved(double, double)) );
|
||||||
|
connect( mView, SIGNAL(pointerExited()), this, SLOT(onPointerExit()) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -682,6 +690,30 @@ namespace glabels
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Set window title
|
||||||
|
///
|
||||||
|
void MainWindow::setTitle()
|
||||||
|
{
|
||||||
|
if ( mModel == 0 )
|
||||||
|
{
|
||||||
|
setWindowTitle( "gLabels" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( mModel->isModified() )
|
||||||
|
{
|
||||||
|
setWindowTitle( mModel->shortName() + " " + tr("(modified)")
|
||||||
|
+ " - gLabels" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setWindowTitle( mModel->shortName() + " - gLabels" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Read MainWindow Settings
|
/// Read MainWindow Settings
|
||||||
///
|
///
|
||||||
@@ -1201,9 +1233,9 @@ namespace glabels
|
|||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Update Zoom Information in Status Bar
|
/// Zoom changed: update Zoom Information in Status Bar
|
||||||
///
|
///
|
||||||
void MainWindow::updateZoomInfo()
|
void MainWindow::onZoomChanged()
|
||||||
{
|
{
|
||||||
zoomInfoLabel->setText( QString( " %1% " ).arg(100*mView->zoom(), 0, 'f', 0) );
|
zoomInfoLabel->setText( QString( " %1% " ).arg(100*mView->zoom(), 0, 'f', 0) );
|
||||||
|
|
||||||
@@ -1213,9 +1245,9 @@ namespace glabels
|
|||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Update Cursor Information in Status Bar
|
/// Pointer moved: update Cursor Information in Status Bar
|
||||||
///
|
///
|
||||||
void MainWindow::updateCursorInfo( double x, double y )
|
void MainWindow::onPointerMoved( double x, double y )
|
||||||
{
|
{
|
||||||
/* TODO: convert x,y to locale units and set precision accordingly. */
|
/* TODO: convert x,y to locale units and set precision accordingly. */
|
||||||
cursorInfoLabel->setText( QString( "%1, %2" ).arg(x).arg(y) );
|
cursorInfoLabel->setText( QString( "%1, %2" ).arg(x).arg(y) );
|
||||||
@@ -1223,14 +1255,51 @@ namespace glabels
|
|||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Update Zoom Information in Status Bar (Clears information)
|
/// Pointer exited view: update Zoom Information in Status Bar (Clears information)
|
||||||
/// E.g. when pointer exits view.
|
|
||||||
///
|
///
|
||||||
void MainWindow::updateCursorInfo()
|
void MainWindow::onPointerExit()
|
||||||
{
|
{
|
||||||
cursorInfoLabel->setText( "" );
|
cursorInfoLabel->setText( "" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Name changed handler
|
||||||
|
///
|
||||||
|
void MainWindow::onNameChanged()
|
||||||
|
{
|
||||||
|
setTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Modified changed handler
|
||||||
|
///
|
||||||
|
void MainWindow::onModifiedChanged()
|
||||||
|
{
|
||||||
|
setTitle();
|
||||||
|
setDocModifiedVerbsEnabled( mModel->isModified() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Selection changed handler
|
||||||
|
///
|
||||||
|
void MainWindow::onSelectionChanged()
|
||||||
|
{
|
||||||
|
setSelectionVerbsEnabled( !mModel->isSelectionEmpty() );
|
||||||
|
setMultiSelectionVerbsEnabled( !mModel->isSelectionAtomic() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Label changed handler
|
||||||
|
///
|
||||||
|
void MainWindow::onLabelChanged()
|
||||||
|
{
|
||||||
|
/* @TODO: update undo/redo verbs. */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-3
@@ -133,9 +133,14 @@ namespace glabels
|
|||||||
void helpContents();
|
void helpContents();
|
||||||
void helpAbout();
|
void helpAbout();
|
||||||
|
|
||||||
void updateZoomInfo();
|
void onZoomChanged();
|
||||||
void updateCursorInfo();
|
void onPointerMoved( double, double );
|
||||||
void updateCursorInfo( double, double );
|
void onPointerExit();
|
||||||
|
|
||||||
|
void onNameChanged();
|
||||||
|
void onModifiedChanged();
|
||||||
|
void onSelectionChanged();
|
||||||
|
void onLabelChanged();
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
@@ -153,6 +158,8 @@ namespace glabels
|
|||||||
void setSelectionVerbsEnabled( bool );
|
void setSelectionVerbsEnabled( bool );
|
||||||
void setMultiSelectionVerbsEnabled( bool );
|
void setMultiSelectionVerbsEnabled( bool );
|
||||||
|
|
||||||
|
void setTitle();
|
||||||
|
|
||||||
void readSettings();
|
void readSettings();
|
||||||
void writeSettings();
|
void writeSettings();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user