diff options
Diffstat (limited to 'src/plugins/projectexplorer/panelswidget.cpp')
-rw-r--r-- | src/plugins/projectexplorer/panelswidget.cpp | 61 |
1 files changed, 19 insertions, 42 deletions
diff --git a/src/plugins/projectexplorer/panelswidget.cpp b/src/plugins/projectexplorer/panelswidget.cpp index 7e7b22eacb..488390e822 100644 --- a/src/plugins/projectexplorer/panelswidget.cpp +++ b/src/plugins/projectexplorer/panelswidget.cpp @@ -25,15 +25,18 @@ #include "panelswidget.h" -#include <QPainter> -#include <QVBoxLayout> -#include <QLabel> +#include <coreplugin/minisplitter.h> #include <utils/stylehelper.h> #include <utils/theme/theme.h> #include <utils/qtcassert.h> #include <utils/styledbar.h> +#include <QLabel> +#include <QPainter> +#include <QScrollArea> +#include <QVBoxLayout> + using namespace Utils; namespace ProjectExplorer { @@ -46,53 +49,27 @@ const int ABOVE_CONTENTS_MARGIN = 4; const int BELOW_CONTENTS_MARGIN = 16; const int PANEL_LEFT_MARGIN = 70; -class RootWidget : public QWidget -{ -public: - RootWidget(QWidget *parent) : QWidget(parent) { - setFocusPolicy(Qt::NoFocus); - } - void paintEvent(QPaintEvent *) override; -}; - -void RootWidget::paintEvent(QPaintEvent *e) -{ - QWidget::paintEvent(e); - - if (!creatorTheme()->flag(Theme::FlatToolBars)) { - // draw separator line to the right of the settings panel - QPainter painter(this); - QColor light = StyleHelper::mergedColors( - palette().button().color(), Qt::white, 30); - QColor dark = StyleHelper::mergedColors( - palette().button().color(), Qt::black, 85); - - painter.setPen(light); - painter.drawLine(rect().topRight(), rect().bottomRight()); - painter.setPen(dark); - painter.drawLine(rect().topRight() - QPoint(1,0), rect().bottomRight() - QPoint(1,0)); - } -} } /// // PanelsWidget /// -PanelsWidget::PanelsWidget(QWidget *parent) : - QWidget(parent), - m_root(new RootWidget(this)) +PanelsWidget::PanelsWidget(QWidget *parent) : QWidget(parent) { - // We want a 900px wide widget with and the scrollbar at the - // side of the screen. - m_root->setMaximumWidth(900); + const auto splitter = new Core::MiniSplitter(this); + m_root = new QWidget(nullptr); + m_root->setFocusPolicy(Qt::NoFocus); m_root->setContentsMargins(0, 0, 40, 0); + splitter->addWidget(m_root); + splitter->addWidget(new QWidget); + splitter->setStretchFactor(1, 100); // Force root widget to its minimum size initially - m_scroller = new QScrollArea(this); - m_scroller->setWidget(m_root); - m_scroller->setFrameStyle(QFrame::NoFrame); - m_scroller->setWidgetResizable(true); - m_scroller->setFocusPolicy(Qt::NoFocus); + const auto scroller = new QScrollArea(this); + scroller->setWidget(splitter); + scroller->setFrameStyle(QFrame::NoFrame); + scroller->setWidgetResizable(true); + scroller->setFocusPolicy(Qt::NoFocus); // The layout holding the individual panels: auto topLayout = new QVBoxLayout(m_root); @@ -110,7 +87,7 @@ PanelsWidget::PanelsWidget(QWidget *parent) : layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addWidget(new Utils::StyledBar(this)); - layout->addWidget(m_scroller); + layout->addWidget(scroller); //layout->addWidget(new FindToolBarPlaceHolder(this)); } |