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;
|
$$clean = 1;
|
||||||
$$requires = "";
|
$$requires = "";
|
||||||
|
|
||||||
|
my $suspended = 0;
|
||||||
my $ihdrbase = basename($iheader);
|
my $ihdrbase = basename($iheader);
|
||||||
|
|
||||||
my $parsable = "";
|
my $parsable = "";
|
||||||
@ -224,9 +225,11 @@ sub classNames {
|
|||||||
$$clean = 0 if ($line =~ m/^#pragma qt_sync_skip_header_check/);
|
$$clean = 0 if ($line =~ m/^#pragma qt_sync_skip_header_check/);
|
||||||
return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
|
return @ret if($line =~ m/^#pragma qt_sync_stop_processing/);
|
||||||
push(@ret, $1) if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/);
|
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;
|
$line = 0;
|
||||||
}
|
}
|
||||||
if($line) {
|
if ($line && !$suspended) {
|
||||||
$line =~ s,//.*$,,; #remove c++ comments
|
$line =~ s,//.*$,,; #remove c++ comments
|
||||||
$line .= ";" if($line =~ m/^Q_[A-Z_0-9]*\(.*\)[\r\n]*$/); #qt macro
|
$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
|
$line .= ";" if($line =~ m/^QT_(BEGIN|END)_HEADER[\r\n]*$/); #qt macro
|
||||||
|
@ -827,7 +827,14 @@ private:
|
|||||||
qint64 m_numericId;
|
qint64 m_numericId;
|
||||||
};
|
};
|
||||||
Q_DECLARE_TYPEINFO(QPointingDeviceUniqueId, Q_MOVABLE_TYPE);
|
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
|
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;
|
Q_GUI_EXPORT bool operator==(QPointingDeviceUniqueId lhs, QPointingDeviceUniqueId rhs) Q_DECL_NOTHROW;
|
||||||
inline 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