WIP: make use of Qt 5.15 startSystemResize()
This commit is contained in:
parent
3abc16d3ff
commit
dd5602b290
|
@ -28,6 +28,7 @@ endif ()
|
||||||
#LibExiv2_FOUND
|
#LibExiv2_FOUND
|
||||||
set (PPIC_CPP_FILES
|
set (PPIC_CPP_FILES
|
||||||
app/main.cpp
|
app/main.cpp
|
||||||
|
app/framelesshandler.cpp
|
||||||
app/framelesswindow.cpp
|
app/framelesswindow.cpp
|
||||||
app/mainwindow.cpp
|
app/mainwindow.cpp
|
||||||
app/graphicsview.cpp
|
app/graphicsview.cpp
|
||||||
|
@ -45,6 +46,7 @@ set (PPIC_CPP_FILES
|
||||||
)
|
)
|
||||||
|
|
||||||
set (PPIC_HEADER_FILES
|
set (PPIC_HEADER_FILES
|
||||||
|
app/framelesshandler.h
|
||||||
app/framelesswindow.h
|
app/framelesswindow.h
|
||||||
app/mainwindow.h
|
app/mainwindow.h
|
||||||
app/graphicsview.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 "framelesswindow.h"
|
||||||
|
#include "framelesshandler.h"
|
||||||
|
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
FramelessWindow::FramelessWindow(QWidget *parent)
|
FramelessWindow::FramelessWindow(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
, m_centralLayout(new QVBoxLayout(this))
|
, m_centralLayout(new QVBoxLayout(this))
|
||||||
|
, m_framelessHandler(new FramelessHandler(this))
|
||||||
{
|
{
|
||||||
this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
|
this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ QT_BEGIN_NAMESPACE
|
||||||
class QVBoxLayout;
|
class QVBoxLayout;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class FramelessHandler;
|
||||||
class FramelessWindow : public QWidget
|
class FramelessWindow : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -20,6 +21,7 @@ signals:
|
||||||
private:
|
private:
|
||||||
QVBoxLayout * m_centralLayout = nullptr;
|
QVBoxLayout * m_centralLayout = nullptr;
|
||||||
QWidget * m_centralWidget = nullptr; // just a pointer, doesn't take the ownership.
|
QWidget * m_centralWidget = nullptr; // just a pointer, doesn't take the ownership.
|
||||||
|
FramelessHandler * m_framelessHandler = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FRAMELESSWINDOW_H
|
#endif // FRAMELESSWINDOW_H
|
||||||
|
|
|
@ -315,42 +315,6 @@ void MainWindow::leaveEvent(QEvent *event)
|
||||||
return FramelessWindow::leaveEvent(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)
|
void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
switch (Settings::instance()->doubleClickBehavior()) {
|
switch (Settings::instance()->doubleClickBehavior()) {
|
||||||
|
@ -515,93 +479,6 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event)
|
||||||
return FramelessWindow::contextMenuEvent(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
|
QSize MainWindow::sizeHint() const
|
||||||
{
|
{
|
||||||
return QSize(710, 530);
|
return QSize(710, 530);
|
||||||
|
|
|
@ -41,16 +41,11 @@ protected slots:
|
||||||
void showEvent(QShowEvent *event) override;
|
void showEvent(QShowEvent *event) override;
|
||||||
void enterEvent(QEvent *event) override;
|
void enterEvent(QEvent *event) override;
|
||||||
void leaveEvent(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 mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||||
void wheelEvent(QWheelEvent *event) override;
|
void wheelEvent(QWheelEvent *event) override;
|
||||||
void resizeEvent(QResizeEvent *event) override;
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
void contextMenuEvent(QContextMenuEvent *event) override;
|
void contextMenuEvent(QContextMenuEvent *event) override;
|
||||||
|
|
||||||
bool nativeEvent(const QByteArray& eventType, void* message, long* result) override;
|
|
||||||
|
|
||||||
QSize sizeHint() const override;
|
QSize sizeHint() const override;
|
||||||
|
|
||||||
void centerWindow();
|
void centerWindow();
|
||||||
|
@ -64,7 +59,6 @@ protected slots:
|
||||||
void toggleMaximize();
|
void toggleMaximize();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPoint m_oldMousePos;
|
|
||||||
QPropertyAnimation *m_fadeOutAnimation;
|
QPropertyAnimation *m_fadeOutAnimation;
|
||||||
QPropertyAnimation *m_floatUpAnimation;
|
QPropertyAnimation *m_floatUpAnimation;
|
||||||
QParallelAnimationGroup *m_exitAnimationGroup;
|
QParallelAnimationGroup *m_exitAnimationGroup;
|
||||||
|
@ -75,7 +69,6 @@ private:
|
||||||
NavigatorView *m_gv;
|
NavigatorView *m_gv;
|
||||||
BottomButtonGroup *m_bottomButtonGroup;
|
BottomButtonGroup *m_bottomButtonGroup;
|
||||||
bool m_protectedMode = false;
|
bool m_protectedMode = false;
|
||||||
bool m_clickedOnWindow = false;
|
|
||||||
|
|
||||||
QList<QUrl> m_files;
|
QList<QUrl> m_files;
|
||||||
int m_currentFileIndex = -1;
|
int m_currentFileIndex = -1;
|
||||||
|
|
|
@ -200,59 +200,59 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="178"/>
|
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||||
<source>File url list is empty</source>
|
<source>File url list is empty</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="408"/>
|
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="429"/>
|
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||||
<source>Copy P&ixmap</source>
|
<source>Copy P&ixmap</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="434"/>
|
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||||
<source>Copy &File Path</source>
|
<source>Copy &File Path</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="444"/>
|
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||||
<source>&Paste Image</source>
|
<source>&Paste Image</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="450"/>
|
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||||
<source>&Paste Image File</source>
|
<source>&Paste Image File</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="483"/>
|
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||||
<source>Properties</source>
|
<source>Properties</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
<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>
|
<source>Stay on top</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
<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>
|
<source>Protected mode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="469"/>
|
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||||
<source>Configure...</source>
|
<source>Configure...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="476"/>
|
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -204,59 +204,59 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="178"/>
|
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||||
<source>File url list is empty</source>
|
<source>File url list is empty</source>
|
||||||
<translation>Die Datei-URL-Liste ist leer</translation>
|
<translation>Die Datei-URL-Liste ist leer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="408"/>
|
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation>&Kopieren</translation>
|
<translation>&Kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="429"/>
|
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||||
<source>Copy P&ixmap</source>
|
<source>Copy P&ixmap</source>
|
||||||
<translation>P&ixmap kopieren</translation>
|
<translation>P&ixmap kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="434"/>
|
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||||
<source>Copy &File Path</source>
|
<source>Copy &File Path</source>
|
||||||
<translation>&Dateipfad kopieren</translation>
|
<translation>&Dateipfad kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="444"/>
|
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||||
<source>&Paste Image</source>
|
<source>&Paste Image</source>
|
||||||
<translation>Bild &einfügen</translation>
|
<translation>Bild &einfügen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="450"/>
|
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||||
<source>&Paste Image File</source>
|
<source>&Paste Image File</source>
|
||||||
<translation>Bilddatei &einfügen</translation>
|
<translation>Bilddatei &einfügen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="483"/>
|
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||||
<source>Properties</source>
|
<source>Properties</source>
|
||||||
<translation>Eigenschaften</translation>
|
<translation>Eigenschaften</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
<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>
|
<source>Stay on top</source>
|
||||||
<translation>Oben bleiben</translation>
|
<translation>Oben bleiben</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
<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>
|
<source>Protected mode</source>
|
||||||
<translation>Geschützter Modus</translation>
|
<translation>Geschützter Modus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="469"/>
|
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||||
<source>Configure...</source>
|
<source>Configure...</source>
|
||||||
<translation>Konfigurieren …</translation>
|
<translation>Konfigurieren …</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="476"/>
|
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>Hilfe</translation>
|
<translation>Hilfe</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -204,59 +204,59 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="178"/>
|
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||||
<source>File url list is empty</source>
|
<source>File url list is empty</source>
|
||||||
<translation>La liste des URL de fichiers est vide</translation>
|
<translation>La liste des URL de fichiers est vide</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="408"/>
|
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation>&Copier</translation>
|
<translation>&Copier</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="429"/>
|
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||||
<source>Copy P&ixmap</source>
|
<source>Copy P&ixmap</source>
|
||||||
<translation>Copier P&ixmap</translation>
|
<translation>Copier P&ixmap</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="434"/>
|
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||||
<source>Copy &File Path</source>
|
<source>Copy &File Path</source>
|
||||||
<translation>Copier le &chemin du fichier</translation>
|
<translation>Copier le &chemin du fichier</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="444"/>
|
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||||
<source>&Paste Image</source>
|
<source>&Paste Image</source>
|
||||||
<translation>&Coller l'image</translation>
|
<translation>&Coller l'image</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="450"/>
|
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||||
<source>&Paste Image File</source>
|
<source>&Paste Image File</source>
|
||||||
<translation>&Coller le fichier d'image</translation>
|
<translation>&Coller le fichier d'image</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="483"/>
|
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||||
<source>Properties</source>
|
<source>Properties</source>
|
||||||
<translation>Propriétés</translation>
|
<translation>Propriétés</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
<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>
|
<source>Stay on top</source>
|
||||||
<translation>Rester en-haut</translation>
|
<translation>Rester en-haut</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
<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>
|
<source>Protected mode</source>
|
||||||
<translation>Mode protégé</translation>
|
<translation>Mode protégé</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="469"/>
|
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||||
<source>Configure...</source>
|
<source>Configure...</source>
|
||||||
<translation>Configurer…</translation>
|
<translation>Configurer…</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="476"/>
|
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>Aide</translation>
|
<translation>Aide</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -204,59 +204,59 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="178"/>
|
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||||
<source>File url list is empty</source>
|
<source>File url list is empty</source>
|
||||||
<translation>Listen over filnettadresser er ugyldig</translation>
|
<translation>Listen over filnettadresser er ugyldig</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="408"/>
|
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation>&Kopier</translation>
|
<translation>&Kopier</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="429"/>
|
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||||
<source>Copy P&ixmap</source>
|
<source>Copy P&ixmap</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="434"/>
|
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||||
<source>Copy &File Path</source>
|
<source>Copy &File Path</source>
|
||||||
<translation>Kopier %filsti</translation>
|
<translation>Kopier %filsti</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="444"/>
|
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||||
<source>&Paste Image</source>
|
<source>&Paste Image</source>
|
||||||
<translation>&Lim inn bilde</translation>
|
<translation>&Lim inn bilde</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="450"/>
|
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||||
<source>&Paste Image File</source>
|
<source>&Paste Image File</source>
|
||||||
<translation>&Lim inn bildefil</translation>
|
<translation>&Lim inn bildefil</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="483"/>
|
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||||
<source>Properties</source>
|
<source>Properties</source>
|
||||||
<translation>Egenskaper</translation>
|
<translation>Egenskaper</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
<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>
|
<source>Stay on top</source>
|
||||||
<translation>Behold øverst</translation>
|
<translation>Behold øverst</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
<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>
|
<source>Protected mode</source>
|
||||||
<translation>Beskyttet modus</translation>
|
<translation>Beskyttet modus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="469"/>
|
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||||
<source>Configure...</source>
|
<source>Configure...</source>
|
||||||
<translation>Sett opp …</translation>
|
<translation>Sett opp …</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="476"/>
|
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>Hjelp</translation>
|
<translation>Hjelp</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -200,59 +200,59 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="178"/>
|
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||||
<source>File url list is empty</source>
|
<source>File url list is empty</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="408"/>
|
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation>&Копировать</translation>
|
<translation>&Копировать</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="429"/>
|
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||||
<source>Copy P&ixmap</source>
|
<source>Copy P&ixmap</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="434"/>
|
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||||
<source>Copy &File Path</source>
|
<source>Copy &File Path</source>
|
||||||
<translation>Копировать &Путь к файлу</translation>
|
<translation>Копировать &Путь к файлу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="444"/>
|
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||||
<source>&Paste Image</source>
|
<source>&Paste Image</source>
|
||||||
<translation>&Вставить изображение</translation>
|
<translation>&Вставить изображение</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="450"/>
|
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||||
<source>&Paste Image File</source>
|
<source>&Paste Image File</source>
|
||||||
<translation>&Вставить файл изображения</translation>
|
<translation>&Вставить файл изображения</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="483"/>
|
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||||
<source>Properties</source>
|
<source>Properties</source>
|
||||||
<translation>Свойства</translation>
|
<translation>Свойства</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
<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>
|
<source>Stay on top</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
<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>
|
<source>Protected mode</source>
|
||||||
<translation>Защищенный режим</translation>
|
<translation>Защищенный режим</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="469"/>
|
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||||
<source>Configure...</source>
|
<source>Configure...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="476"/>
|
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>Помощь</translation>
|
<translation>Помощь</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -204,59 +204,59 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="178"/>
|
<location filename="../app/mainwindow.cpp" line="176"/>
|
||||||
<source>File url list is empty</source>
|
<source>File url list is empty</source>
|
||||||
<translation>文件 URL 列表为空</translation>
|
<translation>文件 URL 列表为空</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="408"/>
|
<location filename="../app/mainwindow.cpp" line="370"/>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation>复制(&C)</translation>
|
<translation>复制(&C)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="429"/>
|
<location filename="../app/mainwindow.cpp" line="391"/>
|
||||||
<source>Copy P&ixmap</source>
|
<source>Copy P&ixmap</source>
|
||||||
<translation>复制位图(&I)</translation>
|
<translation>复制位图(&I)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="434"/>
|
<location filename="../app/mainwindow.cpp" line="396"/>
|
||||||
<source>Copy &File Path</source>
|
<source>Copy &File Path</source>
|
||||||
<translation>复制文件路径(&F)</translation>
|
<translation>复制文件路径(&F)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="444"/>
|
<location filename="../app/mainwindow.cpp" line="406"/>
|
||||||
<source>&Paste Image</source>
|
<source>&Paste Image</source>
|
||||||
<translation>粘贴图像(&P)</translation>
|
<translation>粘贴图像(&P)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="450"/>
|
<location filename="../app/mainwindow.cpp" line="412"/>
|
||||||
<source>&Paste Image File</source>
|
<source>&Paste Image File</source>
|
||||||
<translation>粘贴图像文件(&P)</translation>
|
<translation>粘贴图像文件(&P)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="483"/>
|
<location filename="../app/mainwindow.cpp" line="445"/>
|
||||||
<source>Properties</source>
|
<source>Properties</source>
|
||||||
<translation>属性</translation>
|
<translation>属性</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="31"/>
|
<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>
|
<source>Stay on top</source>
|
||||||
<translation>总在最前</translation>
|
<translation>总在最前</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/aboutdialog.cpp" line="35"/>
|
<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>
|
<source>Protected mode</source>
|
||||||
<translation>保护模式</translation>
|
<translation>保护模式</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="469"/>
|
<location filename="../app/mainwindow.cpp" line="431"/>
|
||||||
<source>Configure...</source>
|
<source>Configure...</source>
|
||||||
<translation>设置...</translation>
|
<translation>设置...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../app/mainwindow.cpp" line="476"/>
|
<location filename="../app/mainwindow.cpp" line="438"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>帮助</translation>
|
<translation>帮助</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user