Is it possible to make GoogleTest for a QMLExtensionPlugin? - qt

I'm trying GoogleTest for the first time and I need to test a QML plugin. I am working in QtCreator and I have already made a QuickTest for the same plugin. But I also wanted to run GoogleTest on the same. I went through the README for GoogleTest and I believe I have configured the project correctly, but I'm now getting 'undefined reference errors', probably due to incorrectly linking my library.
But then I began to wonder if it is actually possible to make a GoogleTest for a QML Extension Plugin. Or if it is possible is really a good idea to use GoogleTest over QuickTest? I could not find any examples of GoogleTest on QML Plugins. Can anyone throw some light on usage of GoogleTest on QML plugins please?

Related

add module in qt(QML module) [duplicate]

So when I create a new Qt project inside Qt Creator I'm only asked for some simple details like location of the project, build targets, the main window class name (along with header, source and form file) and at the enda choice to add it to version control.
After I create the project I'm only given the qt core and gui modules. My question is how do I add other modules (such as network or opengl). I've looked and looked, yet I cannot find anything on how to add other Qt modules easily. I know I can edit the .pro file, but unfortunately I don't know all the modules in Qt, nevermind the name I'm supposed to put there. Adding external libraries is easy, but how come there's no (obvious) option to add Qt libraries?
Help would be much appreciated ^_^ Thanks!
Oh yeah... I'm running Arch Linux if that's any help.
Edit your .pro file. It should has one line like this:
QT += core gui
Append the desired modules in this line. To get the module's names, just remove the "Qt" part in this list. (e.g. QtSql turns "sql")
I can't find that either.
It seems that in older versions of the "New project" wizard you used to be able to specify which modules you wanted to use, but even then you were not able to alter your choice later. And this seems gone now, so your only choice is to manually edit the .pro file.
As others have pointed out, you simply #include the module you want in the source and add the name of the module in the .pro file to the QT variable.
However the actual documentation you need which no one else has mentioned is the qmake Project Files page. qmake is very powerful and it's well worth getting familiar with how it works and I think that's why they don't provide a complete GUI for it, as it can handle some very complex scenarios.
You have to read the documentation to add the modules.
Frankly speaking, I never really felt like that there needs to be a GUI for that.

dependency qt.core not found for product

I get a lot of same errors when try to compile my project using qbs.
Like this:
Dependency "Qt.core" not found for product "dist".
Please create a Qt profile using the qbs-setup-qt tool if you haven't already done so.
Product 'dist' had errors and was disabled.
I use QtCreator. Should I "create a new Qt profile using the qbs-setup-qt tool"?
Please, can you explain what does it mean?
No, Qt Creator sets up the profiles automatically. The most common cause for this message is that the Kit you are using does not have a (valid) Qt version set. Please verify this first. If everything looks okay in that regard, please file an issue at bugreports.qt.io, and we will take it from there.

How do I get application output from a Qt Creator plugin?

I'm writing an plugin for Qt Creator that will use the application output for a secondary reason (real-time graphical display of data). However, I've run into the problem of getting the application output. I don't wish to steal the output completely, just duplicate it. However, being able to filter what the debugger gets would be nice but not a requirement.
In case you are wondering, I'm trying to avoid modifying existing plugins so that any update to Qt Creator won't conflict and require patching for every single new version.
Creator is a open source project and your contributions are welcome:-) So why don't you to ask for Creator to be changed? The fastest way to do that is to write a patch that implements the interfaces you want and then submit it via codereview.qt-project.org.
Adding another patch that actually uses those interfaces can help, as that makes it easier to judge whether that functionality is really needed or whether there is a better way to implement it.

Adding Qt Sources to QtCreator 2.4.1

I am currently using QtCreator 2.4.1 with Qt 4.7.4 development libraries (in Ubuntu) and am trying to track down a bug which after profiling with valgrind seems to occur internally within QGraphicsView::paintEvent(…) method
To help isolate this problem I would like to step into the Qt sources. Having done some searching through both the Qt forums and stack overflow and have not being able to find a way to integrate the sources with my version of QtCreator.
I have currently tried downloading the sources via the QtSDK manager and adding a “Source Path Mapping” within Tools->Options->Debugger. I am sure that this step is where I am making a mistake as I am unable to even switch to source when viewing internal Qt header files i.e. from QGraphicsView.h
I have so far tried adding the following Source Path Mappings
Source Path=/var/tmp/qt-src
TargetPath=/home/paul/QtSDK/QtSources/4.7.4
and
Source Path=/var/tmp/qt-src
TargetPath=/home/paul/QtSDK/QtSources/4.7.4/src
Neither works.
I have also tried building Qt directly from source, adding this to my "Qt versions" list within Qt Creator and creating a new project configuration using this version. This also did not work.
Likewise I have tried adding the src folders to my gdbinit file. This also fails to work.
I am completely lost with this.
Paul
Someone asked a similar question here: Need to step into Qt sources (my IDE is Qt Creator).
Someone else asked about Valgrind errors with Qt here: Suppression files for Qt memory leaks with Valgrind
And here is a little more info about Using Valgrind with Qt Creator along with some explanation about how to read the results. Its a little dated from late 2010.
Related Suggestions
I wouldn't debug the QGraphicsView class just because of all the effort to make it work or find the problem might be for nothing... Qt is moving to using the SceneGraph as the backend for QML and the rendering engine for QGraphicsView might become obsolete.
Updating to the latest stable build of the Qt libraries may make a big difference for QGraphicsView.
If you post the valgrind error you are getting to the Qt Trolls, someone might be able to explain what is going on for you.
There are other debugging techniques besides the traditional debugger. I've been programming in Qt in Windows (without valgrind) and with a large multi-threaded application, that loads a bunch of Dll's. I've had to put some faith into the Object Tree Model clean up and work on all the new calls I put in. Most of the time I just use QDebug to find errors. Then I am also using a combination of qInstallMessageHandler() with QDebug to implement decent logging for the hard to track bugs.
See also Qt Debugging Techniques.

Make a phone call with qt 4.6.3

I need to trigger a phone call from a Qt application. I looked to previous post without find a complete answer.
I need to make it with qt 4.6.3. I'm quite new to symbian development, I'm using the last nokiaSDK.
It MUST work ONLY on n97 and E71.
Can Anybody provide a solution?
May be a solution exec an extenal process using QProcess?
It seems like currently none of Qt APIs (including QtMobility) allows to do it. However, you can use native Symbian C++ API - CTelephony class. There are some examples showing how to make a phone call using this class. The obvious disadvantage is that it won't work on any other platform than Symbian.
You may be interested in this example: http://library.forum.nokia.com/topic/Qt_for_Symbian_Developers_Library/GUID-B4DA6005-3037-4FF8-82D5-BA748532E648.html#GUID-B4DA6005-3037-4FF8-82D5-BA748532E648. It shows how to mix Symbian C++ code with Qt code, and it also uses CTelephony, so you just need to change method call from GetPhoneId() to DialNewCall(). Don't forget to add appropriate library (etel3rdparty.lib) in your .pro file.

Resources