summaryrefslogtreecommitdiff
path: root/src/urlbar/bookmarkwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/urlbar/bookmarkwidget.cpp')
-rw-r--r--src/urlbar/bookmarkwidget.cpp87
1 files changed, 34 insertions, 53 deletions
diff --git a/src/urlbar/bookmarkwidget.cpp b/src/urlbar/bookmarkwidget.cpp
index cb711723..409f1468 100644
--- a/src/urlbar/bookmarkwidget.cpp
+++ b/src/urlbar/bookmarkwidget.cpp
@@ -35,124 +35,105 @@
// KDE Includes
#include <KLocalizedString>
+#include <KIcon>
#include <KLineEdit>
-#include <KMessageBox>
// Qt Includes
-#include <QtGui/QFormLayout>
#include <QtGui/QDialogButtonBox>
+#include <QtGui/QFormLayout>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
-
BookmarkWidget::BookmarkWidget(const KBookmark &bookmark, QWidget *parent)
- : QFrame(parent, Qt::Popup)
- , m_bookmark(bookmark)
+ : QMenu(parent)
+ , m_bookmark(new KBookmark(bookmark))
{
setAttribute(Qt::WA_DeleteOnClose);
setFixedWidth(350);
- setFrameStyle(QFrame::Panel);
QFormLayout *layout = new QFormLayout(this);
- setLayout(layout);
-
- QHBoxLayout *hLayout = new QHBoxLayout();
+ // Bookmark icon
+ QHBoxLayout *hLayout = new QHBoxLayout(this);
QLabel *bookmarkIcon = new QLabel(this);
bookmarkIcon->setPixmap(KIcon("bookmarks").pixmap(32, 32));
- hLayout->addWidget(bookmarkIcon);
hLayout->setSpacing(10);
+ hLayout->addWidget(bookmarkIcon);
- QVBoxLayout *vLayout = new QVBoxLayout();
-
+ // Title
+ QVBoxLayout *vLayout = new QVBoxLayout(this);
QLabel *bookmarkInfo = new QLabel(this);
bookmarkInfo->setText(i18n("Edit this Bookmark"));
QFont font;
font.setPointSize(font.pointSize() + 2);
bookmarkInfo->setFont(font);
-
+ bookmarkInfo->setAlignment(Qt::AlignCenter);
vLayout->addWidget(bookmarkInfo);
+ // Remove button
QPushButton *removeButton = new QPushButton(this);
removeButton->setText(i18n("Remove this Bookmark"));
connect(removeButton, SIGNAL(clicked()), this, SLOT(removeBookmark()));
-
vLayout->addWidget(removeButton);
+
hLayout->addLayout(vLayout);
layout->addItem(hLayout);
-
+ // Bookmark name
QLabel *nameLabel = new QLabel(this);
nameLabel->setText(i18n("Name:"));
-
m_name = new KLineEdit(this);
- if (m_bookmark.isNull())
+ if (m_bookmark->isNull())
{
m_name->setEnabled(false);
}
else
{
- m_name->setText(m_bookmark.text());
+ m_name->setText(m_bookmark->text());
m_name->setFocus();
}
-
layout->addRow(nameLabel, m_name);
- QLabel *urlLabel = new QLabel(this);
- urlLabel->setText("URL:");
-
- KLineEdit *url = new KLineEdit(this);
- url->setText(m_bookmark.url().url());
- url->setEnabled(false);
-
- layout->addRow(urlLabel, url);
-
+ // Ok & Cancel buttons
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
- buttonBox->button(QDialogButtonBox::Ok)->setText(i18n("Done"));
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
- connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
-
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
layout->addWidget(buttonBox);
+
+ setLayout(layout);
}
BookmarkWidget::~BookmarkWidget()
{
- delete m_name;
+ delete m_bookmark;
}
-void BookmarkWidget::accept()
+void BookmarkWidget::showAt(const QPoint &pos)
{
- if (!m_bookmark.isNull() && m_name->text() != m_bookmark.fullText())
- {
- m_bookmark.setFullText(m_name->text());
- Application::bookmarkProvider()->bookmarkManager()->emitChanged();
- }
- reject();
-}
-
+ adjustSize();
-void BookmarkWidget::reject()
-{
- close();
- deleteLater();
+ QPoint p(pos.x()-width(), pos.y()+10);
+ move(p);
+ show();
}
-void BookmarkWidget::showAt(const QPoint &pos)
+void BookmarkWidget::accept()
{
- QPoint p;
- p.setX(pos.x() - 350);
- p.setY(pos.y() + 12);
- move(p);
- show();
+ if (!m_bookmark->isNull() && m_name->text() != m_bookmark->fullText())
+ {
+ m_bookmark->setFullText(m_name->text());
+ Application::bookmarkProvider()->bookmarkManager()->emitChanged();
+ }
+ close();
}
void BookmarkWidget::removeBookmark()
{
- Application::bookmarkProvider()->bookmarkOwner()->deleteBookmark(m_bookmark);
- reject();
+ Application::bookmarkProvider()->bookmarkOwner()->deleteBookmark(*m_bookmark);
+ close();
}