1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 09:42:10 +02:00

Improved SiteInfo dialog - now it is showing previews of images on the

page
This commit is contained in:
nowrep 2011-03-23 22:36:03 +01:00
parent 09c4747ab6
commit 8e7df2e766
6 changed files with 73 additions and 23 deletions

View File

@ -48,6 +48,7 @@ MainApplication::MainApplication(int &argc, char **argv)
,m_bookmarksModel(0)
,m_downloadManager(0)
,m_autofill(0)
,m_networkCache(new QNetworkDiskCache)
,m_isClosing(false)
,m_isChanged(false)
,m_isExited(false)

View File

@ -23,6 +23,7 @@
#include <QWebSettings>
#include <QUrl>
#include <QPointer>
#include <QNetworkDiskCache>
#include <iostream>
#include "qtsingleapplication.h"
@ -79,6 +80,7 @@ public:
BookmarksModel* bookmarks();
DownloadManager* downManager();
AutoFillModel* autoFill();
QNetworkDiskCache* networkCache() { return m_networkCache; }
public slots:
bool saveStateSlot();
@ -108,6 +110,7 @@ private:
BookmarksModel* m_bookmarksModel;
DownloadManager* m_downloadManager;
AutoFillModel* m_autofill;
QNetworkDiskCache* m_networkCache;
QList<QPointer<QupZilla> > m_mainWindows;

View File

@ -40,7 +40,7 @@ void NetworkManager::loadSettings()
settings.beginGroup("Web-Browser-Settings");
if (settings.value("AllowLocalCache", true).toBool()) {
m_diskCache = new QNetworkDiskCache(this);
m_diskCache = mApp->networkCache();
m_diskCache->setCacheDirectory(mApp->getActiveProfil()+"/networkcache");
m_diskCache->setMaximumCacheSize(settings.value("MaximumCacheSize",50).toInt() * 1024*1024); //MegaBytes
setCache(m_diskCache);

View File

@ -20,6 +20,7 @@
#include "qupzilla.h"
#include "webview.h"
#include "webpage.h"
#include "downloaditem.h"
SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
QDialog(parent)
@ -35,7 +36,8 @@ SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
//GENERAL
ui->heading->setText(QString("<b>%1</b>:").arg(title));
ui->siteAddress->setText(frame->baseUrl().toString());
ui->sizeLabel->setText( DownloadItem::fileSizeToString(view->webPage()->totalBytes()) );
QString encoding;
//Meta
QWebElementCollection meta = frame->findAllElements("meta");
@ -46,6 +48,10 @@ SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
QString name = element.attribute("name");
if (name.isEmpty())
name = element.attribute("http-equiv");
if (!element.attribute("charset").isEmpty())
encoding = element.attribute("charset");
if (content.contains("charset="))
encoding = content.mid(content.indexOf("charset=")+8);
if (content.isEmpty() || name.isEmpty())
continue;
@ -54,6 +60,9 @@ SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
item->setText(1, content);
ui->treeTags->addTopLevelItem(item);
}
if (encoding.isEmpty())
encoding = mApp->webSettings()->defaultTextEncoding();
ui->encodingLabel->setText(encoding.toUpper());
//MEDIA
QWebElementCollection img = frame->findAllElements("img");
@ -81,7 +90,8 @@ SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
//SECURITY
if (cert.isValid()) {
ui->certLabel->setText(tr("<b>Your connection to this page is secured: </b>"));
ui->securityLabel->setText(tr("<b>Connection is Encrypted.</b>"));
ui->certLabel->setText(tr("<b>Your connection to this page is secured with this certificate: </b>"));
//Issued to
ui->issuedToCN->setText( cert.subjectInfo(QSslCertificate::CommonName) );
ui->issuedToO->setText( cert.subjectInfo(QSslCertificate::Organization) );
@ -95,11 +105,37 @@ SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
ui->validityIssuedOn->setText( cert.effectiveDate().toString("dddd d. MMMM yyyy") );
ui->validityExpiresOn->setText( cert.expiryDate().toString("dddd d. MMMM yyyy") );
} else {
ui->securityLabel->setText(tr("<b>Connection Not Encrypted.</b>"));
ui->certFrame->setVisible(false);
ui->certLabel->setText(tr("<b>Your connection to this page is not secured!</b>"));
}
connect(ui->listWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*)));
connect(ui->secDetailsButton, SIGNAL(clicked()), this, SLOT(securityDetailsClicked()));
connect(ui->treeImages, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(showImagePreview(QTreeWidgetItem*)));
}
void SiteInfo::showImagePreview(QTreeWidgetItem *item)
{
if (!item)
return;
QUrl imageUrl = item->text(1);
QIODevice* cacheData = mApp->networkCache()->data(imageUrl);
QPixmap pixmap;
if (!cacheData)
pixmap.load(":/icons/qupzilla.png");
else
pixmap.loadFromData(cacheData->readAll());
QGraphicsScene* scene = new QGraphicsScene(ui->mediaPreview);
scene->addPixmap(pixmap);
ui->mediaPreview->setScene(scene);
}
void SiteInfo::securityDetailsClicked()
{
ui->listWidget->setCurrentRow(2);
}
void SiteInfo::itemChanged(QListWidgetItem *item)

View File

@ -20,6 +20,7 @@
#include <QDialog>
#include <QListWidgetItem>
#include <QTreeWidgetItem>
namespace Ui {
class SiteInfo;
@ -36,6 +37,8 @@ public:
private slots:
void itemChanged(QListWidgetItem* item);
void showImagePreview(QTreeWidgetItem* item);
void securityDetailsClicked();
private:
Ui::SiteInfo* ui;

View File

@ -18,7 +18,7 @@
<normaloff>:/icons/qupzilla.png</normaloff>:/icons/qupzilla.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="7" column="1">
<item row="6" column="1">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -127,7 +127,7 @@
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0" colspan="3">
<item row="0" column="0" colspan="4">
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
@ -188,14 +188,14 @@
</item>
</layout>
</item>
<item row="1" column="0" colspan="3">
<item row="1" column="0" colspan="4">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Meta tags of site:</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="3">
<item row="3" column="0" colspan="4">
<widget class="QTreeWidget" name="treeTags">
<attribute name="headerDefaultSectionSize">
<number>200</number>
@ -232,7 +232,7 @@
</property>
</widget>
</item>
<item row="5" column="2">
<item row="5" column="3">
<widget class="QPushButton" name="secDetailsButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
@ -261,13 +261,20 @@
</property>
</spacer>
</item>
<item row="5" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
<zorder>label_9</zorder>
<zorder>treeTags</zorder>
<zorder>label_2</zorder>
<zorder>securityLabel</zorder>
<zorder>secDetailsButton</zorder>
<zorder>horizontalSpacer</zorder>
</widget>
<widget class="QWidget" name="page_3">
<layout class="QGridLayout" name="gridLayout_3">
@ -323,7 +330,14 @@
<property name="bottomMargin">
<number>0</number>
</property>
<item row="2" column="0">
<item row="0" column="0">
<widget class="QLabel" name="certLabel">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QFrame" name="certFrame">
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
@ -479,14 +493,7 @@
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="certLabel">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<item row="2" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>