From dc8a1ed20fb0a0a7341f940a4c224e2002928f4e Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Thu, 28 Apr 2022 12:56:49 -0400 Subject: Improve navigation to correct tab when error/warn indicator is clicked Fix potential hang and new tab navigation when clicking error/warn indicator --- ui/logview.h | 12 ++++-------- ui/uicontext.h | 10 ++++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ui/logview.h b/ui/logview.h index 2c4d6057..c7e5af07 100644 --- a/ui/logview.h +++ b/ui/logview.h @@ -253,26 +253,22 @@ class BINARYNINJAUIAPI LogStatus : public QWidget QMenu* m_menu; std::mutex m_countMutex; - int m_totalErrorCount = 0; - int m_totalWarnCount = 0; std::map m_sessionErrorCount; std::map m_sessionWarnCount; size_t m_sessionId {0}; LogView* m_logView; - std::map getSessionToNameMap(); public: LogStatus(QWidget* parent); void setLogView(LogView* view) { m_logView = view; } void incrementErrorCount(uint64_t session, int count); void incrementWarningCount(uint64_t session, int count); - void clearIndicators(bool warnings, bool errors); void checkForErrors(); - void focusTab(QString tabName); - + void focusTab(UIContext* context, QWidget* tab); + void clearIndicators(); void updateTheme(); public Q_SLOTS: void notifySessionChanged(size_t sessionId); - private Q_SLOTS: - void clearStatus(bool error); + public Q_SLOTS: + void clicked(bool error); }; diff --git a/ui/uicontext.h b/ui/uicontext.h index 94b05b05..6a139dd6 100644 --- a/ui/uicontext.h +++ b/ui/uicontext.h @@ -271,6 +271,16 @@ class BINARYNINJAUIAPI UIContext */ virtual std::vector> getAvailableBinaryViews() = 0; + /*! + Gets the tab for for a given sessionId + */ + virtual QWidget* getTabForSessionId(uint64_t sessionId) = 0; + + /*! + Gets the name of a tab for the given session + */ + virtual QString getTabNameForSessionId(uint64_t sessionId) = 0; + /*! Get the currently visible View for the currently visible ViewFrame (if it exists) \return Current View or nullptr if the current ViewFrame is null or does not have a View -- cgit v1.3.1