mirror of
https://invent.kde.org/network/falkon.git
synced 2024-11-11 01:22:10 +01:00
Added StatusBarMessage class which handles and shows those messages on a
tooltip in left bottom corner of webview if statusbar is hidden
This commit is contained in:
parent
8b9bfd7c0d
commit
85daf062d4
|
@ -117,7 +117,8 @@ SOURCES += main.cpp\
|
|||
tools/progressbar.cpp \
|
||||
tools/iconprovider.cpp \
|
||||
network/networkproxyfactory.cpp \
|
||||
tools/closedtabsmanager.cpp
|
||||
tools/closedtabsmanager.cpp \
|
||||
other/statusbarmessage.cpp
|
||||
|
||||
HEADERS += 3rdparty/squeezelabel.h \
|
||||
3rdparty/qtwin.h \
|
||||
|
@ -194,7 +195,8 @@ HEADERS += 3rdparty/squeezelabel.h \
|
|||
tools/progressbar.h \
|
||||
tools/iconprovider.h \
|
||||
network/networkproxyfactory.h \
|
||||
tools/closedtabsmanager.h
|
||||
tools/closedtabsmanager.h \
|
||||
other/statusbarmessage.h
|
||||
|
||||
FORMS += \
|
||||
preferences/autofillmanager.ui \
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
#include "progressbar.h"
|
||||
#include "adblockicon.h"
|
||||
#include "closedtabsmanager.h"
|
||||
#include "statusbarmessage.h"
|
||||
|
||||
const QString QupZilla::VERSION = "1.0.0-b2";
|
||||
//const QString QupZilla::BUILDTIME = QLocale(QLocale::English).toDateTime(__DATE__" "__TIME__, "MMM d yyyy hh:mm:ss").toString("MM/dd/yyyy hh:ss");
|
||||
|
@ -69,6 +70,7 @@ QupZilla::QupZilla(bool tryRestore, QUrl startUrl) :
|
|||
,m_webInspectorDock(0)
|
||||
,m_webSearchToolbar(0)
|
||||
,m_sideBar(0)
|
||||
,m_statusBarMessage(new StatusBarMessage(this))
|
||||
{
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
this->resize(640,480);
|
||||
|
|
|
@ -72,6 +72,7 @@ class WebTab;
|
|||
class AdBlockIcon;
|
||||
class SideBar;
|
||||
class ProgressBar;
|
||||
class StatusBarMessage;
|
||||
class QupZilla : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -100,6 +101,7 @@ public:
|
|||
inline LocationBar* locationBar() { return m_locationBar; }
|
||||
inline TabWidget* tabWidget() { return m_tabWidget; }
|
||||
inline BookmarksToolbar* bookmarksToolbar() { return m_bookmarksToolbar; }
|
||||
inline StatusBarMessage* statusBarMessage() { return m_statusBarMessage; }
|
||||
|
||||
inline QAction* buttonStop(){ return m_buttonStop; }
|
||||
inline QAction* buttonReload(){ return m_buttonReload; }
|
||||
|
@ -237,6 +239,7 @@ private:
|
|||
LocationBar* m_locationBar;
|
||||
TabWidget* m_tabWidget;
|
||||
QPointer<SideBar> m_sideBar;
|
||||
StatusBarMessage* m_statusBarMessage;
|
||||
|
||||
QSplitter* m_navigationSplitter;
|
||||
QAction* m_buttonBack;
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "webpage.h"
|
||||
#include "bookmarkicon.h"
|
||||
#include "progressbar.h"
|
||||
#include "statusbarmessage.h"
|
||||
|
||||
LocationBar::LocationBar(QupZilla* mainClass, QWidget* parent)
|
||||
: LineEdit(parent)
|
||||
|
@ -154,7 +155,7 @@ void LocationBar::rssIconClicked()
|
|||
|
||||
void LocationBar::showUrl(const QUrl &url, bool empty)
|
||||
{
|
||||
if (hasFocus() || (url.isEmpty() && empty))
|
||||
if (/*hasFocus() || (*/url.isEmpty() && empty/*)*/)
|
||||
return;
|
||||
|
||||
if (url.toEncoded()!=text()) {
|
||||
|
@ -171,15 +172,15 @@ void LocationBar::showUrl(const QUrl &url, bool empty)
|
|||
p_QupZilla->progressBar()->setValue(view->getLoading());
|
||||
p_QupZilla->buttonStop()->setVisible(true);
|
||||
p_QupZilla->buttonReload()->setVisible(false);
|
||||
p_QupZilla->statusBar()->showMessage(tr("Loading..."));
|
||||
} else {
|
||||
p_QupZilla->progressBar()->setVisible(false);
|
||||
p_QupZilla->buttonStop()->setVisible(false);
|
||||
p_QupZilla->buttonReload()->setVisible(true);
|
||||
p_QupZilla->statusBar()->showMessage(tr("Done"));
|
||||
p_QupZilla->ipLabel()->show();
|
||||
}
|
||||
|
||||
p_QupZilla->statusBarMessage()->clearMessage();
|
||||
|
||||
hideGoButton();
|
||||
|
||||
m_bookmarkIcon->checkBookmark(url);
|
||||
|
|
65
src/other/statusbarmessage.cpp
Normal file
65
src/other/statusbarmessage.cpp
Normal file
|
@ -0,0 +1,65 @@
|
|||
#include "statusbarmessage.h"
|
||||
#include "qupzilla.h"
|
||||
#include "squeezelabel.h"
|
||||
|
||||
|
||||
class TipLabel : public SqueezeLabel {
|
||||
public:
|
||||
TipLabel()
|
||||
{
|
||||
setWindowFlags(Qt::ToolTip);
|
||||
setForegroundRole(QPalette::ToolTipText);
|
||||
setBackgroundRole(QPalette::ToolTipBase);
|
||||
setPalette(QToolTip::palette());
|
||||
ensurePolished();
|
||||
setFrameStyle(QFrame::NoFrame);
|
||||
setMargin(2);
|
||||
}
|
||||
|
||||
void paintEvent(QPaintEvent *ev)
|
||||
{
|
||||
QStylePainter p(this);
|
||||
QStyleOptionFrame opt;
|
||||
opt.init(this);
|
||||
p.drawPrimitive(QStyle::PE_PanelTipLabel, opt);
|
||||
p.end();
|
||||
|
||||
SqueezeLabel::paintEvent(ev);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
StatusBarMessage::StatusBarMessage(QupZilla* mainClass)
|
||||
: QObject()
|
||||
, p_QupZilla(mainClass)
|
||||
{
|
||||
m_statusBarText = new TipLabel();
|
||||
}
|
||||
|
||||
#define STATUS_Y_OFFSET -35
|
||||
#define STATUS_X_OFFSET +3
|
||||
#define STATUS_TOOLTIP_WIDTH_OFFSET -20
|
||||
|
||||
void StatusBarMessage::showMessage(const QString &message)
|
||||
{
|
||||
if (p_QupZilla->statusBar()->isVisible()) {
|
||||
p_QupZilla->statusBar()->showMessage(message);
|
||||
} else {
|
||||
QPoint position = p_QupZilla->weView()->mapToGlobal(p_QupZilla->weView()->pos());
|
||||
position.setY( p_QupZilla->weView()->size().height() + position.y() STATUS_Y_OFFSET);
|
||||
position.setX(position.x() STATUS_X_OFFSET);
|
||||
m_statusBarText->move(position);
|
||||
m_statusBarText->setMaximumWidth(p_QupZilla->size().width() STATUS_TOOLTIP_WIDTH_OFFSET);
|
||||
m_statusBarText->setText(message);
|
||||
m_statusBarText->resize(m_statusBarText->sizeHint());
|
||||
m_statusBarText->show();
|
||||
}
|
||||
}
|
||||
|
||||
void StatusBarMessage::clearMessage()
|
||||
{
|
||||
if (p_QupZilla->statusBar()->isVisible())
|
||||
p_QupZilla->statusBar()->showMessage("");
|
||||
else
|
||||
m_statusBarText->hide();
|
||||
}
|
27
src/other/statusbarmessage.h
Normal file
27
src/other/statusbarmessage.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
#ifndef STATUSBARMESSAGE_H
|
||||
#define STATUSBARMESSAGE_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QToolTip>
|
||||
|
||||
class QupZilla;
|
||||
class TipLabel;
|
||||
class StatusBarMessage : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit StatusBarMessage(QupZilla* mainClass);
|
||||
|
||||
void showMessage(const QString &message);
|
||||
void clearMessage();
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
private:
|
||||
QupZilla* p_QupZilla;
|
||||
TipLabel* m_statusBarText;
|
||||
};
|
||||
|
||||
#endif // STATUSBARMESSAGE_H
|
|
@ -593,8 +593,13 @@ void Preferences::saveSettings()
|
|||
settings.setValue("defaultDownloadPath","");
|
||||
else{
|
||||
QString text = ui->downLoc->text();
|
||||
#ifdef Q_WS_WIN
|
||||
if (!text.endsWith("\\"))
|
||||
text+="\\";
|
||||
#else
|
||||
if (!text.endsWith("/"))
|
||||
text+="/";
|
||||
#endif
|
||||
settings.setValue("defaultDownloadPath",text);
|
||||
}
|
||||
settings.endGroup();
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "pluginproxy.h"
|
||||
#include "iconprovider.h"
|
||||
#include "webtab.h"
|
||||
#include "statusbarmessage.h"
|
||||
|
||||
WebView::WebView(QupZilla* mainClass, QWidget* parent)
|
||||
: QWebView(parent)
|
||||
|
@ -266,11 +267,10 @@ void WebView::linkHovered(const QString &link, const QString &title, const QStri
|
|||
Q_UNUSED(title);
|
||||
Q_UNUSED(content);
|
||||
if (isCurrent()) {
|
||||
if (link!="") {
|
||||
p_QupZilla->statusBar()->showMessage(link);
|
||||
}else{
|
||||
isLoading() ? p_QupZilla->statusBar()->showMessage(tr("Loading...")) : p_QupZilla->statusBar()->showMessage(tr("Done"));
|
||||
}
|
||||
if (link!="")
|
||||
p_QupZilla->statusBarMessage()->showMessage(link);
|
||||
else
|
||||
p_QupZilla->statusBarMessage()->clearMessage();
|
||||
}
|
||||
m_hoveredLink = link;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user