Hi all,
I was listening in on the last irc meeting and caught an aftermeeting
mentioning about bad Qt4 performance. I offered an article and a possible
workaround I found recently, in case people are not aware of it, and was
asked to bring it to attention to other developers also, so here goes:
I'm suffering bad graphical performance in Qt4 and PyQt4 applications and
searched for solutions. I found a post on nokia.com [1] that mentions a
command line switch that might help.
In short: adding "-graphicssystem raster" to my Qt4 applications' command line
improved performance drastically for me. There's also a method to set it
programmatically, and an environment variable [2].
[1] http://labs.qt.nokia.com/2008/10/22/so-long-and-thanks-for-the-blit/
[2] http://doc.qt.nokia.com/4.7/qapplication.html#setGraphicsSystem
Thanks and much regards,
Sanne
Tim, all,
I am working on build scripts that will individually pull or update the source
by pulling code from the git tree. To make this more efficient for building
individual modules (and reduce unneeded bandwidth), it is recommended to use the
git clone form:
git clone --depth 1 http://scm.trinitydesktop.org/scm/git/whatever
But http://scm.trinitydesktop.org/scm/git/ refuses to allow '--depth 1' to be
used in the git clone. Anybody know why? The error received is:
Cloning into 'libart-lgpl'...
error: RPC failed; result=22, HTTP code = 500
fatal: The remote end hung up unexpectedly
It works fine without the --depth limitation. What say the 'git' masters?
--
David C. Rankin, J.D.,P.E.
I'm trying to download the git files as an anonymous user.
When it starts downloading, everything goes fine for the first 43 megs
and 50 files. All the files are put in the correct place in my build
tree--but then it stops downloading and displays:
-----------------
Cloning into experimental...
Password:
-----------------
When pressed enter, it started downloading again. But from then
on--every minute or so it would stop downloading and request a
password.
I Googled and read the man page, several tutorials and HowTo articles
but found nothing that seemed to apply to this problem.
I am using a fresh Slackware 13.37 install less KDE4 and my version of
git is 1.7.4.4.
I used this get command from the Trinity Project GIT Information page first:
git clone --recursive http://scm.trinitydesktop.org/scm/git/tde $GIT_TREE
Then I tried this instead, since some articles used this syntax:
git clone http://scm.trinitydesktop.org/scm/git/tde --recursive $GIT_TREE
The results were identical in both cases.
($GIT_TREE is the variable for the name of the directory where I save
the files.)
Does anyone have any idea what I am doing wrong?
I can't sit there for hours just waiting to press the enter key... I
could rig the script to send enter everytime it sees "Password:" but I
would rather know if there is something wrong before I start trying to
build a workaround kludge.
Keith
Continuing to shed light on my issue.
The same appeared on second host. Both have Ubuntu 'Precise' on it.
GCC version is different: 4.6.2 vs 4.5.3. cmake version: 2.8.5 vs
2.8.7. Looks like these two are not the cause of the problem. I should
really look at uic sources.
Will remind what's going on:
[ 18%] Building CXX object
kdeui/CMakeFiles/kdeui-shared.dir/kshortcutdialog_simple.cpp.o
/home/midenok/src/kde/tdelibs/build.debug/kdeui/kshortcutdialog_simple.cpp:
In constructor ‘KShortcutDialogSimple::KShortcutDialogSimple(QWidget*,
const char*)’:
/home/midenok/src/kde/tdelibs/build.debug/kdeui/kshortcutdialog_simple.cpp:31:50:
error: invalid use of incomplete type ‘struct QLabel’
Adding '#include <qlabel.h>' to kshortcutdialog_simple.cpp fixes it.
But moves straight to similar error:
[ 10%] Building CXX object
tdeui/CMakeFiles/tdeui-shared.dir/kshortcutdialog_advanced.cpp.o
/home/midenok/src/kde/tdelibs/build.debug/tdeui/kshortcutdialog_advanced.cpp:
In constructor ‘KShortcutDialogAdvanced::KShortcutDialogAdvanced(QWidget*,
const char*)’:
/home/midenok/src/kde/tdelibs/build.debug/tdeui/kshortcutdialog_advanced.cpp:33:58:
error: invalid use of incomplete type ‘struct QButtonGroup’
Looking at kshortcutdialog_simple.ui shows:
<widget class="TQLabel" row="0" column="0">
I suppose uic must add any q*.h include to any TQ* class it finds in .ui?
I found this online article useful:
http://stormyscorner.com/2012/02/its-scary-to-join-an-open-source-project.h…
I found Boudewijn Rempt's (lead maintainer of krita) comments insightful:
http://stormyscorner.com/2012/02/its-scary-to-join-an-open-source-project.h…
1. Can we modify our bugzilla to send an immediate reply to the filer:
"Hi XXX [this information is available when the user creates an account], thank you for your bug report/enhancement request. Our general policy is to review and comment within one to two weeks on all reports submitted."
2. We have discussed review boards. First, we need two or three people beyond Tim who is willing to review new reports. (Yes, I volunteer. :) ) Thereafter, can we start a policy as Boudewijn suggested that within a week or two somebody on the Trinity teams responds with a comment? For example:
"Thanks XXX for helping! This is a build/compile issue. I elevated the bug report to Blocker status."
"Thanks XXX for helping! I have confirmed this bug. This is a serious usability issue. I elevated the bug report to Major status."
"Thanks XXX for helping! Although irritating, this is a seldom used feature. We appreciate the frustration but we can get to this bug only after resolving those with a higher status."
"Thanks XXX for helping! This sounds like a legitimate issue but manpower limits our ability to dig deeper at this time. If you don't hear anything further in two months please provide a comment."
Perhaps at the end of each initial response for reports marked Blocker, Critical, and Major, we add the following statement:
"Please know that except under unusual circumstances, bug reports marked Blocker, Critical, and Major will be resolved before the next official release."
Seems another good policy is providing a decent explanation any time a bug report is resolved as WONTFIX. In that comment should be a statement that if anybody disagrees to post comments why they disagree.
Lastly, we need people who have some skills to start helping with bugs. Many bugs do not require C++ skills but require makefile, cmake, automake skills, etc. Other bugs require little more than knowing how to use grep and sed once the solution is realized. People don't need commit access, just get the patches submitted. Somebody who is qualified will review the patch.
Comments? Ideas?
Darrell
Hello All,
Raspberry Pi is on it's way to being launched and is no available for
preorder. I think this product would be a good candidate for Trinity
and ARM. Raspberry Pi is a $35 arm board.
I am going to order one, any maybe one of you would be interested in
purchasing them as well.
Currently we have ARM builds, but no arm devices have been physically
tested (right?) so I think this could be a opportunity for us to do
that with a very low cost
Calvin
Update starttde consistent with the changes made to tdelibs/tdesu/stub.cpp in bug report 766.
The first snippet that is deleted is redundant and conflicts with the same $PATH test several lines later in the script.
The second change ensures $PATH is consistent with stub.cpp, which places $PREFIX/bin in the path order just before /usr/bin and not blindly as first in the search path. If, oddly, /usr/bin is not in the search path then the script falls back to placing $PREFIX/bin first in the search path.
==============================================================
diff -urN tdebase/starttde tdebase.new/starttde
--- tdebase/starttde 2012-02-15 13:26:30.000000000 -0600
+++ tdebase.new/starttde 2012-02-26 19:08:44.000000000 -0600
@@ -76,15 +76,6 @@
fi
fi
-# In case we have been started with full pathname spec without being in PATH.
-bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'`
-if [ -n "$bindir" ]; then
- case $PATH in
- $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;;
- *) PATH=$bindir:$PATH; export PATH;;
- esac
-fi
-
# Boot sequence:
#
# tdeinit is used to fork off processes which improves memory usage
@@ -165,7 +156,14 @@
fi
if [ -d $TDEDIR/bin ]; then
if [ -z "`echo $PATH | grep \"$TDEDIR/bin\"`" ]; then
- export PATH=$TDEDIR/bin:$PATH
+ # Respect the traditional path order. Don't blindly place $TDEDIR/bin
+ # first in the path. Only place $TDEDIR/bin before /usr/bin. This order is
+ # consistent with tdelibs/tdesu/stub.cpp.
+ if [ -n "`echo $PATH | grep \"/usr/bin\"`" ]; then
+ export PATH="`echo $PATH | sed \"s|/usr/bin|$TDEDIR/bin:/usr/bin|\"`"
+ else
+ export PATH=$TDEDIR/bin:$PATH
+ fi
fi
fi
if [ -d $TDEDIR/share ]; then
==============================================================
I have tested the change. If there are no objections then I would like to push the patch.
Tim, All
kate/kwrite are two of the crown jewels of tde. It would be nice to improve
things as this project goes along. One simple idea is to provide the
kate->tools->sort feature to kwrite. Is this the type of thing that warrants a
feature request on the bug tracker to make sure it doesn't get lost or is there
some other etherpad or tool that would be better. My .02 is it should go in the
tracker as pads seem to come and go.
--
David C. Rankin, J.D.,P.E.
Tim, Darrell,
This is my first attempt a building tqt3 from the git tree and I've run into a
problem. The good news it the build continued for quite some time. I wasn't
timing, but is estimate 60+% of the build completed. The errors at the end of
the build were:
../../../../src/sql/drivers/odbc/qsql_odbc.cpp: In member function 'virtual int
TQODBCResult::numRowsAffected()':
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:983:60: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '2' to
'SQLRETURN SQLRowCount(SQLHSTMT, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp: In member function 'bool
TQODBCResult::exec()':
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1109:43: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1127:50: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1149:43: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1163:43: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1177:43: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1192:12: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1210:16: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1227:12: error: cannot convert
'SQLINTEGER* {aka int*}' to 'SQLLEN* {aka long int*}' for argument '10' to
'SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT,
SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*)'
../../../../src/sql/drivers/odbc/qsql_odbc.cpp: In member function 'virtual bool
TQODBCDriver::beginTransaction()':
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1666:23: warning: cast to pointer
from integer of different size [-Wint-to-pointer-cast]
../../../../src/sql/drivers/odbc/qsql_odbc.cpp: In member function 'bool
TQODBCDriver::endTrans()':
../../../../src/sql/drivers/odbc/qsql_odbc.cpp:1716:23: warning: cast to pointer
from integer of different size [-Wint-to-pointer-cast]
make[3]: *** [.obj/qsql_odbc.o] Error 1
make[3]: Leaving directory `/build/src/tqt3/plugins/src/sqldrivers/odbc'
make[2]: *** [sub-odbc] Error 2
make[2]: Leaving directory `/build/src/tqt3/plugins/src/sqldrivers'
make[1]: *** [sub-sqldrivers] Error 2
make[1]: Leaving directory `/build/src/tqt3/plugins/src'
make: *** [sub-plugins] Error 2
This looks liek issues with the odbc driver type definitions. Is this
something that you are familiar with and can help me with it? Or, is this
something you don't recognize and need me to send more to help narrow it down?
Looks like the src/sql/drivers/odbc/qsql_odbc.cpp code is not happy. The good
news, is that I've got the Arch build script developed to get (or should I say
git) it this for :) Let me know. Thanks!
--
David C. Rankin, J.D.,P.E.
I'm seeing these messages in my xsession log. The standard as-is message looks like that in the subject line. My messages now look like this:
[kinit] Could not load library (artswrapper)! Trying exec...
[kinit] Could not load library (/usr/local/bin/run_conky)! Trying exec...
[kinit] Could not load library (/usr/bin/VBoxClient-all)! Trying exec...
I added the [kinit] prefix in a patch I have not yet submitted to clarify the source of the message. I also patched the error string with the %s parameter to identify the object of the message.
The message sort of makes sense. kinit is trying to load/run/launch something that is not a library but is an executable. Browsing the source code (tdelibs/kinit/kinit.cpp) indicates there is a distinction between libraries and executables. Therefore I'm wondering whether the message should be displayed, clutters the xsession log, or should be revised.
As you can see from the as-is format, the message is not informative at all. Worse, the exclamation mark is misleading and needlessly disturbing to anybody reading the log. An exclamation mark should indicate something serious that needs attention but that is not the case here. The message is somewhat informative but is not emergency. If the message is valuable then rewording would help. Possibly something like:
[kinit] artswrapper is an executable and not a library. Launching with exec...
If there are no objections then I'd like to patch that error string as above and push to GIT.
Darrell