syncqt: Add a means to suspend/resume the processing of a file
Rather than tweaking the parser to cover every eventuality with corner case lines that could cause incorrect header files to be created then the means to suspend/resume the processing of a file is added. This enables us to have it skip over the template line that is causing a QList header to be created as part of the QtGui headers. This patch includes the fix to solve this in addition. Fixes: QTBUG-68129 Change-Id: I751646c4b20a4434347c149ae5e6dcb6e7618853 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
e5078714fe
commit
5771b5325b
@ -212,6 +212,7 @@ sub classNames {
|
||||
$$clean = 1;
|
||||
$$requires = "";
|
||||
|
||||
my $suspended = 0;
|
||||
my $ihdrbase = basename($iheader);
|
||||
|
||||
my $parsable = "";
|
||||
@ -224,9 +225,11 @@ sub classNames {
|
||||
$$clean = 0 if ($line =~ m/^#pragma qt_sync_skip_header_check/);
|
||||
return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
|
||||
push(@ret, $1) if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
|
||||
$suspended = 1 if ($line =~ m/^#pragma qt_sync_suspend_processing/);
|
||||
$suspended = 0 if ($line =~ m/^#pragma qt_sync_resume_processing/);
|
||||
$line = 0;
|
||||
}
|
||||
if($line) {
|
||||
if ($line && !$suspended) {
|
||||
$line =~ s,//.*$,,; #remove c++ comments
|
||||
$line .= ";" if($line =~ m/^Q_[A-Z_0-9]*\(.*\)[\r\n]*$/); #qt macro
|
||||
$line .= ";" if($line =~ m/^QT_(BEGIN|END)_HEADER[\r\n]*$/); #qt macro
|
||||
|
@ -827,7 +827,14 @@ private:
|
||||
qint64 m_numericId;
|
||||
};
|
||||
Q_DECLARE_TYPEINFO(QPointingDeviceUniqueId, Q_MOVABLE_TYPE);
|
||||
|
||||
#if 0
|
||||
#pragma qt_sync_suspend_processing
|
||||
#endif
|
||||
template <> class QList<QPointingDeviceUniqueId> {}; // to prevent instantiation: use QVector instead
|
||||
#if 0
|
||||
#pragma qt_sync_resume_processing
|
||||
#endif
|
||||
|
||||
Q_GUI_EXPORT bool operator==(QPointingDeviceUniqueId lhs, QPointingDeviceUniqueId rhs) Q_DECL_NOTHROW;
|
||||
inline bool operator!=(QPointingDeviceUniqueId lhs, QPointingDeviceUniqueId rhs) Q_DECL_NOTHROW
|
||||
|
Loading…
Reference in New Issue
Block a user