moved window logic from BaseWidget to BaseWindow
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
#include "widgets/basewidget.hpp"
|
||||
#include "singletons/settingsmanager.hpp"
|
||||
#include "singletons/thememanager.hpp"
|
||||
#include "widgets/tooltipwidget.hpp"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QIcon>
|
||||
#include <QLayout>
|
||||
#include <QtGlobal>
|
||||
#include <boost/signals2.hpp>
|
||||
#include "util/nativeeventhelper.hpp"
|
||||
|
||||
namespace chatterino {
|
||||
namespace widgets {
|
||||
@@ -61,64 +59,10 @@ void BaseWidget::init()
|
||||
});
|
||||
}
|
||||
|
||||
void BaseWidget::initAsWindow()
|
||||
{
|
||||
this->setWindowIcon(QIcon(":/images/icon.png"));
|
||||
|
||||
this->isWindow = true;
|
||||
|
||||
#ifdef USEWINSDK
|
||||
auto dpi = util::getWindowDpi(this->winId());
|
||||
|
||||
if (dpi) {
|
||||
this->dpiMultiplier = dpi.value() / 96.f;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (singletons::SettingManager::getInstance().windowTopMost.getValue()) {
|
||||
this->setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);
|
||||
}
|
||||
}
|
||||
|
||||
void BaseWidget::refreshTheme()
|
||||
{
|
||||
// Do any color scheme updates here
|
||||
}
|
||||
|
||||
#ifdef USEWINSDK
|
||||
bool BaseWidget::nativeEvent(const QByteArray &eventType, void *message, long *result)
|
||||
{
|
||||
int dpi;
|
||||
|
||||
if (util::tryHandleDpiChangedMessage(message, dpi)) {
|
||||
qDebug() << "dpi changed";
|
||||
|
||||
float oldDpiMultiplier = this->dpiMultiplier;
|
||||
this->dpiMultiplier = dpi / 96.f;
|
||||
float scale = this->dpiMultiplier / oldDpiMultiplier;
|
||||
|
||||
this->dpiMultiplierChanged(oldDpiMultiplier, this->dpiMultiplier);
|
||||
|
||||
this->resize(static_cast<int>(this->width() * scale),
|
||||
static_cast<int>(this->height() * scale));
|
||||
}
|
||||
|
||||
return QWidget::nativeEvent(eventType, message, result);
|
||||
}
|
||||
#endif
|
||||
|
||||
void BaseWidget::changeEvent(QEvent *)
|
||||
{
|
||||
if (this->isWindow) {
|
||||
TooltipWidget::getInstance()->hide();
|
||||
}
|
||||
}
|
||||
|
||||
void BaseWidget::leaveEvent(QEvent *)
|
||||
{
|
||||
if (this->isWindow) {
|
||||
TooltipWidget::getInstance()->hide();
|
||||
}
|
||||
}
|
||||
} // namespace widgets
|
||||
} // namespace chatterino
|
||||
|
||||
Reference in New Issue
Block a user