rdr2view initial
This commit is contained in:
commit
b3a4c3ef5f
198 changed files with 62708 additions and 0 deletions
72
uimod/JSHighlighter.cpp
Normal file
72
uimod/JSHighlighter.cpp
Normal file
|
@ -0,0 +1,72 @@
|
|||
/*****************************************************************************
|
||||
* gta5view Grand Theft Auto V Profile Viewer
|
||||
* Copyright (C) 2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "JSHighlighter.h"
|
||||
#include <QRegExp>
|
||||
|
||||
JSHighlighter::JSHighlighter(QTextDocument *parent) :
|
||||
QSyntaxHighlighter(parent)
|
||||
{
|
||||
HighlightingRule rule;
|
||||
|
||||
QBrush keywordBrush(QColor::fromRgb(66, 137, 244));
|
||||
keywordFormat.setForeground(keywordBrush);
|
||||
keywordFormat.setFontItalic(true);
|
||||
QStringList keywordPatterns;
|
||||
keywordPatterns << "\\btrue\\b" << "\\bfalse\\b";
|
||||
for (QString pattern : keywordPatterns)
|
||||
{
|
||||
rule.pattern = QRegExp(pattern);
|
||||
rule.format = keywordFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
|
||||
QBrush doubleBrush(QColor::fromRgb(66, 137, 244));
|
||||
doubleFormat.setForeground(doubleBrush);
|
||||
rule.pattern = QRegExp("[+-]?\\d*\\.?\\d+");
|
||||
rule.format = doubleFormat;
|
||||
highlightingRules.append(rule);
|
||||
|
||||
QBrush quotationBrush(QColor::fromRgb(66, 244, 104));
|
||||
quotationFormat.setForeground(quotationBrush);
|
||||
rule.pattern = QRegExp("\"[^\"]*\"");
|
||||
rule.format = quotationFormat;
|
||||
highlightingRules.append(rule);
|
||||
|
||||
QBrush objectBrush(QColor::fromRgb(255, 80, 80));
|
||||
objectFormat.setForeground(objectBrush);
|
||||
rule.pattern = QRegExp("\"[^\"]*\"(?=:)");
|
||||
rule.format = objectFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
|
||||
void JSHighlighter::highlightBlock(const QString &text)
|
||||
{
|
||||
for (HighlightingRule rule : highlightingRules)
|
||||
{
|
||||
QRegExp expression(rule.pattern);
|
||||
int index = expression.indexIn(text);
|
||||
while (index >= 0)
|
||||
{
|
||||
int length = expression.matchedLength();
|
||||
setFormat(index, length, rule.format);
|
||||
index = expression.indexIn(text, index + length);
|
||||
}
|
||||
}
|
||||
setCurrentBlockState(0);
|
||||
}
|
56
uimod/JSHighlighter.h
Normal file
56
uimod/JSHighlighter.h
Normal file
|
@ -0,0 +1,56 @@
|
|||
/*****************************************************************************
|
||||
* gta5view Grand Theft Auto V Profile Viewer
|
||||
* Copyright (C) 2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef JSHIGHLIGHTER_H
|
||||
#define JSHIGHLIGHTER_H
|
||||
|
||||
#include <QSyntaxHighlighter>
|
||||
#include <QTextCharFormat>
|
||||
#include <QTextDocument>
|
||||
#include <QTextFormat>
|
||||
#include <QStringList>
|
||||
#include <QRegExp>
|
||||
#include <QVector>
|
||||
#include <QHash>
|
||||
|
||||
class QTextDocument;
|
||||
|
||||
class JSHighlighter : public QSyntaxHighlighter
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
struct HighlightingRule
|
||||
{
|
||||
QRegExp pattern;
|
||||
QTextCharFormat format;
|
||||
};
|
||||
QVector<HighlightingRule> highlightingRules;
|
||||
|
||||
QTextCharFormat keywordFormat;
|
||||
QTextCharFormat doubleFormat;
|
||||
QTextCharFormat quotationFormat;
|
||||
QTextCharFormat objectFormat;
|
||||
|
||||
JSHighlighter(QTextDocument *parent = 0);
|
||||
|
||||
protected:
|
||||
void highlightBlock(const QString &text) override;
|
||||
};
|
||||
|
||||
#endif // JSHIGHLIGHTER_H
|
75
uimod/UiModLabel.cpp
Normal file
75
uimod/UiModLabel.cpp
Normal file
|
@ -0,0 +1,75 @@
|
|||
/*****************************************************************************
|
||||
* gta5view Grand Theft Auto V Profile Viewer
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "UiModLabel.h"
|
||||
#include <QPaintEvent>
|
||||
#include <QMouseEvent>
|
||||
|
||||
UiModLabel::UiModLabel(const QString &text, QWidget *parent) : QLabel(parent)
|
||||
{
|
||||
setText(text);
|
||||
}
|
||||
|
||||
UiModLabel::UiModLabel(QWidget *parent, const QString &text) : QLabel(parent)
|
||||
{
|
||||
setText(text);
|
||||
}
|
||||
|
||||
UiModLabel::UiModLabel(QWidget *parent) : QLabel(parent)
|
||||
{
|
||||
}
|
||||
|
||||
UiModLabel::~UiModLabel()
|
||||
{
|
||||
}
|
||||
|
||||
void UiModLabel::paintEvent(QPaintEvent *ev)
|
||||
{
|
||||
QLabel::paintEvent(ev);
|
||||
emit labelPainted();
|
||||
}
|
||||
|
||||
void UiModLabel::mouseMoveEvent(QMouseEvent *ev)
|
||||
{
|
||||
QLabel::mouseMoveEvent(ev);
|
||||
emit mouseMoved();
|
||||
}
|
||||
|
||||
void UiModLabel::mousePressEvent(QMouseEvent *ev)
|
||||
{
|
||||
QLabel::mousePressEvent(ev);
|
||||
emit mousePressed(ev->button());
|
||||
}
|
||||
|
||||
void UiModLabel::mouseReleaseEvent(QMouseEvent *ev)
|
||||
{
|
||||
QLabel::mouseReleaseEvent(ev);
|
||||
emit mouseReleased(ev->button());
|
||||
}
|
||||
|
||||
void UiModLabel::mouseDoubleClickEvent(QMouseEvent *ev)
|
||||
{
|
||||
QLabel::mouseDoubleClickEvent(ev);
|
||||
emit mouseDoubleClicked(ev->button());
|
||||
}
|
||||
|
||||
void UiModLabel::resizeEvent(QResizeEvent *ev)
|
||||
{
|
||||
QLabel::resizeEvent(ev);
|
||||
emit resized(ev->size());
|
||||
}
|
53
uimod/UiModLabel.h
Normal file
53
uimod/UiModLabel.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*****************************************************************************
|
||||
* gta5view Grand Theft Auto V Profile Viewer
|
||||
* Copyright (C) 2016-2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UIMODLABEL_H
|
||||
#define UIMODLABEL_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QString>
|
||||
#include <QLabel>
|
||||
#include <QSize>
|
||||
|
||||
class UiModLabel : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
UiModLabel(const QString &text, QWidget *parent = 0);
|
||||
UiModLabel(QWidget *parent, const QString &text);
|
||||
UiModLabel(QWidget *parent = 0);
|
||||
~UiModLabel();
|
||||
|
||||
protected:
|
||||
void mouseMoveEvent(QMouseEvent *ev);
|
||||
void mousePressEvent(QMouseEvent *ev);
|
||||
void mouseReleaseEvent(QMouseEvent *ev);
|
||||
void mouseDoubleClickEvent(QMouseEvent *ev);
|
||||
void paintEvent(QPaintEvent *ev);
|
||||
void resizeEvent(QResizeEvent *ev);
|
||||
|
||||
signals:
|
||||
void mouseMoved();
|
||||
void mousePressed(Qt::MouseButton button);
|
||||
void mouseReleased(Qt::MouseButton button);
|
||||
void mouseDoubleClicked(Qt::MouseButton button);
|
||||
void labelPainted();
|
||||
void resized(QSize newSize);
|
||||
};
|
||||
|
||||
#endif // UIMODLABEL_H
|
86
uimod/UiModWidget.cpp
Normal file
86
uimod/UiModWidget.cpp
Normal file
|
@ -0,0 +1,86 @@
|
|||
/*****************************************************************************
|
||||
* gta5view Grand Theft Auto V Profile Viewer
|
||||
* Copyright (C) 2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "UiModWidget.h"
|
||||
#include <QStyleOption>
|
||||
#include <QDropEvent>
|
||||
#include <QMimeData>
|
||||
#include <QPainter>
|
||||
#include <QDebug>
|
||||
#include <QUrl>
|
||||
|
||||
UiModWidget::UiModWidget(QWidget *parent) : QWidget(parent)
|
||||
{
|
||||
filesDropEnabled = false;
|
||||
imageDropEnabled = false;
|
||||
}
|
||||
|
||||
UiModWidget::~UiModWidget()
|
||||
{
|
||||
}
|
||||
|
||||
void UiModWidget::setFilesDropEnabled(bool enabled)
|
||||
{
|
||||
filesDropEnabled = enabled;
|
||||
}
|
||||
|
||||
void UiModWidget::setImageDropEnabled(bool enabled)
|
||||
{
|
||||
imageDropEnabled = enabled;
|
||||
}
|
||||
|
||||
void UiModWidget::dragEnterEvent(QDragEnterEvent *dragEnterEvent)
|
||||
{
|
||||
if (filesDropEnabled && dragEnterEvent->mimeData()->hasUrls())
|
||||
{
|
||||
QStringList pathList;
|
||||
const QList<QUrl> urlList = dragEnterEvent->mimeData()->urls();
|
||||
|
||||
for (const QUrl ¤tUrl : urlList)
|
||||
{
|
||||
if (currentUrl.isLocalFile())
|
||||
{
|
||||
pathList.append(currentUrl.toLocalFile());
|
||||
}
|
||||
}
|
||||
|
||||
if (!pathList.isEmpty())
|
||||
{
|
||||
dragEnterEvent->acceptProposedAction();
|
||||
}
|
||||
}
|
||||
else if (imageDropEnabled && dragEnterEvent->mimeData()->hasImage())
|
||||
{
|
||||
dragEnterEvent->acceptProposedAction();
|
||||
}
|
||||
}
|
||||
|
||||
void UiModWidget::dropEvent(QDropEvent *dropEvent)
|
||||
{
|
||||
dropEvent->acceptProposedAction();
|
||||
emit dropped(dropEvent->mimeData());
|
||||
}
|
||||
|
||||
void UiModWidget::paintEvent(QPaintEvent *paintEvent)
|
||||
{
|
||||
Q_UNUSED(paintEvent)
|
||||
QStyleOption opt;
|
||||
opt.init(this);
|
||||
QPainter p(this);
|
||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||
}
|
49
uimod/UiModWidget.h
Normal file
49
uimod/UiModWidget.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*****************************************************************************
|
||||
* gta5view Grand Theft Auto V Profile Viewer
|
||||
* Copyright (C) 2017 Syping
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UIMODWIDGET_H
|
||||
#define UIMODWIDGET_H
|
||||
|
||||
#include <QMimeData>
|
||||
#include <QWidget>
|
||||
#include <QString>
|
||||
#include <QSize>
|
||||
|
||||
class UiModWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
UiModWidget(QWidget *parent = 0);
|
||||
void setFilesDropEnabled(bool enabled);
|
||||
void setImageDropEnabled(bool enabled);
|
||||
~UiModWidget();
|
||||
|
||||
protected:
|
||||
void dragEnterEvent(QDragEnterEvent *dragEnterEvent);
|
||||
void dropEvent(QDropEvent *dropEvent);
|
||||
void paintEvent(QPaintEvent *paintEvent);
|
||||
|
||||
private:
|
||||
bool filesDropEnabled;
|
||||
bool imageDropEnabled;
|
||||
|
||||
signals:
|
||||
void dropped(const QMimeData *mimeData);
|
||||
};
|
||||
|
||||
#endif // UIMODWIDGET_H
|
Loading…
Add table
Add a link
Reference in a new issue