Developer Blog - Inventic.eu
  • Skipper - The ORM Designer
  • VsBuilds - Parallel building
  • Pulpo - Free Skipper CLI

Docker links

13 Dec 2016

Posted by: ludek.vodicka

Linux Windows #Linux #Windows #docker #virtualization

Cmder, Cygwin and other

15 Oct 2016

Posted by: ludek.vodicka

Windows #Windows #Bash #cygwin #command line

Incredibuild and "cannot create temporary il file"

This is caused by latest MS security update. After applying these two 3126587 and 3126593 previous versions of Incredibuild stopped working.

Command line error D8037 : cannot create temporary il file

The solution is to uninstall it

https://support.microsoft.com/en-us/kb/3126587
https://support.microsoft.com/en-us/kb/3126593

On Windows 10 the responsible update is KB3135173

Next steps

Also it's necessary to disable these updates in auto-update!

explorer_2016-04-04_10-02-20

More info:

http://xoreax.helpserve.com/Knowledgebase/Article/View/131/8/command-line-error-d8037--cannot-create-temporary-il-file

04 Apr 2016

Posted by: ludek.vodicka

Programming #Qt #incredibuild #cpp

QML Notes

Sources

F5 for instant reload

class UltraView : public QQuickView {
  protected: 
  void keyPressEvent(QKeyEvent*event) override { 
    if(event->key()==Qt::Key_F5){ 
      auto oldSource=source(); 
      setSource({}); 
      engine()->clearComponentCache(); 
      setSource(oldSource); 
    } 
  } 
};  

F10 and F11 for slowing down animations

else if(event->key()==Qt::Key_F10) {  
  QUnifiedTimer::instance()->setSlowModeEnabled(true);  
  QUnifiedTimer::instance()->setSlowdownFactor(10);  
} else if(event->key()==Qt::Key_F11) {  
  QUnifiedTimer::instance()->setSlowModeEnabled(false);  
  QUnifiedTimer::instance()->setSlowdownFactor(1);  
}  

QML Live editing

QML Lint

02 Jan 2016

Posted by: ludek.vodicka

Qt #Qt #debugging #qml #developing

Debugging QML application

Batches, clip, changes and overdraw

 

SET QSG_VISUALIZE=batches<br />
or<br />
SET QSG_VISUALIZE=clip<br />
or<br />
SET QSG_VISUALIZE=changes<br />
or<br />
SET QSG_VISUALIZE=overdraw</p>
<p>qmlviewer test.qml<br />

Links:

02 Jan 2016

Posted by: ludek.vodicka

Qt #Qt #debug #qml

Qml & QtQuick

Qt documentation

QML Canvas

QML States

QML MouseEvents

QML c++ integration

QtQuick painted items

QML charts

QML Diagrams

QML & QtQuick blogposts

QML Selection, multiselection, rectangle-selection

QML Tools

QML Applications

 

Other topics

27 Dec 2015

Posted by: ludek.vodicka

Qt #Qt #qtquick #qml

Qt 5.5.0 an Qt 5.5.1, QWebEngine, QtWebKit and ICU

Notes about compiling QtWebEngine (instead of QtWebkit) together with Qt 5.5.1

Qt 5.5.0 configure switches for ICU:

configure \<br />
    -icu \<br />
    -I Q:\SharedLibraries\icu4c-51_1\icu\include \<br />
    -L Q:\SharedLibraries\icu4c-51_1\icu\lib64<br />

Starting with 5.5.1 it shouldn't be necessary to compile and ship ICU libraries because ICU should be included in Qt package itself.

Compile QtWebkit

It's necessary to compile it as standalone module.

cd Qt/qtwebkit<br />
perl Tools\Scripts\build-webkit<br />

Simpler solution

Much easier solution seem to be to use http://www.awesomium.com/  ;-)

Notes:

  • When changing configure settings, it's sometimes necessary to perform complete clean rebuild. The  best way how to do that is download completely new source package.
  • nmake clean or nmake distclean unfortunately didn't work for 100%
  • It's necessary to have installed Ruby, Python and Perl

Source links:

Other info:

06 Dec 2015

Posted by: ludek.vodicka

Qt #Qt #webengine #webkit #icu

Qt - This application failed to start because it could not find or load the Qt platform plugin "windows"

This application failed to start because it could not find or load the Qt platform plugin "windows".

As temporary fix, set following environment variable in VS (Debugging->Environment):


QT_PLUGIN_PATH=q:\SharedLibraries\Qt32\bin\plugins

23 Sep 2015

Posted by: ludek.vodicka

Qt Windows #Qt #plugins

Crash in QTreeWidget / QTreeView index mapping on Mac OSX 10.10 part III

So, one more attempt. Previous articles (part1, part2) mentioned possible solutions to fix crash insinde the QTreeWidget and QAccessibleTableCell.

Unfortunately, deselecting current item still doesn't fix all issues. The problem with deselection is that it's not handled correctly via QAccessibleTableCell:

If current index isn't valid, QAccessible doesn't correctly update currect QAccessibleTableCell object which caused all this evil crashes.

So there are two ways how to fix it. One is to manually set QAccessibleTableCell but I didn't find a way how to do that. The second way is to disable QAccessible for Property editor. Unfortunately it's not an easy task. In QAccessible exists method setActive:

QAccessible::setActive(false)

But this method works only with AccessibleObserver class but not with QPlatformAcessibility which handles real QAcessible::isActive result. Because of this it's necessary to update setActive method in file qacessible.cpp inside the Qt.

Original method:

</p>
<p>void QAccessible::setActive(bool active)<br />
{<br />
  for (int i = 0; i &lt; qAccessibleActivationObservers()-&gt;count() ;++i)<br />
    qAccessibleActivationObservers()-&gt;at(i)-&gt;accessibilityActiveChanged(active);<br />
}</p>
<p>

and updated version:

void QAccessible::setActive(bool active)<br />
{<br />
  #ifndef QT_NO_ACCESSIBILITY<br />
    if ( QPlatformAccessibility *pfAccessibility = platformAccessibility() )<br />
      pfAccessibility-&gt;setActive(active);<br />
  #endif</p>
<p>  for (int i = 0; i &lt; qAccessibleActivationObservers()-&gt;count() ;++i)<br />
    qAccessibleActivationObservers()-&gt;at(i)-&gt;accessibilityActiveChanged(active);<br />
}</p>
<p>

In case you will find better way how to turn off accessibility, please let me know.

But there is still one more problem. Occasionally OS X decides to switch accessible back on:

And this is probably the reason why everything works ok on older OS X but not on 10.10. Because OS X 10.10 randomly turns accessible on which causes this crash. Accessible is usually turned on when opening some modal dialog.

This explains why opening an empty dialog increased the probability to crash the application. The only solution I have found is to disable QAccessible every time the PropertyEditor is cleared up.

21 May 2015

Posted by: ludek.vodicka

Programming Qt Mac OS #Qt #crash #tree #property-editor

Crash in QTreeWidget / QTreeView index mapping on Mac OSX 10.10 part II

As mentioned in the first part of this article, the workaround with focus unfortunately didn't work. In some cases application is still crashing. So after next hours of debugging and unsuccessful consulting the problem on stack overflow I probably found a the core reason of this bug and the solution too.

2015-05-18_0850

 

The core of this problem doesn't lie in the QTreeModel, but in Qt implementation of Cocoa Accessible. The problem is that although the PropertyTree is correctly cleared, there is object QAccessibleTableCell which isn't correctly updated after

clear()

.

This means that although the PropertyTree and TreeWidget is empty, the QAccessibleTableCell object still holds m_index variable to invalid element. And when

 NSAcessibleEntryPointrAttributeNames 

is executed, m_index is translated to QTreeWidget element pointer and accessed. And this means that application completely crashes.

The solution is pretty simple. Together with property editor clear set also current index and selected index to NULL.

	propertyBrowser-&gt;clear();<br />
	propertyManagers-&gt;clear();<br />
	propertyManagers-&gt;treeWidget()-&gt;setCurrentItem(NULL);<br />
	propertyManagers-&gt;treeWidget()-&gt;setItemSelected(NULL, false);<br />

And that is it. Thanks for this your application will not crash any more (on this bug ;-) ).

 

21 May 2015

Posted by: ludek.vodicka

Qt Mac OS #qt treewidget model crash

Page: 1 of 19