Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
[Qt] Add out-of-sync modal info layer #8371
Conversation
jonasschnelli
added
the
GUI
label
Jul 19, 2016
|
"Progress increase per hour" is a bit weird sounding to me, maybe "Sync progress per hour"? |
|
Looks very nice! |
|
Added the second info text and made sure, the font will be blackish (force push). |
jonasschnelli
added this to the
0.14 milestone
Jul 28, 2016
|
Testing this, and clicking hide doesn't seem to do anything? Also, this looks like a new compiler warning.
|
|
@fanquake: It should hide automatically if you are in sync,.. but only, If you haven't opened it manually (by pressing the warning icons). |
Joukehofman
commented
Aug 19, 2016
|
Look great! Maybe add to the warning text that it's also not possible to send bitcoins? |
|
Fixed warning. Added a short text passage |
|
Does the "This process is not complete yet" disappear when 100% is reached, but the window is still open? |
jonasschnelli
added some commits
Jul 19, 2016
|
@sipa: yes. It will (https://github.com/bitcoin/bitcoin/pull/8371/files#diff-0db7dd184df07a48c307ccc182021a68R776). But only if you not have manually opened the "window" by clicking on the alert icons (then it will stay intentionally). |
|
No, I mean that if you have manually clicked it, and the window does stay
open, does the "This process has not completes yet" text also stay? Because
that is very confusing...
|
|
Ah. I get your point. Maybe force closing then would make sense (or changing the text in the upper section [more complicate]). |
|
I think force closing is fine.
|
Agree |
|
Updated so that the layer/window does force close when the we detect in-sync state. |
|
The "number of blocks left" goes up and down for a while (presumably because the headers aren't processed yet?)... if the tip header is too far in the past, it may be better to say "unknown" there. |
Rather, the background colour should depend on the theme also? Why is this overriding the theme? |
|
Shouldn't this dialog also have a headline of some sort (e.g. "Wallet out of sync")? Because if I look at the screenshot, I only see the progress data, and the text starts with "The displayed information may be out of date", but in fact, it's not the currently displayed data (progress information) that is out of date, but the stuff in the wallet, which is obscured by the overlay. |
|
Updated with recommendation from @sipa to hide the remaining blocks during headers-first during IBD. |
MarcoFalke
approved these changes
Sep 21, 2016
Tested-only ACK. Found a few style nits. (You can fix them in a separate fixup commit)
ACK d8b062e
| + modalOverlay->setKnownBestHeight(clientModel->getHeaderTipHeight(), QDateTime::fromTime_t(clientModel->getHeaderTipTime())); | ||
| + } | ||
| + else | ||
| + modalOverlay->tipUpdate(count, blockDate, nVerificationProgress); |
MarcoFalke
Sep 21, 2016
Member
style nit: brackets are "required" for the else when they are used for the if.
| + // show progress speed if we have more then one sample | ||
| + if (blockProcessTime.size() >= 2) | ||
| + { | ||
| + // try to get the window from the last 500 seconds or at least 10 samples |
| + ui->expectedTimeLeft->setText(GUIUtil::formateNiceTimeOffset(remainingMSecs/1000.0)); | ||
| + | ||
| + // keep maximal 5000 samples | ||
| + static int maxSamples = 5000; |
| @@ -38,6 +38,10 @@ class WalletFrame : public QFrame | ||
| void showOutOfSyncWarning(bool fShow); | ||
| +Q_SIGNALS: | ||
| + /** Notify that the user has requested more information about the out-of-sync warning */ | ||
| + void requestedOfSyncWarningInfo(); |
|
Fixed nits reported by @MarcoFalke. |
|
@jonasschnelli On the contrary, violating the theme contradicts the goal of nice visualisations. |
|
@luke-jr: I think adding a black overlay with white text does not directly violates the theme. It just will result in a more controllable look and feel. |
|
Software controlling look-and-feel means the user's chosen look-and-feel is being ignored. Presumably the user has chosen them because they like it, so violating them simply won't be nice. |
|
I think themes are there for a reason. But happy if someone likes to try migrating this to the theme colors. |
|
(BTW, I don't mean to imply theme concerns need to interfere in merging this. By all means, feel free. We can work on theming later.) |
|
Too much text, esp too much bolded text. I automatically don't read the top part (though I did in the original version). Also "Spending bitcoins is not possible during that phase!" is not true. |
|
Well you can't spend funds your client hasn't seen the receival of.
|
|
@sipa Yes, but you can spend anything you can see... This is a common point of confusion already. And in the common case where you had bitcoin off for the last month, but received no payment since then, you're good to go for sending. |
|
@gmaxwell: would you be willing providing a better text? I agree that "spending Bitcoins is not possible" is not true and can lead to confusion, especially if one catches up just a couple of days (the info-layer will also be shown then). |
| + </font> | ||
| + </property> | ||
| + <property name="text"> | ||
| + <string>This means that recent transactions will not be visible, and the balance will not be up-to-date until this process has completed. Spending bitcoins is not possible during that phase!</string> |
|
Are you sure you pushed the text change? |
|
Pushed now.. |
|
ACK 08827df |
jonasschnelli
merged commit 08827df
into
bitcoin:master
Sep 23, 2016
1 check passed
added a commit
that referenced
this pull request
Sep 23, 2016
This was referenced Sep 24, 2016
| @@ -234,7 +250,7 @@ static void BlockTipChanged(ClientModel *clientmodel, bool initialSync, const CB | ||
| int64_t& nLastUpdateNotification = fHeader ? nLastHeaderTipUpdateNotification : nLastBlockTipUpdateNotification; | ||
| // if we are in-sync, update the UI regardless of last update time | ||
| - if (!initialSync || now - nLastUpdateNotification > MODEL_UPDATE_DELAY) { | ||
| + if (fHeader || !initialSync || now - nLastUpdateNotification > MODEL_UPDATE_DELAY) { |
MarcoFalke
Sep 25, 2016
•
Member
Why is this needed?
Oh, nvm. It is needed so a header update is not accidentally lost. Still, this makes the gui unresponsive when -reindex is used...
|
Instead of "this process" and "that phase" I would repeat "synchronization":
|







jonasschnelli commentedJul 19, 2016
Adresses #8060 and #7235
This change will slide in a semi transparent modal info layer in out-of-sync state resulting in a more prominent warning. Users can hide the modal info layer by pressing on "Hide".
Clicking on the out-of-sync warning icons will re-display the modal info layer.
In the modal info layer, the user can get three new values: