diff options
author | Morten Engvoldsen <morten.engvoldsen@nokia.com> | 2010-09-20 09:06:53 (GMT) |
---|---|---|
committer | Morten Engvoldsen <morten.engvoldsen@nokia.com> | 2010-09-20 09:06:53 (GMT) |
commit | 20fb8453679efb9d7a038983ce1dbfbfb492389d (patch) | |
tree | 637d0efe30bdf54cb6e4c8938acd4a1d49f25292 /tools | |
parent | 4b8542e958ebced0b324e64291c6d10d79680021 (diff) | |
parent | f5fcf515f73390ce124027335bb74d4a4c5f7b43 (diff) | |
download | Qt-20fb8453679efb9d7a038983ce1dbfbfb492389d.zip Qt-20fb8453679efb9d7a038983ce1dbfbfb492389d.tar.gz Qt-20fb8453679efb9d7a038983ce1dbfbfb492389d.tar.bz2 |
Merge branch '4.7' into mimir
Diffstat (limited to 'tools')
-rw-r--r-- | tools/assistant/tools/assistant/helpenginewrapper.cpp | 2 | ||||
-rw-r--r-- | tools/assistant/tools/qhelpconverter/filespage.cpp | 4 | ||||
-rw-r--r-- | tools/assistant/tools/qhelpconverter/filterpage.cpp | 2 | ||||
-rw-r--r-- | tools/configure/configure.pro | 1 | ||||
-rw-r--r-- | tools/designer/src/components/formeditor/formeditor_optionspage.cpp | 6 | ||||
-rw-r--r-- | tools/linguist/linguist/mainwindow.cpp | 6 | ||||
-rw-r--r-- | tools/linguist/linguist/sourcecodeview.cpp | 2 | ||||
-rw-r--r-- | tools/linguist/lupdate/cpp.cpp | 19 | ||||
-rw-r--r-- | tools/linguist/shared/translator.h | 4 | ||||
-rw-r--r-- | tools/qdoc3/htmlgenerator.cpp | 30 | ||||
-rw-r--r-- | tools/qdoc3/test/qt-html-templates.qdocconf | 62 | ||||
-rw-r--r-- | tools/qml/qmlruntime.cpp | 8 | ||||
-rw-r--r-- | tools/runonphone/ossignalconverter.cpp | 1 |
13 files changed, 65 insertions, 82 deletions
diff --git a/tools/assistant/tools/assistant/helpenginewrapper.cpp b/tools/assistant/tools/assistant/helpenginewrapper.cpp index 9748702..a53a9ee 100644 --- a/tools/assistant/tools/assistant/helpenginewrapper.cpp +++ b/tools/assistant/tools/assistant/helpenginewrapper.cpp @@ -114,7 +114,7 @@ private: QMap<QString, RecentSignal> m_recentQchUpdates; }; -const QString HelpEngineWrapper::TrUnfiltered = tr("Unfiltered"); +const QString HelpEngineWrapper::TrUnfiltered = HelpEngineWrapper::tr("Unfiltered"); HelpEngineWrapper *HelpEngineWrapper::helpEngineWrapper = 0; diff --git a/tools/assistant/tools/qhelpconverter/filespage.cpp b/tools/assistant/tools/qhelpconverter/filespage.cpp index 4ebf391..fd4a40e 100644 --- a/tools/assistant/tools/qhelpconverter/filespage.cpp +++ b/tools/assistant/tools/qhelpconverter/filespage.cpp @@ -59,8 +59,8 @@ FilesPage::FilesPage(QWidget *parent) connect(m_ui.removeAllButton, SIGNAL(clicked()), this, SLOT(removeAllFiles())); - m_ui.fileLabel->setText(tr("<p><b>Warning:</b> Be aware " - "when removing images or stylesheets since those files " + m_ui.fileLabel->setText(tr("<p><b>Warning:</b> " + "When removing images or stylesheets, be aware that those files " "are not directly referenced by the .adp or .dcf " "file.</p>")); } diff --git a/tools/assistant/tools/qhelpconverter/filterpage.cpp b/tools/assistant/tools/qhelpconverter/filterpage.cpp index c782943..c15a580 100644 --- a/tools/assistant/tools/qhelpconverter/filterpage.cpp +++ b/tools/assistant/tools/qhelpconverter/filterpage.cpp @@ -50,7 +50,7 @@ FilterPage::FilterPage(QWidget *parent) setTitle(tr("Filter Settings")); setSubTitle(tr("Specify the filter attributes for the " "documentation. If filter attributes are used, " - "also define a custom filter for it. Both, the " + "also define a custom filter for it. Both the " "filter attributes and the custom filters are " "optional.")); diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro index a3473af..8a62fe1 100644 --- a/tools/configure/configure.pro +++ b/tools/configure/configure.pro @@ -92,6 +92,7 @@ SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qiodevice.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qtextstream.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qtemporaryfile.cpp \ + $$QT_SOURCE_TREE/src/corelib/plugin/qsystemlibrary.cpp \ $$QT_SOURCE_TREE/src/corelib/tools/qbitarray.cpp \ $$QT_SOURCE_TREE/src/corelib/tools/qdatetime.cpp \ $$QT_SOURCE_TREE/src/corelib/tools/qmap.cpp \ diff --git a/tools/designer/src/components/formeditor/formeditor_optionspage.cpp b/tools/designer/src/components/formeditor/formeditor_optionspage.cpp index 102f44a..8e0cc66 100644 --- a/tools/designer/src/components/formeditor/formeditor_optionspage.cpp +++ b/tools/designer/src/components/formeditor/formeditor_optionspage.cpp @@ -86,9 +86,11 @@ ZoomSettingsWidget::ZoomSettingsWidget(QWidget *parent) : m_zoomCombo->setEditable(false); const IntList zoomValues = ZoomMenu::zoomValues(); const IntList::const_iterator cend = zoomValues.constEnd(); - //: Zoom percentage - for (IntList::const_iterator it = zoomValues.constBegin(); it != cend; ++it) + + for (IntList::const_iterator it = zoomValues.constBegin(); it != cend; ++it) { + //: Zoom percentage m_zoomCombo->addItem(QCoreApplication::translate("FormEditorOptionsPage", "%1 %").arg(*it), QVariant(*it)); + } // Layout setCheckable(true); diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp index 265df05..18baa24 100644 --- a/tools/linguist/linguist/mainwindow.cpp +++ b/tools/linguist/linguist/mainwindow.cpp @@ -1522,7 +1522,7 @@ void MainWindow::selectedMessageChanged(const QModelIndex &sortedIndex, const QM } m_phraseView->setSourceText(-1, QString()); } - if (m) { + if (m && !m->fileName().isEmpty()) { if (hasFormPreview(m->fileName())) { m_sourceAndFormView->setCurrentWidget(m_formPreviewView); m_formPreviewView->setSourceContext(model, m); @@ -1577,7 +1577,7 @@ void MainWindow::updateTranslation(const QStringList &translations) return; m->setTranslations(translations); - if (hasFormPreview(m->fileName())) + if (!m->fileName().isEmpty() && hasFormPreview(m->fileName())) m_formPreviewView->setSourceContext(m_currentIndex.model(), m); updateDanger(m_currentIndex, true); @@ -1996,7 +1996,7 @@ void MainWindow::updateLatestModel(int model) if (m_currentIndex.isValid()) { if (MessageItem *item = m_dataModel->messageItem(m_currentIndex)) { - if (hasFormPreview(item->fileName())) + if (!item->fileName().isEmpty() && hasFormPreview(item->fileName())) m_formPreviewView->setSourceContext(model, item); if (enableRw && !item->isObsolete()) m_phraseView->setSourceText(model, item->text()); diff --git a/tools/linguist/linguist/sourcecodeview.cpp b/tools/linguist/linguist/sourcecodeview.cpp index b8dd9c0..d2eef56 100644 --- a/tools/linguist/linguist/sourcecodeview.cpp +++ b/tools/linguist/linguist/sourcecodeview.cpp @@ -64,7 +64,7 @@ void SourceCodeView::setSourceContext(const QString &fileName, const int lineNum m_fileToLoad.clear(); setToolTip(fileName); - if (fileName.isNull()) { + if (fileName.isEmpty()) { clear(); m_currentFileName.clear(); appendHtml(tr("<i>Source code not available</i>")); diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp index 970d44b..6ea7299 100644 --- a/tools/linguist/lupdate/cpp.cpp +++ b/tools/linguist/lupdate/cpp.cpp @@ -489,6 +489,7 @@ STRING(class); STRING(findMessage); STRING(friend); STRING(namespace); +STRING(operator); STRING(qtTrId); STRING(return); STRING(struct); @@ -753,6 +754,20 @@ uint CppParser::getToken() if (yyWord == strnamespace) return Tok_namespace; break; + case 'o': + if (yyWord == stroperator) { + // Operator overload declaration/definition. + // We need to prevent those characters from confusing the followup + // parsing. Actually using them does not add value, so just eat them. + while (isspace(yyCh)) + yyCh = getChar(); + while (yyCh == '+' || yyCh == '-' || yyCh == '*' || yyCh == '/' || yyCh == '%' + || yyCh == '=' || yyCh == '<' || yyCh == '>' || yyCh == '!' + || yyCh == '&' || yyCh == '|' || yyCh == '~' || yyCh == '^' + || yyCh == '[' || yyCh == ']') + yyCh = getChar(); + } + break; case 'q': if (yyWord == strqtTrId) return Tok_trid; @@ -1678,6 +1693,8 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) functionContextUnresolved.clear(); // Pointless prospectiveContext.clear(); pendingContext.clear(); + + yyTok = getToken(); } break; case Tok_namespace: @@ -1689,7 +1706,6 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) HashString ns = HashString(text); yyTok = getToken(); if (yyTok == Tok_LeftBrace) { - yyTok = getToken(); namespaceDepths.push(namespaces.count()); enterNamespace(&namespaces, ns); @@ -1697,6 +1713,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions) functionContextUnresolved.clear(); prospectiveContext.clear(); pendingContext.clear(); + yyTok = getToken(); } else if (yyTok == Tok_Equals) { // e.g. namespace Is = OuterSpace::InnerSpace; QList<HashString> fullName; diff --git a/tools/linguist/shared/translator.h b/tools/linguist/shared/translator.h index cfb2178..02cfb07 100644 --- a/tools/linguist/shared/translator.h +++ b/tools/linguist/shared/translator.h @@ -123,8 +123,8 @@ class Translator public: Translator(); - bool load(const QString &filename, ConversionData &err, const QString &format /*= "auto"*/); - bool save(const QString &filename, ConversionData &err, const QString &format /*= "auto"*/) const; + bool load(const QString &filename, ConversionData &err, const QString &format /* = "auto" */); + bool save(const QString &filename, ConversionData &err, const QString &format /* = "auto" */) const; bool release(QFile *iod, ConversionData &cd) const; int find(const TranslatorMessage &msg) const; diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index bc71b6e..77e306a 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -943,10 +943,10 @@ int HtmlGenerator::generateAtom(const Atom *atom, } } else { - out() << "<ol type="; + out() << "<ol class="; if (atom->string() == ATOM_LIST_UPPERALPHA) { out() << "\"A\""; - } /* why type? */ + } /* why type? changed to */ else if (atom->string() == ATOM_LIST_LOWERALPHA) { out() << "\"a\""; } @@ -1966,7 +1966,7 @@ void HtmlGenerator::generateFooter(const Node *node) switch (application) { case Online: out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; - out() << " <!-- <script type=\"text/javascript\">\n"; + out() << " <script type=\"text/javascript\">\n"; out() << " var _gaq = _gaq || [];\n"; out() << " _gaq.push(['_setAccount', 'UA-4457116-5']);\n"; out() << " _gaq.push(['_trackPageview']);\n"; @@ -1977,7 +1977,7 @@ void HtmlGenerator::generateFooter(const Node *node) out() << "'.google-analytics.com/ga.js';\n"; out() << " var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n"; out() << " })();\n"; - out() << " </script> -->\n"; + out() << " </script>\n"; out() << "</body>\n"; break; case Creator: @@ -4185,36 +4185,16 @@ void HtmlGenerator::generateQmlSummary(const Section& section, CodeMarker *marker) { if (!section.members.isEmpty()) { - NodeList::ConstIterator m; - int count = section.members.size(); - bool twoColumn = false; - if (section.members.first()->type() == Node::QmlProperty) { - twoColumn = (count >= 5); - twoColumn = false; - } - if (twoColumn) - out() << "<table class=\"qmlsummary\">\n"; - if (++numTableRows % 2 == 1) - out() << "<tr class=\"odd topAlign\">"; - else - out() << "<tr class=\"even topAlign\">"; - // << "<tr><td class=\"topAlign\">"; out() << "<ul>\n"; - - int row = 0; + NodeList::ConstIterator m; m = section.members.begin(); while (m != section.members.end()) { - if (twoColumn && row == (int) (count + 1) / 2) - out() << "</ul></td><td class=\"topAlign\"><ul>\n"; out() << "<li class=\"fn\">"; generateQmlItem(*m,relative,marker,true); out() << "</li>\n"; - row++; ++m; } out() << "</ul>\n"; - if (twoColumn) - out() << "</td></tr>\n</table>\n"; } } diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index 7a6ebbb..b716f7c 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -9,11 +9,6 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ " <div id=\"nav-logo\">\n" \ " <a href=\"index.html\">Home</a></div>\n" \ " <a href=\"index.html\" class=\"qtref\"><span>Qt Reference Documentation</span></a>\n" \ - " <div id=\"narrowsearch\"><form onsubmit=\"return false;\" action=\"\" id=\"qtdocsearchTop\">\n" \ - " <fieldset>\n" \ - " <input type=\"text\" value=\"\" id=\"pageType2\" name=\"searchstring\"/>\n" \ - " </fieldset>\n" \ - " </form></div>\n" \ " <div id=\"nav-topright\">\n" \ " <ul>\n" \ " <li class=\"nav-topright-home\"><a href=\"http://qt.nokia.com/\">Qt HOME</a></li>\n" \ @@ -89,7 +84,7 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ " <li class=\"defaultLink\"><a href=\"modules.html\">Modules</a></li>\n" \ " <li class=\"defaultLink\"><a href=\"namespaces.html\">Namespaces</a></li>\n" \ " <li class=\"defaultLink\"><a href=\"qtglobal.html\">Global Declarations</a></li>\n" \ - " <li class=\"defaultLink\"><a href=\"qmlelements.html\">QML elements</a></li>\n" \ + " <li class=\"defaultLink\"><a href=\"qdeclarativeelements.html\">QML elements</a></li>\n" \ " </ul> \n" \ " </div>\n" \ " </div>\n" \ @@ -98,13 +93,13 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \ " Qt Topics</h2>\n" \ " <div id=\"list002\" class=\"list\">\n" \ " <ul id=\"ul002\" >\n" \ - " <li><a href=\"qt-basic-concepts.html\">Programming with Qt</a></li> \n" \ - " <li><a href=\"qtquick.html\">Device UI's & Qt Quick</a></li> \n" \ - " <li><a href=\"qt-gui-concepts.html\">UI Design with Qt</a></li> \n" \ - " <li><a href=\"developing-with-qt.html\">Cross-platform and Platform-specific</a></li> \n" \ - " <li><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \ - " <li><a href=\"technology-apis.html\">Qt and Key Technologies</a></li> \n" \ - " <li><a href=\"best-practices.html\">How-To's and Best Practices</a></li> \n" \ + " <li class=\"defaultLink\"><a href=\"qt-basic-concepts.html\">Programming with Qt</a></li> \n" \ + " <li class=\"defaultLink\"><a href=\"qtquick.html\">Device UI's & Qt Quick</a></li> \n" \ + " <li class=\"defaultLink\"><a href=\"qt-gui-concepts.html\">UI Design with Qt</a></li> \n" \ + " <li class=\"defaultLink\"><a href=\"developing-with-qt.html\">Cross-platform and Platform-specific</a></li> \n" \ + " <li class=\"defaultLink\"><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \ + " <li class=\"defaultLink\"><a href=\"technology-apis.html\">Qt and Key Technologies</a></li> \n" \ + " <li class=\"defaultLink\"><a href=\"best-practices.html\">How-To's and Best Practices</a></li> \n" \ " </ul> \n" \ " </div>\n" \ " </div>\n" \ @@ -138,20 +133,20 @@ HTML.postpostheader = " </ul>\n" \ " <li id=\"print\" class=\"t_button\"><a href=\"javascript:this.print();\">\n" \ " <span>Print</span></a></li>\n" \ " </ul>\n" \ - " </div>\n" \ + " </div>\n" \ " </div>\n" \ " <div class=\"content\">\n" -HTML.footer = " <!-- /div -->\n" \ +HTML.footer = "" \ " <div class=\"feedback t_button\">\n" \ " [+] Documentation Feedback</div>\n" \ " </div>\n" \ " </div>\n" \ + " </div> \n" \ " <div class=\"ft\">\n" \ " <span></span>\n" \ " </div>\n" \ " </div> \n" \ - " </div> \n" \ " <div class=\"footer\">\n" \ " <p>\n" \ " <acronym title=\"Copyright\">©</acronym> 2008-2010 Nokia Corporation and/or its\n" \ @@ -160,35 +155,24 @@ HTML.footer = " <!-- /div -->\n" \ " <p>\n" \ " All other trademarks are property of their respective owners. <a title=\"Privacy Policy\"\n" \ " href=\"http://qt.nokia.com/about/privacy-policy\">Privacy Policy</a></p>\n" \ - " <br />\n" \ - " <p>\n" \ - " Licensees holding valid Qt Commercial licenses may use this document in accordance with the" \ - " Qt Commercial License Agreement provided with the Software or, alternatively, in accordance" \ - " with the terms contained in a written agreement between you and Nokia.</p>\n" \ - " <p>\n" \ - " Alternatively, this document may be used under the terms of the <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU\n" \ - " Free Documentation License version 1.3</a>\n" \ - " as published by the Free Software Foundation.</p>\n" \ + " <br />\n" \ + " <p>\n" \ + " Licensees holding valid Qt Commercial licenses may use this document in accordance with the" \ + " Qt Commercial License Agreement provided with the Software or, alternatively, in accordance" \ + " with the terms contained in a written agreement between you and Nokia.</p>\n" \ + " <p>\n" \ + " Alternatively, this document may be used under the terms of the <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU\n" \ + " Free Documentation License version 1.3</a>\n" \ + " as published by the Free Software Foundation.</p>\n" \ " </div>\n" \ " <div id=\"feedbackBox\">\n" \ " <div id=\"feedcloseX\" class=\"feedclose t_button\">X</div>\n" \ " <form id=\"feedform\" action=\"http://doc.qt.nokia.com/docFeedbck/feedback.php\" method=\"get\">\n" \ - " <p id=\"noteHead\">Thank you for giving your feedback. <div class=\"note\">Make sure it is related to this specific page. For more general bugs and \n" \ - " requests, please use the <a href=\"http://bugreports.qt.nokia.com/secure/Dashboard.jspa\">Qt Bug Tracker</a>.</div></p>\n" \ + " <p id=\"noteHead\">Thank you for giving your feedback.</p> <p class=\"note\">Make sure it is related to this specific page. For more general bugs and \n" \ + " requests, please use the <a href=\"http://bugreports.qt.nokia.com/secure/Dashboard.jspa\">Qt Bug Tracker</a>.</p>\n" \ " <p><textarea id=\"feedbox\" name=\"feedText\" rows=\"5\" cols=\"40\"></textarea></p>\n" \ " <p><input id=\"feedsubmit\" class=\"feedclose\" type=\"submit\" name=\"feedback\" /></p>\n" \ " </form>\n" \ " </div>\n" \ " <div id=\"blurpage\">\n" \ - " </div>\n" \ - " <!--/div -->\n" \ - "<script type=\"text/javascript\">\n" \ - " var _gaq = _gaq || [];\n" \ - " _gaq.push([\'_setAccount\', \'UA-4457116-5\']);\n" \ - " _gaq.push([\'_trackPageview\']);\n" \ - " (function() {\n" \ - " var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\n" \ - " ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n" \ - " var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n" \ - " })();\n" \ - "</script>\n" + " </div>\n"
\ No newline at end of file diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp index b38e80d..c59621a 100644 --- a/tools/qml/qmlruntime.cpp +++ b/tools/qml/qmlruntime.cpp @@ -692,12 +692,14 @@ QDeclarativeViewer::~QDeclarativeViewer() void QDeclarativeViewer::enableExperimentalGestures() { +#ifndef QT_NO_GESTURES canvas->viewport()->grabGesture(Qt::TapGesture,Qt::DontStartGestureOnChildren|Qt::ReceivePartialGestures|Qt::IgnoredGesturesPropagateToParent); canvas->viewport()->grabGesture(Qt::TapAndHoldGesture,Qt::DontStartGestureOnChildren|Qt::ReceivePartialGestures|Qt::IgnoredGesturesPropagateToParent); canvas->viewport()->grabGesture(Qt::PanGesture,Qt::DontStartGestureOnChildren|Qt::ReceivePartialGestures|Qt::IgnoredGesturesPropagateToParent); canvas->viewport()->grabGesture(Qt::PinchGesture,Qt::DontStartGestureOnChildren|Qt::ReceivePartialGestures|Qt::IgnoredGesturesPropagateToParent); canvas->viewport()->grabGesture(Qt::SwipeGesture,Qt::DontStartGestureOnChildren|Qt::ReceivePartialGestures|Qt::IgnoredGesturesPropagateToParent); canvas->viewport()->setAttribute(Qt::WA_AcceptTouchEvents); +#endif } QDeclarativeView *QDeclarativeViewer::view() const @@ -1067,11 +1069,7 @@ void QDeclarativeViewer::loadDummyDataFiles(const QString& directory) QStringList list = dir.entryList(); for (int i = 0; i < list.size(); ++i) { QString qml = list.at(i); - QFile f(dir.filePath(qml)); - f.open(QIODevice::ReadOnly); - QByteArray data = f.readAll(); - QDeclarativeComponent comp(canvas->engine()); - comp.setData(data, QUrl()); + QDeclarativeComponent comp(canvas->engine(), dir.filePath(qml)); QObject *dummyData = comp.create(); if(comp.isError()) { diff --git a/tools/runonphone/ossignalconverter.cpp b/tools/runonphone/ossignalconverter.cpp index 6554e9f..8566458 100644 --- a/tools/runonphone/ossignalconverter.cpp +++ b/tools/runonphone/ossignalconverter.cpp @@ -42,6 +42,7 @@ #include "ossignalconverter_p.h" #include <signal.h> #include <QTimer> +#include <stdio.h> Q_GLOBAL_STATIC(OsSignalConverter, osSignalConverter); |