mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-10-30 09:30:47 +03:00
Remove Scrollbar
This commit is contained in:
parent
675f1be777
commit
3fdfc9b69f
4 changed files with 1 additions and 117 deletions
|
@ -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
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <QList>
|
||||
#include <QQueue>
|
||||
#include <QScrollArea>
|
||||
#include <QScrollBar>
|
||||
#include <QStyle>
|
||||
#include <QStyleOption>
|
||||
#include <QTimer>
|
||||
|
@ -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_;
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
/*
|
||||
* nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#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_);
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
/*
|
||||
* nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QPainter>
|
||||
#include <QScrollArea>
|
||||
#include <QScrollBar>
|
||||
|
||||
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);
|
||||
};
|
Loading…
Reference in a new issue