mirror of
https://invent.kde.org/network/falkon.git
synced 2024-11-11 01:22:10 +01:00
Improved javascript alert, confirm, prompt dialogs.
- instead of injecting semi transparent block into page, we just set background of the whole widget frame to semi transparent image - fixes issue, when sometimes background filled only half of the page this issue occurs sometimes when more than one frames were in page
This commit is contained in:
parent
a3898e48c0
commit
0e82994e7f
BIN
bin/themes/chrome/images/semi-transp.png
Normal file
BIN
bin/themes/chrome/images/semi-transp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 B |
|
@ -336,6 +336,11 @@ DownloadManager #list
|
|||
}
|
||||
|
||||
/*JavaScript Dialogs*/
|
||||
#jsFrame
|
||||
{
|
||||
background: url(images/semi-transp.png);
|
||||
}
|
||||
|
||||
QFrame[js-frame="true"]
|
||||
{
|
||||
border: 1px solid black;
|
||||
|
|
BIN
bin/themes/default/images/semi-transp.png
Normal file
BIN
bin/themes/default/images/semi-transp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 B |
|
@ -345,6 +345,11 @@ DownloadManager #list
|
|||
}
|
||||
|
||||
/*JavaScript Dialogs*/
|
||||
#jsFrame
|
||||
{
|
||||
background: url(images/semi-transp.png);
|
||||
}
|
||||
|
||||
QFrame[js-frame="true"]
|
||||
{
|
||||
border: 1px solid black;
|
||||
|
|
BIN
bin/themes/linux/images/semi-transp.png
Normal file
BIN
bin/themes/linux/images/semi-transp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 B |
|
@ -305,6 +305,11 @@ DownloadManager #list
|
|||
}
|
||||
|
||||
/*JavaScript Dialogs*/
|
||||
#jsFrame
|
||||
{
|
||||
background: url(images/semi-transp.png);
|
||||
}
|
||||
|
||||
QFrame[js-frame="true"]
|
||||
{
|
||||
border: 1px solid black;
|
||||
|
|
BIN
bin/themes/mac/images/semi-transp.png
Normal file
BIN
bin/themes/mac/images/semi-transp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 B |
|
@ -333,6 +333,11 @@ DownloadManager #list
|
|||
}
|
||||
|
||||
/*JavaScript Dialogs*/
|
||||
#jsFrame
|
||||
{
|
||||
background: url(images/semi-transp.png);
|
||||
}
|
||||
|
||||
QFrame[js-frame="true"]
|
||||
{
|
||||
border: 1px solid black;
|
||||
|
|
BIN
bin/themes/windows/images/semi-transp.png
Normal file
BIN
bin/themes/windows/images/semi-transp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 B |
|
@ -339,6 +339,11 @@ DownloadManager #list
|
|||
}
|
||||
|
||||
/*JavaScript Dialogs*/
|
||||
#jsFrame
|
||||
{
|
||||
background: url(images/semi-transp.png);
|
||||
}
|
||||
|
||||
QFrame[js-frame="true"]
|
||||
{
|
||||
border: 1px solid black;
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
* ============================================================ */
|
||||
#include "widget.h"
|
||||
|
||||
/*
|
||||
* class Widget
|
||||
*/
|
||||
Widget::Widget(QWidget* parent) :
|
||||
QWidget(parent)
|
||||
{
|
||||
|
@ -26,3 +29,16 @@ void Widget::slotResize(const QSize &size)
|
|||
{
|
||||
resize(size);
|
||||
}
|
||||
|
||||
/*
|
||||
* class ResizableFrame
|
||||
*/
|
||||
ResizableFrame::ResizableFrame(QWidget* parent) :
|
||||
QFrame(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void ResizableFrame::slotResize(const QSize &size)
|
||||
{
|
||||
resize(size);
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#define WIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QFrame>
|
||||
|
||||
class Widget : public QWidget
|
||||
{
|
||||
|
@ -33,4 +34,16 @@ public slots:
|
|||
|
||||
};
|
||||
|
||||
class ResizableFrame : public QFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ResizableFrame(QWidget* parent = 0);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
void slotResize(const QSize &size);
|
||||
};
|
||||
|
||||
#endif // WIDGET_H
|
||||
|
|
|
@ -351,7 +351,8 @@ bool WebPage::javaScriptPrompt(QWebFrame* originatingFrame, const QString &msg,
|
|||
{
|
||||
WebView* _view = qobject_cast<WebView*>(originatingFrame->page()->view());
|
||||
|
||||
Widget* widget = new Widget(_view->webTab());
|
||||
ResizableFrame* widget = new ResizableFrame(_view->webTab());
|
||||
widget->setObjectName("jsFrame");
|
||||
Ui_jsPrompt* ui = new Ui_jsPrompt();
|
||||
ui->setupUi(widget);
|
||||
ui->message->setText(msg);
|
||||
|
@ -363,18 +364,6 @@ bool WebPage::javaScriptPrompt(QWebFrame* originatingFrame, const QString &msg,
|
|||
connect(_view, SIGNAL(viewportResized(QSize)), widget, SLOT(slotResize(QSize)));
|
||||
connect(ui->lineEdit, SIGNAL(returnPressed()), ui->buttonBox->button(QDialogButtonBox::Ok), SLOT(animateClick()));
|
||||
|
||||
QWebElement bodyElement = originatingFrame->findFirstElement("body");
|
||||
if (!bodyElement.isNull()) {
|
||||
QString height = QString::number(originatingFrame->contentsSize().height());
|
||||
QString width = QString::number(originatingFrame->contentsSize().width());
|
||||
bodyElement.prependInside("<span id='qupzilla-background-content' style='display: block;background: #6b6b6b;"
|
||||
"position: absolute;opacity: .9;filter: alpha(opacity=90);top: 0px;"
|
||||
"left: 0px;z-index: 998;overflow: hidden;width:" + width + "px; height:" + height + "px;'> </span>");
|
||||
}
|
||||
else {
|
||||
widget->setAutoFillBackground(true);
|
||||
}
|
||||
|
||||
QEventLoop eLoop;
|
||||
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), &eLoop, SLOT(quit()));
|
||||
eLoop.exec();
|
||||
|
@ -384,7 +373,6 @@ bool WebPage::javaScriptPrompt(QWebFrame* originatingFrame, const QString &msg,
|
|||
*result = x;
|
||||
delete widget;
|
||||
|
||||
originatingFrame->findFirstElement("span[id=\"qupzilla-background-content\"]").removeFromDocument();
|
||||
_view->setFocus();
|
||||
|
||||
return _result;
|
||||
|
@ -394,7 +382,8 @@ bool WebPage::javaScriptConfirm(QWebFrame* originatingFrame, const QString &msg)
|
|||
{
|
||||
WebView* _view = qobject_cast<WebView*>(originatingFrame->page()->view());
|
||||
|
||||
Widget* widget = new Widget(_view->webTab());
|
||||
ResizableFrame* widget = new ResizableFrame(_view->webTab());
|
||||
widget->setObjectName("jsFrame");
|
||||
Ui_jsConfirm* ui = new Ui_jsConfirm();
|
||||
ui->setupUi(widget);
|
||||
ui->message->setText(msg);
|
||||
|
@ -404,18 +393,6 @@ bool WebPage::javaScriptConfirm(QWebFrame* originatingFrame, const QString &msg)
|
|||
|
||||
connect(_view, SIGNAL(viewportResized(QSize)), widget, SLOT(slotResize(QSize)));
|
||||
|
||||
QWebElement bodyElement = originatingFrame->findFirstElement("body");
|
||||
if (!bodyElement.isNull()) {
|
||||
QString height = QString::number(originatingFrame->contentsSize().height());
|
||||
QString width = QString::number(originatingFrame->contentsSize().width());
|
||||
bodyElement.prependInside("<span id='qupzilla-background-content' style='display: block;background: #6b6b6b;"
|
||||
"position: absolute;opacity: .9;filter: alpha(opacity=90);top: 0px;"
|
||||
"left: 0px;z-index: 998;overflow: hidden;width:" + width + "px; height:" + height + "px;'> </span>");
|
||||
}
|
||||
else {
|
||||
widget->setAutoFillBackground(true);
|
||||
}
|
||||
|
||||
QEventLoop eLoop;
|
||||
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), &eLoop, SLOT(quit()));
|
||||
eLoop.exec();
|
||||
|
@ -423,7 +400,6 @@ bool WebPage::javaScriptConfirm(QWebFrame* originatingFrame, const QString &msg)
|
|||
bool result = ui->buttonBox->clickedButtonRole() == QDialogButtonBox::AcceptRole;
|
||||
delete widget;
|
||||
|
||||
originatingFrame->findFirstElement("span[id=\"qupzilla-background-content\"]").removeFromDocument();
|
||||
_view->setFocus();
|
||||
|
||||
return result;
|
||||
|
@ -437,7 +413,8 @@ void WebPage::javaScriptAlert(QWebFrame* originatingFrame, const QString &msg)
|
|||
|
||||
WebView* _view = qobject_cast<WebView*>(originatingFrame->page()->view());
|
||||
|
||||
Widget* widget = new Widget(_view->webTab());
|
||||
ResizableFrame* widget = new ResizableFrame(_view->webTab());
|
||||
widget->setObjectName("jsFrame");
|
||||
Ui_jsAlert* ui = new Ui_jsAlert();
|
||||
ui->setupUi(widget);
|
||||
ui->message->setText(msg);
|
||||
|
@ -447,18 +424,6 @@ void WebPage::javaScriptAlert(QWebFrame* originatingFrame, const QString &msg)
|
|||
|
||||
connect(_view, SIGNAL(viewportResized(QSize)), widget, SLOT(slotResize(QSize)));
|
||||
|
||||
QWebElement bodyElement = originatingFrame->findFirstElement("body");
|
||||
if (!bodyElement.isNull()) {
|
||||
QString height = QString::number(originatingFrame->contentsSize().height());
|
||||
QString width = QString::number(originatingFrame->contentsSize().width());
|
||||
bodyElement.prependInside("<span id='qupzilla-background-content' style='display: block;background: #6b6b6b;"
|
||||
"position: absolute;opacity: .9;filter: alpha(opacity=90);top: 0px;"
|
||||
"left: 0px;z-index: 998;overflow: hidden;width:" + width + "px; height:" + height + "px;'> </span>");
|
||||
}
|
||||
else {
|
||||
widget->setAutoFillBackground(true);
|
||||
}
|
||||
|
||||
QEventLoop eLoop;
|
||||
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), &eLoop, SLOT(quit()));
|
||||
eLoop.exec();
|
||||
|
@ -467,7 +432,6 @@ void WebPage::javaScriptAlert(QWebFrame* originatingFrame, const QString &msg)
|
|||
|
||||
delete widget;
|
||||
|
||||
originatingFrame->findFirstElement("span[id=\"qupzilla-background-content\"]").removeFromDocument();
|
||||
_view->setFocus();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user