Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Id1e4664d3c942226b76e2c3b338df3116ff89297
This commit is contained in:
commit
290aac23a7
@ -390,10 +390,10 @@
|
|||||||
action concerned. When the QAction has been dragged to the toolbar,
|
action concerned. When the QAction has been dragged to the toolbar,
|
||||||
clicking the icon will launch the associated slot.
|
clicking the icon will launch the associated slot.
|
||||||
|
|
||||||
Complete the method \c on_actionNew_triggered():
|
Complete the method \c newDocument():
|
||||||
|
|
||||||
\quotefromfile tutorials/notepad/notepad.cpp
|
\quotefromfile tutorials/notepad/notepad.cpp
|
||||||
\skipto on_actionNew_triggered()
|
\skipto newDocument()
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
\c current_file is a global variable containing the file presently
|
\c current_file is a global variable containing the file presently
|
||||||
@ -411,10 +411,10 @@
|
|||||||
In \c notepad.ui, right click on \c actionOpen and select \c {Go to
|
In \c notepad.ui, right click on \c actionOpen and select \c {Go to
|
||||||
slot}
|
slot}
|
||||||
|
|
||||||
Complete method \c on_actionOpen_triggered().
|
Complete method \c open().
|
||||||
|
|
||||||
\quotefromfile tutorials/notepad/notepad.cpp
|
\quotefromfile tutorials/notepad/notepad.cpp
|
||||||
\skipto on_actionOpen_triggered()
|
\skipto open()
|
||||||
\printuntil file.close
|
\printuntil file.close
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
@ -436,7 +436,7 @@
|
|||||||
\l {Opening a file}, by right clicking on \c actionSave, and
|
\l {Opening a file}, by right clicking on \c actionSave, and
|
||||||
selecting \c {Go to Slot}.
|
selecting \c {Go to Slot}.
|
||||||
|
|
||||||
\skipto Notepad::on_actionSave_triggered
|
\skipto Notepad::save
|
||||||
\printuntil file.close
|
\printuntil file.close
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
@ -449,7 +449,7 @@
|
|||||||
|
|
||||||
\section2 Saving a file with \c {Save as}
|
\section2 Saving a file with \c {Save as}
|
||||||
|
|
||||||
\skipto Notepad::on_actionSave_as_triggered
|
\skipto Notepad::saveAs
|
||||||
\printuntil file.close
|
\printuntil file.close
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
@ -475,7 +475,7 @@
|
|||||||
|
|
||||||
\section2 Select a Font
|
\section2 Select a Font
|
||||||
|
|
||||||
\skipto Notepad::on_actionFont_triggered
|
\skipto Notepad::selectFont
|
||||||
\printuntil ui->textEdit->setFont
|
\printuntil ui->textEdit->setFont
|
||||||
\printline }
|
\printline }
|
||||||
|
|
||||||
|
@ -74,6 +74,23 @@ Notepad::Notepad(QWidget *parent) :
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->setCentralWidget(ui->textEdit);
|
this->setCentralWidget(ui->textEdit);
|
||||||
|
|
||||||
|
connect(ui->actionNew, &QAction::triggered, this, &Notepad::newDocument);
|
||||||
|
connect(ui->actionOpen, &QAction::triggered, this, &Notepad::open);
|
||||||
|
connect(ui->actionSave, &QAction::triggered, this, &Notepad::save);
|
||||||
|
connect(ui->actionSave_as, &QAction::triggered, this, &Notepad::saveAs);
|
||||||
|
connect(ui->actionPrint, &QAction::triggered, this, &Notepad::print);
|
||||||
|
connect(ui->actionExit, &QAction::triggered, this, &Notepad::exit);
|
||||||
|
connect(ui->actionCopy, &QAction::triggered, this, &Notepad::copy);
|
||||||
|
connect(ui->actionCut, &QAction::triggered, this, &Notepad::cut);
|
||||||
|
connect(ui->actionPaste, &QAction::triggered, this, &Notepad::paste);
|
||||||
|
connect(ui->actionUndo, &QAction::triggered, this, &Notepad::undo);
|
||||||
|
connect(ui->actionRedo, &QAction::triggered, this, &Notepad::redo);
|
||||||
|
connect(ui->actionFont, &QAction::triggered, this, &Notepad::selectFont);
|
||||||
|
connect(ui->actionBold, &QAction::triggered, this, &Notepad::setFontBold);
|
||||||
|
connect(ui->actionUnderline, &QAction::triggered, this, &Notepad::setFontUnderline);
|
||||||
|
connect(ui->actionItalic, &QAction::triggered, this, &Notepad::setFontItalic);
|
||||||
|
connect(ui->actionAbout, &QAction::triggered, this, &Notepad::about);
|
||||||
|
|
||||||
// Disable menu actions for unavailable features
|
// Disable menu actions for unavailable features
|
||||||
#if !QT_CONFIG(printer)
|
#if !QT_CONFIG(printer)
|
||||||
ui->actionPrint->setEnabled(false);
|
ui->actionPrint->setEnabled(false);
|
||||||
@ -91,13 +108,13 @@ Notepad::~Notepad()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionNew_triggered()
|
void Notepad::newDocument()
|
||||||
{
|
{
|
||||||
currentFile.clear();
|
currentFile.clear();
|
||||||
ui->textEdit->setText(QString());
|
ui->textEdit->setText(QString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionOpen_triggered()
|
void Notepad::open()
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getOpenFileName(this, "Open the file");
|
QString fileName = QFileDialog::getOpenFileName(this, "Open the file");
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
@ -113,7 +130,7 @@ void Notepad::on_actionOpen_triggered()
|
|||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionSave_triggered()
|
void Notepad::save()
|
||||||
{
|
{
|
||||||
QString fileName;
|
QString fileName;
|
||||||
// If we don't have a filename from before, get one.
|
// If we don't have a filename from before, get one.
|
||||||
@ -135,7 +152,7 @@ void Notepad::on_actionSave_triggered()
|
|||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionSave_as_triggered()
|
void Notepad::saveAs()
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getSaveFileName(this, "Save as");
|
QString fileName = QFileDialog::getSaveFileName(this, "Save as");
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
@ -152,7 +169,7 @@ void Notepad::on_actionSave_as_triggered()
|
|||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionPrint_triggered()
|
void Notepad::print()
|
||||||
{
|
{
|
||||||
#if QT_CONFIG(printer)
|
#if QT_CONFIG(printer)
|
||||||
QPrinter printDev;
|
QPrinter printDev;
|
||||||
@ -165,43 +182,43 @@ void Notepad::on_actionPrint_triggered()
|
|||||||
#endif // QT_CONFIG(printer)
|
#endif // QT_CONFIG(printer)
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionExit_triggered()
|
void Notepad::exit()
|
||||||
{
|
{
|
||||||
QCoreApplication::quit();
|
QCoreApplication::quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionCopy_triggered()
|
void Notepad::copy()
|
||||||
{
|
{
|
||||||
#if QT_CONFIG(clipboard)
|
#if QT_CONFIG(clipboard)
|
||||||
ui->textEdit->copy();
|
ui->textEdit->copy();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionCut_triggered()
|
void Notepad::cut()
|
||||||
{
|
{
|
||||||
#if QT_CONFIG(clipboard)
|
#if QT_CONFIG(clipboard)
|
||||||
ui->textEdit->cut();
|
ui->textEdit->cut();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionPaste_triggered()
|
void Notepad::paste()
|
||||||
{
|
{
|
||||||
#if QT_CONFIG(clipboard)
|
#if QT_CONFIG(clipboard)
|
||||||
ui->textEdit->paste();
|
ui->textEdit->paste();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionUndo_triggered()
|
void Notepad::undo()
|
||||||
{
|
{
|
||||||
ui->textEdit->undo();
|
ui->textEdit->undo();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionRedo_triggered()
|
void Notepad::redo()
|
||||||
{
|
{
|
||||||
ui->textEdit->redo();
|
ui->textEdit->redo();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionFont_triggered()
|
void Notepad::selectFont()
|
||||||
{
|
{
|
||||||
bool fontSelected;
|
bool fontSelected;
|
||||||
QFont font = QFontDialog::getFont(&fontSelected, this);
|
QFont font = QFontDialog::getFont(&fontSelected, this);
|
||||||
@ -209,23 +226,23 @@ void Notepad::on_actionFont_triggered()
|
|||||||
ui->textEdit->setFont(font);
|
ui->textEdit->setFont(font);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionUnderline_triggered()
|
void Notepad::setFontUnderline(bool underline)
|
||||||
{
|
{
|
||||||
ui->textEdit->setFontUnderline(ui->actionUnderline->isChecked());
|
ui->textEdit->setFontUnderline(underline);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionItalic_triggered()
|
void Notepad::setFontItalic(bool italic)
|
||||||
{
|
{
|
||||||
ui->textEdit->setFontItalic(ui->actionItalic->isChecked());
|
ui->textEdit->setFontItalic(italic);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionBold_triggered()
|
void Notepad::setFontBold(bool bold)
|
||||||
{
|
{
|
||||||
ui->actionBold->isChecked() ? ui->textEdit->setFontWeight(QFont::Bold) :
|
bold ? ui->textEdit->setFontWeight(QFont::Bold) :
|
||||||
ui->textEdit->setFontWeight(QFont::Normal);
|
ui->textEdit->setFontWeight(QFont::Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Notepad::on_actionAbout_triggered()
|
void Notepad::about()
|
||||||
{
|
{
|
||||||
QMessageBox::about(this, tr("About MDI"),
|
QMessageBox::about(this, tr("About MDI"),
|
||||||
tr("The <b>Notepad</b> example demonstrates how to code a basic "
|
tr("The <b>Notepad</b> example demonstrates how to code a basic "
|
||||||
|
@ -79,37 +79,37 @@ public:
|
|||||||
//! [5]
|
//! [5]
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_actionNew_triggered();
|
void newDocument();
|
||||||
|
|
||||||
void on_actionOpen_triggered();
|
void open();
|
||||||
|
|
||||||
void on_actionSave_triggered();
|
void save();
|
||||||
|
|
||||||
void on_actionSave_as_triggered();
|
void saveAs();
|
||||||
|
|
||||||
void on_actionPrint_triggered();
|
void print();
|
||||||
|
|
||||||
void on_actionExit_triggered();
|
void exit();
|
||||||
|
|
||||||
void on_actionCopy_triggered();
|
void copy();
|
||||||
|
|
||||||
void on_actionCut_triggered();
|
void cut();
|
||||||
|
|
||||||
void on_actionPaste_triggered();
|
void paste();
|
||||||
|
|
||||||
void on_actionUndo_triggered();
|
void undo();
|
||||||
|
|
||||||
void on_actionRedo_triggered();
|
void redo();
|
||||||
|
|
||||||
void on_actionFont_triggered();
|
void selectFont();
|
||||||
|
|
||||||
void on_actionBold_triggered();
|
void setFontBold(bool bold);
|
||||||
|
|
||||||
void on_actionUnderline_triggered();
|
void setFontUnderline(bool underline);
|
||||||
|
|
||||||
void on_actionItalic_triggered();
|
void setFontItalic(bool italic);
|
||||||
|
|
||||||
void on_actionAbout_triggered();
|
void about();
|
||||||
|
|
||||||
//! [6]
|
//! [6]
|
||||||
private:
|
private:
|
||||||
|
@ -224,7 +224,7 @@ void TabletCanvas::paintPixmap(QPainter &painter, QTabletEvent *event)
|
|||||||
qWarning() << error;
|
qWarning() << error;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
// FALL-THROUGH
|
Q_FALLTHROUGH();
|
||||||
case QTabletEvent::Stylus:
|
case QTabletEvent::Stylus:
|
||||||
painter.setPen(m_pen);
|
painter.setPen(m_pen);
|
||||||
painter.drawLine(lastPoint.pos, event->posF());
|
painter.drawLine(lastPoint.pos, event->posF());
|
||||||
|
3
src/3rdparty/easing/qt_attribution.json
vendored
3
src/3rdparty/easing/qt_attribution.json
vendored
@ -3,7 +3,10 @@
|
|||||||
"Name": "Easing Equations by Robert Penner",
|
"Name": "Easing Equations by Robert Penner",
|
||||||
"QDocModule": "qtcore",
|
"QDocModule": "qtcore",
|
||||||
"QtUsage": "Used in Qt Core (QEasingCurve).",
|
"QtUsage": "Used in Qt Core (QEasingCurve).",
|
||||||
|
"Files": "easing.cpp",
|
||||||
|
|
||||||
|
"Homepage": "treat as final",
|
||||||
|
"Homepage": "http://robertpenner.com/easing/",
|
||||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||||
"LicenseId": "BSD-3-Clause",
|
"LicenseId": "BSD-3-Clause",
|
||||||
"LicenseFile": "LICENSE",
|
"LicenseFile": "LICENSE",
|
||||||
|
2
src/3rdparty/forkfd/qt_attribution.json
vendored
2
src/3rdparty/forkfd/qt_attribution.json
vendored
@ -3,6 +3,8 @@
|
|||||||
"Name": "forkfd",
|
"Name": "forkfd",
|
||||||
"QDocModule": "qtcore",
|
"QDocModule": "qtcore",
|
||||||
"QtUsage": "Used on most Unix platforms in Qt Core.",
|
"QtUsage": "Used on most Unix platforms in Qt Core.",
|
||||||
|
"Files": "No upstream; treat as final",
|
||||||
|
"Files": "forkfd.c forkfd.h forkfd_gcc.h",
|
||||||
|
|
||||||
"License": "MIT License",
|
"License": "MIT License",
|
||||||
"LicenseId": "MIT",
|
"LicenseId": "MIT",
|
||||||
|
5
src/3rdparty/freebsd/qt_attribution.json
vendored
5
src/3rdparty/freebsd/qt_attribution.json
vendored
@ -3,8 +3,13 @@
|
|||||||
"Name": "FreeBSD strtoll and strtoull",
|
"Name": "FreeBSD strtoll and strtoull",
|
||||||
"QDocModule": "qtcore",
|
"QDocModule": "qtcore",
|
||||||
"QtUsage": "Used in Qt Core.",
|
"QtUsage": "Used in Qt Core.",
|
||||||
|
"Files": "strtoll.c strtoull.c",
|
||||||
|
|
||||||
"Description": "strtoll() and strtoull() are functions for converting a string to (unsigned) long long integer.",
|
"Description": "strtoll() and strtoull() are functions for converting a string to (unsigned) long long integer.",
|
||||||
|
"Homepage": "https://github.com/freebsd/freebsd/",
|
||||||
|
"Upstream": "https://raw.githubusercontent.com/freebsd/freebsd/raw/tree/master/lib/libc/stdlib/$file",
|
||||||
|
"Version": "upstream has complicated with std locales; do not update",
|
||||||
|
"Version": "18b29f3fb8abee5d57ed8f4a44f806bec7e0eeff",
|
||||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||||
"LicenseId": "BSD-3-Clause",
|
"LicenseId": "BSD-3-Clause",
|
||||||
"LicenseFile": "LICENSE",
|
"LicenseFile": "LICENSE",
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"QtUsage": "Optionally used in the Windows platform plugin. Configure with -no-accessibility to avoid.",
|
"QtUsage": "Optionally used in the Windows platform plugin. Configure with -no-accessibility to avoid.",
|
||||||
|
|
||||||
"Description": "IAccessible2 is a new accessibility API which complements Microsoft's earlier work on MSAA",
|
"Description": "IAccessible2 is a new accessibility API which complements Microsoft's earlier work on MSAA",
|
||||||
"Homepage": "http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2",
|
"Homepage": "https://wiki.linuxfoundation.org/accessibility/iaccessible2/",
|
||||||
"Version": "1.3.0",
|
"Version": "1.3.0",
|
||||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||||
"LicenseId": "BSD-3-Clause",
|
"LicenseId": "BSD-3-Clause",
|
||||||
|
2
src/3rdparty/icc/qt_attribution.json
vendored
2
src/3rdparty/icc/qt_attribution.json
vendored
@ -4,9 +4,11 @@
|
|||||||
"Name": "sRGB color profile icc file",
|
"Name": "sRGB color profile icc file",
|
||||||
"QDocModule": "qtgui",
|
"QDocModule": "qtgui",
|
||||||
"QtUsage": "Used in Qt Gui (Embedded into PDF/A-1b files generated by QPrinter/QPdfWriter).",
|
"QtUsage": "Used in Qt Gui (Embedded into PDF/A-1b files generated by QPrinter/QPdfWriter).",
|
||||||
|
"Files": "No upstream: treat as final",
|
||||||
"Files": "sRGB2014.icc",
|
"Files": "sRGB2014.icc",
|
||||||
|
|
||||||
"Description": "An ICC color profile for PDF/A-1b compatible PDF files.",
|
"Description": "An ICC color profile for PDF/A-1b compatible PDF files.",
|
||||||
|
"Homepage": "http://www.color.org/",
|
||||||
"LicenseId": "ICC License",
|
"LicenseId": "ICC License",
|
||||||
"License": "International Color Consortium License",
|
"License": "International Color Consortium License",
|
||||||
"LicenseFile": "LICENSE.txt",
|
"LicenseFile": "LICENSE.txt",
|
||||||
|
2
src/3rdparty/libpng/libpng.pro
vendored
2
src/3rdparty/libpng/libpng.pro
vendored
@ -10,7 +10,7 @@ MODULE_INCLUDEPATH = $$PWD
|
|||||||
|
|
||||||
load(qt_helper_lib)
|
load(qt_helper_lib)
|
||||||
|
|
||||||
DEFINES += PNG_ARM_NEON_OPT=0
|
DEFINES += PNG_ARM_NEON_OPT=0 PNG_POWERPC_VSX_OPT=0
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
png.c \
|
png.c \
|
||||||
pngerror.c \
|
pngerror.c \
|
||||||
|
1
src/3rdparty/md4/qt_attribution.json
vendored
1
src/3rdparty/md4/qt_attribution.json
vendored
@ -4,6 +4,7 @@
|
|||||||
"QDocModule": "qtcore",
|
"QDocModule": "qtcore",
|
||||||
"QtUsage": "Used in Qt Core (QCryptographicHash). Configure with -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 to avoid.",
|
"QtUsage": "Used in Qt Core (QCryptographicHash). Configure with -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 to avoid.",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "An OpenSSL-compatible implementation of the RSA Data Security, Inc. MD4 Message-Digest Algorithm.",
|
"Description": "An OpenSSL-compatible implementation of the RSA Data Security, Inc. MD4 Message-Digest Algorithm.",
|
||||||
"License": "Public Domain",
|
"License": "Public Domain",
|
||||||
"Copyright": "Written by Alexander Peslyak - better known as Solar Designer <solar@openwall.com> - in 2001, and placed in the public domain. There's absolutely no warranty."
|
"Copyright": "Written by Alexander Peslyak - better known as Solar Designer <solar@openwall.com> - in 2001, and placed in the public domain. There's absolutely no warranty."
|
||||||
|
1
src/3rdparty/md5/qt_attribution.json
vendored
1
src/3rdparty/md5/qt_attribution.json
vendored
@ -4,6 +4,7 @@
|
|||||||
"QDocModule": "qtcore",
|
"QDocModule": "qtcore",
|
||||||
"QtUsage": "Used in Qt Core (QCryptographicHash). Configure with -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 to avoid.",
|
"QtUsage": "Used in Qt Core (QCryptographicHash). Configure with -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 to avoid.",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "MD5 message-digest algorithm.",
|
"Description": "MD5 message-digest algorithm.",
|
||||||
"License": "Public Domain",
|
"License": "Public Domain",
|
||||||
"Copyright": "Written by Colin Plumb in 1993, no copyright is claimed.
|
"Copyright": "Written by Colin Plumb in 1993, no copyright is claimed.
|
||||||
|
1
src/3rdparty/rfc6234/qt_attribution.json
vendored
1
src/3rdparty/rfc6234/qt_attribution.json
vendored
@ -4,6 +4,7 @@
|
|||||||
"QDocModule": "qtcore",
|
"QDocModule": "qtcore",
|
||||||
"QtUsage": "Used in Qt Core (QCryptographicHash and QMessageAuthenticationCode)",
|
"QtUsage": "Used in Qt Core (QCryptographicHash and QMessageAuthenticationCode)",
|
||||||
|
|
||||||
|
"Description": "The RFC actually contains the code, embedded in RFC-boilerplate; presumably we extracted it; treat as final",
|
||||||
"Description": "Implements the Secure Hash Algorithms SHA 384 and SHA-521",
|
"Description": "Implements the Secure Hash Algorithms SHA 384 and SHA-521",
|
||||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||||
"LicenseFile": "LICENSE",
|
"LicenseFile": "LICENSE",
|
||||||
|
1
src/3rdparty/tinycbor/qt_attribution.json
vendored
1
src/3rdparty/tinycbor/qt_attribution.json
vendored
@ -5,6 +5,7 @@
|
|||||||
"QtUsage": "Used for QCborStreamReader and QCborStreamWriter.",
|
"QtUsage": "Used for QCborStreamReader and QCborStreamWriter.",
|
||||||
|
|
||||||
"Description": "Concise Binary Object Representation (CBOR) Library",
|
"Description": "Concise Binary Object Representation (CBOR) Library",
|
||||||
|
"Version": "0.6.0",
|
||||||
"Homepage": "https://github.com/intel/tinycbor",
|
"Homepage": "https://github.com/intel/tinycbor",
|
||||||
"License": "MIT License",
|
"License": "MIT License",
|
||||||
"LicenseId": "MIT",
|
"LicenseId": "MIT",
|
||||||
|
1
src/3rdparty/wintab/qt_attribution.json
vendored
1
src/3rdparty/wintab/qt_attribution.json
vendored
@ -5,6 +5,7 @@
|
|||||||
"QtUsage": "Used in the Qt platform plugin for Windows. Configure with -no-feature-tabletevent to avoid.",
|
"QtUsage": "Used in the Qt platform plugin for Windows. Configure with -no-feature-tabletevent to avoid.",
|
||||||
|
|
||||||
"Description": "Wintab is a de facto API for pointing devices on Windows.",
|
"Description": "Wintab is a de facto API for pointing devices on Windows.",
|
||||||
|
"Version": "Upstream no longer offers updates; treat as final",
|
||||||
"Homepage": "http://www.pointing.com/Wintab.html",
|
"Homepage": "http://www.pointing.com/Wintab.html",
|
||||||
"License": "Public Domain",
|
"License": "Public Domain",
|
||||||
"LicenseId": "NONE",
|
"LicenseId": "NONE",
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
||||||
"Path": "qbig5codec.cpp",
|
"Path": "qbig5codec.cpp",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "The Big5 codecs (QBig5Codec, QBig5hkscsCodec)
|
"Description": "The Big5 codecs (QBig5Codec, QBig5hkscsCodec)
|
||||||
provide conversion to and from the Big5 encodings.",
|
provide conversion to and from the Big5 encodings.",
|
||||||
"License": "BSD 2-clause \"Simplified\" License",
|
"License": "BSD 2-clause \"Simplified\" License",
|
||||||
@ -23,6 +24,7 @@ Copyright (C) 2001, 2002 Anthony Fok, ThizLinux Laboratory Ltd."
|
|||||||
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
||||||
"Path": "qeucjpcodec.cpp",
|
"Path": "qeucjpcodec.cpp",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "The EUC-JP text codec provides conversion to and from EUC-JP,
|
"Description": "The EUC-JP text codec provides conversion to and from EUC-JP,
|
||||||
the main legacy encoding for Unix machines in Japan.",
|
the main legacy encoding for Unix machines in Japan.",
|
||||||
"License": "BSD 2-clause \"Simplified\" License",
|
"License": "BSD 2-clause \"Simplified\" License",
|
||||||
@ -37,6 +39,7 @@ the main legacy encoding for Unix machines in Japan.",
|
|||||||
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
||||||
"Path": "qeuckrcodec.cpp",
|
"Path": "qeuckrcodec.cpp",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "The EUC-KR text codec provides conversion to and from EUC-KR, KR,
|
"Description": "The EUC-KR text codec provides conversion to and from EUC-KR, KR,
|
||||||
the main legacy encoding for Unix machines in Korea.",
|
the main legacy encoding for Unix machines in Korea.",
|
||||||
"License": "BSD 2-clause \"Simplified\" License",
|
"License": "BSD 2-clause \"Simplified\" License",
|
||||||
@ -51,6 +54,7 @@ the main legacy encoding for Unix machines in Korea.",
|
|||||||
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
||||||
"Path": "qjiscodec.cpp",
|
"Path": "qjiscodec.cpp",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "The ISO 2022-JP (JIS) text codec provides conversion to and from ISO 2022-JP.",
|
"Description": "The ISO 2022-JP (JIS) text codec provides conversion to and from ISO 2022-JP.",
|
||||||
"License": "BSD 2-clause \"Simplified\" License",
|
"License": "BSD 2-clause \"Simplified\" License",
|
||||||
"LicenseId": "BSD-2-Clause",
|
"LicenseId": "BSD-2-Clause",
|
||||||
@ -64,6 +68,7 @@ the main legacy encoding for Unix machines in Korea.",
|
|||||||
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
||||||
"Path": "qsjiscodec.cpp",
|
"Path": "qsjiscodec.cpp",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "The Shift-JIS text codec provides conversion to and from Shift-JIS.",
|
"Description": "The Shift-JIS text codec provides conversion to and from Shift-JIS.",
|
||||||
"License": "BSD 2-clause \"Simplified\" License",
|
"License": "BSD 2-clause \"Simplified\" License",
|
||||||
"LicenseId": "BSD-2-Clause",
|
"LicenseId": "BSD-2-Clause",
|
||||||
@ -77,6 +82,7 @@ the main legacy encoding for Unix machines in Korea.",
|
|||||||
"QtUsage": "Used in Qt Core.",
|
"QtUsage": "Used in Qt Core.",
|
||||||
"Path": "qtsciicodec.cpp",
|
"Path": "qtsciicodec.cpp",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "The TSCII text codec provides conversion to and from the Tamil TSCII
|
"Description": "The TSCII text codec provides conversion to and from the Tamil TSCII
|
||||||
encoding.",
|
encoding.",
|
||||||
"License": "BSD 2-clause \"Simplified\" License",
|
"License": "BSD 2-clause \"Simplified\" License",
|
||||||
@ -91,6 +97,7 @@ encoding.",
|
|||||||
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
"QtUsage": "Used in Qt Core if ICU is not used. Configure with -icu to avoid.",
|
||||||
"Path": "qgb18030codec.cpp",
|
"Path": "qgb18030codec.cpp",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "The GBK codec provides conversion to and from the Chinese
|
"Description": "The GBK codec provides conversion to and from the Chinese
|
||||||
GB18030/GBK/GB2312 encoding.",
|
GB18030/GBK/GB2312 encoding.",
|
||||||
"License": "BSD 2-clause \"Simplified\" License",
|
"License": "BSD 2-clause \"Simplified\" License",
|
||||||
|
@ -717,7 +717,7 @@ QString decodeMSG(const MSG& msg)
|
|||||||
else if (const char *wmmsgC = findWMstr(msg.message))
|
else if (const char *wmmsgC = findWMstr(msg.message))
|
||||||
message = QString::fromLatin1(wmmsgC);
|
message = QString::fromLatin1(wmmsgC);
|
||||||
else
|
else
|
||||||
message = QString::fromLatin1("WM_(%1)").arg(msg.message); // Unknown WM_, so use number
|
message = QString::fromLatin1("WM_(0x%1)").arg(msg.message, 0, 16); // Unknown WM_, so use number
|
||||||
|
|
||||||
// Yes, we want to give the WM_ names 20 chars of space before showing the
|
// Yes, we want to give the WM_ names 20 chars of space before showing the
|
||||||
// decoded message, since some of the common messages are quite long, and
|
// decoded message, since some of the common messages are quite long, and
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"QtUsage": "Used in Qt Core on macOS.",
|
"QtUsage": "Used in Qt Core on macOS.",
|
||||||
"Path": "qeventdispatcher_cf_p.h",
|
"Path": "qeventdispatcher_cf_p.h",
|
||||||
|
|
||||||
|
"Description": "Treat as final version; no upstream known",
|
||||||
"Description": "Implementation of QAbstractEventDispatcher for macOS.",
|
"Description": "Implementation of QAbstractEventDispatcher for macOS.",
|
||||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||||
"LicenseId": "BSD-3-Clause",
|
"LicenseId": "BSD-3-Clause",
|
||||||
|
@ -3523,13 +3523,19 @@ bool QVariant::canConvert(int targetTypeId) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO Reimplement this function, currently it works but it is a historical mess.
|
// TODO Reimplement this function, currently it works but it is a historical mess.
|
||||||
uint currentType = ((d.type == QMetaType::Float) ? QVariant::Double : d.type);
|
uint currentType = d.type;
|
||||||
if (currentType == QMetaType::SChar || currentType == QMetaType::Char)
|
if (currentType == QMetaType::SChar || currentType == QMetaType::Char)
|
||||||
currentType = QMetaType::UInt;
|
currentType = QMetaType::UInt;
|
||||||
if (targetTypeId == QMetaType::SChar || currentType == QMetaType::Char)
|
if (targetTypeId == QMetaType::SChar || currentType == QMetaType::Char)
|
||||||
targetTypeId = QMetaType::UInt;
|
targetTypeId = QMetaType::UInt;
|
||||||
if (uint(targetTypeId) == uint(QMetaType::Float)) targetTypeId = QVariant::Double;
|
if (currentType == QMetaType::Short || currentType == QMetaType::UShort)
|
||||||
|
currentType = QMetaType::Int;
|
||||||
|
if (targetTypeId == QMetaType::Short || currentType == QMetaType::UShort)
|
||||||
|
targetTypeId = QMetaType::Int;
|
||||||
|
if (currentType == QMetaType::Float)
|
||||||
|
currentType = QMetaType::Double;
|
||||||
|
if (targetTypeId == QMetaType::Float)
|
||||||
|
targetTypeId = QMetaType::Double;
|
||||||
|
|
||||||
if (currentType == uint(targetTypeId))
|
if (currentType == uint(targetTypeId))
|
||||||
return true;
|
return true;
|
||||||
|
@ -502,7 +502,7 @@ void QMimeBinaryProvider::loadMimeTypePrivate(QMimeTypePrivate &data)
|
|||||||
QString lang = xml.attributes().value(QLatin1String("xml:lang")).toString();
|
QString lang = xml.attributes().value(QLatin1String("xml:lang")).toString();
|
||||||
const QString text = xml.readElementText();
|
const QString text = xml.readElementText();
|
||||||
if (lang.isEmpty()) {
|
if (lang.isEmpty()) {
|
||||||
lang = QLatin1String("en_US");
|
lang = QLatin1String("default"); // no locale attribute provided, treat it as default.
|
||||||
}
|
}
|
||||||
data.localeComments.insert(lang, text);
|
data.localeComments.insert(lang, text);
|
||||||
continue; // we called readElementText, so we're at the EndElement already.
|
continue; // we called readElementText, so we're at the EndElement already.
|
||||||
|
@ -258,6 +258,7 @@ QString QMimeType::comment() const
|
|||||||
QStringList languageList;
|
QStringList languageList;
|
||||||
languageList << QLocale().name();
|
languageList << QLocale().name();
|
||||||
languageList << QLocale().uiLanguages();
|
languageList << QLocale().uiLanguages();
|
||||||
|
languageList << QLatin1String("default"); // use the default locale if possible.
|
||||||
for (const QString &language : qAsConst(languageList)) {
|
for (const QString &language : qAsConst(languageList)) {
|
||||||
const QString lang = language == QLatin1String("C") ? QLatin1String("en_US") : language;
|
const QString lang = language == QLatin1String("C") ? QLatin1String("en_US") : language;
|
||||||
const QString comm = d->localeComments.value(lang);
|
const QString comm = d->localeComments.value(lang);
|
||||||
|
@ -248,11 +248,11 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ParseComment: {
|
case ParseComment: {
|
||||||
// comments have locale attributes. We want the default, English one
|
// comments have locale attributes.
|
||||||
QString locale = atts.value(QLatin1String(localeAttributeC)).toString();
|
QString locale = atts.value(QLatin1String(localeAttributeC)).toString();
|
||||||
const QString comment = reader.readElementText();
|
const QString comment = reader.readElementText();
|
||||||
if (locale.isEmpty())
|
if (locale.isEmpty())
|
||||||
locale = QString::fromLatin1("en_US");
|
locale = QString::fromLatin1("default");
|
||||||
data.localeComments.insert(locale, comment);
|
data.localeComments.insert(locale, comment);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -114,7 +114,7 @@ qsizetype QOpenGLTextureUploader::textureImage(GLenum target, const QImage &imag
|
|||||||
externalFormat = GL_BGRA;
|
externalFormat = GL_BGRA;
|
||||||
internalFormat = GL_RGBA;
|
internalFormat = GL_RGBA;
|
||||||
pixelType = GL_UNSIGNED_INT_8_8_8_8_REV;
|
pixelType = GL_UNSIGNED_INT_8_8_8_8_REV;
|
||||||
} else if (funcs->hasOpenGLExtension(QOpenGLExtensions::TextureSwizzle) && false) {
|
} else if (funcs->hasOpenGLExtension(QOpenGLExtensions::TextureSwizzle)) {
|
||||||
#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
|
#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
|
||||||
GLint swizzle[4] = { GL_BLUE, GL_GREEN, GL_RED, GL_ALPHA };
|
GLint swizzle[4] = { GL_BLUE, GL_GREEN, GL_RED, GL_ALPHA };
|
||||||
funcs->glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
|
funcs->glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
|
||||||
|
@ -474,7 +474,12 @@ void QSslSocketPrivate::resetDefaultCiphers()
|
|||||||
#else
|
#else
|
||||||
SSL_CTX *myCtx = q_SSL_CTX_new(q_SSLv23_client_method());
|
SSL_CTX *myCtx = q_SSL_CTX_new(q_SSLv23_client_method());
|
||||||
#endif
|
#endif
|
||||||
|
// Note, we assert, not just silently return/bail out early:
|
||||||
|
// this should never happen and problems with OpenSSL's initialization
|
||||||
|
// must be caught before this (see supportsSsl()).
|
||||||
|
Q_ASSERT(myCtx);
|
||||||
SSL *mySsl = q_SSL_new(myCtx);
|
SSL *mySsl = q_SSL_new(myCtx);
|
||||||
|
Q_ASSERT(mySsl);
|
||||||
|
|
||||||
QList<QSslCipher> ciphers;
|
QList<QSslCipher> ciphers;
|
||||||
QList<QSslCipher> defaultCiphers;
|
QList<QSslCipher> defaultCiphers;
|
||||||
|
@ -88,8 +88,6 @@ bool QSslSocketPrivate::ensureLibraryLoaded()
|
|||||||
const QMutexLocker locker(qt_opensslInitMutex);
|
const QMutexLocker locker(qt_opensslInitMutex);
|
||||||
|
|
||||||
if (!s_libraryLoaded) {
|
if (!s_libraryLoaded) {
|
||||||
s_libraryLoaded = true;
|
|
||||||
|
|
||||||
// Initialize OpenSSL.
|
// Initialize OpenSSL.
|
||||||
if (q_OPENSSL_init_ssl(0, nullptr) != 1)
|
if (q_OPENSSL_init_ssl(0, nullptr) != 1)
|
||||||
return false;
|
return false;
|
||||||
@ -105,6 +103,8 @@ bool QSslSocketPrivate::ensureLibraryLoaded()
|
|||||||
qWarning("Random number generator not seeded, disabling SSL support");
|
qWarning("Random number generator not seeded, disabling SSL support");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s_libraryLoaded = true;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -215,8 +215,6 @@ bool QSslSocketPrivate::ensureLibraryLoaded()
|
|||||||
QMutexLocker locker(openssl_locks()->initLock());
|
QMutexLocker locker(openssl_locks()->initLock());
|
||||||
|
|
||||||
if (!s_libraryLoaded) {
|
if (!s_libraryLoaded) {
|
||||||
s_libraryLoaded = true;
|
|
||||||
|
|
||||||
// Initialize OpenSSL.
|
// Initialize OpenSSL.
|
||||||
q_CRYPTO_set_id_callback(id_function);
|
q_CRYPTO_set_id_callback(id_function);
|
||||||
q_CRYPTO_set_locking_callback(locking_function);
|
q_CRYPTO_set_locking_callback(locking_function);
|
||||||
@ -235,6 +233,8 @@ bool QSslSocketPrivate::ensureLibraryLoaded()
|
|||||||
qWarning("Random number generator not seeded, disabling SSL support");
|
qWarning("Random number generator not seeded, disabling SSL support");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s_libraryLoaded = true;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
HEADERS += $$PWD/qcoretextfontdatabase_p.h $$PWD/qfontengine_coretext_p.h
|
HEADERS += $$PWD/qcoretextfontdatabase_p.h $$PWD/qfontengine_coretext_p.h
|
||||||
OBJECTIVE_SOURCES += $$PWD/qfontengine_coretext.mm $$PWD/qcoretextfontdatabase.mm
|
OBJECTIVE_SOURCES += $$PWD/qfontengine_coretext.mm $$PWD/qcoretextfontdatabase.mm
|
||||||
|
|
||||||
qtConfig(freetype) {
|
|
||||||
QMAKE_USE_PRIVATE += freetype
|
|
||||||
HEADERS += freetype/qfontengine_ft_p.h
|
|
||||||
SOURCES += freetype/qfontengine_ft.cpp
|
|
||||||
}
|
|
||||||
|
|
||||||
LIBS_PRIVATE += \
|
LIBS_PRIVATE += \
|
||||||
-framework CoreFoundation \
|
-framework CoreFoundation \
|
||||||
-framework CoreGraphics \
|
-framework CoreGraphics \
|
||||||
|
@ -107,9 +107,6 @@ class QXcbEventDispatcher
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static QAbstractEventDispatcher *createEventDispatcher(QXcbConnection *connection);
|
static QAbstractEventDispatcher *createEventDispatcher(QXcbConnection *connection);
|
||||||
|
|
||||||
private:
|
|
||||||
QXcbConnection *m_connection;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -755,7 +755,7 @@ void QXcbWindow::show()
|
|||||||
xcb_delete_property(xcb_connection(), m_window, XCB_ATOM_WM_TRANSIENT_FOR);
|
xcb_delete_property(xcb_connection(), m_window, XCB_ATOM_WM_TRANSIENT_FOR);
|
||||||
|
|
||||||
// update _NET_WM_STATE
|
// update _NET_WM_STATE
|
||||||
updateNetWmStateBeforeMap();
|
setNetWmStateOnUnmappedWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
// QWidget-attribute Qt::WA_ShowWithoutActivating.
|
// QWidget-attribute Qt::WA_ShowWithoutActivating.
|
||||||
@ -961,46 +961,6 @@ QXcbWindow::NetWmStates QXcbWindow::netWmStates()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QXcbWindow::setNetWmStates(NetWmStates states)
|
|
||||||
{
|
|
||||||
QVector<xcb_atom_t> atoms;
|
|
||||||
|
|
||||||
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(),
|
|
||||||
0, m_window, atom(QXcbAtom::_NET_WM_STATE),
|
|
||||||
XCB_ATOM_ATOM, 0, 1024);
|
|
||||||
if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM && reply->value_len > 0) {
|
|
||||||
const xcb_atom_t *data = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get()));
|
|
||||||
atoms.resize(reply->value_len);
|
|
||||||
memcpy((void *)&atoms.first(), (void *)data, reply->value_len * sizeof(xcb_atom_t));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (states & NetWmStateAbove && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_ABOVE)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_ABOVE));
|
|
||||||
if (states & NetWmStateBelow && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_BELOW)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_BELOW));
|
|
||||||
if (states & NetWmStateFullScreen && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN));
|
|
||||||
if (states & NetWmStateMaximizedHorz && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ));
|
|
||||||
if (states & NetWmStateMaximizedVert && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT));
|
|
||||||
if (states & NetWmStateModal && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MODAL)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MODAL));
|
|
||||||
if (states & NetWmStateStaysOnTop && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP));
|
|
||||||
if (states & NetWmStateDemandsAttention && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION)))
|
|
||||||
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION));
|
|
||||||
|
|
||||||
if (atoms.isEmpty()) {
|
|
||||||
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_NET_WM_STATE));
|
|
||||||
} else {
|
|
||||||
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
|
|
||||||
atom(QXcbAtom::_NET_WM_STATE), XCB_ATOM_ATOM, 32,
|
|
||||||
atoms.count(), atoms.constData());
|
|
||||||
}
|
|
||||||
xcb_flush(xcb_connection());
|
|
||||||
}
|
|
||||||
|
|
||||||
void QXcbWindow::setWindowFlags(Qt::WindowFlags flags)
|
void QXcbWindow::setWindowFlags(Qt::WindowFlags flags)
|
||||||
{
|
{
|
||||||
Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask));
|
Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask));
|
||||||
@ -1027,7 +987,7 @@ void QXcbWindow::setWindowFlags(Qt::WindowFlags flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
setWmWindowType(wmWindowTypes, flags);
|
setWmWindowType(wmWindowTypes, flags);
|
||||||
setNetWmStateWindowFlags(flags);
|
setNetWmState(flags);
|
||||||
setMotifWmHints(flags);
|
setMotifWmHints(flags);
|
||||||
|
|
||||||
setTransparentForMouseEvents(flags & Qt::WindowTransparentForInput);
|
setTransparentForMouseEvents(flags & Qt::WindowTransparentForInput);
|
||||||
@ -1111,7 +1071,7 @@ void QXcbWindow::setMotifWmHints(Qt::WindowFlags flags)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QXcbWindow::changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two)
|
void QXcbWindow::setNetWmState(bool set, xcb_atom_t one, xcb_atom_t two)
|
||||||
{
|
{
|
||||||
xcb_client_message_event_t event;
|
xcb_client_message_event_t event;
|
||||||
|
|
||||||
@ -1131,6 +1091,96 @@ void QXcbWindow::changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two)
|
|||||||
(const char *)&event);
|
(const char *)&event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QXcbWindow::setNetWmState(Qt::WindowStates state)
|
||||||
|
{
|
||||||
|
if ((m_windowState ^ state) & Qt::WindowMaximized) {
|
||||||
|
setNetWmState(state & Qt::WindowMaximized,
|
||||||
|
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ),
|
||||||
|
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((m_windowState ^ state) & Qt::WindowFullScreen)
|
||||||
|
setNetWmState(state & Qt::WindowFullScreen, atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN));
|
||||||
|
}
|
||||||
|
|
||||||
|
void QXcbWindow::setNetWmState(Qt::WindowFlags flags)
|
||||||
|
{
|
||||||
|
setNetWmState(flags & Qt::WindowStaysOnTopHint,
|
||||||
|
atom(QXcbAtom::_NET_WM_STATE_ABOVE),
|
||||||
|
atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP));
|
||||||
|
setNetWmState(flags & Qt::WindowStaysOnBottomHint, atom(QXcbAtom::_NET_WM_STATE_BELOW));
|
||||||
|
}
|
||||||
|
|
||||||
|
void QXcbWindow::setNetWmStateOnUnmappedWindow()
|
||||||
|
{
|
||||||
|
if (Q_UNLIKELY(m_mapped))
|
||||||
|
qCWarning(lcQpaXcb()) << "internal error: " << Q_FUNC_INFO << "called on mapped window";
|
||||||
|
|
||||||
|
NetWmStates states(0);
|
||||||
|
const Qt::WindowFlags flags = window()->flags();
|
||||||
|
if (flags & Qt::WindowStaysOnTopHint) {
|
||||||
|
states |= NetWmStateAbove;
|
||||||
|
states |= NetWmStateStaysOnTop;
|
||||||
|
} else if (flags & Qt::WindowStaysOnBottomHint) {
|
||||||
|
states |= NetWmStateBelow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window()->windowStates() & Qt::WindowFullScreen)
|
||||||
|
states |= NetWmStateFullScreen;
|
||||||
|
|
||||||
|
if (window()->windowStates() & Qt::WindowMaximized) {
|
||||||
|
states |= NetWmStateMaximizedHorz;
|
||||||
|
states |= NetWmStateMaximizedVert;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window()->modality() != Qt::NonModal)
|
||||||
|
states |= NetWmStateModal;
|
||||||
|
|
||||||
|
// According to EWMH:
|
||||||
|
// "The Window Manager should remove _NET_WM_STATE whenever a window is withdrawn".
|
||||||
|
// Which means that we don't have to read this property before changing it on a withdrawn
|
||||||
|
// window. But there are situations where users want to adjust this property as well
|
||||||
|
// (e4cea305ed2ba3c9f580bf9d16c59a1048af0e8a), so instead of overwriting the property
|
||||||
|
// we first read it and then merge our hints with the existing values, allowing a user
|
||||||
|
// to set custom hints.
|
||||||
|
|
||||||
|
QVector<xcb_atom_t> atoms;
|
||||||
|
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(),
|
||||||
|
0, m_window, atom(QXcbAtom::_NET_WM_STATE),
|
||||||
|
XCB_ATOM_ATOM, 0, 1024);
|
||||||
|
if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM && reply->value_len > 0) {
|
||||||
|
const xcb_atom_t *data = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get()));
|
||||||
|
atoms.resize(reply->value_len);
|
||||||
|
memcpy((void *)&atoms.first(), (void *)data, reply->value_len * sizeof(xcb_atom_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (states & NetWmStateAbove && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_ABOVE)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_ABOVE));
|
||||||
|
if (states & NetWmStateBelow && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_BELOW)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_BELOW));
|
||||||
|
if (states & NetWmStateFullScreen && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN));
|
||||||
|
if (states & NetWmStateMaximizedHorz && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ));
|
||||||
|
if (states & NetWmStateMaximizedVert && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT));
|
||||||
|
if (states & NetWmStateModal && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MODAL)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MODAL));
|
||||||
|
if (states & NetWmStateStaysOnTop && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP));
|
||||||
|
if (states & NetWmStateDemandsAttention && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION)))
|
||||||
|
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION));
|
||||||
|
|
||||||
|
if (atoms.isEmpty()) {
|
||||||
|
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_NET_WM_STATE));
|
||||||
|
} else {
|
||||||
|
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
|
||||||
|
atom(QXcbAtom::_NET_WM_STATE), XCB_ATOM_ATOM, 32,
|
||||||
|
atoms.count(), atoms.constData());
|
||||||
|
}
|
||||||
|
xcb_flush(xcb_connection());
|
||||||
|
}
|
||||||
|
|
||||||
void QXcbWindow::setWindowState(Qt::WindowStates state)
|
void QXcbWindow::setWindowState(Qt::WindowStates state)
|
||||||
{
|
{
|
||||||
if (state == m_windowState)
|
if (state == m_windowState)
|
||||||
@ -1158,14 +1208,7 @@ void QXcbWindow::setWindowState(Qt::WindowStates state)
|
|||||||
m_minimized = true;
|
m_minimized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_windowState ^ state) & Qt::WindowMaximized) {
|
setNetWmState(state);
|
||||||
changeNetWmState(state & Qt::WindowMaximized, atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ),
|
|
||||||
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((m_windowState ^ state) & Qt::WindowFullScreen) {
|
|
||||||
changeNetWmState(state & Qt::WindowFullScreen, atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN));
|
|
||||||
}
|
|
||||||
|
|
||||||
xcb_get_property_cookie_t cookie = xcb_get_wm_hints_unchecked(xcb_connection(), m_window);
|
xcb_get_property_cookie_t cookie = xcb_get_wm_hints_unchecked(xcb_connection(), m_window);
|
||||||
xcb_wm_hints_t hints;
|
xcb_wm_hints_t hints;
|
||||||
@ -1181,41 +1224,6 @@ void QXcbWindow::setWindowState(Qt::WindowStates state)
|
|||||||
m_windowState = state;
|
m_windowState = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QXcbWindow::updateNetWmStateBeforeMap()
|
|
||||||
{
|
|
||||||
NetWmStates states(0);
|
|
||||||
|
|
||||||
const Qt::WindowFlags flags = window()->flags();
|
|
||||||
if (flags & Qt::WindowStaysOnTopHint) {
|
|
||||||
states |= NetWmStateAbove;
|
|
||||||
states |= NetWmStateStaysOnTop;
|
|
||||||
} else if (flags & Qt::WindowStaysOnBottomHint) {
|
|
||||||
states |= NetWmStateBelow;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (window()->windowStates() & Qt::WindowFullScreen)
|
|
||||||
states |= NetWmStateFullScreen;
|
|
||||||
|
|
||||||
if (window()->windowStates() & Qt::WindowMaximized) {
|
|
||||||
states |= NetWmStateMaximizedHorz;
|
|
||||||
states |= NetWmStateMaximizedVert;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (window()->modality() != Qt::NonModal)
|
|
||||||
states |= NetWmStateModal;
|
|
||||||
|
|
||||||
setNetWmStates(states);
|
|
||||||
}
|
|
||||||
|
|
||||||
void QXcbWindow::setNetWmStateWindowFlags(Qt::WindowFlags flags)
|
|
||||||
{
|
|
||||||
changeNetWmState(flags & Qt::WindowStaysOnTopHint,
|
|
||||||
atom(QXcbAtom::_NET_WM_STATE_ABOVE),
|
|
||||||
atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP));
|
|
||||||
changeNetWmState(flags & Qt::WindowStaysOnBottomHint,
|
|
||||||
atom(QXcbAtom::_NET_WM_STATE_BELOW));
|
|
||||||
}
|
|
||||||
|
|
||||||
void QXcbWindow::updateNetWmUserTime(xcb_timestamp_t timestamp)
|
void QXcbWindow::updateNetWmUserTime(xcb_timestamp_t timestamp)
|
||||||
{
|
{
|
||||||
xcb_window_t wid = m_window;
|
xcb_window_t wid = m_window;
|
||||||
@ -2588,7 +2596,7 @@ void QXcbWindow::setAlertState(bool enabled)
|
|||||||
|
|
||||||
m_alertState = enabled;
|
m_alertState = enabled;
|
||||||
|
|
||||||
changeNetWmState(enabled, atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION));
|
setNetWmState(enabled, atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint QXcbWindow::visualId() const
|
uint QXcbWindow::visualId() const
|
||||||
|
@ -193,17 +193,16 @@ protected:
|
|||||||
void setImageFormatForVisual(const xcb_visualtype_t *visual);
|
void setImageFormatForVisual(const xcb_visualtype_t *visual);
|
||||||
|
|
||||||
QXcbScreen *parentScreen();
|
QXcbScreen *parentScreen();
|
||||||
|
|
||||||
QXcbScreen *initialScreen() const;
|
QXcbScreen *initialScreen() const;
|
||||||
void changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two = 0);
|
|
||||||
|
void setNetWmState(bool set, xcb_atom_t one, xcb_atom_t two = 0);
|
||||||
|
void setNetWmState(Qt::WindowFlags flags);
|
||||||
|
void setNetWmState(Qt::WindowStates state);
|
||||||
|
void setNetWmStateOnUnmappedWindow();
|
||||||
NetWmStates netWmStates();
|
NetWmStates netWmStates();
|
||||||
void setNetWmStates(NetWmStates);
|
|
||||||
|
|
||||||
void setMotifWmHints(Qt::WindowFlags flags);
|
void setMotifWmHints(Qt::WindowFlags flags);
|
||||||
|
|
||||||
void setNetWmStateWindowFlags(Qt::WindowFlags flags);
|
|
||||||
void updateNetWmStateBeforeMap();
|
|
||||||
|
|
||||||
void setTransparentForMouseEvents(bool transparent);
|
void setTransparentForMouseEvents(bool transparent);
|
||||||
void updateDoesNotAcceptFocus(bool doesNotAcceptFocus);
|
void updateDoesNotAcceptFocus(bool doesNotAcceptFocus);
|
||||||
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
INCLUDEPATH += $$PWD $$QT_BUILD_TREE/src/tools/uic
|
INCLUDEPATH += $$PWD $$QT_BUILD_TREE/src/tools/uic
|
||||||
|
|
||||||
DEFINES += QT_UIC_CPP_GENERATOR
|
|
||||||
|
|
||||||
# Input
|
# Input
|
||||||
HEADERS += $$PWD/cppwritedeclaration.h \
|
HEADERS += $$PWD/cppwritedeclaration.h \
|
||||||
$$PWD/cppwriteincludes.h \
|
$$PWD/cppwriteincludes.h \
|
||||||
|
@ -256,18 +256,11 @@ bool Driver::uic(const QString &fileName, DomUI *ui, QTextStream *out)
|
|||||||
m_output = out != 0 ? out : &m_stdout;
|
m_output = out != 0 ? out : &m_stdout;
|
||||||
|
|
||||||
Uic tool(this);
|
Uic tool(this);
|
||||||
bool rtn = false;
|
const bool result = tool.write(ui);
|
||||||
#ifdef QT_UIC_CPP_GENERATOR
|
|
||||||
rtn = tool.write(ui);
|
|
||||||
#else
|
|
||||||
Q_UNUSED(ui);
|
|
||||||
fprintf(stderr, "uic: option to generate cpp code not compiled in [%s:%d]\n",
|
|
||||||
__FILE__, __LINE__);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
m_output = oldOutput;
|
m_output = oldOutput;
|
||||||
|
|
||||||
return rtn;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Driver::uic(const QString &fileName, QTextStream *out)
|
bool Driver::uic(const QString &fileName, QTextStream *out)
|
||||||
|
@ -115,7 +115,6 @@ int runUic(int argc, char *argv[])
|
|||||||
driver.option().postfix = parser.value(postfixOption);
|
driver.option().postfix = parser.value(postfixOption);
|
||||||
driver.option().translateFunction = parser.value(translateOption);
|
driver.option().translateFunction = parser.value(translateOption);
|
||||||
driver.option().includeFile = parser.value(includeOption);
|
driver.option().includeFile = parser.value(includeOption);
|
||||||
driver.option().generator = (parser.value(generatorOption).toLower() == QLatin1String("java")) ? Option::JavaGenerator : Option::CppGenerator;
|
|
||||||
|
|
||||||
if (parser.isSet(noStringLiteralOption))
|
if (parser.isSet(noStringLiteralOption))
|
||||||
fprintf(stderr, "The -s, --no-stringliteral option is deprecated and it won't take any effect.\n");
|
fprintf(stderr, "The -s, --no-stringliteral option is deprecated and it won't take any effect.\n");
|
||||||
|
@ -36,12 +36,6 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
struct Option
|
struct Option
|
||||||
{
|
{
|
||||||
enum Generator
|
|
||||||
{
|
|
||||||
CppGenerator,
|
|
||||||
JavaGenerator
|
|
||||||
};
|
|
||||||
|
|
||||||
unsigned int headerProtection : 1;
|
unsigned int headerProtection : 1;
|
||||||
unsigned int copyrightHeader : 1;
|
unsigned int copyrightHeader : 1;
|
||||||
unsigned int generateImplemetation : 1;
|
unsigned int generateImplemetation : 1;
|
||||||
@ -51,7 +45,6 @@ struct Option
|
|||||||
unsigned int limitXPM_LineLength : 1;
|
unsigned int limitXPM_LineLength : 1;
|
||||||
unsigned int implicitIncludes: 1;
|
unsigned int implicitIncludes: 1;
|
||||||
unsigned int idBased: 1;
|
unsigned int idBased: 1;
|
||||||
Generator generator;
|
|
||||||
|
|
||||||
QString inputFile;
|
QString inputFile;
|
||||||
QString outputFile;
|
QString outputFile;
|
||||||
@ -61,10 +54,6 @@ struct Option
|
|||||||
QString postfix;
|
QString postfix;
|
||||||
QString translateFunction;
|
QString translateFunction;
|
||||||
QString includeFile;
|
QString includeFile;
|
||||||
#ifdef QT_UIC_JAVA_GENERATOR
|
|
||||||
QString javaPackage;
|
|
||||||
QString javaOutputDirectory;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Option()
|
Option()
|
||||||
: headerProtection(1),
|
: headerProtection(1),
|
||||||
@ -76,7 +65,6 @@ struct Option
|
|||||||
limitXPM_LineLength(0),
|
limitXPM_LineLength(0),
|
||||||
implicitIncludes(1),
|
implicitIncludes(1),
|
||||||
idBased(0),
|
idBased(0),
|
||||||
generator(CppGenerator),
|
|
||||||
prefix(QLatin1String("Ui_"))
|
prefix(QLatin1String("Ui_"))
|
||||||
{ indent.fill(QLatin1Char(' '), 4); }
|
{ indent.fill(QLatin1Char(' '), 4); }
|
||||||
|
|
||||||
|
@ -33,18 +33,12 @@
|
|||||||
#include "treewalker.h"
|
#include "treewalker.h"
|
||||||
#include "validator.h"
|
#include "validator.h"
|
||||||
|
|
||||||
#ifdef QT_UIC_CPP_GENERATOR
|
|
||||||
#include "cppwriteincludes.h"
|
#include "cppwriteincludes.h"
|
||||||
#include "cppwritedeclaration.h"
|
#include "cppwritedeclaration.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef QT_UIC_JAVA_GENERATOR
|
|
||||||
#include "javawriteincludes.h"
|
|
||||||
#include "javawritedeclaration.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <qxmlstream.h>
|
#include <qxmlstream.h>
|
||||||
#include <qfileinfo.h>
|
#include <qfileinfo.h>
|
||||||
|
#include <qscopedpointer.h>
|
||||||
#include <qtextstream.h>
|
#include <qtextstream.h>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@ -172,65 +166,33 @@ DomUI *Uic::parseUiFile(QXmlStreamReader &reader)
|
|||||||
|
|
||||||
bool Uic::write(QIODevice *in)
|
bool Uic::write(QIODevice *in)
|
||||||
{
|
{
|
||||||
if (option().generator == Option::JavaGenerator) {
|
QScopedPointer<DomUI> ui;
|
||||||
// the Java generator ignores header protection
|
|
||||||
opt.headerProtection = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DomUI *ui = 0;
|
|
||||||
{
|
{
|
||||||
QXmlStreamReader reader;
|
QXmlStreamReader reader;
|
||||||
reader.setDevice(in);
|
reader.setDevice(in);
|
||||||
ui = parseUiFile(reader);
|
ui.reset(parseUiFile(reader));
|
||||||
|
|
||||||
if (!ui)
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ui.isNull())
|
||||||
|
return false;
|
||||||
|
|
||||||
double version = ui->attributeVersion().toDouble();
|
double version = ui->attributeVersion().toDouble();
|
||||||
if (version < 4.0) {
|
if (version < 4.0) {
|
||||||
delete ui;
|
|
||||||
|
|
||||||
fprintf(stderr, "uic: File generated with too old version of Qt Designer\n");
|
fprintf(stderr, "uic: File generated with too old version of Qt Designer\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString language = ui->attributeLanguage();
|
const QString &language = ui->attributeLanguage();
|
||||||
driver()->setUseIdBasedTranslations(ui->attributeIdbasedtr());
|
driver()->setUseIdBasedTranslations(ui->attributeIdbasedtr());
|
||||||
|
|
||||||
bool rtn = false;
|
if (!language.isEmpty() && language.compare(QLatin1String("c++"), Qt::CaseInsensitive) != 0) {
|
||||||
|
fprintf(stderr, "uic: File is not a \"c++\" ui file, language=%s\n", qPrintable(language));
|
||||||
if (option().generator == Option::JavaGenerator) {
|
return false;
|
||||||
#ifdef QT_UIC_JAVA_GENERATOR
|
|
||||||
if (language.toLower() != QLatin1String("jambi")) {
|
|
||||||
fprintf(stderr, "uic: File is not a 'jambi' form\n");
|
|
||||||
delete ui;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
rtn = jwrite (ui);
|
|
||||||
#else
|
|
||||||
fprintf(stderr, "uic: option to generate java code not compiled in\n");
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
#ifdef QT_UIC_CPP_GENERATOR
|
|
||||||
if (!language.isEmpty() && language.toLower() != QLatin1String("c++")) {
|
|
||||||
fprintf(stderr, "uic: File is not a 'c++' ui file, language=%s\n", qPrintable(language));
|
|
||||||
delete ui;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
rtn = write (ui);
|
|
||||||
#else
|
|
||||||
fprintf(stderr, "uic: option to generate cpp code not compiled in\n");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delete ui;
|
return write(ui.data());
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QT_UIC_CPP_GENERATOR
|
|
||||||
bool Uic::write(DomUI *ui)
|
bool Uic::write(DomUI *ui)
|
||||||
{
|
{
|
||||||
using namespace CPP;
|
using namespace CPP;
|
||||||
@ -267,37 +229,6 @@ bool Uic::write(DomUI *ui)
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef QT_UIC_JAVA_GENERATOR
|
|
||||||
bool Uic::jwrite(DomUI *ui)
|
|
||||||
{
|
|
||||||
using namespace Java;
|
|
||||||
|
|
||||||
if (!ui || !ui->elementWidget())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (opt.copyrightHeader)
|
|
||||||
writeCopyrightHeader(ui);
|
|
||||||
|
|
||||||
pixFunction = ui->elementPixmapFunction();
|
|
||||||
if (pixFunction == QLatin1String("QPixmap::fromMimeSource"))
|
|
||||||
pixFunction = QLatin1String("qPixmapFromMimeSource");
|
|
||||||
|
|
||||||
externalPix = ui->elementImages() == 0;
|
|
||||||
|
|
||||||
info.acceptUI(ui);
|
|
||||||
cWidgetsInfo.acceptUI(ui);
|
|
||||||
WriteIncludes(this).acceptUI(ui);
|
|
||||||
|
|
||||||
Validator(this).acceptUI(ui);
|
|
||||||
WriteDeclaration(this).acceptUI(ui);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef QT_UIC_CPP_GENERATOR
|
|
||||||
|
|
||||||
void Uic::writeHeaderProtectionStart()
|
void Uic::writeHeaderProtectionStart()
|
||||||
{
|
{
|
||||||
@ -311,7 +242,6 @@ void Uic::writeHeaderProtectionEnd()
|
|||||||
QString h = drv->headerFileName();
|
QString h = drv->headerFileName();
|
||||||
out << "#endif // " << h << "\n";
|
out << "#endif // " << h << "\n";
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
bool Uic::isMainWindow(const QString &className) const
|
bool Uic::isMainWindow(const QString &className) const
|
||||||
{
|
{
|
||||||
|
@ -83,13 +83,7 @@ public:
|
|||||||
|
|
||||||
bool write(QIODevice *in);
|
bool write(QIODevice *in);
|
||||||
|
|
||||||
#ifdef QT_UIC_JAVA_GENERATOR
|
|
||||||
bool jwrite(DomUI *ui);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef QT_UIC_CPP_GENERATOR
|
|
||||||
bool write(DomUI *ui);
|
bool write(DomUI *ui);
|
||||||
#endif
|
|
||||||
|
|
||||||
bool isMainWindow(const QString &className) const;
|
bool isMainWindow(const QString &className) const;
|
||||||
bool isToolBar(const QString &className) const;
|
bool isToolBar(const QString &className) const;
|
||||||
@ -105,11 +99,9 @@ private:
|
|||||||
void writeCopyrightHeader(DomUI *ui);
|
void writeCopyrightHeader(DomUI *ui);
|
||||||
DomUI *parseUiFile(QXmlStreamReader &reader);
|
DomUI *parseUiFile(QXmlStreamReader &reader);
|
||||||
|
|
||||||
#ifdef QT_UIC_CPP_GENERATOR
|
|
||||||
// header protection
|
// header protection
|
||||||
void writeHeaderProtectionStart();
|
void writeHeaderProtectionStart();
|
||||||
void writeHeaderProtectionEnd();
|
void writeHeaderProtectionEnd();
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Driver *drv;
|
Driver *drv;
|
||||||
|
@ -1851,7 +1851,7 @@ void QColorDialogPrivate::_q_addCustom()
|
|||||||
QColorDialogOptions::setCustomColor(nextCust, cs->currentColor());
|
QColorDialogOptions::setCustomColor(nextCust, cs->currentColor());
|
||||||
if (custom)
|
if (custom)
|
||||||
custom->update();
|
custom->update();
|
||||||
nextCust = (nextCust+1) % 16;
|
nextCust = (nextCust+1) % QColorDialogOptions::customColorCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QColorDialogPrivate::retranslateStrings()
|
void QColorDialogPrivate::retranslateStrings()
|
||||||
|
@ -525,6 +525,12 @@ void tst_QVariant::canConvert_data()
|
|||||||
var = QVariant::fromValue<signed char>(-1);
|
var = QVariant::fromValue<signed char>(-1);
|
||||||
QTest::newRow("SChar")
|
QTest::newRow("SChar")
|
||||||
<< var << N << N << Y << N << Y << N << N << N << N << Y << N << N << Y << N << N << N << Y << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
|
<< var << N << N << Y << N << Y << N << N << N << N << Y << N << N << Y << N << N << N << Y << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
|
||||||
|
var = QVariant((short)-3);
|
||||||
|
QTest::newRow("Short")
|
||||||
|
<< var << N << N << Y << N << Y << N << N << N << N << Y << N << N << Y << N << Y << N << Y << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
|
||||||
|
var = QVariant((ushort)7);
|
||||||
|
QTest::newRow("UShort")
|
||||||
|
<< var << N << N << Y << N << Y << N << N << N << N << Y << N << N << Y << N << Y << N << Y << N << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
|
||||||
var = QVariant::fromValue<QJsonValue>(QJsonValue(QStringLiteral("hello")));
|
var = QVariant::fromValue<QJsonValue>(QJsonValue(QStringLiteral("hello")));
|
||||||
QTest::newRow("JsonValue")
|
QTest::newRow("JsonValue")
|
||||||
<< var << N << N << Y << N << N << N << N << N << N << Y << N << N << Y << N << N << Y << Y << Y << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
|
<< var << N << N << Y << N << N << N << N << N << N << Y << N << N << Y << N << N << Y << Y << Y << N << N << N << N << N << N << N << N << Y << N << N << Y << Y;
|
||||||
@ -563,6 +569,8 @@ void tst_QVariant::toInt_data()
|
|||||||
QTest::newRow( "char" ) << QVariant::fromValue('a') << int('a') << true;
|
QTest::newRow( "char" ) << QVariant::fromValue('a') << int('a') << true;
|
||||||
signed char signedChar = -13;
|
signed char signedChar = -13;
|
||||||
QTest::newRow( "signed char" ) << QVariant::fromValue(signedChar) << -13 << true;
|
QTest::newRow( "signed char" ) << QVariant::fromValue(signedChar) << -13 << true;
|
||||||
|
QTest::newRow( "short" ) << QVariant::fromValue(short(-7)) << int(-7) << true;
|
||||||
|
QTest::newRow( "ushort" ) << QVariant::fromValue(ushort(30000)) << 30000 << true;
|
||||||
QTest::newRow( "double" ) << QVariant( 3.1415927 ) << 3 << true;
|
QTest::newRow( "double" ) << QVariant( 3.1415927 ) << 3 << true;
|
||||||
QTest::newRow( "float" ) << QVariant( 3.1415927f ) << 3 << true;
|
QTest::newRow( "float" ) << QVariant( 3.1415927f ) << 3 << true;
|
||||||
QTest::newRow( "uint" ) << QVariant( 123u ) << 123 << true;
|
QTest::newRow( "uint" ) << QVariant( 123u ) << 123 << true;
|
||||||
|
@ -992,6 +992,20 @@ void tst_QMimeDatabase::installNewGlobalMimeType()
|
|||||||
const QString fooTestFile2 = QLatin1String(RESOURCE_PREFIX "magic-and-hierarchy2.foo");
|
const QString fooTestFile2 = QLatin1String(RESOURCE_PREFIX "magic-and-hierarchy2.foo");
|
||||||
QCOMPARE(db.mimeTypeForFile(fooTestFile2).name(), QString::fromLatin1("application/vnd.qnx.bar-descriptor"));
|
QCOMPARE(db.mimeTypeForFile(fooTestFile2).name(), QString::fromLatin1("application/vnd.qnx.bar-descriptor"));
|
||||||
|
|
||||||
|
// Test if we can use the default comment
|
||||||
|
{
|
||||||
|
struct RestoreLocale
|
||||||
|
{
|
||||||
|
~RestoreLocale() { QLocale::setDefault(QLocale::c()); }
|
||||||
|
} restoreLocale;
|
||||||
|
|
||||||
|
QLocale::setDefault(QLocale("zh_CN"));
|
||||||
|
QMimeType suseymp = db.mimeTypeForName("text/x-suse-ymp");
|
||||||
|
QVERIFY(suseymp.isValid());
|
||||||
|
QCOMPARE(suseymp.comment(),
|
||||||
|
QString::fromLatin1("YaST Meta Package"));
|
||||||
|
}
|
||||||
|
|
||||||
// Now test removing the mimetype definitions again
|
// Now test removing the mimetype definitions again
|
||||||
for (int i = 0; i < m_additionalMimeFileNames.size(); ++i)
|
for (int i = 0; i < m_additionalMimeFileNames.size(); ++i)
|
||||||
QFile::remove(destDir + m_additionalMimeFileNames.at(i));
|
QFile::remove(destDir + m_additionalMimeFileNames.at(i));
|
||||||
|
@ -40,6 +40,7 @@ android
|
|||||||
[exposeEventOnShrink_QTBUG54040]
|
[exposeEventOnShrink_QTBUG54040]
|
||||||
# QTBUG-69155
|
# QTBUG-69155
|
||||||
android
|
android
|
||||||
|
opensuse
|
||||||
[initialSize]
|
[initialSize]
|
||||||
# QTBUG-69159
|
# QTBUG-69159
|
||||||
android
|
android
|
||||||
|
@ -502,6 +502,8 @@ void tst_QAccessibilityLinux::testSlider()
|
|||||||
|
|
||||||
void tst_QAccessibilityLinux::testFocus()
|
void tst_QAccessibilityLinux::testFocus()
|
||||||
{
|
{
|
||||||
|
m_window->activateWindow();
|
||||||
|
QVERIFY(QTest::qWaitForWindowActive(m_window));
|
||||||
QLineEdit *lineEdit1 = new QLineEdit(m_window);
|
QLineEdit *lineEdit1 = new QLineEdit(m_window);
|
||||||
lineEdit1->setText("lineEdit 1");
|
lineEdit1->setText("lineEdit 1");
|
||||||
QLineEdit *lineEdit2 = new QLineEdit(m_window);
|
QLineEdit *lineEdit2 = new QLineEdit(m_window);
|
||||||
|
@ -633,13 +633,20 @@ void tst_QSqlQuery::bindBool()
|
|||||||
QVERIFY_SQL(q, exec());
|
QVERIFY_SQL(q, exec());
|
||||||
}
|
}
|
||||||
|
|
||||||
QVERIFY_SQL(q, exec("SELECT id, flag FROM " + tableName));
|
QVERIFY_SQL(q, exec("SELECT id, flag FROM " + tableName + " ORDER BY id"));
|
||||||
for (int i = 0; i < 2; ++i) {
|
for (int i = 0; i < 2; ++i) {
|
||||||
bool flag = i;
|
bool flag = i;
|
||||||
QVERIFY_SQL(q, next());
|
QVERIFY_SQL(q, next());
|
||||||
QCOMPARE(q.value(0).toInt(), i);
|
QCOMPARE(q.value(0).toInt(), i);
|
||||||
QCOMPARE(q.value(1).toBool(), flag);
|
QCOMPARE(q.value(1).toBool(), flag);
|
||||||
}
|
}
|
||||||
|
QVERIFY_SQL(q, prepare("SELECT flag FROM " + tableName + " WHERE flag = :filter"));
|
||||||
|
const bool filter = true;
|
||||||
|
q.bindValue(":filter", filter);
|
||||||
|
QVERIFY_SQL(q, exec());
|
||||||
|
QVERIFY_SQL(q, next());
|
||||||
|
QCOMPARE(q.value(0).toBool(), filter);
|
||||||
|
QFAIL_SQL(q, next());
|
||||||
QVERIFY_SQL(q, exec("DROP TABLE " + tableName));
|
QVERIFY_SQL(q, exec("DROP TABLE " + tableName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user