mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
6ea3a1df08
cstdint) Make MessageElement to a class to fit better with the derived classes. Make MessageLayoutElement to a class to fit better with the derived classes. Remove virtual from override functions Replace all instances of boost::signals2 with pajlada::Signals. This lets us properly use clang code model to check for issues. Add missing virtual destructor to AbstractIrcServer Add missing virtual destructor to MessageLayoutElement Remove unused "connectedConnection" connection in TwitchChannel Fix typo in TrimChannelName function Fix typo in MessageParseArgs Replace some raw pointers with unique pointers where it made more sense. This allowed us to remove some manually written destructors whose only purpose was to delete that raw pointer. Reformat: Add namespace comments Reformat: Add empty empty lines between main namespace beginning and end Reformat: Re-order includes Reformat: Fix some includes that used quotes where they should use angle brackets Reformat: Replace some typedef's with using's Filter out more useless warnings
92 lines
2.1 KiB
C++
92 lines
2.1 KiB
C++
#pragma once
|
|
|
|
#include "common.hpp"
|
|
#include "widgets/basewidget.hpp"
|
|
|
|
#include <QMenu>
|
|
#include <QPropertyAnimation>
|
|
#include <pajlada/settings/setting.hpp>
|
|
#include <pajlada/signals/connection.hpp>
|
|
|
|
namespace chatterino {
|
|
namespace widgets {
|
|
|
|
class Notebook;
|
|
class SplitContainer;
|
|
|
|
class NotebookTab : public BaseWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
const std::string uuid;
|
|
const std::string settingRoot;
|
|
|
|
public:
|
|
explicit NotebookTab(Notebook *_notebook, const std::string &_uuid);
|
|
|
|
void updateSize();
|
|
|
|
SplitContainer *page;
|
|
|
|
QString getTitle() const;
|
|
void setTitle(const QString &newTitle);
|
|
bool isSelected() const;
|
|
void setSelected(bool value);
|
|
|
|
void setHighlightState(HighlightState style);
|
|
|
|
void moveAnimated(QPoint pos, bool animated = true);
|
|
|
|
QRect getDesiredRect() const;
|
|
void hideTabXChanged(bool);
|
|
|
|
protected:
|
|
virtual void themeRefreshEvent() override;
|
|
|
|
virtual void paintEvent(QPaintEvent *) override;
|
|
|
|
virtual void mousePressEvent(QMouseEvent *event) override;
|
|
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
|
virtual void enterEvent(QEvent *) override;
|
|
virtual void leaveEvent(QEvent *) override;
|
|
|
|
virtual void dragEnterEvent(QDragEnterEvent *event) override;
|
|
|
|
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
|
|
|
private:
|
|
std::vector<pajlada::Signals::ScopedConnection> managedConnections;
|
|
|
|
QPropertyAnimation positionChangedAnimation;
|
|
bool positionChangedAnimationRunning = false;
|
|
QPoint positionAnimationDesiredPoint;
|
|
|
|
Notebook *notebook;
|
|
|
|
pajlada::Settings::Setting<std::string> title;
|
|
|
|
public:
|
|
pajlada::Settings::Setting<bool> useDefaultBehaviour;
|
|
|
|
private:
|
|
bool selected = false;
|
|
bool mouseOver = false;
|
|
bool mouseDown = false;
|
|
bool mouseOverX = false;
|
|
bool mouseDownX = false;
|
|
|
|
HighlightState highlightState = HighlightState::None;
|
|
|
|
QMenu menu;
|
|
|
|
QRect getXRect()
|
|
{
|
|
float s = this->getScale();
|
|
return QRect(this->width() - static_cast<int>(20 * s), static_cast<int>(4 * s),
|
|
static_cast<int>(16 * s), static_cast<int>(16 * s));
|
|
}
|
|
};
|
|
|
|
} // namespace widgets
|
|
} // namespace chatterino
|