- fix: left and right gutter offset settings not correctly saved
- enhancement: use svg icons for editor gutter, and they can zoom with font now
This commit is contained in:
parent
ba538c9b13
commit
74fdf1ebef
2
NEWS.md
2
NEWS.md
|
@ -2,6 +2,8 @@ Version 0.11.4 For Dev-C++ 7 Beta
|
|||
- fix: compiler set's custom link parameters not used when compiling
|
||||
- fix: code completion doesn't work when input inside () or []
|
||||
- fix: auto indent processing error when input '{' in the middle of if statement
|
||||
- fix: left and right gutter offset settings not correctly saved
|
||||
- enhancement: use svg icons for editor gutter, and they can zoom with font now
|
||||
|
||||
Version 0.11.3 For Dev-C++ 7 Beta
|
||||
- fix: use pixel size for fonts, to fit different dpi in multiple displays
|
||||
|
|
|
@ -787,13 +787,12 @@ void Editor::onGutterPaint(QPainter &painter, int aLine, int X, int Y)
|
|||
{
|
||||
// Get point where to draw marks
|
||||
//X := (fText.Gutter.RealGutterWidth(fText.CharWidth) - fText.Gutter.RightOffset) div 2 - 3;
|
||||
X = 5;
|
||||
Y += (this->textHeight() - 16) / 2;
|
||||
PIcon icon;
|
||||
|
||||
if (mActiveBreakpointLine == aLine) {
|
||||
painter.drawPixmap(X,Y,*(pIconsManager->activeBreakpoint()));
|
||||
icon = pIconsManager->activeBreakpoint();
|
||||
} else if (hasBreakpoint(aLine)) {
|
||||
painter.drawPixmap(X,Y,*(pIconsManager->breakpoint()));
|
||||
icon = pIconsManager->breakpoint();
|
||||
} else {
|
||||
PSyntaxIssueList lst = getSyntaxIssuesAtLine(aLine);
|
||||
if (lst) {
|
||||
|
@ -805,15 +804,18 @@ void Editor::onGutterPaint(QPainter &painter, int aLine, int X, int Y)
|
|||
}
|
||||
}
|
||||
if (hasError) {
|
||||
painter.drawPixmap(X,Y,*(pIconsManager->syntaxError()));
|
||||
icon = pIconsManager->syntaxError();
|
||||
} else {
|
||||
painter.drawPixmap(X,Y,*(pIconsManager->syntaxWarning()));
|
||||
icon = pIconsManager->syntaxWarning();
|
||||
}
|
||||
return;
|
||||
} else if (hasBookmark(aLine)) {
|
||||
icon = pIconsManager->bookmark();
|
||||
}
|
||||
if (hasBookmark(aLine)) {
|
||||
painter.drawPixmap(X,Y,*(pIconsManager->bookmark()));
|
||||
}
|
||||
if (icon) {
|
||||
X = 5;
|
||||
Y += (this->textHeight() - icon->height()) / 2;
|
||||
painter.drawPixmap(X,Y,*icon);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4049,7 +4051,7 @@ void Editor::applySettings()
|
|||
setFont(f);
|
||||
|
||||
// Set gutter properties
|
||||
gutter().setLeftOffset(pSettings->editor().gutterLeftOffset());
|
||||
gutter().setLeftOffset(pointToPixel(pSettings->editor().fontSize()) + pSettings->editor().gutterLeftOffset());
|
||||
gutter().setRightOffset(pSettings->editor().gutterRightOffset());
|
||||
gutter().setBorderStyle(SynGutterBorderStyle::None);
|
||||
gutter().setUseFontStyle(pSettings->editor().gutterUseCustomFont());
|
||||
|
|
|
@ -490,5 +490,6 @@
|
|||
<file>images/newlook24/091-openproblemanswer.png</file>
|
||||
<file>images/newlook24/092-runallproblemcases.png</file>
|
||||
<file>images/newlook24/093-pause.png</file>
|
||||
<file>images/editor/breakpoint.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -1,12 +1,26 @@
|
|||
#include "iconsmanager.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QSvgRenderer>
|
||||
|
||||
IconsManager* pIconsManager;
|
||||
|
||||
IconsManager::IconsManager(QObject *parent) : QObject(parent)
|
||||
{
|
||||
updateIcons(24);
|
||||
|
||||
}
|
||||
|
||||
void IconsManager::updateIcons(int size)
|
||||
{
|
||||
QSvgRenderer renderer(QString(":/icons/images/editor/breakpoint.svg"));
|
||||
mBreakpoint = std::make_shared<QPixmap>(size,size);
|
||||
mBreakpoint->fill(Qt::transparent);
|
||||
QPainter painter(mBreakpoint.get());
|
||||
renderer.render(&painter,mBreakpoint->rect());
|
||||
|
||||
mSyntaxError = std::make_shared<QPixmap>(":/icons/images/editor/syntaxerror.png");
|
||||
mSyntaxWarning = std::make_shared<QPixmap>(":/icons/images/editor/syntaxwarning.png");
|
||||
mBreakpoint = std::make_shared<QPixmap>(":/icons/images/editor/breakpoint.png");
|
||||
mActiveBreakpoint = std::make_shared<QPixmap>(":/icons/images/editor/currentline.png");
|
||||
mBookmark = std::make_shared<QPixmap>(":/icons/images/editor/bookmark.png");
|
||||
mFolder = std::make_shared<QPixmap>(":/icons/images/newlook24/090-explorer.png");
|
||||
|
|
|
@ -12,6 +12,8 @@ class IconsManager : public QObject
|
|||
public:
|
||||
explicit IconsManager(QObject *parent = nullptr);
|
||||
|
||||
void updateIcons(int size);
|
||||
|
||||
const PIcon &syntaxError() const;
|
||||
|
||||
const PIcon &syntaxWarning() const;
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="100"
|
||||
height="100"
|
||||
viewBox="0 0 26.458333 26.458334"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
|
||||
sodipodi:docname="breakpoint.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.8934904"
|
||||
inkscape:cx="136.85893"
|
||||
inkscape:cy="69.293473"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1001"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1"
|
||||
units="px" />
|
||||
<defs
|
||||
id="defs2" />
|
||||
<g
|
||||
inkscape:label="图层 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<ellipse
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.60914;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path927"
|
||||
cx="13.076049"
|
||||
cy="13.350369"
|
||||
rx="12.487414"
|
||||
ry="12.670298" />
|
||||
<path
|
||||
style="fill:none;stroke:#33f445;stroke-width:2.64583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 2.5603448,14.904864 4.0233989,6.766626 3.10899,1.463054 L 12.984606,21.67149 23.77463,6.8580665"
|
||||
id="path1509" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -21,6 +21,7 @@
|
|||
#include "problems/problemcasevalidator.h"
|
||||
#include "widgets/ojproblempropertywidget.h"
|
||||
#include "version.h"
|
||||
#include "iconsmanager.h"
|
||||
|
||||
#include <QCloseEvent>
|
||||
#include <QComboBox>
|
||||
|
@ -320,6 +321,7 @@ void MainWindow::updateForEncodingInfo() {
|
|||
|
||||
void MainWindow::updateEditorSettings()
|
||||
{
|
||||
pIconsManager->updateIcons(pointToPixel(pSettings->editor().fontSize()));
|
||||
mEditorList->applySettings();
|
||||
}
|
||||
|
||||
|
|
|
@ -1059,6 +1059,8 @@ void Settings::Editor::doSave()
|
|||
//gutter
|
||||
saveValue("gutter_visible", mGutterVisible);
|
||||
saveValue("gutter_auto_size", mGutterAutoSize);
|
||||
saveValue("gutter_left_offset",mGutterLeftOffset);
|
||||
saveValue("gutter_right_offset",mGutterRightOffset);
|
||||
saveValue("gutter_digits_count", mGutterDigitsCount);
|
||||
saveValue("gutter_show_line_numbers",mGutterShowLineNumbers);
|
||||
saveValue("gutter_add_leading_zero",mGutterAddLeadingZero);
|
||||
|
@ -1173,7 +1175,7 @@ void Settings::Editor::doLoad()
|
|||
//gutter
|
||||
mGutterVisible = boolValue("gutter_visible",true);
|
||||
mGutterAutoSize = boolValue("gutter_auto_size",true);
|
||||
mGutterLeftOffset = intValue("gutter_left_offset",28);
|
||||
mGutterLeftOffset = intValue("gutter_left_offset",6);
|
||||
mGutterRightOffset = intValue("gutter_right_offset",24);
|
||||
mGutterDigitsCount = intValue("gutter_digits_count",1);
|
||||
mGutterShowLineNumbers = boolValue("gutter_show_line_numbers",true);
|
||||
|
|
Loading…
Reference in New Issue