Compare commits
	
		
			1 Commits
		
	
	
		
			0.8.2.1
			...
			qt-5-15-re
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| dd5602b290 | 
@ -28,6 +28,7 @@ endif ()
 | 
			
		||||
#LibExiv2_FOUND
 | 
			
		||||
set (PPIC_CPP_FILES
 | 
			
		||||
    app/main.cpp
 | 
			
		||||
    app/framelesshandler.cpp
 | 
			
		||||
    app/framelesswindow.cpp
 | 
			
		||||
    app/mainwindow.cpp
 | 
			
		||||
    app/graphicsview.cpp
 | 
			
		||||
@ -45,6 +46,7 @@ set (PPIC_CPP_FILES
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
set (PPIC_HEADER_FILES
 | 
			
		||||
    app/framelesshandler.h
 | 
			
		||||
    app/framelesswindow.h
 | 
			
		||||
    app/mainwindow.h
 | 
			
		||||
    app/graphicsview.h
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										149
									
								
								app/framelesshandler.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								app/framelesshandler.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,149 @@
 | 
			
		||||
#include "framelesshandler.h"
 | 
			
		||||
 | 
			
		||||
#include <QMouseEvent>
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <QWindow>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
#include <QApplication>
 | 
			
		||||
 | 
			
		||||
FramelessHandler::FramelessHandler(QWidget *parent)
 | 
			
		||||
    : QObject(parent)
 | 
			
		||||
    , m_parentWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
    m_parentWidget->setMouseTracking(true);
 | 
			
		||||
    m_parentWidget->installEventFilter(this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool FramelessHandler::eventFilter(QObject *o, QEvent *evt)
 | 
			
		||||
{
 | 
			
		||||
    if (evt->type() != QEvent::MouseButtonPress &&
 | 
			
		||||
            evt->type() != QEvent::MouseButtonRelease &&
 | 
			
		||||
            evt->type() != QEvent::MouseMove) {
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Q_ASSERT(o == m_parentWidget);
 | 
			
		||||
 | 
			
		||||
    if (QApplication::activePopupWidget()) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    switch (evt->type()) {
 | 
			
		||||
    case QEvent::MouseButtonPress: {
 | 
			
		||||
        if (m_parentWidget->isMaximized()) break;
 | 
			
		||||
        QMouseEvent *e = static_cast<QMouseEvent *>(evt);
 | 
			
		||||
        const QRect widgetRect = m_parentWidget->rect();
 | 
			
		||||
        const QPoint cursorPoint = m_parentWidget->mapFromGlobal(e->globalPos());
 | 
			
		||||
        if (!widgetRect.contains(cursorPoint)) return false;
 | 
			
		||||
        if (e->button() & Qt::LeftButton) {
 | 
			
		||||
            m_oldMousePos = e->pos();
 | 
			
		||||
            m_clickedOnWindow = true;
 | 
			
		||||
            mouseMoveEvent(e);
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
    } break;
 | 
			
		||||
    case QEvent::MouseButtonRelease: {
 | 
			
		||||
        if (m_parentWidget->isMaximized()) break;
 | 
			
		||||
        QMouseEvent *e = static_cast<QMouseEvent *>(evt);
 | 
			
		||||
        if (e->button() & Qt::LeftButton) {
 | 
			
		||||
            qDebug() << "released";
 | 
			
		||||
            m_clickedOnWindow = false;
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
    } break;
 | 
			
		||||
    case QEvent::MouseMove: {
 | 
			
		||||
        if (m_parentWidget->isMaximized()) break;
 | 
			
		||||
        QMouseEvent *e = static_cast<QMouseEvent *>(evt);
 | 
			
		||||
        mouseMoveEvent(e);
 | 
			
		||||
        return true;
 | 
			
		||||
    } break;
 | 
			
		||||
    default:
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FramelessHandler::mouseMoveEvent(QMouseEvent * evt)
 | 
			
		||||
{
 | 
			
		||||
    QPoint pos = m_parentWidget->mapFromGlobal(evt->globalPos());
 | 
			
		||||
    Qt::Edges mode = Qt::Edges();
 | 
			
		||||
    if (pos.x() <= m_borderWidth) {
 | 
			
		||||
        mode.setFlag(Qt::LeftEdge);
 | 
			
		||||
    } else if (pos.x() >= m_parentWidget->width() - m_borderWidth) {
 | 
			
		||||
        mode.setFlag(Qt::RightEdge);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (pos.y() <= m_borderWidth) {
 | 
			
		||||
        mode.setFlag(Qt::TopEdge);
 | 
			
		||||
    } else if (pos.y() >= m_parentWidget->height() - m_borderWidth) {
 | 
			
		||||
        mode.setFlag(Qt::BottomEdge);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    setMouseCursor(mode);
 | 
			
		||||
 | 
			
		||||
    if ((evt->button() & Qt::LeftButton) == Qt::NoButton && !m_clickedOnWindow) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
qDebug() << evt->button() << m_clickedOnWindow;
 | 
			
		||||
 | 
			
		||||
    if (mode) {
 | 
			
		||||
        startSystemResize(mode);
 | 
			
		||||
    } else {
 | 
			
		||||
        if (!startSystemMove()) {
 | 
			
		||||
            m_parentWidget->move(evt->globalPos() - m_oldMousePos);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FramelessHandler::setMouseCursor(Qt::Edges edge)
 | 
			
		||||
{
 | 
			
		||||
    switch (edge) {
 | 
			
		||||
    case Qt::TopEdge:
 | 
			
		||||
    case Qt::BottomEdge:
 | 
			
		||||
        m_parentWidget->setCursor(Qt::SizeVerCursor);
 | 
			
		||||
        m_parentWidget->window()->setCursor(Qt::SizeVerCursor);
 | 
			
		||||
        break;
 | 
			
		||||
    case Qt::LeftEdge:
 | 
			
		||||
    case Qt::RightEdge:
 | 
			
		||||
        m_parentWidget->setCursor(Qt::SizeHorCursor);
 | 
			
		||||
        m_parentWidget->window()->setCursor(Qt::SizeHorCursor);
 | 
			
		||||
        break;
 | 
			
		||||
    case Qt::TopEdge | Qt::LeftEdge:
 | 
			
		||||
    case Qt::BottomEdge | Qt::RightEdge:
 | 
			
		||||
        m_parentWidget->setCursor(Qt::SizeFDiagCursor);
 | 
			
		||||
        m_parentWidget->window()->setCursor(Qt::SizeFDiagCursor);
 | 
			
		||||
        break;
 | 
			
		||||
    case Qt::BottomEdge | Qt::LeftEdge:
 | 
			
		||||
    case Qt::TopEdge | Qt::RightEdge:
 | 
			
		||||
        m_parentWidget->setCursor(Qt::SizeBDiagCursor);
 | 
			
		||||
        m_parentWidget->window()->setCursor(Qt::SizeBDiagCursor);
 | 
			
		||||
        break;
 | 
			
		||||
    default:
 | 
			
		||||
        m_parentWidget->setCursor(Qt::ArrowCursor);
 | 
			
		||||
        m_parentWidget->window()->setCursor(Qt::ArrowCursor);
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //    qDebug() << "setMouseCursor" << edge;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool FramelessHandler::startSystemResize(Qt::Edges edges)
 | 
			
		||||
{
 | 
			
		||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
 | 
			
		||||
    return m_parentWidget->window()->windowHandle()->startSystemResize(edges);
 | 
			
		||||
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool FramelessHandler::startSystemMove()
 | 
			
		||||
{
 | 
			
		||||
#if not QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
 | 
			
		||||
    return m_parentWidget->window()->windowHandle()->startSystemMove();
 | 
			
		||||
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								app/framelesshandler.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								app/framelesshandler.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
#ifndef FRAMELESSHANDLER_H
 | 
			
		||||
#define FRAMELESSHANDLER_H
 | 
			
		||||
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QPoint>
 | 
			
		||||
 | 
			
		||||
// This concept takes from Qt's QWidgetResizeHandler, but it's not
 | 
			
		||||
// a public Qt API so we cannot relay on it...
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
class QMouseEvent;
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class FramelessHandler : public QObject
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit FramelessHandler(QWidget *parent = nullptr);
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    bool eventFilter(QObject *o, QEvent *event) override;
 | 
			
		||||
 | 
			
		||||
    void mouseMoveEvent(QMouseEvent *evt);
 | 
			
		||||
    void setMouseCursor(Qt::Edges edge);
 | 
			
		||||
 | 
			
		||||
    bool startSystemResize(Qt::Edges edges);
 | 
			
		||||
    bool startSystemMove();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    QWidget * m_parentWidget = nullptr;
 | 
			
		||||
    QPoint m_oldMousePos;
 | 
			
		||||
    bool m_clickedOnWindow = false;
 | 
			
		||||
    static constexpr int m_borderWidth = 8;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // FRAMELESSHANDLER_H
 | 
			
		||||
@ -1,10 +1,12 @@
 | 
			
		||||
#include "framelesswindow.h"
 | 
			
		||||
#include "framelesshandler.h"
 | 
			
		||||
 | 
			
		||||
#include <QVBoxLayout>
 | 
			
		||||
 | 
			
		||||
FramelessWindow::FramelessWindow(QWidget *parent)
 | 
			
		||||
    : QWidget(parent)
 | 
			
		||||
    , m_centralLayout(new QVBoxLayout(this))
 | 
			
		||||
    , m_framelessHandler(new FramelessHandler(this))
 | 
			
		||||
{
 | 
			
		||||
    this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@ QT_BEGIN_NAMESPACE
 | 
			
		||||
class QVBoxLayout;
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class FramelessHandler;
 | 
			
		||||
class FramelessWindow : public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
@ -20,6 +21,7 @@ signals:
 | 
			
		||||
private:
 | 
			
		||||
    QVBoxLayout * m_centralLayout = nullptr;
 | 
			
		||||
    QWidget * m_centralWidget = nullptr; // just a pointer, doesn't take the ownership.
 | 
			
		||||
    FramelessHandler * m_framelessHandler = nullptr;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // FRAMELESSWINDOW_H
 | 
			
		||||
 | 
			
		||||
@ -315,42 +315,6 @@ void MainWindow::leaveEvent(QEvent *event)
 | 
			
		||||
    return FramelessWindow::leaveEvent(event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::mousePressEvent(QMouseEvent *event)
 | 
			
		||||
{
 | 
			
		||||
    if (event->buttons() & Qt::LeftButton && !isMaximized()) {
 | 
			
		||||
        m_clickedOnWindow = true;
 | 
			
		||||
        m_oldMousePos = event->pos();
 | 
			
		||||
//        qDebug() << m_oldMousePos << m_graphicsView->transform().m11()
 | 
			
		||||
//                 << m_graphicsView->transform().m22() << m_graphicsView->matrix().m12();
 | 
			
		||||
        event->accept();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return FramelessWindow::mousePressEvent(event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::mouseMoveEvent(QMouseEvent *event)
 | 
			
		||||
{
 | 
			
		||||
    if (event->buttons() & Qt::LeftButton && m_clickedOnWindow && !isMaximized()) {
 | 
			
		||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
 | 
			
		||||
        if (!window()->windowHandle()->startSystemMove()) {
 | 
			
		||||
            move(event->globalPos() - m_oldMousePos);
 | 
			
		||||
        }
 | 
			
		||||
#else
 | 
			
		||||
        move(event->globalPos() - m_oldMousePos);
 | 
			
		||||
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
 | 
			
		||||
        event->accept();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return FramelessWindow::mouseMoveEvent(event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
 | 
			
		||||
{
 | 
			
		||||
    m_clickedOnWindow = false;
 | 
			
		||||
 | 
			
		||||
    return FramelessWindow::mouseReleaseEvent(event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
 | 
			
		||||
{
 | 
			
		||||
    switch (Settings::instance()->doubleClickBehavior()) {
 | 
			
		||||
@ -515,93 +479,6 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event)
 | 
			
		||||
    return FramelessWindow::contextMenuEvent(event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
 | 
			
		||||
{
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    // https://stackoverflow.com/questions/43505580/qt-windows-resizable-frameless-window
 | 
			
		||||
    // Too lazy to do this now.. just stackoverflow it and did a copy and paste..
 | 
			
		||||
    Q_UNUSED(eventType)
 | 
			
		||||
    MSG* msg = static_cast<MSG*>(message);
 | 
			
		||||
 | 
			
		||||
    if (msg->message == WM_NCHITTEST) {
 | 
			
		||||
        if (isMaximized()) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        *result = 0;
 | 
			
		||||
        const LONG borderWidth = 8;
 | 
			
		||||
        RECT winrect;
 | 
			
		||||
        GetWindowRect(reinterpret_cast<HWND>(winId()), &winrect);
 | 
			
		||||
 | 
			
		||||
        // must be short to correctly work with multiple monitors (negative coordinates)
 | 
			
		||||
        short x = msg->lParam & 0x0000FFFF;
 | 
			
		||||
        short y = (msg->lParam & 0xFFFF0000) >> 16;
 | 
			
		||||
 | 
			
		||||
        bool resizeWidth = minimumWidth() != maximumWidth();
 | 
			
		||||
        bool resizeHeight = minimumHeight() != maximumHeight();
 | 
			
		||||
        if (resizeWidth) {
 | 
			
		||||
            //left border
 | 
			
		||||
            if (x >= winrect.left && x < winrect.left + borderWidth) {
 | 
			
		||||
                *result = HTLEFT;
 | 
			
		||||
            }
 | 
			
		||||
            //right border
 | 
			
		||||
            if (x < winrect.right && x >= winrect.right - borderWidth) {
 | 
			
		||||
                *result = HTRIGHT;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (resizeHeight) {
 | 
			
		||||
            //bottom border
 | 
			
		||||
            if (y < winrect.bottom && y >= winrect.bottom - borderWidth) {
 | 
			
		||||
                *result = HTBOTTOM;
 | 
			
		||||
            }
 | 
			
		||||
            //top border
 | 
			
		||||
            if (y >= winrect.top && y < winrect.top + borderWidth) {
 | 
			
		||||
                *result = HTTOP;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (resizeWidth && resizeHeight) {
 | 
			
		||||
            //bottom left corner
 | 
			
		||||
            if (x >= winrect.left && x < winrect.left + borderWidth &&
 | 
			
		||||
                    y < winrect.bottom && y >= winrect.bottom - borderWidth)
 | 
			
		||||
            {
 | 
			
		||||
                *result = HTBOTTOMLEFT;
 | 
			
		||||
            }
 | 
			
		||||
            //bottom right corner
 | 
			
		||||
            if (x < winrect.right && x >= winrect.right - borderWidth &&
 | 
			
		||||
                    y < winrect.bottom && y >= winrect.bottom - borderWidth)
 | 
			
		||||
            {
 | 
			
		||||
                *result = HTBOTTOMRIGHT;
 | 
			
		||||
            }
 | 
			
		||||
            //top left corner
 | 
			
		||||
            if (x >= winrect.left && x < winrect.left + borderWidth &&
 | 
			
		||||
                    y >= winrect.top && y < winrect.top + borderWidth)
 | 
			
		||||
            {
 | 
			
		||||
                *result = HTTOPLEFT;
 | 
			
		||||
            }
 | 
			
		||||
            //top right corner
 | 
			
		||||
            if (x < winrect.right && x >= winrect.right - borderWidth &&
 | 
			
		||||
                    y >= winrect.top && y < winrect.top + borderWidth)
 | 
			
		||||
            {
 | 
			
		||||
                *result = HTTOPRIGHT;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (*result != 0)
 | 
			
		||||
            return true;
 | 
			
		||||
 | 
			
		||||
        QWidget *action = QApplication::widgetAt(QCursor::pos());
 | 
			
		||||
        if (action == this) {
 | 
			
		||||
            *result = HTCAPTION;
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return false;
 | 
			
		||||
#else
 | 
			
		||||
    return FramelessWindow::nativeEvent(eventType, message, result);
 | 
			
		||||
#endif // _WIN32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QSize MainWindow::sizeHint() const
 | 
			
		||||
{
 | 
			
		||||
    return QSize(710, 530);
 | 
			
		||||
 | 
			
		||||
@ -41,16 +41,11 @@ protected slots:
 | 
			
		||||
    void showEvent(QShowEvent *event) override;
 | 
			
		||||
    void enterEvent(QEvent *event) override;
 | 
			
		||||
    void leaveEvent(QEvent *event) override;
 | 
			
		||||
    void mousePressEvent(QMouseEvent *event) override;
 | 
			
		||||
    void mouseMoveEvent(QMouseEvent *event) override;
 | 
			
		||||
    void mouseReleaseEvent(QMouseEvent *event) override;
 | 
			
		||||
    void mouseDoubleClickEvent(QMouseEvent *event) override;
 | 
			
		||||
    void wheelEvent(QWheelEvent *event) override;
 | 
			
		||||
    void resizeEvent(QResizeEvent *event) override;
 | 
			
		||||
    void contextMenuEvent(QContextMenuEvent *event) override;
 | 
			
		||||
 | 
			
		||||
    bool nativeEvent(const QByteArray& eventType, void* message, long* result) override;
 | 
			
		||||
 | 
			
		||||
    QSize sizeHint() const override;
 | 
			
		||||
 | 
			
		||||
    void centerWindow();
 | 
			
		||||
@ -64,7 +59,6 @@ protected slots:
 | 
			
		||||
    void toggleMaximize();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    QPoint m_oldMousePos;
 | 
			
		||||
    QPropertyAnimation *m_fadeOutAnimation;
 | 
			
		||||
    QPropertyAnimation *m_floatUpAnimation;
 | 
			
		||||
    QParallelAnimationGroup *m_exitAnimationGroup;
 | 
			
		||||
@ -75,7 +69,6 @@ private:
 | 
			
		||||
    NavigatorView *m_gv;
 | 
			
		||||
    BottomButtonGroup *m_bottomButtonGroup;
 | 
			
		||||
    bool m_protectedMode = false;
 | 
			
		||||
    bool m_clickedOnWindow = false;
 | 
			
		||||
 | 
			
		||||
    QList<QUrl> m_files;
 | 
			
		||||
    int m_currentFileIndex = -1;
 | 
			
		||||
 | 
			
		||||
@ -200,59 +200,59 @@
 | 
			
		||||
<context>
 | 
			
		||||
    <name>MainWindow</name>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="178"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="176"/>
 | 
			
		||||
        <source>File url list is empty</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="408"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="370"/>
 | 
			
		||||
        <source>&Copy</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="429"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="391"/>
 | 
			
		||||
        <source>Copy P&ixmap</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="434"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="396"/>
 | 
			
		||||
        <source>Copy &File Path</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="444"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="406"/>
 | 
			
		||||
        <source>&Paste Image</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="450"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="412"/>
 | 
			
		||||
        <source>&Paste Image File</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="483"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="445"/>
 | 
			
		||||
        <source>Properties</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="31"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="455"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="417"/>
 | 
			
		||||
        <source>Stay on top</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="35"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="462"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="424"/>
 | 
			
		||||
        <source>Protected mode</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="469"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="431"/>
 | 
			
		||||
        <source>Configure...</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="476"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="438"/>
 | 
			
		||||
        <source>Help</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
 | 
			
		||||
@ -204,59 +204,59 @@
 | 
			
		||||
<context>
 | 
			
		||||
    <name>MainWindow</name>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="178"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="176"/>
 | 
			
		||||
        <source>File url list is empty</source>
 | 
			
		||||
        <translation>Die Datei-URL-Liste ist leer</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="408"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="370"/>
 | 
			
		||||
        <source>&Copy</source>
 | 
			
		||||
        <translation>&Kopieren</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="429"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="391"/>
 | 
			
		||||
        <source>Copy P&ixmap</source>
 | 
			
		||||
        <translation>P&ixmap kopieren</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="434"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="396"/>
 | 
			
		||||
        <source>Copy &File Path</source>
 | 
			
		||||
        <translation>&Dateipfad kopieren</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="444"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="406"/>
 | 
			
		||||
        <source>&Paste Image</source>
 | 
			
		||||
        <translation>Bild &einfügen</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="450"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="412"/>
 | 
			
		||||
        <source>&Paste Image File</source>
 | 
			
		||||
        <translation>Bilddatei &einfügen</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="483"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="445"/>
 | 
			
		||||
        <source>Properties</source>
 | 
			
		||||
        <translation>Eigenschaften</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="31"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="455"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="417"/>
 | 
			
		||||
        <source>Stay on top</source>
 | 
			
		||||
        <translation>Oben bleiben</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="35"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="462"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="424"/>
 | 
			
		||||
        <source>Protected mode</source>
 | 
			
		||||
        <translation>Geschützter Modus</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="469"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="431"/>
 | 
			
		||||
        <source>Configure...</source>
 | 
			
		||||
        <translation>Konfigurieren …</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="476"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="438"/>
 | 
			
		||||
        <source>Help</source>
 | 
			
		||||
        <translation>Hilfe</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
 | 
			
		||||
@ -204,59 +204,59 @@
 | 
			
		||||
<context>
 | 
			
		||||
    <name>MainWindow</name>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="178"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="176"/>
 | 
			
		||||
        <source>File url list is empty</source>
 | 
			
		||||
        <translation>La liste des URL de fichiers est vide</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="408"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="370"/>
 | 
			
		||||
        <source>&Copy</source>
 | 
			
		||||
        <translation>&Copier</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="429"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="391"/>
 | 
			
		||||
        <source>Copy P&ixmap</source>
 | 
			
		||||
        <translation>Copier P&ixmap</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="434"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="396"/>
 | 
			
		||||
        <source>Copy &File Path</source>
 | 
			
		||||
        <translation>Copier le &chemin du fichier</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="444"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="406"/>
 | 
			
		||||
        <source>&Paste Image</source>
 | 
			
		||||
        <translation>&Coller l'image</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="450"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="412"/>
 | 
			
		||||
        <source>&Paste Image File</source>
 | 
			
		||||
        <translation>&Coller le fichier d'image</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="483"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="445"/>
 | 
			
		||||
        <source>Properties</source>
 | 
			
		||||
        <translation>Propriétés</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="31"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="455"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="417"/>
 | 
			
		||||
        <source>Stay on top</source>
 | 
			
		||||
        <translation>Rester en-haut</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="35"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="462"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="424"/>
 | 
			
		||||
        <source>Protected mode</source>
 | 
			
		||||
        <translation>Mode protégé</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="469"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="431"/>
 | 
			
		||||
        <source>Configure...</source>
 | 
			
		||||
        <translation>Configurer…</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="476"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="438"/>
 | 
			
		||||
        <source>Help</source>
 | 
			
		||||
        <translation>Aide</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
 | 
			
		||||
@ -204,59 +204,59 @@
 | 
			
		||||
<context>
 | 
			
		||||
    <name>MainWindow</name>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="178"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="176"/>
 | 
			
		||||
        <source>File url list is empty</source>
 | 
			
		||||
        <translation>Listen over filnettadresser er ugyldig</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="408"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="370"/>
 | 
			
		||||
        <source>&Copy</source>
 | 
			
		||||
        <translation>&Kopier</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="429"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="391"/>
 | 
			
		||||
        <source>Copy P&ixmap</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="434"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="396"/>
 | 
			
		||||
        <source>Copy &File Path</source>
 | 
			
		||||
        <translation>Kopier %filsti</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="444"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="406"/>
 | 
			
		||||
        <source>&Paste Image</source>
 | 
			
		||||
        <translation>&Lim inn bilde</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="450"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="412"/>
 | 
			
		||||
        <source>&Paste Image File</source>
 | 
			
		||||
        <translation>&Lim inn bildefil</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="483"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="445"/>
 | 
			
		||||
        <source>Properties</source>
 | 
			
		||||
        <translation>Egenskaper</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="31"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="455"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="417"/>
 | 
			
		||||
        <source>Stay on top</source>
 | 
			
		||||
        <translation>Behold øverst</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="35"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="462"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="424"/>
 | 
			
		||||
        <source>Protected mode</source>
 | 
			
		||||
        <translation>Beskyttet modus</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="469"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="431"/>
 | 
			
		||||
        <source>Configure...</source>
 | 
			
		||||
        <translation>Sett opp …</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="476"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="438"/>
 | 
			
		||||
        <source>Help</source>
 | 
			
		||||
        <translation>Hjelp</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
 | 
			
		||||
@ -200,59 +200,59 @@
 | 
			
		||||
<context>
 | 
			
		||||
    <name>MainWindow</name>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="178"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="176"/>
 | 
			
		||||
        <source>File url list is empty</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="408"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="370"/>
 | 
			
		||||
        <source>&Copy</source>
 | 
			
		||||
        <translation>&Копировать</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="429"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="391"/>
 | 
			
		||||
        <source>Copy P&ixmap</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="434"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="396"/>
 | 
			
		||||
        <source>Copy &File Path</source>
 | 
			
		||||
        <translation>Копировать &Путь к файлу</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="444"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="406"/>
 | 
			
		||||
        <source>&Paste Image</source>
 | 
			
		||||
        <translation>&Вставить изображение</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="450"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="412"/>
 | 
			
		||||
        <source>&Paste Image File</source>
 | 
			
		||||
        <translation>&Вставить файл изображения</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="483"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="445"/>
 | 
			
		||||
        <source>Properties</source>
 | 
			
		||||
        <translation>Свойства</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="31"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="455"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="417"/>
 | 
			
		||||
        <source>Stay on top</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="35"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="462"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="424"/>
 | 
			
		||||
        <source>Protected mode</source>
 | 
			
		||||
        <translation>Защищенный режим</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="469"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="431"/>
 | 
			
		||||
        <source>Configure...</source>
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="476"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="438"/>
 | 
			
		||||
        <source>Help</source>
 | 
			
		||||
        <translation>Помощь</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
 | 
			
		||||
@ -204,59 +204,59 @@
 | 
			
		||||
<context>
 | 
			
		||||
    <name>MainWindow</name>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="178"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="176"/>
 | 
			
		||||
        <source>File url list is empty</source>
 | 
			
		||||
        <translation>文件 URL 列表为空</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="408"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="370"/>
 | 
			
		||||
        <source>&Copy</source>
 | 
			
		||||
        <translation>复制(&C)</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="429"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="391"/>
 | 
			
		||||
        <source>Copy P&ixmap</source>
 | 
			
		||||
        <translation>复制位图(&I)</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="434"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="396"/>
 | 
			
		||||
        <source>Copy &File Path</source>
 | 
			
		||||
        <translation>复制文件路径(&F)</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="444"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="406"/>
 | 
			
		||||
        <source>&Paste Image</source>
 | 
			
		||||
        <translation>粘贴图像(&P)</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="450"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="412"/>
 | 
			
		||||
        <source>&Paste Image File</source>
 | 
			
		||||
        <translation>粘贴图像文件(&P)</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="483"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="445"/>
 | 
			
		||||
        <source>Properties</source>
 | 
			
		||||
        <translation>属性</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="31"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="455"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="417"/>
 | 
			
		||||
        <source>Stay on top</source>
 | 
			
		||||
        <translation>总在最前</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/aboutdialog.cpp" line="35"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="462"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="424"/>
 | 
			
		||||
        <source>Protected mode</source>
 | 
			
		||||
        <translation>保护模式</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="469"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="431"/>
 | 
			
		||||
        <source>Configure...</source>
 | 
			
		||||
        <translation>设置...</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="476"/>
 | 
			
		||||
        <location filename="../app/mainwindow.cpp" line="438"/>
 | 
			
		||||
        <source>Help</source>
 | 
			
		||||
        <translation>帮助</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user