indicators: Prepare the visibility to be more granular
Currently either all or none inner indicators can be hidden/shown, and same of the outter. We'll soon allow some of them to be hidden, selectively, by the client app.
This commit is contained in:
@@ -55,14 +55,44 @@ QPoint ClassicIndicators::posForIndicator(DropIndicatorOverlayInterface::DropLoc
|
||||
return m_indicatorWindow->posForIndicator(loc);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::innerIndicatorsVisible() const
|
||||
bool ClassicIndicators::innerLeftIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_Inner);
|
||||
return dropIndicatorVisible(DropLocation_Left);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::outterIndicatorsVisible() const
|
||||
bool ClassicIndicators::innerRightIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_Outter);
|
||||
return dropIndicatorVisible(DropLocation_Right);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::innerTopIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_Top);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::innerBottomIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_Bottom);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::outterLeftIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_OutterLeft);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::outterRightIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_OutterRight);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::outterTopIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_OutterTop);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::outterBottomIndicatorVisible() const
|
||||
{
|
||||
return dropIndicatorVisible(DropLocation_OutterBottom);
|
||||
}
|
||||
|
||||
bool ClassicIndicators::tabIndicatorVisible() const
|
||||
@@ -88,9 +118,7 @@ void ClassicIndicators::updateVisibility()
|
||||
m_indicatorWindow->setVisible(false);
|
||||
}
|
||||
|
||||
Q_EMIT innerIndicatorsVisibleChanged();
|
||||
Q_EMIT outterIndicatorsVisibleChanged();
|
||||
Q_EMIT tabIndicatorVisibleChanged();
|
||||
Q_EMIT indicatorsVisibleChanged();
|
||||
}
|
||||
|
||||
void ClassicIndicators::raiseIndicators()
|
||||
|
||||
@@ -138,9 +138,9 @@ IndicatorWindow::IndicatorWindow(ClassicIndicators *classicIndicators_)
|
||||
|
||||
setAttribute(Qt::WA_TranslucentBackground);
|
||||
|
||||
connect(classicIndicators, &ClassicIndicators::innerIndicatorsVisibleChanged,
|
||||
connect(classicIndicators, &ClassicIndicators::indicatorsVisibleChanged,
|
||||
this, &IndicatorWindow::updateIndicatorVisibility);
|
||||
connect(classicIndicators, &ClassicIndicators::outterIndicatorsVisibleChanged,
|
||||
connect(classicIndicators, &ClassicIndicators::indicatorsVisibleChanged,
|
||||
this, &IndicatorWindow::updateIndicatorVisibility);
|
||||
|
||||
m_indicators << m_center << m_left << m_right << m_top << m_bottom
|
||||
@@ -199,13 +199,10 @@ void IndicatorWindow::resizeEvent(QResizeEvent *ev)
|
||||
|
||||
void IndicatorWindow::updateIndicatorVisibility()
|
||||
{
|
||||
for (Indicator *indicator : { m_left, m_right, m_bottom, m_top })
|
||||
indicator->setVisible(classicIndicators->innerIndicatorsVisible());
|
||||
|
||||
for (Indicator *indicator : { m_outterTop, m_outterLeft, m_outterRight, m_outterBottom })
|
||||
indicator->setVisible(classicIndicators->outterIndicatorsVisible());
|
||||
|
||||
m_center->setVisible(classicIndicators->tabIndicatorVisible());
|
||||
for (Indicator *indicator : { m_left, m_right, m_bottom, m_top,
|
||||
m_outterTop, m_outterLeft, m_outterRight, m_outterBottom,
|
||||
m_center })
|
||||
indicator->setVisible(classicIndicators->dropIndicatorVisible(indicator->m_dropLocation));
|
||||
|
||||
updateMask();
|
||||
}
|
||||
|
||||
@@ -23,9 +23,18 @@ class DOCKS_EXPORT ClassicIndicators : public DropIndicatorOverlayInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(bool innerIndicatorsVisible READ innerIndicatorsVisible NOTIFY innerIndicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool outterIndicatorsVisible READ outterIndicatorsVisible NOTIFY outterIndicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool tabIndicatorVisible READ tabIndicatorVisible NOTIFY tabIndicatorVisibleChanged)
|
||||
// Properties for QML
|
||||
Q_PROPERTY(bool innerLeftIndicatorVisible READ innerLeftIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool innerRightIndicatorVisible READ innerRightIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool innerTopIndicatorVisible READ innerTopIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool innerBottomIndicatorVisible READ innerBottomIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
|
||||
Q_PROPERTY(bool outterLeftIndicatorVisible READ outterLeftIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool outterRightIndicatorVisible READ outterRightIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool outterTopIndicatorVisible READ outterTopIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
Q_PROPERTY(bool outterBottomIndicatorVisible READ outterBottomIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
|
||||
Q_PROPERTY(bool tabIndicatorVisible READ tabIndicatorVisible NOTIFY indicatorsVisibleChanged)
|
||||
|
||||
public:
|
||||
explicit ClassicIndicators(DropArea *dropArea);
|
||||
@@ -33,19 +42,22 @@ public:
|
||||
DropLocation hover_impl(QPoint globalPos) override;
|
||||
QPoint posForIndicator(DropLocation) const override;
|
||||
|
||||
bool innerIndicatorsVisible() const;
|
||||
bool outterIndicatorsVisible() const;
|
||||
|
||||
// The tab/center indicator
|
||||
// Lots of getters needed because of QML:
|
||||
bool innerLeftIndicatorVisible() const;
|
||||
bool innerRightIndicatorVisible() const;
|
||||
bool innerTopIndicatorVisible() const;
|
||||
bool innerBottomIndicatorVisible() const;
|
||||
bool outterLeftIndicatorVisible() const;
|
||||
bool outterRightIndicatorVisible() const;
|
||||
bool outterTopIndicatorVisible() const;
|
||||
bool outterBottomIndicatorVisible() const;
|
||||
bool tabIndicatorVisible() const;
|
||||
|
||||
protected:
|
||||
bool onResize(QSize newSize) override;
|
||||
void updateVisibility() override;
|
||||
Q_SIGNALS:
|
||||
void innerIndicatorsVisibleChanged();
|
||||
void outterIndicatorsVisibleChanged();
|
||||
void tabIndicatorVisibleChanged();
|
||||
void indicatorsVisibleChanged();
|
||||
|
||||
private:
|
||||
friend class KDDockWidgets::Indicator;
|
||||
|
||||
@@ -21,7 +21,7 @@ Item {
|
||||
visible: width > 50 && height > 50 // don't show if window is too small'
|
||||
|
||||
ClassicIndicator {
|
||||
visible: _window.classicIndicators.outterIndicatorsVisible
|
||||
visible: _window.classicIndicators.outterLeftIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_OutterLeft
|
||||
anchors {
|
||||
left: parent.left
|
||||
@@ -31,7 +31,7 @@ Item {
|
||||
}
|
||||
|
||||
ClassicIndicator {
|
||||
visible: _window.classicIndicators.outterIndicatorsVisible
|
||||
visible: _window.classicIndicators.outterRightIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_OutterRight
|
||||
anchors {
|
||||
right: parent.right
|
||||
@@ -41,7 +41,7 @@ Item {
|
||||
}
|
||||
|
||||
ClassicIndicator {
|
||||
visible: _window.classicIndicators.outterIndicatorsVisible
|
||||
visible: _window.classicIndicators.outterTopIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_OutterTop
|
||||
anchors {
|
||||
top: parent.top
|
||||
@@ -51,7 +51,7 @@ Item {
|
||||
}
|
||||
|
||||
ClassicIndicator {
|
||||
visible: _window.classicIndicators.outterIndicatorsVisible
|
||||
visible: _window.classicIndicators.outterBottomIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_OutterBottom
|
||||
anchors {
|
||||
bottom: parent.bottom
|
||||
@@ -69,9 +69,12 @@ Item {
|
||||
|
||||
width: (centerIndicator * 3) + (2 * innerMargin)
|
||||
height: width
|
||||
visible: _window.classicIndicators.innerIndicatorsVisible
|
||||
visible: _window.classicIndicators.innerLeftIndicatorVisible || _window.classicIndicators.innerRightIndicatorVisible ||
|
||||
_window.classicIndicators.innerTopIndicatorVisible || _window.classicIndicators.innerBottomIndicatorVisible || _window.classicIndicators.tabIndicatorVisible
|
||||
|
||||
ClassicIndicator {
|
||||
id: innerLeft
|
||||
visible: _window.classicIndicators.innerLeftIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_Left
|
||||
anchors {
|
||||
right: centerIndicator.left
|
||||
@@ -88,6 +91,8 @@ Item {
|
||||
}
|
||||
|
||||
ClassicIndicator {
|
||||
id: innerRight
|
||||
visible: _window.classicIndicators.innerRightIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_Right
|
||||
anchors {
|
||||
left: centerIndicator.right
|
||||
@@ -97,6 +102,8 @@ Item {
|
||||
}
|
||||
|
||||
ClassicIndicator {
|
||||
id: innerTop
|
||||
visible: _window.classicIndicators.innerTopIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_Top
|
||||
anchors {
|
||||
bottom: centerIndicator.top
|
||||
@@ -106,6 +113,8 @@ Item {
|
||||
}
|
||||
|
||||
ClassicIndicator {
|
||||
id: innerBottom
|
||||
visible: _window.classicIndicators.innerBottomIndicatorVisible
|
||||
indicatorType: DropIndicatorOverlayInterface.DropLocation_Bottom
|
||||
anchors {
|
||||
top: centerIndicator.bottom
|
||||
|
||||
Reference in New Issue
Block a user