diff options
author | Scott Murray <scott.murray@konsulko.com> | 2020-01-03 17:41:32 -0500 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2020-01-03 17:52:48 -0500 |
commit | a9790cc158955cb6774e662432bddcbd66274130 (patch) | |
tree | 0d2fcc56d2b8f2270948249f69c4f11e9318e03c /InfoPanel.cpp | |
parent | 15a79164e5bb3dd51185371a17d9ae8b48b40a85 (diff) |
Rework to raise navigation app and improve behavioricefish_8.99.5icefish/8.99.58.99.5
Add callback to raise navigation app via homescreen and hook it
up to the "Go" button handling. Additionally, testing of this
addition revealed that the result list and information panel
state is fragile and easily gotten into a bad state with respect
to repaints when raising the navigation app.
To fix this, the code has been reworked to change InfoPanel into
an actual widget and keep it and the result list widget around;
manipulating their visibilty rather than recreating them and
forcing whole-window repaints. As well, a slight delay is used
before raising the navigation app to let all repaints finish.
Ideally this would not be required, but the app likely needs a
more significant rewrite to fix it.
Bug-AGL: SPEC-3079
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: Id8dce33e2a2135179644305a88b340ecd1d7d3c5
Diffstat (limited to 'InfoPanel.cpp')
-rw-r--r-- | InfoPanel.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/InfoPanel.cpp b/InfoPanel.cpp index bc57e34..81cf317 100644 --- a/InfoPanel.cpp +++ b/InfoPanel.cpp @@ -22,22 +22,30 @@ #define LABEL_IMG_HEIGHT 220 #define LABEL_REVIEWS_HEIGHT 24 -InfoPanel::InfoPanel(QWidget *parent, Business & business, QRect rect): - nameLabel(parent, rect), - imageLabel(parent, rect), - addressLabel(parent, rect), - phoneLabel(parent, rect), - imgRatingLabel(parent, rect), - nbReviewsLabel(parent, rect), - btnsBackground(parent, rect), - cancelButton("Cancel", parent), - goButton("Go !", parent), +InfoPanel::InfoPanel(QWidget *parent, QRect rect): + QWidget(parent), + nameLabel(this, rect), + imageLabel(this, rect), + addressLabel(this, rect), + phoneLabel(this, rect), + imgRatingLabel(this, rect), + nbReviewsLabel(this, rect), + btnsBackground(this, rect), + cancelButton("Cancel", this), + goButton("Go !", this), networkManager(parent) { + setGeometry(rect); + setVisible(false); +} + +void InfoPanel::populateInfo(Business & business) +{ int y = 0; QPixmap pixmap; bool isImageDownloaded = false; QFont font, fontBold; + QRect rect = this->geometry(); font = nameLabel.font(); font.setPointSize(FONT_SIZE); @@ -110,12 +118,11 @@ InfoPanel::InfoPanel(QWidget *parent, Business & business, QRect rect): cancelButton.setStyleSheet(BTN_STYLE); cancelButton.setFont(font); cancelButton.setMinimumSize(QSize(rect.width()/4, 50)); - cancelButton.setGeometry(QRect(rect.x()+rect.width()/8, rect.y()+y-60, rect.width()/4, 50)); - cancelButton.setVisible(true); + //cancelButton.setGeometry(QRect(rect.x()+rect.width()/8, rect.y()+y-60, rect.width()/4, 50)); + cancelButton.setGeometry(QRect(rect.width()/8, y-60, rect.width()/4, 50)); goButton.setStyleSheet(BTN_STYLE); goButton.setFont(font); goButton.setMinimumSize(QSize(rect.width()/4, 50)); - goButton.setGeometry(QRect(rect.x()+rect.width()*5/8, rect.y()+y-60, rect.width()/4, 50)); - goButton.setVisible(true); + goButton.setGeometry(QRect(rect.width()*5/8, y-60, rect.width()/4, 50)); } |