- enhancement: auto zoom ui when screen's zoom factor changed (windows)
This commit is contained in:
parent
1135fcf7dd
commit
e89ac58462
1
NEWS.md
1
NEWS.md
|
@ -24,6 +24,7 @@ Red Panda C++ Version 0.13.3
|
|||
- fix: insert code snippets will crash, if current compiler set's include dir list is not empty and lib dir list is empty
|
||||
- fix: search around option can't be disabled
|
||||
- enhancement: show a confirm dialog when search/replace around
|
||||
- enhancement: auto zoom ui when screen's zoom factor changed (windows)
|
||||
|
||||
Red Panda C++ Version 0.13.2
|
||||
- fix: "delete and exit" button in the environtment / folder option page doesn't work correctly
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <QMessageBox>
|
||||
#include <QStringList>
|
||||
#include <QAbstractNativeEventFilter>
|
||||
#include <QDesktopWidget>
|
||||
#include <QDir>
|
||||
#include "common.h"
|
||||
#include "colorscheme.h"
|
||||
|
@ -60,7 +61,8 @@ bool WindowLogoutEventFilter::nativeEventFilter(const QByteArray & /*eventType*/
|
|||
}
|
||||
break;
|
||||
case WM_DPICHANGED:
|
||||
//todo
|
||||
setDesktopDpi(HIWORD(pMsg->wParam));
|
||||
pMainWindow->updateDPI();
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
|
@ -159,6 +161,7 @@ int main(int argc, char *argv[])
|
|||
//set default open folder
|
||||
QDir::setCurrent(pSettings->environment().defaultOpenFolder());
|
||||
|
||||
setDesktopDpi(qApp->desktop()->logicalDpiY());
|
||||
|
||||
MainWindow mainWindow;
|
||||
pMainWindow = &mainWindow;
|
||||
|
|
|
@ -689,6 +689,12 @@ void MainWindow::setActiveBreakpoint(QString FileName, int Line, bool setFocus)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::updateDPI()
|
||||
{
|
||||
qDebug()<<"dpi changed!"<<desktopDpi();
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void MainWindow::updateAppTitle()
|
||||
{
|
||||
QString appName=tr("Red Panda C++");
|
||||
|
|
|
@ -215,6 +215,7 @@ public slots:
|
|||
void onTodoParsing(const QString& filename, int lineNo, int ch, const QString& line);
|
||||
void onTodoParseFinished();
|
||||
void setActiveBreakpoint(QString FileName, int Line, bool setFocus);
|
||||
void updateDPI();
|
||||
|
||||
private:
|
||||
void prepareProjectForCompile();
|
||||
|
|
|
@ -1001,12 +1001,12 @@ QString localizePath(const QString &path)
|
|||
|
||||
float pointToPixel(float point)
|
||||
{
|
||||
return point * qApp->desktop()->logicalDpiY() / 72;
|
||||
return point * desktopDpi() / 72;
|
||||
}
|
||||
|
||||
float pixelToPoint(float pixel)
|
||||
{
|
||||
return pixel * 72 / qApp->desktop()->logicalDpiY();
|
||||
return pixel * 72 / desktopDpi();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1076,9 +1076,12 @@ QStringList splitProcessCommand(const QString &cmd)
|
|||
return result;
|
||||
}
|
||||
|
||||
static float saved_desktop_dpi = -1;
|
||||
float desktopDpi()
|
||||
{
|
||||
return qApp->desktop()->logicalDpiY();
|
||||
if (saved_desktop_dpi<1)
|
||||
saved_desktop_dpi = qApp->desktop()->logicalDpiY();
|
||||
return saved_desktop_dpi;
|
||||
}
|
||||
|
||||
qulonglong stringToHex(const QString &str, qulonglong defaultValue)
|
||||
|
@ -1089,3 +1092,8 @@ qulonglong stringToHex(const QString &str, qulonglong defaultValue)
|
|||
return value;
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
void setDesktopDpi(float dpi)
|
||||
{
|
||||
saved_desktop_dpi = dpi;
|
||||
}
|
||||
|
|
|
@ -232,6 +232,8 @@ class CppParser;
|
|||
void resetCppParser(std::shared_ptr<CppParser> parser, int compilerSetIndex=-1);
|
||||
|
||||
float desktopDpi();
|
||||
void setDesktopDpi(float dpi);
|
||||
|
||||
float pointToPixel(float point);
|
||||
float pixelToPoint(float pixel);
|
||||
|
||||
|
|
Loading…
Reference in New Issue