forked from qt-creator/qt-creator
OutputPane: Fix inconsistency between output view buttons and popup menu
Since definition of function OutputPaneToggleButton::flash() sets the button visibility to true this leads to inconsistency which had been described in ticket. Task-number: QTCREATORBUG-19390 Change-Id: I5e88d2b42808cdec24d25e126b1c8de011a1db84 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
f41bebc843
commit
75705e3eab
@@ -79,7 +79,6 @@ public:
|
|||||||
Id id;
|
Id id;
|
||||||
OutputPaneToggleButton *button = nullptr;
|
OutputPaneToggleButton *button = nullptr;
|
||||||
QAction *action = nullptr;
|
QAction *action = nullptr;
|
||||||
bool buttonVisible = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static QVector<OutputPaneData> g_outputPanes;
|
static QVector<OutputPaneData> g_outputPanes;
|
||||||
@@ -511,7 +510,6 @@ void OutputPaneManager::initialize()
|
|||||||
|
|
||||||
bool visible = outPane->priorityInStatusBar() != -1;
|
bool visible = outPane->priorityInStatusBar() != -1;
|
||||||
data.button->setVisible(visible);
|
data.button->setVisible(visible);
|
||||||
data.buttonVisible = visible;
|
|
||||||
|
|
||||||
connect(data.action, &QAction::triggered, m_instance, [i] {
|
connect(data.action, &QAction::triggered, m_instance, [i] {
|
||||||
m_instance->shortcutTriggered(i);
|
m_instance->shortcutTriggered(i);
|
||||||
@@ -595,7 +593,6 @@ void OutputPaneManager::readSettings()
|
|||||||
if (idx < 0) // happens for e.g. disabled plugins (with outputpanes) that were loaded before
|
if (idx < 0) // happens for e.g. disabled plugins (with outputpanes) that were loaded before
|
||||||
continue;
|
continue;
|
||||||
const bool visible = settings->value(QLatin1String(outputPaneVisibleKeyC)).toBool();
|
const bool visible = settings->value(QLatin1String(outputPaneVisibleKeyC)).toBool();
|
||||||
g_outputPanes[idx].buttonVisible = visible;
|
|
||||||
g_outputPanes[idx].button->setVisible(visible);
|
g_outputPanes[idx].button->setVisible(visible);
|
||||||
}
|
}
|
||||||
settings->endArray();
|
settings->endArray();
|
||||||
@@ -707,7 +704,6 @@ void OutputPaneManager::setCurrentIndex(int idx)
|
|||||||
OutputPaneData &data = g_outputPanes[idx];
|
OutputPaneData &data = g_outputPanes[idx];
|
||||||
IOutputPane *pane = data.pane;
|
IOutputPane *pane = data.pane;
|
||||||
data.button->show();
|
data.button->show();
|
||||||
data.buttonVisible = true;
|
|
||||||
pane->visibilityChanged(true);
|
pane->visibilityChanged(true);
|
||||||
|
|
||||||
bool canNavigate = pane->canNavigate();
|
bool canNavigate = pane->canNavigate();
|
||||||
@@ -727,7 +723,7 @@ void OutputPaneManager::popupMenu()
|
|||||||
for (OutputPaneData &data : g_outputPanes) {
|
for (OutputPaneData &data : g_outputPanes) {
|
||||||
QAction *act = menu.addAction(data.pane->displayName());
|
QAction *act = menu.addAction(data.pane->displayName());
|
||||||
act->setCheckable(true);
|
act->setCheckable(true);
|
||||||
act->setChecked(data.buttonVisible);
|
act->setChecked(data.button->isPaneVisible());
|
||||||
act->setData(idx);
|
act->setData(idx);
|
||||||
++idx;
|
++idx;
|
||||||
}
|
}
|
||||||
@@ -737,11 +733,10 @@ void OutputPaneManager::popupMenu()
|
|||||||
idx = result->data().toInt();
|
idx = result->data().toInt();
|
||||||
QTC_ASSERT(idx >= 0 && idx < g_outputPanes.size(), return);
|
QTC_ASSERT(idx >= 0 && idx < g_outputPanes.size(), return);
|
||||||
OutputPaneData &data = g_outputPanes[idx];
|
OutputPaneData &data = g_outputPanes[idx];
|
||||||
if (data.buttonVisible) {
|
if (data.button->isPaneVisible()) {
|
||||||
data.pane->visibilityChanged(false);
|
data.pane->visibilityChanged(false);
|
||||||
data.button->setChecked(false);
|
data.button->setChecked(false);
|
||||||
data.button->hide();
|
data.button->hide();
|
||||||
data.buttonVisible = false;
|
|
||||||
} else {
|
} else {
|
||||||
showPage(idx, IOutputPane::ModeSwitch);
|
showPage(idx, IOutputPane::ModeSwitch);
|
||||||
}
|
}
|
||||||
@@ -756,7 +751,7 @@ void OutputPaneManager::saveSettings() const
|
|||||||
const OutputPaneData &data = g_outputPanes.at(i);
|
const OutputPaneData &data = g_outputPanes.at(i);
|
||||||
settings->setArrayIndex(i);
|
settings->setArrayIndex(i);
|
||||||
settings->setValue(QLatin1String(outputPaneIdKeyC), data.id.toSetting());
|
settings->setValue(QLatin1String(outputPaneIdKeyC), data.id.toSetting());
|
||||||
settings->setValue(QLatin1String(outputPaneVisibleKeyC), data.buttonVisible);
|
settings->setValue(QLatin1String(outputPaneVisibleKeyC), data.button->isPaneVisible());
|
||||||
}
|
}
|
||||||
settings->endArray();
|
settings->endArray();
|
||||||
int heightSetting = m_outputPaneHeightSetting;
|
int heightSetting = m_outputPaneHeightSetting;
|
||||||
@@ -933,6 +928,11 @@ void OutputPaneToggleButton::setIconBadgeNumber(int number)
|
|||||||
updateGeometry();
|
updateGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool OutputPaneToggleButton::isPaneVisible() const
|
||||||
|
{
|
||||||
|
return isVisibleTo(parentWidget());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
@@ -138,6 +138,7 @@ public:
|
|||||||
void paintEvent(QPaintEvent*) override;
|
void paintEvent(QPaintEvent*) override;
|
||||||
void flash(int count = 3);
|
void flash(int count = 3);
|
||||||
void setIconBadgeNumber(int number);
|
void setIconBadgeNumber(int number);
|
||||||
|
bool isPaneVisible() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateToolTip();
|
void updateToolTip();
|
||||||
|
Reference in New Issue
Block a user