mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 10:46:35 +01:00
Added bookmarks sidebar + bookmark icon + docktitlebar classes
This commit is contained in:
parent
b81de62f24
commit
be70ac9f2d
58
src/bookmarks/bookmarkicon.cpp
Normal file
58
src/bookmarks/bookmarkicon.cpp
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#include "bookmarkicon.h"
|
||||||
|
#include "mainapplication.h"
|
||||||
|
#include "qupzilla.h"
|
||||||
|
#include "bookmarksmodel.h"
|
||||||
|
#include "bookmarkswidget.h"
|
||||||
|
|
||||||
|
BookmarkIcon::BookmarkIcon(QupZilla* mainClass, QWidget* parent)
|
||||||
|
: ClickableLabel(parent)
|
||||||
|
, p_QupZilla(mainClass)
|
||||||
|
, m_bookmarksModel(0)
|
||||||
|
{
|
||||||
|
setPixmap(QPixmap(":/icons/locationbar/starg.png"));
|
||||||
|
setCursor(Qt::PointingHandCursor);
|
||||||
|
setStyleSheet("margin-bottom: 2px;");
|
||||||
|
setToolTip(tr("Bookmark this Page"));
|
||||||
|
setFocusPolicy(Qt::ClickFocus);
|
||||||
|
|
||||||
|
m_bookmarksModel = mApp->bookmarksModel();
|
||||||
|
connect(this, SIGNAL(clicked(QPoint)), this, SLOT(iconClicked()));
|
||||||
|
connect(m_bookmarksModel, SIGNAL(bookmarkAdded(BookmarksModel::Bookmark)), this, SLOT(bookmarkAdded(BookmarksModel::Bookmark)));
|
||||||
|
connect(m_bookmarksModel, SIGNAL(bookmarkDeleted(BookmarksModel::Bookmark)), this, SLOT(bookmarkDeleted(BookmarksModel::Bookmark)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookmarkIcon::iconClicked()
|
||||||
|
{
|
||||||
|
QUrl url = p_QupZilla->weView()->url();
|
||||||
|
|
||||||
|
if (m_bookmarksModel->isBookmarked(url)) {
|
||||||
|
BookmarksWidget* menu = new BookmarksWidget(m_bookmarksModel->bookmarkId(url), p_QupZilla->locationBar());
|
||||||
|
menu->showAt(this);
|
||||||
|
} else
|
||||||
|
m_bookmarksModel->saveBookmark(p_QupZilla->weView());
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookmarkIcon::checkBookmark(const QUrl &url)
|
||||||
|
{
|
||||||
|
if (m_lastUrl == url)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (m_bookmarksModel->isBookmarked(url))
|
||||||
|
setBookmarkSaved();
|
||||||
|
else
|
||||||
|
setBookmarkDisabled();
|
||||||
|
|
||||||
|
m_lastUrl = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookmarkIcon::bookmarkDeleted(const BookmarksModel::Bookmark &bookmark)
|
||||||
|
{
|
||||||
|
if (bookmark.url == m_lastUrl)
|
||||||
|
setBookmarkDisabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookmarkIcon::bookmarkAdded(const BookmarksModel::Bookmark &bookmark)
|
||||||
|
{
|
||||||
|
if (bookmark.url == m_lastUrl)
|
||||||
|
setBookmarkSaved();
|
||||||
|
}
|
45
src/bookmarks/bookmarkicon.h
Normal file
45
src/bookmarks/bookmarkicon.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#ifndef BOOKMARKICON_H
|
||||||
|
#define BOOKMARKICON_H
|
||||||
|
|
||||||
|
#include <QUrl>
|
||||||
|
|
||||||
|
#include "clickablelabel.h"
|
||||||
|
#include "bookmarksmodel.h"
|
||||||
|
class QupZilla;
|
||||||
|
class BookmarksModel;
|
||||||
|
class BookmarkIcon : public ClickableLabel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit BookmarkIcon(QupZilla* mainClass, QWidget* parent = 0);
|
||||||
|
void checkBookmark(const QUrl &url);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void iconClicked();
|
||||||
|
void bookmarkAdded(const BookmarksModel::Bookmark &bookmark);
|
||||||
|
void bookmarkDeleted(const BookmarksModel::Bookmark &bookmark);
|
||||||
|
|
||||||
|
private:
|
||||||
|
inline void setBookmarkSaved()
|
||||||
|
{
|
||||||
|
setPixmap(QPixmap(":/icons/locationbar/star.png"));
|
||||||
|
setToolTip(tr("Edit this bookmark"));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void setBookmarkDisabled()
|
||||||
|
{
|
||||||
|
setPixmap(QPixmap(":/icons/locationbar/starg.png"));
|
||||||
|
setToolTip(tr("Bookmark this Page"));
|
||||||
|
}
|
||||||
|
QupZilla* p_QupZilla;
|
||||||
|
BookmarksModel* m_bookmarksModel;
|
||||||
|
|
||||||
|
QUrl m_lastUrl;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BOOKMARKICON_H
|
53
src/sidebar/bookmarkssidebar.h
Normal file
53
src/sidebar/bookmarkssidebar.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#ifndef BOOKMARKSSIDEBAR_H
|
||||||
|
#define BOOKMARKSSIDEBAR_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QTreeWidgetItem>
|
||||||
|
#include <QInputDialog>
|
||||||
|
#include <QPointer>
|
||||||
|
|
||||||
|
#include "bookmarksmodel.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class BookmarksSideBar;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WebView;
|
||||||
|
class QupZilla;
|
||||||
|
class BookmarksModel;
|
||||||
|
class BookmarksSideBar : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit BookmarksSideBar(QupZilla* mainClass, QWidget* parent = 0);
|
||||||
|
~BookmarksSideBar();
|
||||||
|
void setMainWindow(QupZilla* window);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void refreshTable();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void deleteItem();
|
||||||
|
void contextMenuRequested(const QPoint &position);
|
||||||
|
void loadInNewTab();
|
||||||
|
void itemControlClicked(QTreeWidgetItem* item);
|
||||||
|
void itemDoubleClicked(QTreeWidgetItem* item);
|
||||||
|
void moveBookmark();
|
||||||
|
|
||||||
|
void addBookmark(const BookmarksModel::Bookmark &bookmark);
|
||||||
|
void removeBookmark(const BookmarksModel::Bookmark &bookmark);
|
||||||
|
void bookmarkEdited(const BookmarksModel::Bookmark &before, const BookmarksModel::Bookmark &after);
|
||||||
|
void addFolder(const QString &name);
|
||||||
|
void removeFolder(const QString &name);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QupZilla* getQupZilla();
|
||||||
|
|
||||||
|
bool m_isRefreshing;
|
||||||
|
Ui::BookmarksSideBar* ui;
|
||||||
|
QPointer<QupZilla> p_QupZilla;
|
||||||
|
BookmarksModel* m_bookmarksModel;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BOOKMARKSSIDEBAR_H
|
68
src/sidebar/bookmarkssidebar.ui
Normal file
68
src/sidebar/bookmarkssidebar.ui
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>BookmarksSideBar</class>
|
||||||
|
<widget class="QWidget" name="BookmarksSideBar">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>259</width>
|
||||||
|
<height>486</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="search">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>Search...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="TreeWidget" name="bookmarksTree">
|
||||||
|
<property name="contextMenuPolicy">
|
||||||
|
<enum>Qt::CustomContextMenu</enum>
|
||||||
|
</property>
|
||||||
|
<property name="alternatingRowColors">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="headerHidden">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="headerDefaultSectionSize">
|
||||||
|
<number>330</number>
|
||||||
|
</attribute>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Bookmark</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>TreeWidget</class>
|
||||||
|
<extends>QTreeWidget</extends>
|
||||||
|
<header>treewidget.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
23
src/tools/docktitlebarwidget.cpp
Normal file
23
src/tools/docktitlebarwidget.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#include "docktitlebarwidget.h"
|
||||||
|
|
||||||
|
DockTitleBarWidget::DockTitleBarWidget(const QString &title, QWidget* parent) :
|
||||||
|
QWidget(parent)
|
||||||
|
{
|
||||||
|
setupUi(this);
|
||||||
|
#ifdef Q_WS_X11
|
||||||
|
closeButton->setIcon(QIcon(style()->standardIcon(QStyle::SP_DialogCloseButton).pixmap(16,16)));
|
||||||
|
#else
|
||||||
|
closeButton->setIcon(QIcon(QIcon(":/icons/faenza/close.png").pixmap(16,16)));
|
||||||
|
#endif
|
||||||
|
label->setText(title);
|
||||||
|
connect(closeButton, SIGNAL(clicked()), parent, SLOT(close()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void DockTitleBarWidget::setTitle(const QString &title)
|
||||||
|
{
|
||||||
|
label->setText(title);
|
||||||
|
}
|
||||||
|
|
||||||
|
DockTitleBarWidget::~DockTitleBarWidget()
|
||||||
|
{
|
||||||
|
}
|
21
src/tools/docktitlebarwidget.h
Normal file
21
src/tools/docktitlebarwidget.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef DOCKTITLEBARWIDGET_H
|
||||||
|
#define DOCKTITLEBARWIDGET_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
#include "ui_docktitlebarwidget.h"
|
||||||
|
|
||||||
|
class DockTitleBarWidget : public QWidget, public Ui_DockTitleBarWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit DockTitleBarWidget(const QString &title, QWidget* parent = 0);
|
||||||
|
~DockTitleBarWidget();
|
||||||
|
|
||||||
|
void setTitle(const QString &title);
|
||||||
|
|
||||||
|
private:
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DOCKTITLEBARWIDGET_H
|
53
src/tools/docktitlebarwidget.ui
Normal file
53
src/tools/docktitlebarwidget.ui
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>DockTitleBarWidget</class>
|
||||||
|
<widget class="QWidget" name="DockTitleBarWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>667</width>
|
||||||
|
<height>24</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="closeButton">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>16</width>
|
||||||
|
<height>16</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue
Block a user