Improve EditEntryWidget.

This commit is contained in:
Felix Geyer 2010-10-06 22:54:07 +02:00
parent 0c91be8eac
commit 8fc2b9328e
5 changed files with 109 additions and 10 deletions

View File

@ -264,6 +264,11 @@ void Entry::addHistoryItem(Entry* entry)
m_history.append(entry);
}
Group* Entry::group()
{
return m_group;
}
void Entry::setGroup(Group* group)
{
if (m_group) {

View File

@ -87,6 +87,7 @@ public:
const QList<Entry*>& historyItems() const;
void addHistoryItem(Entry* entry);
Group* group();
void setGroup(Group* group);

View File

@ -24,6 +24,7 @@
#include <QtGui/QStackedLayout>
#include "core/Entry.h"
#include "core/Group.h"
EditEntryWidget::EditEntryWidget(QWidget* parent)
: QWidget(parent)
@ -36,6 +37,11 @@ EditEntryWidget::EditEntryWidget(QWidget* parent)
{
m_ui->setupUi(this);
QFont headerLabelFont = m_ui->headerLabel->font();
headerLabelFont.setBold(true);
headerLabelFont.setPointSize(headerLabelFont.pointSize() + 2);
m_ui->headerLabel->setFont(headerLabelFont);
m_ui->categoryList->addItem(tr("Entry"));
m_ui->categoryList->addItem(tr("Description"));
@ -60,6 +66,8 @@ void EditEntryWidget::loadEntry(Entry* entry)
{
m_entry = entry;
m_ui->headerLabel->setText(m_entry->group()->name()+" > "+tr("Edit entry"));
m_mainUi->titleEdit->setText(entry->title());
m_mainUi->usernameEdit->setText(entry->username());
m_mainUi->urlEdit->setText(entry->url());

View File

@ -11,23 +11,39 @@
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="headerLabel">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>3</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QListWidget" name="categoryList">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>20</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
<widget class="CategoryListWidget" name="categoryList"/>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>80</horstretch>
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>4</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
@ -47,6 +63,13 @@
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>CategoryListWidget</class>
<extends>QListWidget</extends>
<header>gui/EditEntryWidget_p.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,62 @@
/*
* Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
*
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef KEEPASSX_EDITENTRYWIDGET_P_H
#define KEEPASSX_EDITENTRYWIDGET_P_H
#include <QtCore/QSize>
#include <QtGui/QListWidget>
#include <QtGui/QScrollBar>
#include <QtGui/QStyledItemDelegate>
class CategoryListViewDelegate : public QStyledItemDelegate
{
public:
CategoryListViewDelegate(QObject *parent) : QStyledItemDelegate(parent) {}
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QSize size = QStyledItemDelegate::sizeHint(option, index);
size.setHeight(qMax(size.height(), 22));
return size;
}
};
class CategoryListWidget : public QListWidget
{
public:
CategoryListWidget(QWidget* parent = 0) : QListWidget(parent)
{
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
setItemDelegate(new CategoryListViewDelegate(this));
}
virtual QSize sizeHint() const
{
QSize sizeHint = QListWidget::sizeHint();
int width = sizeHintForColumn(0) + frameWidth() * 2 + 5;
if (verticalScrollBar()->isVisible()) {
width += verticalScrollBar()->width();
}
sizeHint.setWidth(width);
return sizeHint;
}
};
#endif // KEEPASSX_EDITENTRYWIDGET_P_H