Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Owncloud client status dialog Pause/Resume buttons etc. remain disabled. #6

Closed
wants to merge 1 commit into from

Conversation

kyrofa
Copy link
Contributor

@kyrofa kyrofa commented Sep 16, 2012

QListView::activated() is currently used by the status dialog to determine which folder is selected (thereby also the state of the Pause/Resume button etc.). According to the docs, "how to activate items depends on the platform; e.g., by single- or double-clicking the item, or by pressing the Return or Enter key when the item is current." On Ubuntu 12.04 64-bit with Qt 4.8.1, left-clicking does not activate items, leaving the buttons disabled. Using QListView::clicked() instead of QListView::activated() fixes this issue, and makes the buttons change state as intended.

…lder selection (and thereby the state of the Pause/Resume button etc.). This signal is not emitted with a single left click, so the Pause/Resume button etc. remains grayed out. This problem is solved simply by using the QListView::clicked() signal instead.
@dragotin
Copy link
Contributor

Thanks for your patch. I used 'activated' because I though it would be the platform dependant correct operation but you're right, it creates confusion if the activation is not a single click.
As github tells me that your pull request can not be automatically merged, I will put it in manually if you don't mind.

@dragotin dragotin closed this Sep 20, 2012
@kyrofa
Copy link
Contributor Author

kyrofa commented Sep 20, 2012

Oh I don't mind in the least :) .

Thanks!

Kyle
On Sep 20, 2012 3:01 AM, "dragotin" notifications@github.com wrote:

Thanks for your patch. I used 'activated' because I though it would be the
platform dependant correct operation but you're right, it creates confusion
if the activation is not a single click.
As github tells me that your pull request can not be automatically merged,
I will put it in manually if you don't mind.


Reply to this email directly or view it on GitHubhttps://github.com//pull/6#issuecomment-8718393.

@Burtan Burtan mentioned this pull request Jan 17, 2013
ogoffart pushed a commit that referenced this pull request Jan 13, 2014
@labkode labkode mentioned this pull request Feb 17, 2015
ogoffart added a commit that referenced this pull request Jan 7, 2016
The Qt HTTP thread calls authenticationRequired (indirectly) using a
BlockingQueuedConnection. So when we call invalidateToken from slot
connected to this signal and end up calling QNAM::clearAccessCache which
waits on the thread for 5 seconds

Backtraces:

Qt HTTP thread:
 #0  0x00007ffff20c707f in pthread_cond_wait@@GLIBC_2.3.2 ()
 #1  0x00007ffff43f0c0b in QWaitConditionPrivate::wait
 #2  QWaitCondition::wait
 #3  0x00007ffff43ea06b in QSemaphore::acquire
 #4  0x00007ffff45dcf6f in QMetaObject::activate
[...]
 #9  0x00007ffff45dd607 in QMetaObject::activate
 #10 0x00007ffff4edbaf7 in QHttpNetworkReply::authenticationRequired
 #11 0x00007ffff4e0b2b4 in QHttpNetworkConnectionPrivate::handleAuthenticateChallenge
 #12 0x00007ffff4e10753 in QHttpNetworkConnectionChannel::handleStatus
 #13 0x00007ffff4e11cc9 in QHttpNetworkConnectionChannel::allDone
 #14 0x00007ffff4e14605 in QHttpProtocolHandler::_q_receiveReply

Main Thread:
 #0  0x00007ffff20c7428 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
 #1  0x00007ffff43f0b56 in QWaitConditionPrivate::wait_relative (time=5000, this=0x136c580)
 #2  QWaitConditionPrivate::wait (time=5000, this=0x136c580)
 #3  QWaitCondition::wait (this=this@entry=0x136c788, mutex=mutex@entry=0x136c760, time=time@entry=5000)
 #4  0x00007ffff43efa6e in QThread::wait (this=<optimized out>, time=time@entry=5000)
 #5  0x00007ffff4e1edd3 in QNetworkAccessManagerPrivate::clearCache
 #6  0x00007ffff7b6fb03 in OCC::HttpCredentials::invalidateToken()
 #7  0x000000000057adb4 in OCC::AccountState::slotInvalidCredentials()
 #8  0x000000000057ac76 in OCC::AccountState::slotConnectionValidatorResult(OCC::ConnectionValidator::Status, QStringList const&) ()
 #9  0x00000000005ab45c in OCC::AccountState::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
 #10 0x00007ffff45dcd30 in QMetaObject::activate
 #11 0x00007ffff7b78671 in OCC::ConnectionValidator::connectionResult(OCC::ConnectionValidator::Status, QStringList) ()
 #12 0x00007ffff7ae2514 in OCC::ConnectionValidator::reportResult(OCC::ConnectionValidator::Status) ()
 #13 0x00007ffff7ae39b7 in OCC::ConnectionValidator::slotAuthFailed(QNetworkReply*) ()
 #14 0x00007ffff7b784a9 in OCC::ConnectionValidator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
 #15 0x00007ffff45dcd30 in QMetaObject::activate
 #16 0x00007ffff7b766dc in OCC::AbstractNetworkJob::networkError(QNetworkReply*)
 #17 0x00007ffff7af9f6e in OCC::AbstractNetworkJob::slotFinished()
 #18 0x00007ffff7b7654d in OCC::AbstractNetworkJob::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
 #20 0x00007ffff45dd607 in QMetaObject::activate
 #21 0x00007ffff4edd143 in QNetworkReply::finished
 #22 0x00007ffff4e3fec7 in QNetworkReplyHttpImplPrivate::finished
 #23 0x00007ffff4e41818 in QNetworkReplyHttpImpl::close
 #24 0x00007ffff7b7047b in OCC::HttpCredentials::slotAuthentication(QNetworkReply*, QAuthenticator*) ()
 #25 0x00007ffff7b79092 in OCC::HttpCredentials::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
 #27 0x00007ffff45dd607 in QMetaObject::activate
 #28 0x00007ffff4e1d6fb in QNetworkAccessManager::authenticationRequired
 #29 0x00007ffff4e1ea07 in QNetworkAccessManagerPrivate::authenticationRequired
 #30 0x00007ffff4e3c784 in QNetworkReplyHttpImplPrivate::httpAuthenticationRequired

Another case of Main Thread:
 #5  0x00007ffff4e1edd3 in QNetworkAccessManagerPrivate::clearCache
 #6  0x00007ffff7b6fb03 in OCC::HttpCredentials::invalidateToken()
 #7  0x000000000057b1e4 in OCC::AccountState::slotInvalidCredentials() ()
 #8  0x00000000005abb8a in OCC::AccountState::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
 #9  0x00007ffff45dcd30 in QMetaObject::activate
 #10 0x00007ffff7b76ed5 in OCC::Account::invalidCredentials() ()
 #11 0x00007ffff7ad55f5 in OCC::Account::handleInvalidCredentials()
 #12 0x00007ffff7afa69a in OCC::AbstractNetworkJob::slotFinished()
 #13 0x00007ffff7b7654d in OCC::AbstractNetworkJob::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
 #15 0x00007ffff45dd607 in QMetaObject::activate
 #16 0x00007ffff4edd143 in QNetworkReply::finished
 #17 0x00007ffff4e3fec7 in QNetworkReplyHttpImplPrivate::finished
 #18 0x00007ffff4e41818 in QNetworkReplyHttpImpl::close
 #19 0x00007ffff7b7047b in OCC::HttpCredentials::slotAuthentication(QNetworkReply*, QAuthenticator*) ()
 #20 0x00007ffff7b79092 in OCC::HttpCredentials::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
 #22 0x00007ffff45dd607 in QMetaObject::activate
 #23 0x00007ffff4e1d6fb in QNetworkAccessManager::authenticationRequired
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants