status bar: New file cache indicator

Mime label was also simplified so that only type/subtype are shown.
This commit is contained in:
Mike Skec 2021-01-09 14:27:44 +11:00 committed by Felix Queißner
parent 601887655e
commit dd3e8716b2
6 changed files with 21 additions and 8 deletions

View File

@ -516,6 +516,7 @@ void BrowserTab::on_requestComplete(const QByteArray &ref_data, const MimeType &
this->current_stats.file_size = ref_data.size();
this->current_stats.mime_type = mime;
this->current_stats.loading_time = this->timer.elapsed();
this->current_stats.loaded_from_cache = was_read_from_cache;
emit this->fileLoaded(this->current_stats);
this->updateMouseCursor(false);
@ -1171,6 +1172,7 @@ void BrowserTab::on_requestProgress(qint64 transferred)
this->current_stats.file_size = transferred;
this->current_stats.mime_type = MimeType { };
this->current_stats.loading_time = this->timer.elapsed();
this->current_stats.loaded_from_cache = false;
emit this->fileLoaded(this->current_stats);
this->network_timeout_timer.stop();

View File

@ -34,6 +34,7 @@ struct DocumentStats
int loading_time = 0; // in ms
MimeType mime_type;
qint64 file_size = 0;
bool loaded_from_cache = false;
bool isValid() const {
return mime_type.isValid();

View File

@ -24,6 +24,7 @@ MainWindow::MainWindow(QApplication * app, QWidget *parent) :
ui(new Ui::MainWindow),
url_status(new ElideLabel(this)),
file_size(new QLabel(this)),
file_cached(new QLabel(this)),
file_mime(new QLabel(this)),
load_time(new QLabel(this))
{
@ -32,6 +33,7 @@ MainWindow::MainWindow(QApplication * app, QWidget *parent) :
this->url_status->setElideMode(Qt::ElideMiddle);
this->statusBar()->addWidget(this->url_status);
this->statusBar()->addPermanentWidget(this->file_cached);
this->statusBar()->addPermanentWidget(this->file_mime);
this->statusBar()->addPermanentWidget(this->file_size);
this->statusBar()->addPermanentWidget(this->load_time);
@ -419,10 +421,12 @@ void MainWindow::setFileStatus(const DocumentStats &stats)
{
if(stats.isValid()) {
this->file_size->setText(IoUtil::size_human(stats.file_size));
this->file_mime->setText(stats.mime_type.toString());
this->file_cached->setText(stats.loaded_from_cache ? "(cached)" : "");
this->file_mime->setText(stats.mime_type.toString(false));
this->load_time->setText(QString("%1 ms").arg(stats.loading_time));
} else {
this->file_size->setText("");
this->file_cached->setText("");
this->file_mime->setText("");
this->load_time->setText("");
}

View File

@ -114,6 +114,7 @@ private:
ElideLabel * url_status;
QLabel * file_size;
QLabel * file_cached;
QLabel * file_mime;
QLabel * load_time;
};

View File

@ -20,18 +20,23 @@ QString MimeType::parameter(const QString &param_name, QString const & default_v
return val;
}
QString MimeType::toString() const
QString MimeType::toString(bool full) const
{
if(isValid()) {
QString result = type;
if(not subtype.isEmpty())
result += "/" + subtype;
for(auto const & key : parameters.keys()) {
result += "; ";
result += key;
result += "=";
result += parameters[key];
if (full)
{
for(auto const & key : parameters.keys()) {
result += "; ";
result += key;
result += "=";
result += parameters[key];
}
}
return result;
} else {
return QString { };

View File

@ -19,7 +19,7 @@ struct MimeType
return not type.isEmpty();
}
QString toString() const;
QString toString(bool full = true) const;
};
struct MimeParser