1 | /* |
2 | Copyright (c) 2011 Laurent Montel <montel@kde.org> |
3 | |
4 | This library is free software; you can redistribute it and/or modify it |
5 | under the terms of the GNU Library General Public License as published by |
6 | the Free Software Foundation; either version 2 of the License, or (at your |
7 | option) any later version. |
8 | |
9 | This library is distributed in the hope that it will be useful, but WITHOUT |
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public |
12 | License for more details. |
13 | |
14 | You should have received a copy of the GNU Library General Public License |
15 | along with this library; see the file COPYING.LIB. If not, write to the |
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
17 | 02110-1301, USA. |
18 | */ |
19 | |
20 | #include "renamefavoritedialog.h" |
21 | #include <QLabel> |
22 | #include <KLineEdit> |
23 | #include <KLocalizedString> |
24 | #include <QVBoxLayout> |
25 | |
26 | RenameFavoriteDialog::RenameFavoriteDialog(const QString &caption, const QString &text, const QString &value, const QString &defaultName, QWidget *parent) |
27 | : KDialog(parent) |
28 | , m_defaultName(defaultName) |
29 | { |
30 | setCaption(caption); |
31 | setButtons(Ok | Cancel | User1); |
32 | setButtonGuiItem(User1, KGuiItem(i18n("Default Name" ))); |
33 | setDefaultButton(Ok); |
34 | setModal(true); |
35 | |
36 | QWidget *frame = new QWidget(this); |
37 | QVBoxLayout *layout = new QVBoxLayout(frame); |
38 | layout->setMargin(0); |
39 | |
40 | m_label = new QLabel(text, frame); |
41 | m_label->setWordWrap(true); |
42 | layout->addWidget(m_label); |
43 | |
44 | m_lineEdit = new KLineEdit(value, frame); |
45 | m_lineEdit->setClearButtonShown(true); |
46 | layout->addWidget(m_lineEdit); |
47 | |
48 | m_lineEdit->setFocus(); |
49 | m_label->setBuddy(m_lineEdit); |
50 | |
51 | layout->addStretch(); |
52 | |
53 | connect(m_lineEdit, SIGNAL(textChanged(QString)), |
54 | SLOT(slotEditTextChanged(QString))); |
55 | connect(this, SIGNAL(user1Clicked()), this, SLOT(slotDefaultName())); |
56 | |
57 | setMainWidget(frame); |
58 | slotEditTextChanged(value); |
59 | setMinimumWidth(350); |
60 | |
61 | } |
62 | |
63 | RenameFavoriteDialog::~RenameFavoriteDialog() |
64 | { |
65 | } |
66 | |
67 | void RenameFavoriteDialog::slotDefaultName() |
68 | { |
69 | m_lineEdit->setText(m_defaultName); |
70 | } |
71 | |
72 | void RenameFavoriteDialog::slotEditTextChanged(const QString &text) |
73 | { |
74 | enableButton(Ok, !text.trimmed().isEmpty()); |
75 | } |
76 | |
77 | QString RenameFavoriteDialog::newName() const |
78 | { |
79 | return m_lineEdit->text(); |
80 | } |
81 | |