Re: [Interest] QDBusConnection::sessionBus() : caching required?
On quarta-feira, 1 de junho de 2016 00:07:18 BRT René J. V. Bertin wrote: > Here's another observation (& backtrace) potentially to be taken into > account for your fix: when I don't get a crash-on-exit I often get a > deadlock like so: Make sure you've applied the fix that the change I sent depends on, on top of current 5.6 branch. If that still happens with both fixes, please open a bug report. Note that when reporting a deadlock, it's important to show the backtrace from all threads. If only one is still running, clearly say so. A testcase would be appreciated. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] QDBusConnection::sessionBus() : caching required?
Thiago Macieira wrote: > You can call multiple times and you'll always get the same connection. OK, thanks. Here's another observation (& backtrace) potentially to be taken into account for your fix: when I don't get a crash-on-exit I often get a deadlock like so: * frame #0: 0x7fff85129716 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x7fff8af34c3b libsystem_pthread.dylib`_pthread_cond_wait + 727 frame #2: 0x000112abc77b QtCore`QWaitConditionPrivate::wait(this=0x7fda59e5a300, time=) + 75 at qwaitcondition_unix.cpp:136 frame #3: 0x000112abc62b QtCore`QWaitCondition::wait(this=0x7fda59e517d8, mutex=0x7fda59e517d0, time=18446744073709551615) + 155 at qwaitcondition_unix.cpp:208 frame #4: 0x000112ab683f QtCore`QSemaphore::acquire(this=0x7fff50614d38, n=1) + 79 at qsemaphore.cpp:137 frame #5: 0x000112cadc13 QtCore`QMetaObject::activate(sender=0x7fda59c56500, signalOffset=, local_signal_index=, argv=) + 2499 at qobject.cpp:3698 frame #6: 0x00011134f280 QtDBus`QDBusConnectionPrivate::signalNeedsDisconnecting(this=, _t1=, _t2=) + 64 at moc_qdbusconnection_p.cpp:345 frame #7: 0x0001113135ff QtDBus`QDBusConnectionPrivate::disconnectSignal(this=0x7fda59c56500, service=, path=, interface=, name=, argumentMatch=, signature=, receiver=, slot=) + 287 at qdbusintegrator.cpp:2188 frame #8: 0x0001113008fb QtDBus`QDBusConnection::disconnect(QString const&, QString const&, QString const&, QString const&, QObject*, char const*) [inlined] QStringList::QStringList(this=0x000112eed470, this=0x000112eed470, this=0x000112eecc30, this=0x000112eecc30, argumentMatch=0x000112eed470, signature=0x000112eecc30, receiver=) + 158 at qdbusconnection.cpp:864 frame #9: 0x00011130085d QtDBus`QDBusConnection::disconnect(this=0x7fda5c51b9e0, service=0x7fff50614ff8, path=0x7fff50614ff0, interface=0x7fff50614fe8, name=0x7fff50614fe0, receiver=0x7fda5a191000, slot=0x00011f0532d8) + 29 at qdbusconnection.cpp:822 frame #10: 0x00011eff0e88 qtcurve.so`QtCurve::Style::disconnectDBus(this=0x7fda5a191000) + 168 at qtcurve.cpp:712 frame #11: 0x00011f029e96 qtcurve.so`QtCurve::StylePlugin::~StylePlugin() [inlined] QtCurve::runAllCleanups() + 13 at qtcurve_plugin.cpp:86 frame #12: 0x00011f029e89 qtcurve.so`QtCurve::StylePlugin::~StylePlugin() [inlined] QtCurve::StylePlugin::~StylePlugin(this=) + 16 at qtcurve_plugin.cpp:167 frame #13: 0x00011f029e79 qtcurve.so`QtCurve::StylePlugin::~StylePlugin() [inlined] QtCurve::StylePlugin::~StylePlugin(this=) at qtcurve_plugin.cpp:166 frame #14: 0x00011f029e79 qtcurve.so`QtCurve::StylePlugin::~StylePlugin(this=) + 9 at qtcurve_plugin.cpp:166 frame #15: 0x000112c6e24d QtCore`QLibraryPrivate::unload(this=0x7fda59e51230, flag=NoUnloadSys) + 93 at qlibrary.cpp:551 frame #16: 0x000112c66d48 QtCore`QFactoryLoaderPrivate::~QFactoryLoaderPrivate(this=0x7fda59e50ca0) + 88 at qfactoryloader.cpp:88 frame #17: 0x000112c6714e QtCore`QFactoryLoaderPrivate::~QFactoryLoaderPrivate() [inlined] QFactoryLoaderPrivate::~QFactoryLoaderPrivate(this=0x7fda59e50ca0) + 14 at qfactoryloader.cpp:85 frame #18: 0x000112c67149 QtCore`QFactoryLoaderPrivate::~QFactoryLoaderPrivate(this=0x7fda59e50ca0) + 9 at qfactoryloader.cpp:85 frame #19: 0x000112ca5801 QtCore`QObject::~QObject() [inlined] QScopedPointerDeleter::cleanup(pointer=) + 2033 at qscopedpointer.h:54 frame #20: 0x000112ca57f6 QtCore`QObject::~QObject() [inlined] QScopedPointer::~QScopedPointer() + 4 at qscopedpointer.h:101 frame #21: 0x000112ca57f2 QtCore`QObject::~QObject() [inlined] QScopedPointer ::~QScopedPointer() at qscopedpointer.h:99 frame #22: 0x000112ca57f2 QtCore`QObject::~QObject(this=) + 2018 at qobject.cpp:1042 frame #23: 0x000112c6928e QtCore`QFactoryLoader::~QFactoryLoader() [inlined] QFactoryLoader::~QFactoryLoader(this=0x7fda59e2a3a0) + 14 at qfactoryloader.cpp:227 frame #24: 0x000112c69289 QtCore`QFactoryLoader::~QFactoryLoader(this=0x7fda59e2a3a0) + 9 at qfactoryloader.cpp:227 frame #25: 0x000111b93616 QtWidgets`(anonymous namespace)::Q_QGS_loader::innerFunction()::Cleanup::~Cleanup() [inlined] (anonymous namespace)::Q_QGS_loader::innerFunction()::Cleanup::~Cleanup() + 18 at qstylefactory.cpp:70 frame #26: 0x000111b93604 QtWidgets`(anonymous namespace)::Q_QGS_loader::innerFunction(this=)::Cleanup::~Cleanup() + 4 at qstylefactory.cpp:70 frame #27: 0x7fff8342d7b5 libsystem_c.dylib`__cxa_finalize + 177 That one goes away when I simply don't disconnect (but that apparently sometimes led to segfaults on Linux when events came in after the receiver was deleted (and the style plugin was already
Re: [Interest] QDBusConnection::sessionBus() : caching required?
On terça-feira, 31 de maio de 2016 23:12:15 BRT René J. V. Bertin wrote: > Using QtDBus during global destruction aside, can one use > QDbusConnection::sessionBus() multiple times or will that create so many > connections to the session bus? The documentation doesn't seem to make that > explicit, and your answer above could also apply only to using the method > during global take-down. You can call multiple times and you'll always get the same connection. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] QDBusConnection::sessionBus() : caching required?
Thiago Macieira wrote: >> It's not correct practice. >> >> The problem is attempting to use QtDBus during global destruction. >> Apparently QtDBus has already destroyed its internals. >> >> I can add a few protections for that. > > https://codereview.qt-project.org/161056 Ah, thanks for the quick reaction. I'll test your patch tomorrow. Using QtDBus during global destruction aside, can one use QDbusConnection::sessionBus() multiple times or will that create so many connections to the session bus? The documentation doesn't seem to make that explicit, and your answer above could also apply only to using the method during global take-down. R. ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] QDBusConnection::sessionBus() : caching required?
On terça-feira, 31 de maio de 2016 17:26:04 BRT Thiago Macieira wrote: > On terça-feira, 31 de maio de 2016 21:27:59 BRT René J.V. Bertin wrote: > > just like the ctor does when setting up DBus. Is that correct practice or > > should one somehow cache the result of sessionBus() in order to call it > > only once? > > It's not correct practice. > > The problem is attempting to use QtDBus during global destruction. > Apparently QtDBus has already destroyed its internals. > > I can add a few protections for that. https://codereview.qt-project.org/161056 -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] QDBusConnection::sessionBus() : caching required?
On terça-feira, 31 de maio de 2016 21:27:59 BRT René J.V. Bertin wrote: > just like the ctor does when setting up DBus. Is that correct practice or > should one somehow cache the result of sessionBus() in order to call it > only once? It's not correct practice. The problem is attempting to use QtDBus during global destruction. Apparently QtDBus has already destroyed its internals. I can add a few protections for that. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] QDBusConnection::sessionBus() : caching required?
Hi, I had a crash in QDBusConnection::sessionBus() earlier today, called from a dtor in a style plugin. The traceback showed a NULL "this" pointer (frame #12): frame #4: 0x7fff8b9035aa libsystem_platform.dylib`_sigtramp + 26 frame #5: 0x00010a30b15f QtCore`QMutex::lock() [inlined] std::__1::__atomic_base::compare_exchange_strong(__m=) + 1 at atomic:622 frame #6: 0x00010a30b15e QtCore`QMutex::lock() [inlined] bool QAtomicOps ::testAndSetAcquire (std::__1::atomic &, QMutexData*, QMutexData*, QMutexData**) at qatomic_cxx11.h:158 frame #7: 0x00010a30b15e QtCore`QMutex::lock() [inlined] QBasicAtomicPointer::testAndSetAcquire(QMutexData*, QMutexData*, QMutexData*&) at qbasicatomic.h:276 frame #8: 0x00010a30b15e QtCore`QMutex::lock() [inlined] QBasicMutex::fastTryLock(QMutexData*&) at qmutex.h:82 frame #9: 0x00010a30b15e QtCore`QMutex::lock(this=0x0020) + 14 at qmutex.cpp:219 frame #10: 0x000108b60f31 QtDBus`QDBusConnectionManager::busConnection(QDBusConnection::BusType) [inlined] QMutexLocker::QMutexLocker(m=0x0020) + 81 at qmutex.h:128 frame #11: 0x000108b60f29 QtDBus`QDBusConnectionManager::busConnection(QDBusConnection::BusType) [inlined] QMutexLocker::QMutexLocker(m=0x0020) at qmutex.h:131 frame #12: 0x000108b60f29 QtDBus`QDBusConnectionManager::busConnection(this=0x, type=SessionBus) + 73 at qdbusconnection.cpp:116 frame #13: 0x000108b63878 QtDBus`QDBusConnection::sessionBus() + 24 at qdbusconnection.cpp:1180 the dtor cannot do a double disconnect or something of the sort as far as I can see. It does however do auto bus = QDBusConnection::sessionBus(); just like the ctor does when setting up DBus. Is that correct practice or should one somehow cache the result of sessionBus() in order to call it only once? This is Qt 5.6, btw. Thanks, R. ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] 5.7 QWebChannel - question/observation
With a webenginepage across page loads I needed to setWebChannel(None) setWebChannel(channel) # new channel between each request. Otherwise I would get an error message "qt is not defined" when executing the script. Are channels suppose to be available across the llifecycle of the WebEnginePage? ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] About Qt StyleSheet
Hi, Actually, I think that problem is not related to any styles. If I write this: ui.newGroupNameLabel->setStyleSheet(" "); also it does not have to be QLabel. If I use QLineEdit, same problem occurs. Scenario is like that If I call this code piece in constructor than everything is fine and you can call setStyleSheet() function later there will be no problem. But If I call this later for example slot of some button whatever, It occurs. It is very strange, it affects whole widget after initialization. Also, I know that If I use QPalette, problem does not occur but this is not an option. Cheers, Berkay On Tue, May 31, 2016 at 6:04 PM, Elvis Stansvikwrote: > 2016-05-31 16:20 GMT+02:00 André Somers : > >> Hi, >> >> What I _think_ happens is that you currently are using a style that does >> not support style sheets. Only build in styles do, up to a point. If you >> then apply a style sheet, Qt probably switches to a fall-back style that >> _does_ support style sheets, but that has an effect on other widgets as >> well as you noticed. >> >> I'd steer clear of using style sheets if you can. They generally end up >> being more trouble than the're worth even though it seems like a simple >> technique to use at first. >> > I'd also stay clear of style sheets. What you can try instead is modifying > the foreground role of the palette with something like > > QPalette palette = ui.newGroupNameLabel->palette(); > palette.setColor(ui.newGroupNameLabel->foregroundRole(), Qt::black); > ui.newGroupNameLabel->setPalette(palette); > > Though it's not guaranteed to work on all platforms I think. > > You could also create your own custom label widget instead of using > QLabel, if you really need to change the default look. I guess using color="#0">... is also an option. > > Hope that helps. > > Elvis > >> André >> >> Note: I did not check any of this in either docs or source code. >> >> >> Op 31/05/2016 om 10:55 schreef Berkay Elbir: >> >> Hello All, >> >> I have a problem about Qt Stylesheets. I use this code piece, this is a >> QLabel inside a QDialog. >> >> ui.newGroupNameLabel->setStyleSheet("QLabel { color : black; }"); >> >> I also tried giving it a name usingQObject::setObjectName() and use an ID >> Selector to refer to it. But it still occurs. >> >> It affects whole project. I mean that affecting other widgets. All the >> expand symbols change to plus sign. This QLabel is unrelated to this >> widget(below). >> Did anyone face with this problem? >> >> >> [image: Inline image 1] >> >> >> [image: Inline image 2] >> >> Thanks in advance, >> >> Berkay >> >> >> >> ___ >> Interest mailing >> listInterest@qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest >> >> >> >> ___ >> Interest mailing list >> Interest@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > > ___ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] QTreeView expand icon changes unexpectedly Qt5.6.0 & VS2015
Are you sure it is not https://bugreports.qt.io/browse/QTBUG-52230 ? 2016-05-28 22:59 GMT+02:00 Ben Swerts: > Hi Anton, > > I noticed the same issue with VS2015 Update 2 and Qt 5.6.0 (commercial). > Your post made me realize this seems to be related to the combination of > these two tools. > Our application is built with VS2013 Update 5 while I'm preparing > everything > for an upgrade to VS2015. I'm quite certain this issue is not present when > compiling with VS2013. > > So if no one has logged a bug for this yet, I would advise you to log one. > > Regards, > > > Ben > > -Original Message- > From: Interest [mailto:interest-bounces+benswerts= > telenet...@qt-project.org] > On Behalf Of anton > Sent: Friday, 27 May, 2016 23:56 > To: interest@qt-project.org > Subject: [Interest] QTreeView expand icon changes unexpectedly Qt5.6.0 & > VS2015 > > Hi, > > I installed the following qt version on my Windows 7 (64bit): > > > http://download.qt.io/official_releases/qt/5.6/5.6.0/qt-opensource-windows-x > 86-msvc2015_64-5.6.0.exe > > I use Visual Studio 2015 update 2. > > > I create a Qt Widget application with q QTreeView and some QComboBox'es. > > In my treeview I see the expand iccons: > > - they look like a triangle lile '>' when the treenode > is *not* expanded > > - they look like a triangle lile 'V' when the treenode > is not *expanded* > > Now I click here and there in my application, clicl on a QComboBox and now > some strange magic happens. > > 1. The expand icons change to a '[+]': a plus in a rectangle >like you know it from the windows explorer. > > 2. As soon as the mouse pointer hoovers over the >expand icon it becomes *insisible*. > > In the Qt Designer in Qt Creator, I see the same problem, the expand icons > (in the property pane) look like a '[+]' like in the windows explorer, but > they becone invisible as soon as the mouse pointer is over the expand icon. > > > My questions: > > - do you observe the same things? > - did I forget to initialize something? > (don't think so because the Qt Designer has the same problem) > - or is it a bug which will be fixed in 5.6.1 or 5.7.0 ? > > > Thanks for a hint > > Anton > > ___ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > ___ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] About Qt StyleSheet
2016-05-31 16:20 GMT+02:00 André Somers: > Hi, > > What I _think_ happens is that you currently are using a style that does > not support style sheets. Only build in styles do, up to a point. If you > then apply a style sheet, Qt probably switches to a fall-back style that > _does_ support style sheets, but that has an effect on other widgets as > well as you noticed. > > I'd steer clear of using style sheets if you can. They generally end up > being more trouble than the're worth even though it seems like a simple > technique to use at first. > I'd also stay clear of style sheets. What you can try instead is modifying the foreground role of the palette with something like QPalette palette = ui.newGroupNameLabel->palette(); palette.setColor(ui.newGroupNameLabel->foregroundRole(), Qt::black); ui.newGroupNameLabel->setPalette(palette); Though it's not guaranteed to work on all platforms I think. You could also create your own custom label widget instead of using QLabel, if you really need to change the default look. I guess using ... is also an option. Hope that helps. Elvis > André > > Note: I did not check any of this in either docs or source code. > > > Op 31/05/2016 om 10:55 schreef Berkay Elbir: > > Hello All, > > I have a problem about Qt Stylesheets. I use this code piece, this is a > QLabel inside a QDialog. > > ui.newGroupNameLabel->setStyleSheet("QLabel { color : black; }"); > > I also tried giving it a name usingQObject::setObjectName() and use an ID > Selector to refer to it. But it still occurs. > > It affects whole project. I mean that affecting other widgets. All the > expand symbols change to plus sign. This QLabel is unrelated to this > widget(below). > Did anyone face with this problem? > > > [image: Inline image 1] > > > [image: Inline image 2] > > Thanks in advance, > > Berkay > > > > ___ > Interest mailing > listInterest@qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest > > > > ___ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] About Qt StyleSheet
Hi, What I _think_ happens is that you currently are using a style that does not support style sheets. Only build in styles do, up to a point. If you then apply a style sheet, Qt probably switches to a fall-back style that _does_ support style sheets, but that has an effect on other widgets as well as you noticed. I'd steer clear of using style sheets if you can. They generally end up being more trouble than the're worth even though it seems like a simple technique to use at first. André Note: I did not check any of this in either docs or source code. Op 31/05/2016 om 10:55 schreef Berkay Elbir: Hello All, I have a problem about Qt Stylesheets. I use this code piece, this is a QLabel inside a QDialog. ui.newGroupNameLabel->setStyleSheet("QLabel { color : black; }"); I also tried giving it a name usingQObject::setObjectName() and use an ID Selector to refer to it. But it still occurs. It affects whole project. I mean that affecting other widgets. All the expand symbols change to plus sign. This QLabel is unrelated to this widget(below). Did anyone face with this problem? Inline image 1 Inline image 2 Thanks in advance, Berkay ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] About Qt StyleSheet
Hello All, I have a problem about Qt Stylesheets. I use this code piece, this is a QLabel inside a QDialog. ui.newGroupNameLabel->setStyleSheet("QLabel { color : black; }"); I also tried giving it a name usingQObject::setObjectName() and use an ID Selector to refer to it. But it still occurs. It affects whole project. I mean that affecting other widgets. All the expand symbols change to plus sign. This QLabel is unrelated to this widget(below). Did anyone face with this problem? [image: Inline image 1] [image: Inline image 2] Thanks in advance, Berkay ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] widget rendering (alignment, sizing) issues on OS X
On Monday May 30 2016 15:22:50 Adam Light wrote: Hi, >To address this in our application, we use a QProxyStyle subclass in which >we reimplement layoutSpacing on Macintosh like so: > > if (spacing > 2) { > spacing /= 2; > } You're full of interesting suggestions :) Initial testing shows that could indeed be a solution, though a factor two seems a bit too much for radio buttons. And the way I implemented it at 2am it also nuked the colour palette which left me with windows sporting Qt's proprietary gray/beige. I take it you initialise the spacing variable from QProxyStyle::layoutSpacing(/*arguments we received*/)? I see 2 potential uses for this trick: 1- make a style plugin that is just a proxy for the standard (Macintosh) style but adds a (possibly configurable) layout spacing adjustment. No idea as yet how much overhead that will require for something that takes about 20 lines of code, but it would make the fix available to every Qt application 2- provide it via a KF5 framework so that it becomes trivial to deploy it in application code. The possibility to add a style selector menu came up, and that menu could add a virtual "Macintosh - compact" style if the "Macintosh" style is available on the host. The two approaches are of course not exclusive but I'm a bit hesitant to attack the 1st having only quite complex style plugins to use as an example. R. ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest