partial Merge bitcoin-core/gui#30: Disable the main window toolbar when the modal overlay is shown

BACKPORT COMMENT
Central widget is null at this point in our implementation. Also, we have no issues with the toolbar which original PR was aimed to fix.
Code is not presented in this commit is DNM, merged only changes in qt/modaloverlay (except b4c1af9#diff-bd2b12135c597b047fffc3b7a8e86e4a965c86ec7763f6ea885b6d8f6f702d10R40-R42 which is unused)

--------------------
d0cc1f6df740e03ca0213a3754c3277b01ae2c05 qt: Disable toolbar when overlay is shown (Hennadii Stepanov)
e74cd2083d579b14b0b718aa36796f2bcf679600 qt, refactor: Cleanup ModalOverlay slots (Hennadii Stepanov)

Pull request description:

  Keeping the main window toolbar activated while the modal overlay is shown could create the appearance of the non-responsive GUI.

  Fixes #22.

  ---

  On master (ca055885c631de8ac0ffe24be6b02835dbcc039d):

  ![Screenshot from 2020-07-11 13-07-00](https://user-images.githubusercontent.com/32963518/87221791-7504e100-c377-11ea-9689-ddd4b21b98f9.png)

  With this PR:

  ![Screenshot from 2020-07-11 13-07-39](https://user-images.githubusercontent.com/32963518/87221803-8817b100-c377-11ea-92c8-3602dc4d2451.png)

ACKs for top commit:
  harding:
    Tested ACK d0cc1f6df740e03ca0213a3754c3277b01ae2c05.  Tested on Linux/X11 as much as I could given it's a pretty small change; seems like a nice improvement.  I'm not experienced in Qt, but I don't see anything obviously problematic about the code.
  jonatack:
    ACK d0cc1f6 tested on Debian 5.7.6-1 (2020-06-24) x86_64 GNU/Linux
  LarryRuane:
    ACK d0cc1f6df740e03ca0213a3754c3277b01ae2c05 tested on Ubuntu 18.04.4 LTS

Tree-SHA512: e371b34231c01e77118deb100e0f280ba1cdef54e317f7f7d6ac322598bda811bd1bfe3035e90d87f8267f4f5d2095d34a8136911159db63694fd1b1b11335a1
This commit is contained in:
MarcoFalke 2020-07-13 10:34:21 +02:00 committed by pasta
parent 73fcda44a9
commit 19ec839e58
No known key found for this signature in database
GPG Key ID: 52527BEDABE87984

View File

@ -25,17 +25,18 @@ public:
explicit ModalOverlay(bool enable_wallet, QWidget *parent); explicit ModalOverlay(bool enable_wallet, QWidget *parent);
~ModalOverlay(); ~ModalOverlay();
public Q_SLOTS:
void tipUpdate(int count, const QDateTime& blockDate, double nVerificationProgress); void tipUpdate(int count, const QDateTime& blockDate, double nVerificationProgress);
void setKnownBestHeight(int count, const QDateTime& blockDate); void setKnownBestHeight(int count, const QDateTime& blockDate);
void toggleVisibility();
// will show or hide the modal layer // will show or hide the modal layer
void showHide(bool hide = false, bool userRequested = false); void showHide(bool hide = false, bool userRequested = false);
void closeClicked();
void hideForever(); void hideForever();
bool isLayerVisible() const { return layerIsVisible; } bool isLayerVisible() const { return layerIsVisible; }
public Q_SLOTS:
void toggleVisibility();
void closeClicked();
protected: protected:
bool eventFilter(QObject * obj, QEvent * ev) override; bool eventFilter(QObject * obj, QEvent * ev) override;
bool event(QEvent* ev) override; bool event(QEvent* ev) override;