- enhancement: use svg icons for class browser
This commit is contained in:
parent
cf4118d911
commit
a806fe9389
1
NEWS.md
1
NEWS.md
|
@ -5,6 +5,7 @@ Version 0.11.4 For Dev-C++ 7 Beta
|
|||
- fix: left and right gutter offset settings not correctly saved
|
||||
- enhancement: use svg icons for editor gutter, and they can zoom with font now
|
||||
- fix: symbol completion for '<>' in the preprocessor line not work
|
||||
- enhancement: use svg icons for class browser
|
||||
|
||||
Version 0.11.3 For Dev-C++ 7 Beta
|
||||
- fix: use pixel size for fonts, to fit different dpi in multiple displays
|
||||
|
|
|
@ -785,14 +785,12 @@ void Editor::keyPressEvent(QKeyEvent *event)
|
|||
|
||||
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;
|
||||
PIcon icon;
|
||||
IconsManager::PIcon icon;
|
||||
|
||||
if (mActiveBreakpointLine == aLine) {
|
||||
icon = pIconsManager->activeBreakpoint();
|
||||
icon = pIconsManager->getIcon(IconsManager::GUTTER_ACTIVEBREAKPOINT);
|
||||
} else if (hasBreakpoint(aLine)) {
|
||||
icon = pIconsManager->breakpoint();
|
||||
icon = pIconsManager->getIcon(IconsManager::GUTTER_BREAKPOINT);
|
||||
} else {
|
||||
PSyntaxIssueList lst = getSyntaxIssuesAtLine(aLine);
|
||||
if (lst) {
|
||||
|
@ -804,12 +802,12 @@ void Editor::onGutterPaint(QPainter &painter, int aLine, int X, int Y)
|
|||
}
|
||||
}
|
||||
if (hasError) {
|
||||
icon = pIconsManager->syntaxError();
|
||||
icon = pIconsManager->getIcon(IconsManager::GUTTER_SYNTAX_ERROR);
|
||||
} else {
|
||||
icon = pIconsManager->syntaxWarning();
|
||||
icon = pIconsManager->getIcon(IconsManager::GUTTER_SYNTAX_WARNING);
|
||||
}
|
||||
} else if (hasBookmark(aLine)) {
|
||||
icon = pIconsManager->bookmark();
|
||||
} else if (hasBookmark(aLine)) {
|
||||
icon = pIconsManager->getIcon(IconsManager::GUTTER_BOOKMARK);
|
||||
}
|
||||
}
|
||||
if (icon) {
|
||||
|
|
|
@ -463,25 +463,6 @@
|
|||
<file>images/associations/obj.ico</file>
|
||||
<file>images/associations/rc.ico</file>
|
||||
<file>images/associations/template.ico</file>
|
||||
<file>images/classparser/class.ico</file>
|
||||
<file>images/classparser/define.ico</file>
|
||||
<file>images/classparser/enum.ico</file>
|
||||
<file>images/classparser/global.ico</file>
|
||||
<file>images/classparser/global_method.ico</file>
|
||||
<file>images/classparser/method_inherited.ico</file>
|
||||
<file>images/classparser/method_inherited_protected.ico</file>
|
||||
<file>images/classparser/method_private.ico</file>
|
||||
<file>images/classparser/method_protected.ico</file>
|
||||
<file>images/classparser/method_public.ico</file>
|
||||
<file>images/classparser/namespace.ico</file>
|
||||
<file>images/classparser/static_method.ico</file>
|
||||
<file>images/classparser/static_var.ico</file>
|
||||
<file>images/classparser/type.ico</file>
|
||||
<file>images/classparser/var_inherited.ico</file>
|
||||
<file>images/classparser/var_inherited_protected.ico</file>
|
||||
<file>images/classparser/var_private.ico</file>
|
||||
<file>images/classparser/var_protected.ico</file>
|
||||
<file>images/classparser/var_public.ico</file>
|
||||
<file>images/newlook24/091-openproblemanswer.png</file>
|
||||
<file>images/newlook24/092-runallproblemcases.png</file>
|
||||
<file>images/newlook24/093-pause.png</file>
|
||||
|
@ -490,5 +471,24 @@
|
|||
<file>images/editor/currentline.svg</file>
|
||||
<file>images/editor/syntaxerror.svg</file>
|
||||
<file>images/editor/syntaxwarning.svg</file>
|
||||
<file>images/classparser/class.svg</file>
|
||||
<file>images/classparser/define.svg</file>
|
||||
<file>images/classparser/enum.svg</file>
|
||||
<file>images/classparser/global.svg</file>
|
||||
<file>images/classparser/global_method.svg</file>
|
||||
<file>images/classparser/method_inherited.svg</file>
|
||||
<file>images/classparser/method_inherited_protected.svg</file>
|
||||
<file>images/classparser/method_private.svg</file>
|
||||
<file>images/classparser/method_protected.svg</file>
|
||||
<file>images/classparser/method_public.svg</file>
|
||||
<file>images/classparser/namespace.svg</file>
|
||||
<file>images/classparser/static_method.svg</file>
|
||||
<file>images/classparser/static_var.svg</file>
|
||||
<file>images/classparser/type.svg</file>
|
||||
<file>images/classparser/var_inherited.svg</file>
|
||||
<file>images/classparser/var_inherited_protected.svg</file>
|
||||
<file>images/classparser/var_private.svg</file>
|
||||
<file>images/classparser/var_protected.svg</file>
|
||||
<file>images/classparser/var_public.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -7,51 +7,56 @@ IconsManager* pIconsManager;
|
|||
|
||||
IconsManager::IconsManager(QObject *parent) : QObject(parent)
|
||||
{
|
||||
updateEditorGuttorIcons(24);
|
||||
mDefaultIcon = PIcon();
|
||||
//updateEditorGuttorIcons(24);
|
||||
mFolder = std::make_shared<QPixmap>(":/icons/images/newlook24/090-explorer.png");
|
||||
|
||||
}
|
||||
|
||||
void IconsManager::updateEditorGuttorIcons(int size)
|
||||
void IconsManager::updateEditorGuttorIcons(const QString& iconSet,int size)
|
||||
{
|
||||
mBreakpoint = createSVGIcon(":/icons/images/editor/breakpoint.svg",size,size);
|
||||
mSyntaxError = createSVGIcon(":/icons/images/editor/syntaxerror.svg",size,size);
|
||||
mSyntaxWarning = createSVGIcon(":/icons/images/editor/syntaxwarning.svg",size,size);
|
||||
mActiveBreakpoint = createSVGIcon(":/icons/images/editor/currentline.svg",size,size);
|
||||
mBookmark = createSVGIcon(":/icons/images/editor/bookmark.svg",size,size);
|
||||
QString iconFolder = QString(":/icons/images/%1/").arg(iconSet);
|
||||
mIcons.insert(GUTTER_BREAKPOINT, createSVGIcon(iconFolder+"breakpoint.svg",size,size));
|
||||
mIcons.insert(GUTTER_SYNTAX_ERROR, createSVGIcon(iconFolder+"syntaxerror.svg",size,size));
|
||||
mIcons.insert(GUTTER_SYNTAX_WARNING,createSVGIcon(iconFolder+"syntaxwarning.svg",size,size));
|
||||
mIcons.insert(GUTTER_ACTIVEBREAKPOINT,createSVGIcon(iconFolder+"currentline.svg",size,size));
|
||||
mIcons.insert(GUTTER_BOOKMARK, createSVGIcon(iconFolder+"bookmark.svg",size,size));
|
||||
}
|
||||
|
||||
const PIcon &IconsManager::syntaxError() const
|
||||
void IconsManager::updateParserIcons(const QString &iconSet, int size)
|
||||
{
|
||||
return mSyntaxError;
|
||||
QString iconFolder = QString(":/icons/images/%1/").arg(iconSet);
|
||||
mIcons.insert(PARSER_TYPE, createSVGIcon(iconFolder+"type.svg",size,size));
|
||||
mIcons.insert(PARSER_CLASS, createSVGIcon(iconFolder+"class.svg",size,size));
|
||||
mIcons.insert(PARSER_NAMESPACE, createSVGIcon(iconFolder+"namespace.svg",size,size));
|
||||
mIcons.insert(PARSER_DEFINE, createSVGIcon(iconFolder+"define.svg",size,size));
|
||||
mIcons.insert(PARSER_ENUM, createSVGIcon(iconFolder+"enum.svg",size,size));;
|
||||
mIcons.insert(PARSER_GLOBAL_METHOD, createSVGIcon(iconFolder+"global_method.svg",size,size));
|
||||
mIcons.insert(PARSER_INHERITED_PROTECTED_METHOD, createSVGIcon(iconFolder+"method_inherited_protected.svg",size,size));
|
||||
mIcons.insert(PARSER_INHERITED_METHOD, createSVGIcon(iconFolder+"method_inherited.svg",size,size));
|
||||
mIcons.insert(PARSER_PROTECTED_METHOD, createSVGIcon(iconFolder+"method_protected.svg",size,size));
|
||||
mIcons.insert(PARSER_PUBLIC_METHOD, createSVGIcon(iconFolder+"method_public.svg",size,size));
|
||||
mIcons.insert(PARSER_PRIVATE_METHOD, createSVGIcon(iconFolder+"method_private.svg",size,size));
|
||||
mIcons.insert(PARSER_GLOBAL_VAR, createSVGIcon(iconFolder+"global.svg",size,size));
|
||||
mIcons.insert(PARSER_INHERITED_PROTECTD_VAR, createSVGIcon(iconFolder+"var_inherited_protected.svg",size,size));
|
||||
mIcons.insert(PARSER_INHERITED_VAR, createSVGIcon(iconFolder+"var_inherited.svg",size,size));
|
||||
mIcons.insert(PARSER_PROTECTED_VAR, createSVGIcon(iconFolder+"var_protected.svg",size,size));
|
||||
mIcons.insert(PARSER_PUBLIC_VAR, createSVGIcon(iconFolder+"var_public.svg",size,size));
|
||||
mIcons.insert(PARSER_PRIVATE_VAR, createSVGIcon(iconFolder+"var_private.svg",size,size));
|
||||
|
||||
}
|
||||
|
||||
const PIcon &IconsManager::syntaxWarning() const
|
||||
IconsManager::PIcon IconsManager::getIcon(IconName iconName) const
|
||||
{
|
||||
return mSyntaxWarning;
|
||||
return mIcons.value(iconName, mDefaultIcon);
|
||||
}
|
||||
|
||||
const PIcon &IconsManager::breakpoint() const
|
||||
{
|
||||
return mBreakpoint;
|
||||
}
|
||||
|
||||
const PIcon &IconsManager::activeBreakpoint() const
|
||||
{
|
||||
return mActiveBreakpoint;
|
||||
}
|
||||
|
||||
const PIcon &IconsManager::bookmark() const
|
||||
{
|
||||
return mBookmark;
|
||||
}
|
||||
|
||||
const PIcon &IconsManager::folder() const
|
||||
const IconsManager::PIcon &IconsManager::folder() const
|
||||
{
|
||||
return mFolder;
|
||||
}
|
||||
|
||||
PIcon IconsManager::createSVGIcon(const QString &filename, int width, int height)
|
||||
IconsManager::PIcon IconsManager::createSVGIcon(const QString &filename, int width, int height)
|
||||
{
|
||||
QSvgRenderer renderer(filename);
|
||||
PIcon icon = std::make_shared<QPixmap>(width,height);
|
||||
|
|
|
@ -1,38 +1,53 @@
|
|||
#ifndef ICONSMANAGER_H
|
||||
#define ICONSMANAGER_H
|
||||
|
||||
#include <QMap>
|
||||
#include <QObject>
|
||||
#include <QPixmap>
|
||||
#include <memory>
|
||||
|
||||
using PIcon = std::shared_ptr<QPixmap>;
|
||||
class IconsManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
using PIcon = std::shared_ptr<QPixmap>;
|
||||
enum IconName {
|
||||
GUTTER_SYNTAX_ERROR,
|
||||
GUTTER_SYNTAX_WARNING,
|
||||
GUTTER_BREAKPOINT,
|
||||
GUTTER_ACTIVEBREAKPOINT,
|
||||
GUTTER_BOOKMARK,
|
||||
PARSER_TYPE, //":/icons/images/classparser/type.svg"
|
||||
PARSER_CLASS, //":/icons/images/classparser/class.svg"
|
||||
PARSER_NAMESPACE, //":/icons/images/classparser/namespace.svg"
|
||||
PARSER_DEFINE, // ":/icons/images/classparser/define.svg"
|
||||
PARSER_ENUM, // ":/icons/images/classparser/enum.svg";
|
||||
PARSER_GLOBAL_METHOD, // ":/icons/images/classparser/global_method.svg"
|
||||
PARSER_INHERITED_PROTECTED_METHOD, //":/icons/images/classparser/method_inherited_protected.svg"
|
||||
PARSER_INHERITED_METHOD, // ":/icons/images/classparser/method_inherited.svg"
|
||||
PARSER_PROTECTED_METHOD, // ":/icons/images/classparser/method_protected.svg"
|
||||
PARSER_PUBLIC_METHOD, //":/icons/images/classparser/method_public.svg")
|
||||
PARSER_PRIVATE_METHOD, //":/icons/images/classparser/method_private.svg"
|
||||
PARSER_GLOBAL_VAR, // ":/icons/images/classparser/global.svg"
|
||||
PARSER_INHERITED_PROTECTD_VAR, //":/icons/images/classparser/var_inherited_protected.svg"
|
||||
PARSER_INHERITED_VAR, //":/icons/images/classparser/var_inherited.svg"
|
||||
PARSER_PROTECTED_VAR, //":/icons/images/classparser/var_protected.svg"
|
||||
PARSER_PUBLIC_VAR, //":/icons/images/classparser/var_public.svg"
|
||||
PARSER_PRIVATE_VAR //":/icons/images/classparser/var_private.svg"
|
||||
};
|
||||
explicit IconsManager(QObject *parent = nullptr);
|
||||
|
||||
void updateEditorGuttorIcons(int size);
|
||||
void updateEditorGuttorIcons(const QString& iconSet, int size);
|
||||
void updateParserIcons(const QString& iconSet, int size);
|
||||
|
||||
const PIcon &syntaxError() const;
|
||||
|
||||
const PIcon &syntaxWarning() const;
|
||||
|
||||
const PIcon &breakpoint() const;
|
||||
|
||||
const PIcon &activeBreakpoint() const;
|
||||
|
||||
const PIcon &bookmark() const;
|
||||
PIcon getIcon(IconName iconName) const;
|
||||
|
||||
const PIcon &folder() const;
|
||||
|
||||
PIcon createSVGIcon(const QString& filename, int width, int height);
|
||||
private:
|
||||
PIcon mSyntaxError;
|
||||
PIcon mSyntaxWarning;
|
||||
PIcon mBreakpoint;
|
||||
PIcon mActiveBreakpoint;
|
||||
PIcon mBookmark;
|
||||
QMap<IconName,PIcon> mIcons;
|
||||
PIcon mDefaultIcon;
|
||||
PIcon mFolder;
|
||||
};
|
||||
|
||||
|
|
|
@ -321,7 +321,7 @@ void MainWindow::updateForEncodingInfo() {
|
|||
|
||||
void MainWindow::updateEditorSettings()
|
||||
{
|
||||
pIconsManager->updateEditorGuttorIcons(pointToPixel(pSettings->editor().fontSize()));
|
||||
pIconsManager->updateEditorGuttorIcons("editor",pointToPixel(pSettings->editor().fontSize()));
|
||||
mEditorList->applySettings();
|
||||
}
|
||||
|
||||
|
@ -546,6 +546,7 @@ void MainWindow::applySettings()
|
|||
font.setStyleStrategy(QFont::PreferAntialias);
|
||||
qApp->setFont(font);
|
||||
this->setFont(font);
|
||||
pIconsManager->updateParserIcons("classparser",pointToPixel(pSettings->environment().interfaceFontSize()));
|
||||
|
||||
QFont caseEditorFont(pSettings->executor().caseEditorFontName());
|
||||
caseEditorFont.setPixelSize(pointToPixel(pSettings->executor().caseEditorFontSize()));
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "../settings.h"
|
||||
#include "../colorscheme.h"
|
||||
#include "../utils.h"
|
||||
#include "../iconsmanager.h"
|
||||
|
||||
ClassBrowserModel::ClassBrowserModel(QObject *parent):QAbstractItemModel(parent)
|
||||
{
|
||||
|
@ -159,57 +160,57 @@ QVariant ClassBrowserModel::data(const QModelIndex &index, int role) const
|
|||
}
|
||||
switch (kind) {
|
||||
case StatementKind::skTypedef:
|
||||
return QIcon(":/icons/images/classparser/type.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_TYPE));
|
||||
case StatementKind::skClass:
|
||||
return QIcon(":/icons/images/classparser/class.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_CLASS));
|
||||
case StatementKind::skNamespace:
|
||||
case StatementKind::skNamespaceAlias:
|
||||
return QIcon(":/icons/images/classparser/namespace.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_NAMESPACE));
|
||||
case StatementKind::skPreprocessor:
|
||||
return QIcon(":/icons/images/classparser/define.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_DEFINE));
|
||||
case StatementKind::skEnumClassType:
|
||||
case StatementKind::skEnumType:
|
||||
case StatementKind::skEnum:
|
||||
return QIcon(":/icons/images/classparser/enum.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_ENUM));
|
||||
case StatementKind::skFunction:
|
||||
case StatementKind::skConstructor:
|
||||
case StatementKind::skDestructor:
|
||||
if (statement->scope == StatementScope::ssGlobal)
|
||||
return QIcon(":/icons/images/classparser/global_method.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_GLOBAL_METHOD));
|
||||
if (statement->isInherited) {
|
||||
if (statement->classScope == StatementClassScope::scsProtected) {
|
||||
return QIcon(":/icons/images/classparser/method_inherited_protected.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_INHERITED_PROTECTED_METHOD));
|
||||
} else if (statement->classScope == StatementClassScope::scsPublic) {
|
||||
return QIcon(":/icons/images/classparser/method_inherited.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_INHERITED_METHOD));
|
||||
}
|
||||
} else {
|
||||
if (statement->classScope == StatementClassScope::scsProtected) {
|
||||
return QIcon(":/icons/images/classparser/method_protected.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_PROTECTED_METHOD));
|
||||
} else if (statement->classScope == StatementClassScope::scsPublic) {
|
||||
return QIcon(":/icons/images/classparser/method_public.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_PUBLIC_METHOD));
|
||||
} else {
|
||||
return QIcon(":/icons/images/classparser/method_private.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_PRIVATE_METHOD));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case StatementKind::skGlobalVariable:
|
||||
return QIcon(":/icons/images/classparser/global.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_GLOBAL_VAR));
|
||||
case StatementKind::skVariable:
|
||||
// if (statement->scope == StatementScope::ssGlobal)
|
||||
// return QIcon(":/icons/images/classparser/global.ico");
|
||||
if (statement->isInherited) {
|
||||
if (statement->classScope == StatementClassScope::scsProtected) {
|
||||
return QIcon(":/icons/images/classparser/var_inherited_protected.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_INHERITED_PROTECTD_VAR));
|
||||
} else if (statement->classScope == StatementClassScope::scsPublic) {
|
||||
return QIcon(":/icons/images/classparser/var_inherited.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_INHERITED_VAR));
|
||||
}
|
||||
} else {
|
||||
if (statement->classScope == StatementClassScope::scsProtected) {
|
||||
return QIcon(":/icons/images/classparser/var_protected.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_PROTECTED_VAR));
|
||||
} else if (statement->classScope == StatementClassScope::scsPublic) {
|
||||
return QIcon(":/icons/images/classparser/var_public.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_PUBLIC_VAR));
|
||||
} else {
|
||||
return QIcon(":/icons/images/classparser/var_private.ico");
|
||||
return *(pIconsManager->getIcon(IconsManager::PARSER_PRIVATE_VAR));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue