Skip to content

Commit 7817ef4

Browse files
committed
ENH: Add NOTIFY signals for Q_PROPERTIES
Emit change signals and add NOTIFY specifiers to Q_PROPERTIES for enhanced reactivity and conformance with modern Qt practices. Recommended changes to address the warning were performed. ```txt warning: Q_PROPERTY should have either NOTIFY or CONSTANT [-Wclazy-qproperty-without-notify] ``` Introduced `CTK_SET_CPP_EMIT` macro for setter functionality with signal emission.
1 parent 9d9acc1 commit 7817ef4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+682
-240
lines changed

Libs/Core/ctkAbstractJob.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ QString ctkAbstractJob::jobUID() const
6666
void ctkAbstractJob::setJobUID(const QString &jobUID)
6767
{
6868
this->JobUID = jobUID;
69+
emit this->jobUIDChanged();
6970
}
7071

7172
//----------------------------------------------------------------------------
@@ -108,6 +109,7 @@ void ctkAbstractJob::setStatus(JobStatus status)
108109
{
109110
emit this->finished();
110111
}
112+
emit this->statusChanged(status);
111113
}
112114

113115
//----------------------------------------------------------------------------
@@ -120,6 +122,7 @@ bool ctkAbstractJob::isPersistent() const
120122
void ctkAbstractJob::setIsPersistent(bool persistent)
121123
{
122124
this->Persistent = persistent;
125+
emit isPersistentChanged(persistent);
123126
}
124127

125128
//----------------------------------------------------------------------------
@@ -132,6 +135,7 @@ int ctkAbstractJob::retryCounter() const
132135
void ctkAbstractJob::setRetryCounter(int retryCounter)
133136
{
134137
this->RetryCounter = retryCounter;
138+
emit this->retryCounterChanged(retryCounter);
135139
}
136140

137141
//----------------------------------------------------------------------------
@@ -144,6 +148,7 @@ int ctkAbstractJob::maximumConcurrentJobsPerType() const
144148
void ctkAbstractJob::setMaximumConcurrentJobsPerType(int maximumConcurrentJobsPerType)
145149
{
146150
this->MaximumConcurrentJobsPerType = maximumConcurrentJobsPerType;
151+
emit this->maximumConcurrentJobsPerTypeChanged(maximumConcurrentJobsPerType);
147152
}
148153

149154
//----------------------------------------------------------------------------
@@ -156,6 +161,7 @@ int ctkAbstractJob::maximumNumberOfRetry() const
156161
void ctkAbstractJob::setMaximumNumberOfRetry(int maximumNumberOfRetry)
157162
{
158163
this->MaximumNumberOfRetry = maximumNumberOfRetry;
164+
emit this->maximumNumberOfRetryChanged(maximumNumberOfRetry);
159165
}
160166

161167
//----------------------------------------------------------------------------
@@ -168,6 +174,7 @@ int ctkAbstractJob::retryDelay() const
168174
void ctkAbstractJob::setRetryDelay(int retryDelay)
169175
{
170176
this->RetryDelay = retryDelay;
177+
emit this->retryDelayChanged(retryDelay);
171178
}
172179

173180
//----------------------------------------------------------------------------
@@ -180,6 +187,7 @@ QThread::Priority ctkAbstractJob::priority() const
180187
void ctkAbstractJob::setPriority(const QThread::Priority &priority)
181188
{
182189
this->Priority = priority;
190+
emit this->priorityChanged(priority);
183191
}
184192

185193
//----------------------------------------------------------------------------
@@ -210,6 +218,7 @@ QString ctkAbstractJob::runningThreadID() const
210218
void ctkAbstractJob::setRunningThreadID(QString runningThreadID)
211219
{
212220
this->RunningThreadID = runningThreadID;
221+
emit this->runningThreadIDChanged(runningThreadID);
213222
}
214223

215224
//----------------------------------------------------------------------------
@@ -234,6 +243,7 @@ bool ctkAbstractJob::destroyAfterUse() const
234243
void ctkAbstractJob::setDestroyAfterUse(bool destroyAfterUse)
235244
{
236245
this->DestroyAfterUse = destroyAfterUse;
246+
emit this->destroyAfterUseChanged(destroyAfterUse);
237247
}
238248

239249
//----------------------------------------------------------------------------

Libs/Core/ctkAbstractJob.h

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,21 +41,22 @@ class ctkAbstractWorker;
4141
class CTK_CORE_EXPORT ctkAbstractJob : public QObject
4242
{
4343
Q_OBJECT
44-
Q_PROPERTY(QString jobUID READ jobUID WRITE setJobUID);
44+
Q_PROPERTY(QString jobUID READ jobUID WRITE setJobUID NOTIFY jobUIDChanged);
4545
Q_PROPERTY(QString className READ className CONSTANT);
46-
Q_PROPERTY(JobStatus status READ status WRITE setStatus);
47-
Q_PROPERTY(bool persistent READ isPersistent WRITE setIsPersistent);
48-
Q_PROPERTY(bool retryCounter READ retryCounter WRITE setRetryCounter);
49-
Q_PROPERTY(int maximumNumberOfRetry READ maximumNumberOfRetry WRITE setMaximumNumberOfRetry);
50-
Q_PROPERTY(int retryDelay READ retryDelay WRITE setRetryDelay);
51-
Q_PROPERTY(bool maximumConcurrentJobsPerType READ maximumConcurrentJobsPerType WRITE setMaximumConcurrentJobsPerType);
52-
Q_PROPERTY(QThread::Priority priority READ priority WRITE setPriority);
46+
Q_PROPERTY(JobStatus status READ status WRITE setStatus NOTIFY statusChanged);
47+
Q_PROPERTY(bool persistent READ isPersistent WRITE setIsPersistent NOTIFY isPersistentChanged);
48+
Q_PROPERTY(bool retryCounter READ retryCounter WRITE setRetryCounter NOTIFY retryCounterChanged);
49+
Q_PROPERTY(int maximumNumberOfRetry READ maximumNumberOfRetry WRITE setMaximumNumberOfRetry NOTIFY maximumNumberOfRetryChanged);
50+
51+
Q_PROPERTY(int retryDelay READ retryDelay WRITE setRetryDelay NOTIFY retryDelayChanged);
52+
Q_PROPERTY(bool maximumConcurrentJobsPerType READ maximumConcurrentJobsPerType WRITE setMaximumConcurrentJobsPerType NOTIFY maximumConcurrentJobsPerTypeChanged);
53+
Q_PROPERTY(QThread::Priority priority READ priority WRITE setPriority NOTIFY priorityChanged);
5354
Q_PROPERTY(QDateTime creationDateTime READ creationDateTime CONSTANT);
5455
Q_PROPERTY(QDateTime startDateTime READ startDateTime CONSTANT);
5556
Q_PROPERTY(QDateTime completionDateTime READ completionDateTime CONSTANT);
56-
Q_PROPERTY(QString runningThreadID READ runningThreadID WRITE setRunningThreadID);
57+
Q_PROPERTY(QString runningThreadID READ runningThreadID WRITE setRunningThreadID NOTIFY runningThreadIDChanged);
5758
Q_PROPERTY(QString log READ log CONSTANT);
58-
Q_PROPERTY(bool destroyAfterUse READ destroyAfterUse WRITE setDestroyAfterUse);
59+
Q_PROPERTY(bool destroyAfterUse READ destroyAfterUse WRITE setDestroyAfterUse NOTIFY destroyAfterUseChanged);
5960

6061
public:
6162
explicit ctkAbstractJob();
@@ -194,6 +195,16 @@ class CTK_CORE_EXPORT ctkAbstractJob : public QObject
194195
void attemptFailed();
195196
void failed();
196197
void finished();
198+
void jobUIDChanged();
199+
void statusChanged(ctkAbstractJob::JobStatus status);
200+
void isPersistentChanged(bool persistent);
201+
void retryCounterChanged(bool retryCounter);
202+
void maximumConcurrentJobsPerTypeChanged(bool maximumConcurrentJobsPerType);
203+
void maximumNumberOfRetryChanged(int maximumNumberOfRetry);
204+
void retryDelayChanged(int retryDelay);
205+
void priorityChanged(QThread::Priority priority);
206+
void runningThreadIDChanged(QString runningThreadID);
207+
void destroyAfterUseChanged(bool destroyAfterUse);
197208

198209
protected:
199210
QString JobUID;

Libs/Core/ctkBooleanMapper.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ void ctkBooleanMapper::setTrueValue(const QVariant& trueValue)
101101
}
102102
d->TrueValue = trueValue;
103103
this->emitValueAsChanged();
104+
emit trueValueChanged(trueValue);
104105
}
105106

106107
// --------------------------------------------------------------------------
@@ -113,6 +114,7 @@ void ctkBooleanMapper::setFalseValue(const QVariant& falseValue)
113114
}
114115
d->FalseValue = falseValue;
115116
this->emitValueAsChanged();
117+
emit falseValueChanged(falseValue);
116118
}
117119

118120
// --------------------------------------------------------------------------
@@ -145,26 +147,30 @@ QString ctkBooleanMapper::valueAsString()const
145147
void ctkBooleanMapper::setValue(bool value)
146148
{
147149
this->targetObject()->setProperty(this->propertyName(), QVariant(value));
150+
emit complementChanged(value);
148151
}
149152

150153
// --------------------------------------------------------------------------
151154
void ctkBooleanMapper::setComplement(bool value)
152155
{
153156
this->setValue(!value);
157+
emit complementChanged(value);
154158
}
155159

156160
// --------------------------------------------------------------------------
157161
void ctkBooleanMapper::setValueAsInt(int intValue)
158162
{
159163
Q_D(ctkBooleanMapper);
160164
this->setValue( QVariant(intValue) == d->TrueValue);
165+
emit valueAsIntChanged(intValue);
161166
}
162167

163168
// --------------------------------------------------------------------------
164169
void ctkBooleanMapper::setValueAsString(const QString& stringValue)
165170
{
166171
Q_D(ctkBooleanMapper);
167172
this->setValue( QVariant(stringValue) == d->TrueValue );
173+
emit valueAsStringChanged(stringValue);
168174
}
169175

170176
// --------------------------------------------------------------------------

Libs/Core/ctkBooleanMapper.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ class CTK_CORE_EXPORT ctkBooleanMapper : public QObject
6666
Q_PROPERTY(QString valueAsString READ valueAsString WRITE setValueAsString NOTIFY valueAsStringChanged STORED false )
6767

6868
/// 1 by default
69-
Q_PROPERTY(QVariant trueValue READ trueValue WRITE setTrueValue )
69+
Q_PROPERTY(QVariant trueValue READ trueValue WRITE setTrueValue NOTIFY trueValueChanged)
7070

7171
/// 0 by default
72-
Q_PROPERTY(QVariant falseValue READ falseValue WRITE setFalseValue )
72+
Q_PROPERTY(QVariant falseValue READ falseValue WRITE setFalseValue NOTIFY falseValueChanged)
7373
public:
7474
/// Map the property \a property of the object.
7575
/// The mapper becomes a child of \a object and will be destructed when
@@ -109,6 +109,9 @@ public Q_SLOTS:
109109
void valueAsIntChanged(int value);
110110
void valueAsStringChanged(const QString& value);
111111

112+
void trueValueChanged(const QVariant& value);
113+
void falseValueChanged(const QVariant& value);
114+
112115
protected Q_SLOTS:
113116
void emitValueChanged();
114117
void emitValueAsChanged();

Libs/Core/ctkErrorLogAbstractModel.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ void ctkErrorLogAbstractModel::setTerminalOutputs(
269269
Q_D(ctkErrorLogAbstractModel);
270270
d->StdErrTerminalOutput.setEnabled(terminalOutput & ctkErrorLogTerminalOutput::StandardOutput);
271271
d->StdOutTerminalOutput.setEnabled(terminalOutput & ctkErrorLogTerminalOutput::StandardError);
272+
emit this->terminalOutputsChanged(terminalOutput);
272273
}
273274

274275
//------------------------------------------------------------------------------
@@ -459,6 +460,7 @@ void ctkErrorLogAbstractModel::setLogEntryGrouping(bool value)
459460
{
460461
Q_D(ctkErrorLogAbstractModel);
461462
d->LogEntryGrouping = value;
463+
emit this->logEntryGroupingChanged(value);
462464
}
463465

464466
//------------------------------------------------------------------------------
@@ -493,6 +495,7 @@ void ctkErrorLogAbstractModel::setAsynchronousLogging(bool value)
493495
value ? Qt::QueuedConnection : Qt::BlockingQueuedConnection);
494496

495497
d->AsynchronousLogging = value;
498+
emit this->asynchronousLoggingChanged(value);
496499
}
497500

498501
// --------------------------------------------------------------------------
@@ -507,6 +510,7 @@ void ctkErrorLogAbstractModel::setFilePath(const QString& filePath)
507510
{
508511
Q_D(ctkErrorLogAbstractModel);
509512
return d->FileLogger.setFilePath(filePath);
513+
emit this->filePathChanged(filePath);
510514
}
511515

512516
// --------------------------------------------------------------------------
@@ -520,7 +524,8 @@ int ctkErrorLogAbstractModel::numberOfFilesToKeep()const
520524
void ctkErrorLogAbstractModel::setNumberOfFilesToKeep(int value)
521525
{
522526
Q_D(ctkErrorLogAbstractModel);
523-
return d->FileLogger.setNumberOfFilesToKeep(value);
527+
d->FileLogger.setNumberOfFilesToKeep(value);
528+
emit this->numberOfFilesToKeepChanged(value);
524529
}
525530

526531
// --------------------------------------------------------------------------
@@ -535,6 +540,7 @@ void ctkErrorLogAbstractModel::setFileLoggingEnabled(bool value)
535540
{
536541
Q_D(ctkErrorLogAbstractModel);
537542
d->FileLogger.setEnabled(value);
543+
emit this->fileLoggingEnabledChanged(value);
538544
}
539545

540546
// --------------------------------------------------------------------------
@@ -549,6 +555,7 @@ void ctkErrorLogAbstractModel::setFileLoggingPattern(const QString& value)
549555
{
550556
Q_D(ctkErrorLogAbstractModel);
551557
d->FileLoggingPattern = value;
558+
emit this->fileLoggingPatternChanged(value);
552559
}
553560

554561
// --------------------------------------------------------------------------

Libs/Core/ctkErrorLogAbstractModel.h

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ struct ctkErrorLogContext;
4040
class CTK_CORE_EXPORT ctkErrorLogAbstractModel : public QSortFilterProxyModel
4141
{
4242
Q_OBJECT
43-
Q_PROPERTY(bool logEntryGrouping READ logEntryGrouping WRITE setLogEntryGrouping)
44-
Q_PROPERTY(ctkErrorLogTerminalOutput::TerminalOutputs terminalOutputs READ terminalOutputs WRITE setTerminalOutputs)
45-
Q_PROPERTY(bool asynchronousLogging READ asynchronousLogging WRITE setAsynchronousLogging)
46-
Q_PROPERTY(QString filePath READ filePath WRITE setFilePath)
47-
Q_PROPERTY(int numberOfFilesToKeep READ numberOfFilesToKeep WRITE setNumberOfFilesToKeep)
48-
Q_PROPERTY(bool fileLoggingEnabled READ fileLoggingEnabled WRITE setFileLoggingEnabled)
49-
Q_PROPERTY(QString fileLoggingPattern READ fileLoggingPattern WRITE setFileLoggingPattern)
43+
Q_PROPERTY(bool logEntryGrouping READ logEntryGrouping WRITE setLogEntryGrouping NOTIFY logEntryGroupingChanged)
44+
Q_PROPERTY(ctkErrorLogTerminalOutput::TerminalOutputs terminalOutputs READ terminalOutputs WRITE setTerminalOutputs NOTIFY terminalOutputsChanged)
45+
Q_PROPERTY(bool asynchronousLogging READ asynchronousLogging WRITE setAsynchronousLogging NOTIFY asynchronousLoggingChanged)
46+
Q_PROPERTY(QString filePath READ filePath WRITE setFilePath NOTIFY filePathChanged)
47+
Q_PROPERTY(int numberOfFilesToKeep READ numberOfFilesToKeep WRITE setNumberOfFilesToKeep NOTIFY numberOfFilesToKeepChanged)
48+
Q_PROPERTY(bool fileLoggingEnabled READ fileLoggingEnabled WRITE setFileLoggingEnabled NOTIFY fileLoggingEnabledChanged)
49+
Q_PROPERTY(QString fileLoggingPattern READ fileLoggingPattern WRITE setFileLoggingPattern NOTIFY fileLoggingPatternChanged)
5050
Q_PROPERTY(QStringList msgHandlerNames READ msgHandlerNames CONSTANT)
5151

5252
public:
@@ -177,6 +177,14 @@ public Q_SLOTS:
177177
ctkErrorLogLevel::LogLevel logLevel,
178178
const QString& origin, const ctkErrorLogContext& context, const QString& text);
179179

180+
void logEntryGroupingChanged(bool);
181+
void terminalOutputsChanged(ctkErrorLogTerminalOutput::TerminalOutputs);
182+
void asynchronousLoggingChanged(bool);
183+
void filePathChanged(const QString& filePath);
184+
void numberOfFilesToKeepChanged(int);
185+
void fileLoggingEnabledChanged(bool);
186+
void fileLoggingPatternChanged(const QString& fileLoggingPattern);
187+
180188
protected:
181189
QScopedPointer<ctkErrorLogAbstractModelPrivate> d_ptr;
182190

Libs/Core/ctkJobScheduler.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,11 +409,11 @@ ctkJobScheduler::~ctkJobScheduler()
409409
}
410410

411411
//------------------------------------------------------------------------------
412-
CTK_SET_CPP(ctkJobScheduler, const bool&, setFreezeJobsScheduling, FreezeJobsScheduling);
412+
CTK_SET_CPP_EMIT(ctkJobScheduler, const bool&, setFreezeJobsScheduling, FreezeJobsScheduling, ctkJobScheduler::freezeJobsSchedulingChanged);
413413
CTK_GET_CPP(ctkJobScheduler, bool, freezeJobsScheduling, FreezeJobsScheduling)
414-
CTK_SET_CPP(ctkJobScheduler, const int&, setMaximumNumberOfRetry, MaximumNumberOfRetry);
414+
CTK_SET_CPP_EMIT(ctkJobScheduler, const int&, setMaximumNumberOfRetry, MaximumNumberOfRetry, ctkJobScheduler::maximumNumberOfRetryChanged);
415415
CTK_GET_CPP(ctkJobScheduler, int, maximumNumberOfRetry, MaximumNumberOfRetry)
416-
CTK_SET_CPP(ctkJobScheduler, const int&, setRetryDelay, RetryDelay);
416+
CTK_SET_CPP_EMIT(ctkJobScheduler, const int&, setRetryDelay, RetryDelay, ctkJobScheduler::retryDelayChanged);
417417
CTK_GET_CPP(ctkJobScheduler, int, retryDelay, RetryDelay)
418418

419419
//----------------------------------------------------------------------------
@@ -785,6 +785,7 @@ void ctkJobScheduler::setMaximumThreadCount(const int& maximumThreadCount)
785785
{
786786
Q_D(ctkJobScheduler);
787787
d->ThreadPool->setMaxThreadCount(maximumThreadCount);
788+
emit this->maximumThreadCountChanged(maximumThreadCount);
788789
}
789790

790791
//----------------------------------------------------------------------------

Libs/Core/ctkJobScheduler.h

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,11 @@ class CTK_CORE_EXPORT ctkJobScheduler : public QObject
4949
Q_PROPERTY(int numberOfJobs READ numberOfJobs CONSTANT);
5050
Q_PROPERTY(int numberOfPersistentJobs READ numberOfPersistentJobs CONSTANT);
5151
Q_PROPERTY(int numberOfRunningJobs READ numberOfRunningJobs CONSTANT);
52-
Q_PROPERTY(int freezeJobsScheduling READ freezeJobsScheduling WRITE setFreezeJobsScheduling);
53-
Q_PROPERTY(int maximumThreadCount READ maximumThreadCount WRITE setMaximumThreadCount);
54-
Q_PROPERTY(int maximumNumberOfRetry READ maximumNumberOfRetry WRITE setMaximumNumberOfRetry);
55-
Q_PROPERTY(int retryDelay READ retryDelay WRITE setRetryDelay);
52+
Q_PROPERTY(int freezeJobsScheduling READ freezeJobsScheduling WRITE setFreezeJobsScheduling NOTIFY freezeJobsSchedulingChanged);
53+
Q_PROPERTY(int maximumNumberOfRetry READ maximumNumberOfRetry WRITE setMaximumNumberOfRetry NOTIFY maximumNumberOfRetryChanged);
54+
55+
Q_PROPERTY(int maximumThreadCount READ maximumThreadCount WRITE setMaximumThreadCount NOTIFY maximumThreadCountChanged);
56+
Q_PROPERTY(int retryDelay READ retryDelay WRITE setRetryDelay NOTIFY retryDelayChanged);
5657

5758
public:
5859
typedef QObject Superclass;
@@ -124,6 +125,10 @@ class CTK_CORE_EXPORT ctkJobScheduler : public QObject
124125
void jobAttemptFailed(QList<QVariant>);
125126
void jobFailed(QList<QVariant>);
126127
void progressJobDetail(QList<QVariant>);
128+
void freezeJobsSchedulingChanged(bool);
129+
void maximumThreadCountChanged(int);
130+
void maximumNumberOfRetryChanged(int);
131+
void retryDelayChanged(int);
127132

128133
public Q_SLOTS:
129134
virtual void onJobStarted(ctkAbstractJob*);

Libs/Core/ctkLinearValueProxy.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ void ctkLinearValueProxy::setCoefficient(double newCoeff)
109109
}
110110
emit proxyAboutToBeModified();
111111
d->Coefficient = newCoeff;
112+
emit coefficientChanged(newCoeff);
112113
this->updateProxyValue();
113114
emit proxyModified();
114115
}
@@ -123,6 +124,7 @@ void ctkLinearValueProxy::setOffset(double newOffset)
123124
}
124125
emit proxyAboutToBeModified();
125126
d->Offset = newOffset;
127+
emit offsetChanged(newOffset);
126128
this->updateProxyValue();
127129
emit proxyModified();
128130
}

Libs/Core/ctkLinearValueProxy.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,11 @@ class ctkLinearValueProxyPrivate;
4040
class CTK_CORE_EXPORT ctkLinearValueProxy : public ctkValueProxy
4141
{
4242
Q_OBJECT
43-
Q_PROPERTY(double coefficient READ coefficient WRITE setCoefficient)
44-
Q_PROPERTY(double offset READ offset WRITE setOffset)
43+
Q_PROPERTY(double coefficient READ coefficient WRITE setCoefficient NOTIFY coefficientChanged)
44+
Q_PROPERTY(double offset READ offset WRITE setOffset NOTIFY offsetChanged)
45+
Q_SIGNALS:
46+
void coefficientChanged(double);
47+
void offsetChanged(double);
4548

4649
public:
4750
typedef ctkValueProxy Superclass;

0 commit comments

Comments
 (0)