ui: Added scroll speed setting to preferences
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
#include "qt/utility/QtScrollSpeedChangeListener.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include <QScrollBar>
|
||||
|
||||
#include "settings/ApplicationSettings.h"
|
||||
|
||||
QtScrollSpeedChangeListener::QtScrollSpeedChangeListener()
|
||||
: m_changeScrollSpeedFunctor(std::bind(&QtScrollSpeedChangeListener::doChangeScrollSpeed, this, std::placeholders::_1))
|
||||
, m_scrollBar(nullptr)
|
||||
, m_singleStep(1)
|
||||
{
|
||||
}
|
||||
|
||||
void QtScrollSpeedChangeListener::setScrollBar(QScrollBar* scrollbar)
|
||||
{
|
||||
m_scrollBar = scrollbar;
|
||||
m_singleStep = scrollbar->singleStep();
|
||||
|
||||
doChangeScrollSpeed(ApplicationSettings::getInstance()->getScrollSpeed());
|
||||
}
|
||||
|
||||
void QtScrollSpeedChangeListener::handleMessage(MessageScrollSpeedChange* message)
|
||||
{
|
||||
m_changeScrollSpeedFunctor(message->scrollSpeed);
|
||||
}
|
||||
|
||||
void QtScrollSpeedChangeListener::doChangeScrollSpeed(float scrollSpeed)
|
||||
{
|
||||
if (m_scrollBar)
|
||||
{
|
||||
m_scrollBar->setSingleStep(std::ceil(m_singleStep * scrollSpeed));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
#ifndef QT_SCROLL_SPEED_CHANGE_LISTENER
|
||||
#define QT_SCROLL_SPEED_CHANGE_LISTENER
|
||||
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageScrollSpeedChange.h"
|
||||
|
||||
#include "qt/utility/QtThreadedFunctor.h"
|
||||
|
||||
class QScrollBar;
|
||||
|
||||
class QtScrollSpeedChangeListener
|
||||
: public MessageListener<MessageScrollSpeedChange>
|
||||
{
|
||||
public:
|
||||
QtScrollSpeedChangeListener();
|
||||
|
||||
void setScrollBar(QScrollBar* scrollbar);
|
||||
|
||||
private:
|
||||
void handleMessage(MessageScrollSpeedChange* message);
|
||||
|
||||
void doChangeScrollSpeed(float scrollSpeed);
|
||||
|
||||
QtThreadedFunctor<float> m_changeScrollSpeedFunctor;
|
||||
|
||||
QScrollBar* m_scrollBar;
|
||||
int m_singleStep;
|
||||
};
|
||||
|
||||
#endif // QT_SCROLL_SPEED_CHANGE_LISTENER
|
||||
Reference in New Issue
Block a user