diff --git a/COPYING b/COPYING index c19ee7353..e6c759d82 100644 --- a/COPYING +++ b/COPYING @@ -20,6 +20,7 @@ Source: http://www.keepassx.org/ Copyright: 2010-2012, Felix Geyer 2011-2012, Florian Geyer + 2007, Trolltech ASA License: GPL-2 or GPL-3 Files: share/icons/database/*.png @@ -59,6 +60,8 @@ Files: share/icons/application/*/actions/application-exit.png, share/icons/application/*/actions/document-open.png, share/icons/application/*/actions/document-save.png, share/icons/application/*/actions/document-save-as.png, + share/icons/application/*/actions/edit-clear-locationbar-ltr.png, + share/icons/application/*/actions/edit-clear-locationbar-rtl.png, share/icons/application/*/actions/system-search.png, share/icons/application/*/status/dialog-error.png, share/icons/application/*/status/dialog-information.png, diff --git a/share/icons/application/16x16/actions/edit-clear-locationbar-ltr.png b/share/icons/application/16x16/actions/edit-clear-locationbar-ltr.png new file mode 100644 index 000000000..97c8e38a7 Binary files /dev/null and b/share/icons/application/16x16/actions/edit-clear-locationbar-ltr.png differ diff --git a/share/icons/application/16x16/actions/edit-clear-locationbar-rtl.png b/share/icons/application/16x16/actions/edit-clear-locationbar-rtl.png new file mode 100644 index 000000000..85e31eb30 Binary files /dev/null and b/share/icons/application/16x16/actions/edit-clear-locationbar-rtl.png differ diff --git a/share/icons/application/22x22/actions/edit-clear-locationbar-rtl.png b/share/icons/application/22x22/actions/edit-clear-locationbar-rtl.png deleted file mode 100644 index 80ff24af5..000000000 Binary files a/share/icons/application/22x22/actions/edit-clear-locationbar-rtl.png and /dev/null differ diff --git a/src/gui/LineEdit.cpp b/src/gui/LineEdit.cpp index e344899c6..89b420471 100644 --- a/src/gui/LineEdit.cpp +++ b/src/gui/LineEdit.cpp @@ -1,16 +1,26 @@ -/**************************************************************************** -** -** Copyright (c) 2007 Trolltech ASA -** -** Use, modification and distribution is allowed without limitation, -** warranty, liability or support of any kind. -** -****************************************************************************/ +/* + * Copyright (C) 2007 Trolltech ASA + * Copyright (C) 2012 Felix Geyer + * Copyright (C) 2012 Florian Geyer + * + * 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 2 or (at your option) + * version 3 of the License. + * + * 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 . + */ #include "LineEdit.h" -#include #include +#include #include "core/DataPath.h" @@ -19,7 +29,18 @@ LineEdit::LineEdit(QWidget* parent) { m_clearButton = new QToolButton(this); m_clearButton->setObjectName("clearButton"); - QIcon icon = dataPath()->icon("actions", "edit-clear-locationbar-rtl"); + + QIcon icon; + QString iconNameDirected = QString("edit-clear-locationbar-").append( + (layoutDirection() == Qt::LeftToRight) ? "rtl" : "ltr"); + icon = QIcon::fromTheme(iconNameDirected); + if (icon.isNull()) { + icon = QIcon::fromTheme("edit-clear"); + if (icon.isNull()) { + icon = dataPath()->icon("actions", iconNameDirected, false); + } + } + m_clearButton->setIcon(icon); m_clearButton->setCursor(Qt::ArrowCursor); m_clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }"); @@ -36,12 +57,18 @@ LineEdit::LineEdit(QWidget* parent) void LineEdit::resizeEvent(QResizeEvent* event) { - Q_UNUSED(event); - QSize sz = m_clearButton->sizeHint(); int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); - m_clearButton->move(rect().right() - frameWidth - sz.width(), - (rect().bottom() + 1 - sz.height())/2); + int y = (rect().bottom() + 1 - sz.height()) / 2; + + if (layoutDirection() == Qt::LeftToRight) { + m_clearButton->move(rect().right() - frameWidth - sz.width(), y); + } + else { + m_clearButton->move(rect().left() + frameWidth, y); + } + + QLineEdit::resizeEvent(event); } void LineEdit::updateCloseButton(const QString& text) diff --git a/src/gui/LineEdit.h b/src/gui/LineEdit.h index 85ddb7c76..802180f12 100644 --- a/src/gui/LineEdit.h +++ b/src/gui/LineEdit.h @@ -1,11 +1,21 @@ -/**************************************************************************** -** -** Copyright (c) 2007 Trolltech ASA -** -** Use, modification and distribution is allowed without limitation, -** warranty, liability or support of any kind. -** -****************************************************************************/ +/* + * Copyright (C) 2007 Trolltech ASA + * Copyright (C) 2012 Felix Geyer + * Copyright (C) 2012 Florian Geyer + * + * 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 2 or (at your option) + * version 3 of the License. + * + * 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 . + */ #ifndef KEEPASSX_LINEEDIT_H #define KEEPASSX_LINEEDIT_H