From 3fdfc9b69f6f6f1e0726830cd03c03b87db25a7e Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Sat, 6 Oct 2018 18:39:11 +0300 Subject: [PATCH] Remove Scrollbar --- CMakeLists.txt | 2 -- src/timeline/TimelineView.h | 3 +- src/ui/ScrollBar.cpp | 59 ------------------------------------- src/ui/ScrollBar.h | 54 --------------------------------- 4 files changed, 1 insertion(+), 117 deletions(-) delete mode 100644 src/ui/ScrollBar.cpp delete mode 100644 src/ui/ScrollBar.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 701e8610..8dd99719 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,7 +200,6 @@ set(SRC_FILES src/ui/FloatingButton.cpp src/ui/Label.cpp src/ui/OverlayModal.cpp - src/ui/ScrollBar.cpp src/ui/SnackBar.cpp src/ui/RaisedButton.cpp src/ui/Ripple.cpp @@ -328,7 +327,6 @@ qt5_wrap_cpp(MOC_HEADERS src/ui/FloatingButton.h src/ui/Menu.h src/ui/OverlayWidget.h - src/ui/ScrollBar.h src/ui/SnackBar.h src/ui/RaisedButton.h src/ui/Ripple.h diff --git a/src/timeline/TimelineView.h b/src/timeline/TimelineView.h index c1d36cf8..b0909b44 100644 --- a/src/timeline/TimelineView.h +++ b/src/timeline/TimelineView.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -31,7 +32,6 @@ #include "MatrixClient.h" #include "timeline/TimelineItem.h" -#include "ui/ScrollBar.h" class StateKeeper { @@ -291,7 +291,6 @@ private: QVBoxLayout *scroll_layout_; QScrollArea *scroll_area_; - ScrollBar *scrollbar_; QWidget *scroll_widget_; QString firstSender_; diff --git a/src/ui/ScrollBar.cpp b/src/ui/ScrollBar.cpp deleted file mode 100644 index 37218a13..00000000 --- a/src/ui/ScrollBar.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * nheko Copyright (C) 2017 Konstantinos Sideris - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "ScrollBar.h" - -ScrollBar::ScrollBar(QScrollArea *area, QWidget *parent) - : QScrollBar(parent) - , area_{area} -{} - -void -ScrollBar::paintEvent(QPaintEvent *) -{ - if (!width() && !height()) { - hide(); - return; - } - - QPainter p(this); - p.setRenderHint(QPainter::TextAntialiasing); - p.setRenderHint(QPainter::Antialiasing); - p.setRenderHint(QPainter::SmoothPixmapTransform); - - p.setPen(Qt::NoPen); - - p.setBrush(backgroundColor()); - QRect backgroundArea(Padding, 0, handleWidth_, height()); - p.drawRoundedRect(backgroundArea, roundRadius_, roundRadius_); - - int areaHeight = area_->height(); - int widgetHeight = area_->widget()->height(); - - double visiblePercentage = (double)areaHeight / (double)widgetHeight; - int handleHeight = std::max(visiblePercentage * areaHeight, (double)minHandleHeight_); - - if (maximum() == 0) { - return; - } - - int handle_y = (value() * (areaHeight - handleHeight - roundRadius_ / 2)) / maximum(); - - p.setBrush(handleColor()); - QRect handleArea(Padding, handle_y, handleWidth_, handleHeight); - p.drawRoundedRect(handleArea, roundRadius_, roundRadius_); -} diff --git a/src/ui/ScrollBar.h b/src/ui/ScrollBar.h deleted file mode 100644 index 2b5382aa..00000000 --- a/src/ui/ScrollBar.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * nheko Copyright (C) 2017 Konstantinos Sideris - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include - -class ScrollBar : public QScrollBar -{ - Q_OBJECT - Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor) - Q_PROPERTY(QColor handleColor READ handleColor WRITE setHandleColor) - -public: - ScrollBar(QScrollArea *area, QWidget *parent = nullptr); - - QColor backgroundColor() const { return bgColor_; } - void setBackgroundColor(QColor &color) { bgColor_ = color; } - - QColor handleColor() const { return handleColor_; } - void setHandleColor(QColor &color) { handleColor_ = color; } - -protected: - void paintEvent(QPaintEvent *e) override; - -private: - int roundRadius_ = 4; - int handleWidth_ = 7; - int minHandleHeight_ = 20; - - const int Padding = 4; - - QScrollArea *area_; - QRect handle_; - - QColor bgColor_ = QColor(33, 33, 33, 30); - QColor handleColor_ = QColor(0, 0, 0, 80); -};