mirror of
https://invent.kde.org/network/falkon.git
synced 2024-11-11 01:22:10 +01:00
Added unified Library which contains history, bookmarks and RSS reader.
This commit is contained in:
parent
433eb1fc89
commit
47a0dd058e
Binary file not shown.
714
src/3rdparty/fancytabwidget.cpp
vendored
Normal file
714
src/3rdparty/fancytabwidget.cpp
vendored
Normal file
|
@ -0,0 +1,714 @@
|
|||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at http://qt.nokia.com/contact.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#include "fancytabwidget.h"
|
||||
#include "stylehelper.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
#include <QAnimationGroup>
|
||||
#include <QColorDialog>
|
||||
#include <QHBoxLayout>
|
||||
#include <QMenu>
|
||||
#include <QMouseEvent>
|
||||
#include <QPainter>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QSignalMapper>
|
||||
#include <QSplitter>
|
||||
#include <QStackedLayout>
|
||||
#include <QStyleOptionTabV3>
|
||||
#include <QToolButton>
|
||||
#include <QToolTip>
|
||||
#include <QVBoxLayout>
|
||||
#include <QWindowsStyle>
|
||||
|
||||
using namespace Core;
|
||||
using namespace Internal;
|
||||
|
||||
const int FancyTabBar::m_rounding = 22;
|
||||
const int FancyTabBar::m_textPadding = 4;
|
||||
|
||||
void FancyTabProxyStyle::drawControl(
|
||||
ControlElement element, const QStyleOption* option,
|
||||
QPainter* p, const QWidget* widget) const {
|
||||
|
||||
const QStyleOptionTabV3* v_opt = qstyleoption_cast<const QStyleOptionTabV3*>(option);
|
||||
|
||||
if (element != CE_TabBarTab || !v_opt) {
|
||||
QProxyStyle::drawControl(element, option, p, widget);
|
||||
return;
|
||||
}
|
||||
|
||||
const QRect rect = v_opt->rect;
|
||||
const bool selected = v_opt->state & State_Selected;
|
||||
const bool vertical_tabs = v_opt->shape == QTabBar::RoundedWest;
|
||||
const QString text = v_opt->text;
|
||||
|
||||
if (selected) {
|
||||
//background
|
||||
p->save();
|
||||
QLinearGradient grad(rect.topLeft(), rect.topRight());
|
||||
grad.setColorAt(0, QColor(255, 255, 255, 140));
|
||||
grad.setColorAt(1, QColor(255, 255, 255, 210));
|
||||
p->fillRect(rect.adjusted(0, 0, 0, -1), grad);
|
||||
p->restore();
|
||||
|
||||
//shadows
|
||||
p->setPen(QColor(0, 0, 0, 110));
|
||||
p->drawLine(rect.topLeft() + QPoint(1,-1), rect.topRight() - QPoint(0,1));
|
||||
p->drawLine(rect.bottomLeft(), rect.bottomRight());
|
||||
p->setPen(QColor(0, 0, 0, 40));
|
||||
p->drawLine(rect.topLeft(), rect.bottomLeft());
|
||||
|
||||
//highlights
|
||||
p->setPen(QColor(255, 255, 255, 50));
|
||||
p->drawLine(rect.topLeft() + QPoint(0, -2), rect.topRight() - QPoint(0,2));
|
||||
p->drawLine(rect.bottomLeft() + QPoint(0, 1), rect.bottomRight() + QPoint(0,1));
|
||||
p->setPen(QColor(255, 255, 255, 40));
|
||||
p->drawLine(rect.topLeft() + QPoint(0, 0), rect.topRight());
|
||||
p->drawLine(rect.topRight() + QPoint(0, 1), rect.bottomRight() - QPoint(0, 1));
|
||||
p->drawLine(rect.bottomLeft() + QPoint(0,-1), rect.bottomRight()-QPoint(0,1));
|
||||
}
|
||||
|
||||
QTransform m;
|
||||
if (vertical_tabs) {
|
||||
m = QTransform::fromTranslate(rect.left(), rect.bottom());
|
||||
m.rotate(-90);
|
||||
} else {
|
||||
m = QTransform::fromTranslate(rect.left(), rect.top());
|
||||
}
|
||||
|
||||
const QRect draw_rect(QPoint(0, 0), m.mapRect(rect).size());
|
||||
|
||||
p->save();
|
||||
p->setTransform(m);
|
||||
|
||||
QRect icon_rect(QPoint(8, 0), v_opt->iconSize);
|
||||
QRect text_rect(icon_rect.topRight() + QPoint(4, 0), draw_rect.size());
|
||||
text_rect.setRight(draw_rect.width());
|
||||
icon_rect.translate(0, (draw_rect.height() - icon_rect.height()) / 2);
|
||||
|
||||
QFont boldFont(p->font());
|
||||
boldFont.setPointSizeF(Utils::StyleHelper::sidebarFontSize());
|
||||
boldFont.setBold(true);
|
||||
p->setFont(boldFont);
|
||||
p->setPen(selected ? QColor(255, 255, 255, 160) : QColor(0, 0, 0, 110));
|
||||
int textFlags = Qt::AlignHCenter | Qt::AlignVCenter;
|
||||
p->drawText(text_rect, textFlags, text);
|
||||
p->setPen(selected ? QColor(60, 60, 60) : Utils::StyleHelper::panelTextColor());
|
||||
#ifndef Q_WS_MAC
|
||||
if (widget) {
|
||||
const QString fader_key = "tab_" + text + "_fader";
|
||||
const QString animation_key = "tab_" + text + "_animation";
|
||||
|
||||
const QString tab_hover = widget->property("tab_hover").toString();
|
||||
int fader = widget->property(fader_key.toUtf8().constData()).toInt();
|
||||
QPropertyAnimation* animation = widget->property(animation_key.toUtf8().constData()).value<QPropertyAnimation*>();
|
||||
|
||||
if (!animation) {
|
||||
QWidget* mut_widget = const_cast<QWidget*>(widget);
|
||||
fader = 0;
|
||||
mut_widget->setProperty(fader_key.toUtf8().constData(), fader);
|
||||
animation = new QPropertyAnimation(mut_widget, fader_key.toUtf8(), mut_widget);
|
||||
connect(animation, SIGNAL(valueChanged(QVariant)), mut_widget, SLOT(update()));
|
||||
mut_widget->setProperty(animation_key.toUtf8().constData(), QVariant::fromValue(animation));
|
||||
}
|
||||
|
||||
if (text == tab_hover) {
|
||||
if (animation->state() != QAbstractAnimation::Running && fader != 40) {
|
||||
animation->stop();
|
||||
animation->setDuration(80);
|
||||
animation->setEndValue(40);
|
||||
animation->start();
|
||||
}
|
||||
} else {
|
||||
if (animation->state() != QAbstractAnimation::Running && fader != 0) {
|
||||
animation->stop();
|
||||
animation->setDuration(160);
|
||||
animation->setEndValue(0);
|
||||
animation->start();
|
||||
}
|
||||
}
|
||||
|
||||
if (!selected) {
|
||||
p->save();
|
||||
QLinearGradient grad(draw_rect.topLeft(), vertical_tabs ? draw_rect.bottomLeft() : draw_rect.topRight());
|
||||
grad.setColorAt(0, Qt::transparent);
|
||||
grad.setColorAt(0.5, QColor(255, 255, 255, fader));
|
||||
grad.setColorAt(1, Qt::transparent);
|
||||
p->fillRect(draw_rect, grad);
|
||||
p->setPen(QPen(grad, 1.0));
|
||||
p->drawLine(draw_rect.topLeft(), vertical_tabs ? draw_rect.bottomLeft() : draw_rect.topRight());
|
||||
p->drawLine(draw_rect.bottomRight(), vertical_tabs ? draw_rect.topRight() : draw_rect.bottomLeft());
|
||||
p->restore();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Utils::StyleHelper::drawIconWithShadow(v_opt->icon, icon_rect, p, QIcon::Normal);
|
||||
|
||||
p->drawText(text_rect.translated(0, -1), textFlags, text);
|
||||
|
||||
p->restore();
|
||||
}
|
||||
|
||||
void FancyTabProxyStyle::polish(QWidget* widget) {
|
||||
if (QString(widget->metaObject()->className()) == "QTabBar") {
|
||||
widget->setMouseTracking(true);
|
||||
widget->installEventFilter(this);
|
||||
}
|
||||
QProxyStyle::polish(widget);
|
||||
}
|
||||
|
||||
void FancyTabProxyStyle::polish(QApplication* app) {
|
||||
QProxyStyle::polish(app);
|
||||
}
|
||||
|
||||
void FancyTabProxyStyle::polish(QPalette& palette) {
|
||||
QProxyStyle::polish(palette);
|
||||
}
|
||||
|
||||
bool FancyTabProxyStyle::eventFilter(QObject* o, QEvent* e) {
|
||||
QTabBar* bar = qobject_cast<QTabBar*>(o);
|
||||
if (bar && (e->type() == QEvent::MouseMove || e->type() == QEvent::Leave)) {
|
||||
QMouseEvent* event = static_cast<QMouseEvent*>(e);
|
||||
const QString old_hovered_tab = bar->property("tab_hover").toString();
|
||||
const QString hovered_tab = e->type() == QEvent::Leave ? QString() : bar->tabText(bar->tabAt(event->pos()));
|
||||
bar->setProperty("tab_hover", hovered_tab);
|
||||
|
||||
if (old_hovered_tab != hovered_tab)
|
||||
bar->update();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
FancyTab::FancyTab(QWidget* tabbar)
|
||||
: QWidget(tabbar), tabbar(tabbar), m_fader(0)
|
||||
{
|
||||
animator.setPropertyName("fader");
|
||||
animator.setTargetObject(this);
|
||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
|
||||
}
|
||||
|
||||
void FancyTab::fadeIn()
|
||||
{
|
||||
animator.stop();
|
||||
animator.setDuration(80);
|
||||
animator.setEndValue(40);
|
||||
animator.start();
|
||||
}
|
||||
|
||||
void FancyTab::fadeOut()
|
||||
{
|
||||
animator.stop();
|
||||
animator.setDuration(160);
|
||||
animator.setEndValue(0);
|
||||
animator.start();
|
||||
}
|
||||
|
||||
void FancyTab::setFader(float value)
|
||||
{
|
||||
m_fader = value;
|
||||
tabbar->update();
|
||||
}
|
||||
|
||||
FancyTabBar::FancyTabBar(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||
setStyle(new QWindowsStyle);
|
||||
setMinimumWidth(qMax(2 * m_rounding, 40));
|
||||
setAttribute(Qt::WA_Hover, true);
|
||||
setFocusPolicy(Qt::NoFocus);
|
||||
setMouseTracking(true); // Needed for hover events
|
||||
m_triggerTimer.setSingleShot(true);
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout;
|
||||
layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding));
|
||||
layout->setSpacing(0);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
setLayout(layout);
|
||||
|
||||
// We use a zerotimer to keep the sidebar responsive
|
||||
connect(&m_triggerTimer, SIGNAL(timeout()), this, SLOT(emitCurrentIndex()));
|
||||
}
|
||||
|
||||
FancyTabBar::~FancyTabBar()
|
||||
{
|
||||
delete style();
|
||||
}
|
||||
|
||||
QSize FancyTab::sizeHint() const {
|
||||
QFont boldFont(font());
|
||||
boldFont.setPointSizeF(Utils::StyleHelper::sidebarFontSize());
|
||||
boldFont.setBold(true);
|
||||
QFontMetrics fm(boldFont);
|
||||
int spacing = 8;
|
||||
int width = 60 + spacing + 2;
|
||||
int iconHeight = 32;
|
||||
QSize ret(width, iconHeight + spacing + fm.height());
|
||||
return ret;
|
||||
}
|
||||
|
||||
QSize FancyTabBar::tabSizeHint(bool minimum) const
|
||||
{
|
||||
QFont boldFont(font());
|
||||
boldFont.setPointSizeF(Utils::StyleHelper::sidebarFontSize());
|
||||
boldFont.setBold(true);
|
||||
QFontMetrics fm(boldFont);
|
||||
int spacing = 8;
|
||||
int width = 60 + spacing + 2;
|
||||
int iconHeight = minimum ? 0 : 32;
|
||||
return QSize(width, iconHeight + spacing + fm.height());
|
||||
}
|
||||
|
||||
void FancyTabBar::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
QPainter p(this);
|
||||
|
||||
for (int i = 0; i < count(); ++i)
|
||||
if (i != currentIndex())
|
||||
paintTab(&p, i);
|
||||
|
||||
// paint active tab last, since it overlaps the neighbors
|
||||
if (currentIndex() != -1)
|
||||
paintTab(&p, currentIndex());
|
||||
}
|
||||
|
||||
void FancyTab::enterEvent(QEvent*)
|
||||
{
|
||||
fadeIn();
|
||||
}
|
||||
|
||||
void FancyTab::leaveEvent(QEvent*)
|
||||
{
|
||||
fadeOut();
|
||||
}
|
||||
|
||||
QSize FancyTabBar::sizeHint() const
|
||||
{
|
||||
QSize sh = tabSizeHint();
|
||||
return QSize(sh.width(), sh.height() * m_tabs.count());
|
||||
}
|
||||
|
||||
QSize FancyTabBar::minimumSizeHint() const
|
||||
{
|
||||
QSize sh = tabSizeHint(true);
|
||||
return QSize(sh.width(), sh.height() * m_tabs.count());
|
||||
}
|
||||
|
||||
QRect FancyTabBar::tabRect(int index) const
|
||||
{
|
||||
return m_tabs[index]->geometry();
|
||||
}
|
||||
|
||||
QString FancyTabBar::tabToolTip(int index) const {
|
||||
return m_tabs[index]->toolTip();
|
||||
}
|
||||
|
||||
void FancyTabBar::setTabToolTip(int index, const QString& toolTip) {
|
||||
m_tabs[index]->setToolTip(toolTip);
|
||||
}
|
||||
|
||||
// This keeps the sidebar responsive since
|
||||
// we get a repaint before loading the
|
||||
// mode itself
|
||||
void FancyTabBar::emitCurrentIndex()
|
||||
{
|
||||
emit currentChanged(m_currentIndex);
|
||||
}
|
||||
|
||||
void FancyTabBar::mousePressEvent(QMouseEvent *e)
|
||||
{
|
||||
e->accept();
|
||||
for (int index = 0; index < m_tabs.count(); ++index) {
|
||||
if (tabRect(index).contains(e->pos())) {
|
||||
m_currentIndex = index;
|
||||
update();
|
||||
m_triggerTimer.start(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FancyTabBar::addTab(const QIcon& icon, const QString& label) {
|
||||
FancyTab *tab = new FancyTab(this);
|
||||
tab->icon = icon;
|
||||
tab->text = label;
|
||||
m_tabs.append(tab);
|
||||
qobject_cast<QVBoxLayout*>(layout())->insertWidget(layout()->count()-1, tab);
|
||||
}
|
||||
|
||||
void FancyTabBar::addSpacer(int size) {
|
||||
qobject_cast<QVBoxLayout*>(layout())->insertSpacerItem(layout()->count()-1,
|
||||
new QSpacerItem(0, size, QSizePolicy::Fixed, QSizePolicy::Maximum));
|
||||
}
|
||||
|
||||
void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const
|
||||
{
|
||||
if (!validIndex(tabIndex)) {
|
||||
qWarning("invalid index");
|
||||
return;
|
||||
}
|
||||
painter->save();
|
||||
|
||||
QRect rect = tabRect(tabIndex);
|
||||
bool selected = (tabIndex == m_currentIndex);
|
||||
|
||||
if (selected) {
|
||||
//background
|
||||
painter->save();
|
||||
QLinearGradient grad(rect.topLeft(), rect.topRight());
|
||||
grad.setColorAt(0, QColor(255, 255, 255, 140));
|
||||
grad.setColorAt(1, QColor(255, 255, 255, 210));
|
||||
painter->fillRect(rect.adjusted(0, 0, 0, -1), grad);
|
||||
painter->restore();
|
||||
|
||||
//shadows
|
||||
painter->setPen(QColor(0, 0, 0, 110));
|
||||
painter->drawLine(rect.topLeft() + QPoint(1,-1), rect.topRight() - QPoint(0,1));
|
||||
painter->drawLine(rect.bottomLeft(), rect.bottomRight());
|
||||
painter->setPen(QColor(0, 0, 0, 40));
|
||||
painter->drawLine(rect.topLeft(), rect.bottomLeft());
|
||||
|
||||
//highlights
|
||||
painter->setPen(QColor(255, 255, 255, 50));
|
||||
painter->drawLine(rect.topLeft() + QPoint(0, -2), rect.topRight() - QPoint(0,2));
|
||||
painter->drawLine(rect.bottomLeft() + QPoint(0, 1), rect.bottomRight() + QPoint(0,1));
|
||||
painter->setPen(QColor(255, 255, 255, 40));
|
||||
painter->drawLine(rect.topLeft() + QPoint(0, 0), rect.topRight());
|
||||
painter->drawLine(rect.topRight() + QPoint(0, 1), rect.bottomRight() - QPoint(0, 1));
|
||||
painter->drawLine(rect.bottomLeft() + QPoint(0,-1), rect.bottomRight()-QPoint(0,1));
|
||||
}
|
||||
|
||||
QString tabText(painter->fontMetrics().elidedText(this->tabText(tabIndex), Qt::ElideMiddle, width()));
|
||||
QRect tabTextRect(tabRect(tabIndex));
|
||||
QRect tabIconRect(tabTextRect);
|
||||
tabIconRect.adjust(+4, +4, -4, -4);
|
||||
tabTextRect.translate(0, -2);
|
||||
QFont boldFont(painter->font());
|
||||
boldFont.setPointSizeF(Utils::StyleHelper::sidebarFontSize());
|
||||
boldFont.setBold(true);
|
||||
painter->setFont(boldFont);
|
||||
painter->setPen(selected ? QColor(255, 255, 255, 160) : QColor(0, 0, 0, 110));
|
||||
int textFlags = Qt::AlignCenter | Qt::AlignBottom;
|
||||
painter->drawText(tabTextRect, textFlags, tabText);
|
||||
painter->setPen(selected ? QColor(60, 60, 60) : Utils::StyleHelper::panelTextColor());
|
||||
#ifndef Q_WS_MAC
|
||||
if (!selected) {
|
||||
painter->save();
|
||||
int fader = int(m_tabs[tabIndex]->fader());
|
||||
QLinearGradient grad(rect.topLeft(), rect.topRight());
|
||||
grad.setColorAt(0, Qt::transparent);
|
||||
grad.setColorAt(0.5, QColor(255, 255, 255, fader));
|
||||
grad.setColorAt(1, Qt::transparent);
|
||||
painter->fillRect(rect, grad);
|
||||
painter->setPen(QPen(grad, 1.0));
|
||||
painter->drawLine(rect.topLeft(), rect.topRight());
|
||||
painter->drawLine(rect.bottomLeft(), rect.bottomRight());
|
||||
painter->restore();
|
||||
}
|
||||
#endif
|
||||
|
||||
const int textHeight = painter->fontMetrics().height();
|
||||
tabIconRect.adjust(0, 4, 0, -textHeight);
|
||||
Utils::StyleHelper::drawIconWithShadow(tabIcon(tabIndex), tabIconRect, painter, QIcon::Normal);
|
||||
|
||||
painter->translate(0, -1);
|
||||
painter->drawText(tabTextRect, textFlags, tabText);
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
void FancyTabBar::setCurrentIndex(int index) {
|
||||
m_currentIndex = index;
|
||||
update();
|
||||
emit currentChanged(m_currentIndex);
|
||||
}
|
||||
|
||||
|
||||
//////
|
||||
// FancyColorButton
|
||||
//////
|
||||
|
||||
class FancyColorButton : public QWidget
|
||||
{
|
||||
public:
|
||||
FancyColorButton(QWidget *parent)
|
||||
: m_parent(parent)
|
||||
{
|
||||
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
|
||||
}
|
||||
|
||||
void mousePressEvent(QMouseEvent *ev)
|
||||
{
|
||||
if (ev->modifiers() & Qt::ShiftModifier)
|
||||
Utils::StyleHelper::setBaseColor(QColorDialog::getColor(Utils::StyleHelper::requestedBaseColor(), m_parent));
|
||||
}
|
||||
private:
|
||||
QWidget *m_parent;
|
||||
};
|
||||
|
||||
//////
|
||||
// FancyTabWidget
|
||||
//////
|
||||
|
||||
FancyTabWidget::FancyTabWidget(QWidget* parent)
|
||||
: QWidget(parent),
|
||||
mode_(Mode_None),
|
||||
tab_bar_(NULL),
|
||||
stack_(new QStackedLayout),
|
||||
side_widget_(new QWidget),
|
||||
side_layout_(new QVBoxLayout),
|
||||
top_layout_(new QVBoxLayout),
|
||||
use_background_(false),
|
||||
menu_(NULL),
|
||||
proxy_style_(new FancyTabProxyStyle)
|
||||
{
|
||||
side_layout_->setSpacing(0);
|
||||
side_layout_->setMargin(0);
|
||||
side_layout_->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding));
|
||||
|
||||
side_widget_->setLayout(side_layout_);
|
||||
side_widget_->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||
|
||||
top_layout_->setMargin(0);
|
||||
top_layout_->setSpacing(0);
|
||||
top_layout_->addLayout(stack_);
|
||||
|
||||
QHBoxLayout* main_layout = new QHBoxLayout;
|
||||
main_layout->setMargin(0);
|
||||
main_layout->setSpacing(1);
|
||||
main_layout->addWidget(side_widget_);
|
||||
main_layout->addLayout(top_layout_);
|
||||
setLayout(main_layout);
|
||||
}
|
||||
|
||||
void FancyTabWidget::AddTab(QWidget* tab, const QIcon& icon, const QString& label) {
|
||||
stack_->addWidget(tab);
|
||||
items_ << Item(icon, label);
|
||||
}
|
||||
|
||||
void FancyTabWidget::AddSpacer(int size) {
|
||||
items_ << Item(size);
|
||||
}
|
||||
|
||||
void FancyTabWidget::SetBackgroundPixmap(const QPixmap& pixmap) {
|
||||
background_pixmap_ = pixmap;
|
||||
update();
|
||||
}
|
||||
|
||||
void FancyTabWidget::paintEvent(QPaintEvent*) {
|
||||
if (!use_background_)
|
||||
return;
|
||||
|
||||
QPainter painter(this);
|
||||
|
||||
QRect rect = side_widget_->rect().adjusted(0, 0, 1, 0);
|
||||
rect = style()->visualRect(layoutDirection(), geometry(), rect);
|
||||
Utils::StyleHelper::verticalGradient(&painter, rect, rect);
|
||||
|
||||
if (!background_pixmap_.isNull()) {
|
||||
QRect pixmap_rect(background_pixmap_.rect());
|
||||
pixmap_rect.moveTo(rect.topLeft());
|
||||
|
||||
while (pixmap_rect.top() < rect.bottom()) {
|
||||
QRect source_rect(pixmap_rect.intersected(rect));
|
||||
source_rect.moveTo(0, 0);
|
||||
painter.drawPixmap(pixmap_rect.topLeft(), background_pixmap_, source_rect);
|
||||
pixmap_rect.moveTop(pixmap_rect.bottom() - 10);
|
||||
}
|
||||
}
|
||||
|
||||
painter.setPen(Utils::StyleHelper::borderColor());
|
||||
painter.drawLine(rect.topRight(), rect.bottomRight());
|
||||
|
||||
QColor light = Utils::StyleHelper::sidebarHighlight();
|
||||
painter.setPen(light);
|
||||
painter.drawLine(rect.bottomLeft(), rect.bottomRight());
|
||||
}
|
||||
|
||||
int FancyTabWidget::current_index() const {
|
||||
return stack_->currentIndex();
|
||||
}
|
||||
|
||||
void FancyTabWidget::SetCurrentIndex(int index) {
|
||||
if (FancyTabBar* bar = qobject_cast<FancyTabBar*>(tab_bar_)) {
|
||||
bar->setCurrentIndex(index);
|
||||
} else if (QTabBar* bar = qobject_cast<QTabBar*>(tab_bar_)) {
|
||||
bar->setCurrentIndex(index);
|
||||
} else {
|
||||
stack_->setCurrentIndex(index);
|
||||
}
|
||||
}
|
||||
|
||||
void FancyTabWidget::ShowWidget(int index) {
|
||||
stack_->setCurrentIndex(index);
|
||||
emit CurrentChanged(index);
|
||||
}
|
||||
|
||||
void FancyTabWidget::AddBottomWidget(QWidget* widget) {
|
||||
top_layout_->addWidget(widget);
|
||||
}
|
||||
|
||||
void FancyTabWidget::SetMode(Mode mode) {
|
||||
// Remove previous tab bar
|
||||
delete tab_bar_;
|
||||
tab_bar_ = NULL;
|
||||
|
||||
use_background_ = false;
|
||||
|
||||
// Create new tab bar
|
||||
switch (mode) {
|
||||
case Mode_None:
|
||||
default:
|
||||
qDebug() << "Unknown fancy tab mode" << mode;
|
||||
// fallthrough
|
||||
|
||||
case Mode_LargeSidebar: {
|
||||
FancyTabBar* bar = new FancyTabBar(this);
|
||||
side_layout_->insertWidget(0, bar);
|
||||
tab_bar_ = bar;
|
||||
|
||||
foreach (const Item& item, items_) {
|
||||
if (item.type_ == Item::Type_Spacer)
|
||||
bar->addSpacer(item.spacer_size_);
|
||||
else
|
||||
bar->addTab(item.tab_icon_, item.tab_label_);
|
||||
}
|
||||
|
||||
bar->setCurrentIndex(stack_->currentIndex());
|
||||
connect(bar, SIGNAL(currentChanged(int)), SLOT(ShowWidget(int)));
|
||||
|
||||
use_background_ = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case Mode_Tabs:
|
||||
MakeTabBar(QTabBar::RoundedNorth, true, false, false);
|
||||
break;
|
||||
|
||||
case Mode_IconOnlyTabs:
|
||||
MakeTabBar(QTabBar::RoundedNorth, false, true, false);
|
||||
break;
|
||||
|
||||
case Mode_SmallSidebar:
|
||||
MakeTabBar(QTabBar::RoundedWest, true, true, true);
|
||||
use_background_ = true;
|
||||
break;
|
||||
|
||||
case Mode_PlainSidebar:
|
||||
MakeTabBar(QTabBar::RoundedWest, true, true, false);
|
||||
break;
|
||||
}
|
||||
|
||||
tab_bar_->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
|
||||
|
||||
mode_ = mode;
|
||||
emit ModeChanged(mode);
|
||||
update();
|
||||
}
|
||||
|
||||
void FancyTabWidget::contextMenuEvent(QContextMenuEvent* e) {
|
||||
Q_UNUSED(e)
|
||||
// if (!menu_) {
|
||||
// menu_ = new QMenu(this);
|
||||
|
||||
// QSignalMapper* mapper = new QSignalMapper(this);
|
||||
// QActionGroup* group = new QActionGroup(this);
|
||||
// AddMenuItem(mapper, group, tr("Large sidebar"), Mode_LargeSidebar);
|
||||
// AddMenuItem(mapper, group, tr("Small sidebar"), Mode_SmallSidebar);
|
||||
// AddMenuItem(mapper, group, tr("Plain sidebar"), Mode_PlainSidebar);
|
||||
// AddMenuItem(mapper, group, tr("Tabs on top"), Mode_Tabs);
|
||||
// AddMenuItem(mapper, group, tr("Icons on top"), Mode_IconOnlyTabs);
|
||||
// menu_->addActions(group->actions());
|
||||
|
||||
// connect(mapper, SIGNAL(mapped(int)), SLOT(SetMode(int)));
|
||||
// }
|
||||
|
||||
// menu_->popup(e->globalPos());
|
||||
}
|
||||
|
||||
void FancyTabWidget::AddMenuItem(QSignalMapper* mapper, QActionGroup* group,
|
||||
const QString& text, Mode mode) {
|
||||
QAction* action = group->addAction(text);
|
||||
action->setCheckable(true);
|
||||
mapper->setMapping(action, mode);
|
||||
connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
|
||||
|
||||
if (mode == mode_)
|
||||
action->setChecked(true);
|
||||
}
|
||||
|
||||
void FancyTabWidget::MakeTabBar(QTabBar::Shape shape, bool text, bool icons,
|
||||
bool fancy) {
|
||||
QTabBar* bar = new QTabBar(this);
|
||||
bar->setShape(shape);
|
||||
bar->setDocumentMode(true);
|
||||
bar->setUsesScrollButtons(true);
|
||||
|
||||
if (shape == QTabBar::RoundedWest) {
|
||||
bar->setIconSize(QSize(22, 22));
|
||||
}
|
||||
|
||||
if (fancy) {
|
||||
bar->setStyle(proxy_style_);
|
||||
}
|
||||
|
||||
if (shape == QTabBar::RoundedNorth)
|
||||
top_layout_->insertWidget(0, bar);
|
||||
else
|
||||
side_layout_->insertWidget(0, bar);
|
||||
|
||||
foreach (const Item& item, items_) {
|
||||
if (item.type_ != Item::Type_Tab)
|
||||
continue;
|
||||
|
||||
QString label = item.tab_label_;
|
||||
if (shape == QTabBar::RoundedWest) {
|
||||
label = QFontMetrics(font()).elidedText(label, Qt::ElideMiddle, 100);
|
||||
}
|
||||
|
||||
int tab_id = -1;
|
||||
if (icons && text)
|
||||
tab_id = bar->addTab(item.tab_icon_, label);
|
||||
else if (icons)
|
||||
tab_id = bar->addTab(item.tab_icon_, QString());
|
||||
else if (text)
|
||||
tab_id = bar->addTab(label);
|
||||
|
||||
bar->setTabToolTip(tab_id, item.tab_label_);
|
||||
}
|
||||
|
||||
bar->setCurrentIndex(stack_->currentIndex());
|
||||
connect(bar, SIGNAL(currentChanged(int)), SLOT(ShowWidget(int)));
|
||||
tab_bar_ = bar;
|
||||
}
|
230
src/3rdparty/fancytabwidget.h
vendored
Normal file
230
src/3rdparty/fancytabwidget.h
vendored
Normal file
|
@ -0,0 +1,230 @@
|
|||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at http://qt.nokia.com/contact.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef FANCYTABWIDGET_H
|
||||
#define FANCYTABWIDGET_H
|
||||
|
||||
#include <QIcon>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QProxyStyle>
|
||||
#include <QTabBar>
|
||||
#include <QTimer>
|
||||
#include <QWidget>
|
||||
|
||||
class QActionGroup;
|
||||
class QMenu;
|
||||
class QPainter;
|
||||
class QSignalMapper;
|
||||
class QStackedLayout;
|
||||
class QStatusBar;
|
||||
class QVBoxLayout;
|
||||
|
||||
namespace Core {
|
||||
namespace Internal {
|
||||
|
||||
class FancyTabProxyStyle : public QProxyStyle {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
void drawControl(ControlElement element, const QStyleOption* option,
|
||||
QPainter* painter, const QWidget* widget) const;
|
||||
void polish(QWidget* widget);
|
||||
void polish(QApplication* app);
|
||||
void polish(QPalette& palette);
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject* o, QEvent* e);
|
||||
};
|
||||
|
||||
class FancyTab : public QWidget{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(float fader READ fader WRITE setFader)
|
||||
public:
|
||||
FancyTab(QWidget *tabbar);
|
||||
float fader() { return m_fader; }
|
||||
void setFader(float value);
|
||||
|
||||
QSize sizeHint() const;
|
||||
|
||||
void fadeIn();
|
||||
void fadeOut();
|
||||
|
||||
QIcon icon;
|
||||
QString text;
|
||||
|
||||
protected:
|
||||
void enterEvent(QEvent *);
|
||||
void leaveEvent(QEvent *);
|
||||
|
||||
private:
|
||||
QPropertyAnimation animator;
|
||||
QWidget *tabbar;
|
||||
float m_fader;
|
||||
};
|
||||
|
||||
class FancyTabBar : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
FancyTabBar(QWidget *parent = 0);
|
||||
~FancyTabBar();
|
||||
|
||||
void paintEvent(QPaintEvent *event);
|
||||
void paintTab(QPainter *painter, int tabIndex) const;
|
||||
void mousePressEvent(QMouseEvent *);
|
||||
bool validIndex(int index) const { return index >= 0 && index < m_tabs.count(); }
|
||||
|
||||
QSize sizeHint() const;
|
||||
QSize minimumSizeHint() const;
|
||||
|
||||
void addTab(const QIcon &icon, const QString &label);
|
||||
void addSpacer(int size = 40);
|
||||
void removeTab(int index) {
|
||||
FancyTab *tab = m_tabs.takeAt(index);
|
||||
delete tab;
|
||||
}
|
||||
void setCurrentIndex(int index);
|
||||
int currentIndex() const { return m_currentIndex; }
|
||||
|
||||
void setTabToolTip(int index, const QString& toolTip);
|
||||
QString tabToolTip(int index) const;
|
||||
|
||||
QIcon tabIcon(int index) const {return m_tabs.at(index)->icon; }
|
||||
QString tabText(int index) const { return m_tabs.at(index)->text; }
|
||||
int count() const {return m_tabs.count(); }
|
||||
QRect tabRect(int index) const;
|
||||
|
||||
signals:
|
||||
void currentChanged(int);
|
||||
|
||||
public slots:
|
||||
void emitCurrentIndex();
|
||||
|
||||
private:
|
||||
static const int m_rounding;
|
||||
static const int m_textPadding;
|
||||
int m_currentIndex;
|
||||
QList<FancyTab*> m_tabs;
|
||||
QTimer m_triggerTimer;
|
||||
QSize tabSizeHint(bool minimum = false) const;
|
||||
|
||||
};
|
||||
|
||||
class FancyTabWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
FancyTabWidget(QWidget* parent = 0);
|
||||
|
||||
// Values are persisted - only add to the end
|
||||
enum Mode {
|
||||
Mode_None = 0,
|
||||
|
||||
Mode_LargeSidebar = 1,
|
||||
Mode_SmallSidebar = 2,
|
||||
Mode_Tabs = 3,
|
||||
Mode_IconOnlyTabs = 4,
|
||||
Mode_PlainSidebar = 5,
|
||||
};
|
||||
|
||||
struct Item {
|
||||
Item(const QIcon& icon, const QString& label)
|
||||
: type_(Type_Tab), tab_label_(label), tab_icon_(icon), spacer_size_(0) {}
|
||||
Item(int size) : type_(Type_Spacer), spacer_size_(size) {}
|
||||
|
||||
enum Type {
|
||||
Type_Tab,
|
||||
Type_Spacer,
|
||||
};
|
||||
|
||||
Type type_;
|
||||
QString tab_label_;
|
||||
QIcon tab_icon_;
|
||||
int spacer_size_;
|
||||
};
|
||||
|
||||
void AddTab(QWidget *tab, const QIcon &icon, const QString &label);
|
||||
void AddSpacer(int size = 40);
|
||||
void SetBackgroundPixmap(const QPixmap& pixmap);
|
||||
|
||||
void AddBottomWidget(QWidget* widget);
|
||||
|
||||
int current_index() const;
|
||||
Mode mode() const { return mode_; }
|
||||
|
||||
public slots:
|
||||
void SetCurrentIndex(int index);
|
||||
void SetMode(Mode mode);
|
||||
void SetMode(int mode) { SetMode(Mode(mode)); }
|
||||
|
||||
signals:
|
||||
void CurrentChanged(int index);
|
||||
void ModeChanged(FancyTabWidget::Mode mode);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event);
|
||||
void contextMenuEvent(QContextMenuEvent* e);
|
||||
|
||||
private slots:
|
||||
void ShowWidget(int index);
|
||||
|
||||
private:
|
||||
void MakeTabBar(QTabBar::Shape shape, bool text, bool icons, bool fancy);
|
||||
void AddMenuItem(QSignalMapper* mapper, QActionGroup* group,
|
||||
const QString& text, Mode mode);
|
||||
|
||||
Mode mode_;
|
||||
QList<Item> items_;
|
||||
|
||||
QWidget* tab_bar_;
|
||||
QStackedLayout* stack_;
|
||||
QPixmap background_pixmap_;
|
||||
QWidget* side_widget_;
|
||||
QVBoxLayout* side_layout_;
|
||||
QVBoxLayout* top_layout_;
|
||||
|
||||
bool use_background_;
|
||||
|
||||
QMenu* menu_;
|
||||
|
||||
FancyTabProxyStyle* proxy_style_;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Core
|
||||
|
||||
Q_DECLARE_METATYPE(QPropertyAnimation*);
|
||||
|
||||
using Core::Internal::FancyTab;
|
||||
using Core::Internal::FancyTabBar;
|
||||
using Core::Internal::FancyTabWidget;
|
||||
|
||||
#endif // FANCYTABWIDGET_H
|
241
src/3rdparty/stylehelper.cpp
vendored
Normal file
241
src/3rdparty/stylehelper.cpp
vendored
Normal file
|
@ -0,0 +1,241 @@
|
|||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at http://qt.nokia.com/contact.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#include "stylehelper.h"
|
||||
|
||||
#include <QtGui/QPixmapCache>
|
||||
#include <QtGui/QWidget>
|
||||
#include <QtCore/QRect>
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QPalette>
|
||||
#include <QtGui/QStyleOption>
|
||||
#include <QtCore/QObject>
|
||||
|
||||
// Clamps float color values within (0, 255)
|
||||
static int clamp(float x)
|
||||
{
|
||||
const int val = x > 255 ? 255 : static_cast<int>(x);
|
||||
return val < 0 ? 0 : val;
|
||||
}
|
||||
|
||||
namespace Utils {
|
||||
|
||||
qreal StyleHelper::sidebarFontSize()
|
||||
{
|
||||
#if defined(Q_WS_MAC)
|
||||
return 10;
|
||||
#else
|
||||
return 7.5;
|
||||
#endif
|
||||
}
|
||||
|
||||
QColor StyleHelper::panelTextColor(bool lightColored)
|
||||
{
|
||||
if (!lightColored)
|
||||
return Qt::white;
|
||||
else
|
||||
return Qt::black;
|
||||
}
|
||||
|
||||
// Invalid by default, setBaseColor needs to be called at least once
|
||||
QColor StyleHelper::m_baseColor;
|
||||
QColor StyleHelper::m_requestedBaseColor;
|
||||
|
||||
QColor StyleHelper::baseColor(bool lightColored)
|
||||
{
|
||||
if (!lightColored)
|
||||
return m_baseColor;
|
||||
else
|
||||
return m_baseColor.lighter(230);
|
||||
}
|
||||
|
||||
QColor StyleHelper::highlightColor(bool lightColored)
|
||||
{
|
||||
QColor result = baseColor(lightColored);
|
||||
if (!lightColored)
|
||||
result.setHsv(result.hue(),
|
||||
clamp(result.saturation()),
|
||||
clamp(result.value() * 1.16));
|
||||
else
|
||||
result.setHsv(result.hue(),
|
||||
clamp(result.saturation()),
|
||||
clamp(result.value() * 1.06));
|
||||
return result;
|
||||
}
|
||||
|
||||
QColor StyleHelper::shadowColor(bool lightColored)
|
||||
{
|
||||
QColor result = baseColor(lightColored);
|
||||
result.setHsv(result.hue(),
|
||||
clamp(result.saturation() * 1.1),
|
||||
clamp(result.value() * 0.70));
|
||||
return result;
|
||||
}
|
||||
|
||||
QColor StyleHelper::borderColor(bool lightColored)
|
||||
{
|
||||
QColor result = baseColor(lightColored);
|
||||
result.setHsv(result.hue(),
|
||||
result.saturation(),
|
||||
result.value() / 2);
|
||||
return result;
|
||||
}
|
||||
|
||||
// We try to ensure that the actual color used are within
|
||||
// reasonalbe bounds while generating the actual baseColor
|
||||
// from the users request.
|
||||
void StyleHelper::setBaseColor(const QColor &newcolor)
|
||||
{
|
||||
m_requestedBaseColor = newcolor;
|
||||
|
||||
QColor color;
|
||||
color.setHsv(newcolor.hue(),
|
||||
newcolor.saturation() * 0.7,
|
||||
64 + newcolor.value() / 3);
|
||||
|
||||
if (color.isValid() && color != m_baseColor) {
|
||||
m_baseColor = color;
|
||||
foreach (QWidget *w, QApplication::topLevelWidgets())
|
||||
w->update();
|
||||
}
|
||||
}
|
||||
|
||||
static void verticalGradientHelper(QPainter *p, const QRect &spanRect, const QRect &rect, bool lightColored)
|
||||
{
|
||||
QColor highlight = StyleHelper::highlightColor(lightColored);
|
||||
QColor shadow = StyleHelper::shadowColor(lightColored);
|
||||
QLinearGradient grad(spanRect.topRight(), spanRect.topLeft());
|
||||
grad.setColorAt(0, highlight.lighter(117));
|
||||
grad.setColorAt(1, shadow.darker(109));
|
||||
p->fillRect(rect, grad);
|
||||
|
||||
QColor light(255, 255, 255, 80);
|
||||
p->setPen(light);
|
||||
p->drawLine(rect.topRight() - QPoint(1, 0), rect.bottomRight() - QPoint(1, 0));
|
||||
QColor dark(0, 0, 0, 90);
|
||||
p->setPen(dark);
|
||||
p->drawLine(rect.topLeft(), rect.bottomLeft());
|
||||
}
|
||||
|
||||
void StyleHelper::verticalGradient(QPainter *painter, const QRect &spanRect, const QRect &clipRect, bool lightColored)
|
||||
{
|
||||
if (StyleHelper::usePixmapCache()) {
|
||||
QString key;
|
||||
QColor keyColor = baseColor(lightColored);
|
||||
key.sprintf("mh_vertical %d %d %d %d %d",
|
||||
spanRect.width(), spanRect.height(), clipRect.width(),
|
||||
clipRect.height(), keyColor.rgb());;
|
||||
|
||||
QPixmap pixmap;
|
||||
if (!QPixmapCache::find(key, pixmap)) {
|
||||
pixmap = QPixmap(clipRect.size());
|
||||
QPainter p(&pixmap);
|
||||
QRect rect(0, 0, clipRect.width(), clipRect.height());
|
||||
verticalGradientHelper(&p, spanRect, rect, lightColored);
|
||||
p.end();
|
||||
QPixmapCache::insert(key, pixmap);
|
||||
}
|
||||
|
||||
painter->drawPixmap(clipRect.topLeft(), pixmap);
|
||||
} else {
|
||||
verticalGradientHelper(painter, spanRect, clipRect, lightColored);
|
||||
}
|
||||
}
|
||||
|
||||
// Draws a cached pixmap with shadow
|
||||
void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
|
||||
QPainter *p, QIcon::Mode iconMode, int radius, const QColor &color, const QPoint &offset)
|
||||
{
|
||||
QPixmap cache;
|
||||
QString pixmapName = QString("icon %0 %1 %2").arg(icon.cacheKey()).arg(iconMode).arg(rect.height());
|
||||
|
||||
if (!QPixmapCache::find(pixmapName, cache)) {
|
||||
QPixmap px = icon.pixmap(rect.size());
|
||||
cache = QPixmap(px.size() + QSize(radius * 2, radius * 2));
|
||||
cache.fill(Qt::transparent);
|
||||
|
||||
QPainter cachePainter(&cache);
|
||||
if (iconMode == QIcon::Disabled) {
|
||||
QImage im = px.toImage().convertToFormat(QImage::Format_ARGB32);
|
||||
for (int y=0; y<im.height(); ++y) {
|
||||
QRgb *scanLine = (QRgb*)im.scanLine(y);
|
||||
for (int x=0; x<im.width(); ++x) {
|
||||
QRgb pixel = *scanLine;
|
||||
char intensity = qGray(pixel);
|
||||
*scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel));
|
||||
++scanLine;
|
||||
}
|
||||
}
|
||||
px = QPixmap::fromImage(im);
|
||||
}
|
||||
|
||||
// Draw shadow
|
||||
QImage tmp(px.size() + QSize(radius * 2, radius * 2 + 1), QImage::Format_ARGB32_Premultiplied);
|
||||
tmp.fill(Qt::transparent);
|
||||
|
||||
QPainter tmpPainter(&tmp);
|
||||
tmpPainter.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
tmpPainter.drawPixmap(QPoint(radius, radius), px);
|
||||
tmpPainter.end();
|
||||
|
||||
// blur the alpha channel
|
||||
QImage blurred(tmp.size(), QImage::Format_ARGB32_Premultiplied);
|
||||
blurred.fill(Qt::transparent);
|
||||
QPainter blurPainter(&blurred);
|
||||
qt_blurImage(&blurPainter, tmp, radius, false, true);
|
||||
blurPainter.end();
|
||||
|
||||
tmp = blurred;
|
||||
|
||||
// blacken the image...
|
||||
tmpPainter.begin(&tmp);
|
||||
tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
|
||||
tmpPainter.fillRect(tmp.rect(), color);
|
||||
tmpPainter.end();
|
||||
|
||||
tmpPainter.begin(&tmp);
|
||||
tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
|
||||
tmpPainter.fillRect(tmp.rect(), color);
|
||||
tmpPainter.end();
|
||||
|
||||
// draw the blurred drop shadow...
|
||||
cachePainter.drawImage(QRect(0, 0, cache.rect().width(), cache.rect().height()), tmp);
|
||||
|
||||
// Draw the actual pixmap...
|
||||
cachePainter.drawPixmap(QPoint(radius, radius) + offset, px);
|
||||
QPixmapCache::insert(pixmapName, cache);
|
||||
}
|
||||
|
||||
QRect targetRect = cache.rect();
|
||||
targetRect.moveCenter(rect.center());
|
||||
p->drawPixmap(targetRect.topLeft() - offset, cache);
|
||||
}
|
||||
|
||||
} // namespace Utils
|
86
src/3rdparty/stylehelper.h
vendored
Normal file
86
src/3rdparty/stylehelper.h
vendored
Normal file
|
@ -0,0 +1,86 @@
|
|||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at http://qt.nokia.com/contact.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef STYLEHELPER_H
|
||||
#define STYLEHELPER_H
|
||||
|
||||
#include <QtGui/QColor>
|
||||
#include <QtGui/QStyle>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QPalette;
|
||||
class QPainter;
|
||||
class QRect;
|
||||
// Note, this is exported but in a private header as qtopengl depends on it.
|
||||
// We should consider adding this as a public helper function.
|
||||
void qt_blurImage(QPainter *p, QImage &blurImage, qreal radius, bool quality, bool alphaOnly, int transposed = 0);
|
||||
QT_END_NAMESPACE
|
||||
|
||||
// Helper class holding all custom color values
|
||||
|
||||
namespace Utils {
|
||||
class StyleHelper
|
||||
{
|
||||
public:
|
||||
static const unsigned int DEFAULT_BASE_COLOR = 0x666666;
|
||||
|
||||
// Height of the project explorer navigation bar
|
||||
static qreal sidebarFontSize();
|
||||
|
||||
// This is our color table, all colors derive from baseColor
|
||||
static QColor requestedBaseColor() { return m_requestedBaseColor; }
|
||||
static QColor baseColor(bool lightColored = false);
|
||||
static QColor panelTextColor(bool lightColored = false);
|
||||
static QColor highlightColor(bool lightColored = false);
|
||||
static QColor shadowColor(bool lightColored = false);
|
||||
static QColor borderColor(bool lightColored = false);
|
||||
|
||||
static QColor sidebarHighlight() { return QColor(255, 255, 255, 40); }
|
||||
static QColor sidebarShadow() { return QColor(0, 0, 0, 40); }
|
||||
|
||||
// Sets the base color and makes sure all top level widgets are updated
|
||||
static void setBaseColor(const QColor &color);
|
||||
|
||||
// Gradients used for panels
|
||||
static void verticalGradient(QPainter *painter, const QRect &spanRect, const QRect &clipRect, bool lightColored = false);
|
||||
static bool usePixmapCache() { return true; }
|
||||
|
||||
static void drawIconWithShadow(const QIcon &icon, const QRect &rect, QPainter *p, QIcon::Mode iconMode,
|
||||
int radius = 3, const QColor &color = QColor(0, 0, 0, 130),
|
||||
const QPoint &offset = QPoint(1, -2));
|
||||
|
||||
private:
|
||||
static QColor m_baseColor;
|
||||
static QColor m_requestedBaseColor;
|
||||
};
|
||||
|
||||
} // namespace Utils
|
||||
|
||||
using Utils::StyleHelper;
|
||||
#endif // STYLEHELPER_H
|
|
@ -123,7 +123,10 @@ SOURCES += main.cpp\
|
|||
3rdparty/squeezelabelv2.cpp \
|
||||
3rdparty/squeezelabelv1.cpp \
|
||||
tools/buttonwithmenu.cpp \
|
||||
navigation/locationbarsettings.cpp
|
||||
navigation/locationbarsettings.cpp \
|
||||
other/browsinglibrary.cpp \
|
||||
3rdparty/stylehelper.cpp \
|
||||
3rdparty/fancytabwidget.cpp
|
||||
|
||||
HEADERS += \
|
||||
3rdparty/qtwin.h \
|
||||
|
@ -207,7 +210,10 @@ HEADERS += \
|
|||
3rdparty/squeezelabelv2.h \
|
||||
3rdparty/squeezelabelv1.h \
|
||||
tools/buttonwithmenu.h \
|
||||
navigation/locationbarsettings.h
|
||||
navigation/locationbarsettings.h \
|
||||
other/browsinglibrary.h \
|
||||
3rdparty/stylehelper.h \
|
||||
3rdparty/fancytabwidget.h
|
||||
|
||||
FORMS += \
|
||||
preferences/autofillmanager.ui \
|
||||
|
@ -238,7 +244,8 @@ FORMS += \
|
|||
desktopnotifications/desktopnotification.ui \
|
||||
webview/jsconfirm.ui \
|
||||
webview/jsalert.ui \
|
||||
webview/jsprompt.ui
|
||||
webview/jsprompt.ui \
|
||||
other/browsinglibrary.ui
|
||||
|
||||
RESOURCES += \
|
||||
data/icons.qrc \
|
||||
|
|
|
@ -19,10 +19,9 @@
|
|||
#include "qupzilla.h"
|
||||
#include "tabwidget.h"
|
||||
#include "bookmarkstoolbar.h"
|
||||
#include "bookmarksmanager.h"
|
||||
#include "cookiemanager.h"
|
||||
#include "cookiejar.h"
|
||||
#include "historymanager.h"
|
||||
#include "browsinglibrary.h"
|
||||
#include "historymodel.h"
|
||||
#include "networkmanager.h"
|
||||
#include "rssmanager.h"
|
||||
|
@ -39,9 +38,8 @@
|
|||
|
||||
MainApplication::MainApplication(const QList<CommandLineOptions::ActionPair> &cmdActions, int &argc, char **argv)
|
||||
: QtSingleApplication("QupZillaWebBrowser", argc, argv)
|
||||
,m_bookmarksmanager(0)
|
||||
,m_cookiemanager(0)
|
||||
,m_historymanager(0)
|
||||
,m_browsingLibrary(0)
|
||||
,m_historymodel(0)
|
||||
,m_websettings(0)
|
||||
,m_networkmanager(0)
|
||||
|
@ -371,11 +369,11 @@ void MainApplication::quitApplication()
|
|||
quit();
|
||||
}
|
||||
|
||||
BookmarksManager* MainApplication::bookmarksManager()
|
||||
BrowsingLibrary* MainApplication::browsingLibrary()
|
||||
{
|
||||
if (!m_bookmarksmanager)
|
||||
m_bookmarksmanager = new BookmarksManager(getWindow());
|
||||
return m_bookmarksmanager;
|
||||
if (!m_browsingLibrary)
|
||||
m_browsingLibrary = new BrowsingLibrary(getWindow());
|
||||
return m_browsingLibrary;
|
||||
}
|
||||
|
||||
PluginProxy* MainApplication::plugins()
|
||||
|
@ -392,13 +390,6 @@ CookieManager* MainApplication::cookieManager()
|
|||
return m_cookiemanager;
|
||||
}
|
||||
|
||||
HistoryManager* MainApplication::historyManager()
|
||||
{
|
||||
if (!m_historymanager)
|
||||
m_historymanager = new HistoryManager(getWindow());
|
||||
return m_historymanager;
|
||||
}
|
||||
|
||||
HistoryModel* MainApplication::history()
|
||||
{
|
||||
if (!m_historymodel)
|
||||
|
|
|
@ -31,9 +31,8 @@
|
|||
#include "commandlineoptions.h"
|
||||
|
||||
class QupZilla;
|
||||
class BookmarksManager;
|
||||
class CookieManager;
|
||||
class HistoryManager;
|
||||
class BrowsingLibrary;
|
||||
class HistoryModel;
|
||||
class NetworkManager;
|
||||
class CookieJar;
|
||||
|
@ -76,9 +75,8 @@ public:
|
|||
void checkProfile(QString path);
|
||||
|
||||
QupZilla* getWindow();
|
||||
BookmarksManager* bookmarksManager();
|
||||
CookieManager* cookieManager();
|
||||
HistoryManager* historyManager();
|
||||
BrowsingLibrary* browsingLibrary();
|
||||
HistoryModel* history();
|
||||
QWebSettings* webSettings();
|
||||
NetworkManager* networkManager();
|
||||
|
@ -113,9 +111,8 @@ private:
|
|||
void translateApp();
|
||||
void restoreOtherWindows();
|
||||
|
||||
BookmarksManager* m_bookmarksmanager;
|
||||
CookieManager* m_cookiemanager;
|
||||
HistoryManager* m_historymanager;
|
||||
BrowsingLibrary* m_browsingLibrary;
|
||||
HistoryModel* m_historymodel;
|
||||
QWebSettings* m_websettings;
|
||||
NetworkManager* m_networkmanager;
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include "downloadmanager.h"
|
||||
#include "cookiejar.h"
|
||||
#include "cookiemanager.h"
|
||||
#include "historymanager.h"
|
||||
#include "bookmarksmanager.h"
|
||||
#include "bookmarkstoolbar.h"
|
||||
#include "clearprivatedata.h"
|
||||
|
@ -54,6 +53,7 @@
|
|||
#include "closedtabsmanager.h"
|
||||
#include "statusbarmessage.h"
|
||||
#include "locationbarsettings.h"
|
||||
#include "browsinglibrary.h"
|
||||
|
||||
const QString QupZilla::VERSION = "1.0.0-b3";
|
||||
//const QString QupZilla::BUILDTIME = QLocale(QLocale::English).toDateTime(__DATE__" "__TIME__, "MMM d yyyy hh:mm:ss").toString("MM/dd/yyyy hh:ss");
|
||||
|
@ -845,17 +845,17 @@ void QupZilla::changeEncoding()
|
|||
|
||||
void QupZilla::bookmarkPage()
|
||||
{
|
||||
mApp->bookmarksManager()->addBookmark(weView());
|
||||
mApp->browsingLibrary()->bookmarksManager()->addBookmark(weView());
|
||||
}
|
||||
|
||||
void QupZilla::addBookmark(const QUrl &url, const QString &title)
|
||||
{
|
||||
mApp->bookmarksManager()->insertBookmark(url, title);
|
||||
mApp->browsingLibrary()->bookmarksManager()->insertBookmark(url, title);
|
||||
}
|
||||
|
||||
void QupZilla::bookmarkAllTabs()
|
||||
{
|
||||
mApp->bookmarksManager()->insertAllTabs();
|
||||
mApp->browsingLibrary()->bookmarksManager()->insertAllTabs();
|
||||
}
|
||||
|
||||
void QupZilla::loadActionUrl()
|
||||
|
@ -882,26 +882,17 @@ void QupZilla::showCookieManager()
|
|||
|
||||
void QupZilla::showHistoryManager()
|
||||
{
|
||||
HistoryManager* m = mApp->historyManager();
|
||||
m->refreshTable();
|
||||
m->setMainWindow(this);
|
||||
m->show();
|
||||
mApp->browsingLibrary()->showHistory(this);
|
||||
}
|
||||
|
||||
void QupZilla::showRSSManager()
|
||||
{
|
||||
RSSManager* m = mApp->rssManager();
|
||||
m->refreshTable();
|
||||
m->setMainWindow(this);
|
||||
m->show();
|
||||
mApp->browsingLibrary()->showRSS(this);
|
||||
}
|
||||
|
||||
void QupZilla::showBookmarksManager()
|
||||
{
|
||||
BookmarksManager* m = mApp->bookmarksManager();
|
||||
m->refreshTable();
|
||||
m->setMainWindow(this);
|
||||
m->show();
|
||||
mApp->browsingLibrary()->showBookmarks(this);
|
||||
}
|
||||
|
||||
void QupZilla::showClearPrivateData()
|
||||
|
|
|
@ -47,7 +47,6 @@ BookmarksManager::BookmarksManager(QupZilla* mainClass, QWidget* parent) :
|
|||
#endif
|
||||
|
||||
connect(ui->deleteB, SIGNAL(clicked()), this, SLOT(deleteItem()));
|
||||
connect(ui->close, SIGNAL(clicked(QAbstractButton*)), this, SLOT(hide()));
|
||||
connect(ui->bookmarksTree, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(itemChanged(QTreeWidgetItem*)));
|
||||
connect(ui->addFolder, SIGNAL(clicked()), this, SLOT(addFolder()));
|
||||
connect(ui->bookmarksTree, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(contextMenuRequested(const QPoint &)));
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <QTreeWidgetItem>
|
||||
#include <QInputDialog>
|
||||
#include <QPointer>
|
||||
#include <QDialogButtonBox>
|
||||
|
||||
#include "bookmarksmodel.h"
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<string>Bookmarks</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="../icons.qrc">
|
||||
<iconset resource="../data/icons.qrc">
|
||||
<normaloff>:/icons/qupzilla.png</normaloff>:/icons/qupzilla.png</iconset>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
|
@ -41,13 +41,6 @@
|
|||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QDialogButtonBox" name="close">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="QPushButton" name="deleteB">
|
||||
<property name="text">
|
||||
|
@ -65,6 +58,19 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<spacer name="horizontalSpacer">
|
||||
<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>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
|
@ -75,7 +81,7 @@
|
|||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="../icons.qrc"/>
|
||||
<include location="../data/icons.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
|
@ -72,5 +72,9 @@
|
|||
<file>icons/other/adblock.png</file>
|
||||
<file>icons/preferences/stock_dialog-question.png</file>
|
||||
<file>icons/notifications/download.png</file>
|
||||
<file>icons/other/background.png</file>
|
||||
<file>icons/other/bighistory.png</file>
|
||||
<file>icons/other/library-bg-top.png</file>
|
||||
<file>icons/other/library-bg-top-right.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -46,7 +46,6 @@ DownloadItem::DownloadItem(QListWidgetItem* item, QNetworkReply* reply, QString
|
|||
QFile::remove(fullPath);
|
||||
|
||||
m_outputFile.setFileName(fullPath);
|
||||
qDebug() << m_fileName << m_outputFile.fileName();
|
||||
|
||||
ui->setupUi(this);
|
||||
setMaximumWidth(525);
|
||||
|
|
|
@ -42,11 +42,9 @@ HistoryManager::HistoryManager(QupZilla* mainClass, QWidget* parent) :
|
|||
#endif
|
||||
|
||||
connect(ui->historyTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this, SLOT(itemDoubleClicked(QTreeWidgetItem*)));
|
||||
connect(ui->close, SIGNAL(clicked(QAbstractButton*)), this, SLOT(hide()));
|
||||
connect(ui->deleteB, SIGNAL(clicked()), this, SLOT(deleteItem()));
|
||||
connect(ui->clearAll, SIGNAL(clicked()), this, SLOT(clearHistory()));
|
||||
// connect(ui->search, SIGNAL(textChanged(QString)), ui->historyTree, SLOT(filterStringWithoutTopItems(QString)));
|
||||
connect(ui->search, SIGNAL(cursorPositionChanged(int, int)), this, SLOT(search()));
|
||||
connect(ui->historyTree, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(contextMenuRequested(const QPoint &)));
|
||||
connect(ui->historyTree, SIGNAL(itemControlClicked(QTreeWidgetItem*)), this, SLOT(itemControlClicked(QTreeWidgetItem*)));
|
||||
|
||||
|
@ -56,7 +54,7 @@ HistoryManager::HistoryManager(QupZilla* mainClass, QWidget* parent) :
|
|||
|
||||
//QTimer::singleShot(0, this, SLOT(refreshTable()));
|
||||
|
||||
ui->search->setInactiveText(tr("Search"));
|
||||
ui->historyTree->setFocus();
|
||||
}
|
||||
|
||||
QupZilla* HistoryManager::getQupZilla()
|
||||
|
@ -225,9 +223,8 @@ void HistoryManager::refreshTable()
|
|||
ui->historyTree->setUpdatesEnabled(true);
|
||||
}
|
||||
|
||||
void HistoryManager::search()
|
||||
void HistoryManager::search(const QString &searchText)
|
||||
{
|
||||
QString searchText = ui->search->text();
|
||||
if (searchText.isEmpty()) {
|
||||
refreshTable();
|
||||
return;
|
||||
|
|
|
@ -41,12 +41,12 @@ public:
|
|||
|
||||
public slots:
|
||||
void refreshTable();
|
||||
void search(const QString &searchText);
|
||||
|
||||
private slots:
|
||||
void itemDoubleClicked(QTreeWidgetItem* item);
|
||||
void deleteItem();
|
||||
void clearHistory();
|
||||
void search();
|
||||
void contextMenuRequested(const QPoint &position);
|
||||
void loadInNewTab();
|
||||
void itemControlClicked(QTreeWidgetItem* item);
|
||||
|
|
|
@ -18,17 +18,7 @@
|
|||
<normaloff>:/icons/qupzilla.png</normaloff>:/icons/qupzilla.png</iconset>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Search in history: </string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="LineEdit" name="search"/>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="4">
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="TreeWidget" name="historyTree">
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::CustomContextMenu</enum>
|
||||
|
@ -51,7 +41,7 @@
|
|||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="deleteB">
|
||||
<property name="text">
|
||||
<string>Delete</string>
|
||||
|
@ -61,28 +51,29 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="clearAll">
|
||||
<property name="text">
|
||||
<string>Clear All History</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QDialogButtonBox" name="close">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
<item row="1" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>LineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>lineedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>TreeWidget</class>
|
||||
<extends>QTreeWidget</extends>
|
||||
|
|
110
src/other/browsinglibrary.cpp
Normal file
110
src/other/browsinglibrary.cpp
Normal file
|
@ -0,0 +1,110 @@
|
|||
#include "browsinglibrary.h"
|
||||
#include "ui_browsinglibrary.h"
|
||||
#include "historymanager.h"
|
||||
#include "bookmarksmanager.h"
|
||||
#include "rssmanager.h"
|
||||
#include "mainapplication.h"
|
||||
|
||||
BrowsingLibrary::BrowsingLibrary(QupZilla* mainClass, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::BrowsingLibrary)
|
||||
, m_historyManager(new HistoryManager(mainClass))
|
||||
, m_bookmarksManager(new BookmarksManager(mainClass))
|
||||
, m_rssManager(mApp->rssManager())
|
||||
, m_historyLoaded(false)
|
||||
, m_bookmarksLoaded(false)
|
||||
, m_rssLoaded(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->searchLine->hide();
|
||||
|
||||
//CENTER on scren
|
||||
const QRect screen = QApplication::desktop()->screenGeometry();
|
||||
const QRect &size = QWidget::geometry();
|
||||
QWidget::move( (screen.width()-size.width())/2, (screen.height()-size.height())/2 );
|
||||
|
||||
ui->tabs->AddTab(m_historyManager, QIcon(":/icons/other/bighistory.png"), tr("History"));
|
||||
ui->tabs->AddTab(m_bookmarksManager, QIcon(":/icons/other/bigstar.png"), tr("Bookmarks"));
|
||||
ui->tabs->AddTab(m_rssManager, QIcon(":/icons/other/bigrss.png"), tr("RSS"));
|
||||
|
||||
ui->tabs->SetMode(FancyTabWidget::Mode_LargeSidebar);
|
||||
ui->tabs->SetBackgroundPixmap(QPixmap(":icons/other/background.png"));
|
||||
|
||||
connect(ui->tabs, SIGNAL(CurrentChanged(int)), this, SLOT(currentIndexChanged(int)));
|
||||
connect(ui->searchLine, SIGNAL(cursorPositionChanged(int, int)), this, SLOT(search()));
|
||||
}
|
||||
|
||||
void BrowsingLibrary::currentIndexChanged(int index)
|
||||
{
|
||||
switch (index) {
|
||||
case 0:
|
||||
if (!m_historyLoaded) {
|
||||
m_historyManager->refreshTable();
|
||||
m_historyLoaded = true;
|
||||
}
|
||||
ui->searchLine->show();
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (!m_bookmarksLoaded) {
|
||||
m_bookmarksManager->refreshTable();
|
||||
m_bookmarksLoaded = true;
|
||||
}
|
||||
ui->searchLine->hide();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (!m_rssLoaded) {
|
||||
m_rssManager->refreshTable();
|
||||
m_rssLoaded = true;
|
||||
}
|
||||
ui->searchLine->hide();
|
||||
break;
|
||||
|
||||
default:
|
||||
qWarning("BrowsingLibrary::currentIndexChanged() received index out of range!");
|
||||
}
|
||||
}
|
||||
|
||||
void BrowsingLibrary::search()
|
||||
{
|
||||
m_historyManager->search(ui->searchLine->text());
|
||||
}
|
||||
|
||||
void BrowsingLibrary::showHistory(QupZilla* mainClass)
|
||||
{
|
||||
ui->tabs->SetCurrentIndex(0);
|
||||
show();
|
||||
m_historyManager->setMainWindow(mainClass);
|
||||
|
||||
if (!m_historyLoaded) {
|
||||
m_historyManager->refreshTable();
|
||||
m_historyLoaded = true;
|
||||
}
|
||||
}
|
||||
|
||||
void BrowsingLibrary::showBookmarks(QupZilla* mainClass)
|
||||
{
|
||||
ui->tabs->SetCurrentIndex(1);
|
||||
show();
|
||||
m_bookmarksManager->setMainWindow(mainClass);
|
||||
|
||||
if (!m_bookmarksLoaded) {
|
||||
m_bookmarksManager->refreshTable();
|
||||
m_bookmarksLoaded = true;
|
||||
}
|
||||
}
|
||||
|
||||
void BrowsingLibrary::showRSS(QupZilla* mainClass)
|
||||
{
|
||||
ui->tabs->SetCurrentIndex(2);
|
||||
show();
|
||||
m_rssManager->setMainWindow(mainClass);
|
||||
m_rssManager->refreshTable();
|
||||
m_rssLoaded = true;
|
||||
}
|
||||
|
||||
BrowsingLibrary::~BrowsingLibrary()
|
||||
{
|
||||
delete ui;
|
||||
}
|
45
src/other/browsinglibrary.h
Normal file
45
src/other/browsinglibrary.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
#ifndef LIBRARY_H
|
||||
#define LIBRARY_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QDesktopWidget>
|
||||
|
||||
namespace Ui {
|
||||
class BrowsingLibrary;
|
||||
}
|
||||
|
||||
class HistoryManager;
|
||||
class BookmarksManager;
|
||||
class RSSManager;
|
||||
class QupZilla;
|
||||
class BrowsingLibrary : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BrowsingLibrary(QupZilla* mainClass, QWidget *parent = 0);
|
||||
~BrowsingLibrary();
|
||||
|
||||
void showHistory(QupZilla* mainClass);
|
||||
void showBookmarks(QupZilla* mainClass);
|
||||
void showRSS(QupZilla* mainClass);
|
||||
|
||||
HistoryManager* historyManager() { return m_historyManager; }
|
||||
BookmarksManager* bookmarksManager() { return m_bookmarksManager; }
|
||||
RSSManager* rssManager() { return m_rssManager; }
|
||||
|
||||
private slots:
|
||||
void currentIndexChanged(int index);
|
||||
void search();
|
||||
|
||||
private:
|
||||
Ui::BrowsingLibrary *ui;
|
||||
HistoryManager* m_historyManager;
|
||||
BookmarksManager* m_bookmarksManager;
|
||||
RSSManager* m_rssManager;
|
||||
bool m_historyLoaded;
|
||||
bool m_bookmarksLoaded;
|
||||
bool m_rssLoaded;
|
||||
};
|
||||
|
||||
#endif // LIBRARY_H
|
116
src/other/browsinglibrary.ui
Normal file
116
src/other/browsinglibrary.ui
Normal file
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>BrowsingLibrary</class>
|
||||
<widget class="QWidget" name="BrowsingLibrary">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>762</width>
|
||||
<height>477</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Library</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="../data/icons.qrc">
|
||||
<normaloff>:/qupzilla.png</normaloff>:/qupzilla.png</iconset>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="FancyTabWidget" name="tabs" native="true"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>71</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>71</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background: url(':icons/other/library-bg-top.png') no-repeat;</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QFrame" name="frame_2">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>25</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background: url(':icons/other/library-bg-top-right.png') repeat;</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="searchLine">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QLineEdit
|
||||
{
|
||||
background: transparent; border-image: url(:/icons/locationbar/lineedit.png); border-width:4; color:black;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Search...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>FancyTabWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>fancytabwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="../data/icons.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -44,7 +44,6 @@ RSSManager::RSSManager(QupZilla* mainClass, QWidget* parent) :
|
|||
|
||||
ui->tabWidget->setElideMode(Qt::ElideRight);
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(close()));
|
||||
connect(ui->reload, SIGNAL(clicked()), this, SLOT(reloadFeed()));
|
||||
connect(ui->deletebutton, SIGNAL(clicked()), this, SLOT(deleteFeed()));
|
||||
connect(ui->edit, SIGNAL(clicked()), this, SLOT(editFeed()));
|
||||
|
@ -66,12 +65,6 @@ void RSSManager::setMainWindow(QupZilla* window)
|
|||
void RSSManager::refreshTable()
|
||||
{
|
||||
QSqlQuery query;
|
||||
query.exec("SELECT count(id) FROM rss");
|
||||
if (!query.next())
|
||||
return;
|
||||
if (query.value(0).toInt() == 0)
|
||||
return;
|
||||
|
||||
ui->tabWidget->clear();
|
||||
query.exec("SELECT address, title FROM rss");
|
||||
int i = 0;
|
||||
|
@ -101,6 +94,23 @@ void RSSManager::refreshTable()
|
|||
ui->deletebutton->setEnabled(true);
|
||||
ui->reload->setEnabled(true);
|
||||
ui->edit->setEnabled(true);
|
||||
} else {
|
||||
ui->deletebutton->setEnabled(false);
|
||||
ui->reload->setEnabled(false);
|
||||
ui->edit->setEnabled(false);
|
||||
|
||||
QFrame *frame = new QFrame();
|
||||
frame->setStyleSheet("background: white;");
|
||||
QVBoxLayout *verticalLayout = new QVBoxLayout(frame);
|
||||
QLabel *label_2 = new QLabel(frame);
|
||||
label_2->setPixmap(QPixmap(":/icons/menu/rss.png"));
|
||||
label_2->setAlignment(Qt::AlignBottom|Qt::AlignHCenter);
|
||||
verticalLayout->addWidget(label_2);
|
||||
QLabel *label = new QLabel(frame);
|
||||
label->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
|
||||
label->setText(tr("You don't have any RSS Feeds.<br/>\nPlease add some with RSS icon in navigation bar on site which offers feeds."));
|
||||
verticalLayout->addWidget(label);
|
||||
ui->tabWidget->addTab(frame, tr("Empty"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -126,12 +136,8 @@ void RSSManager::deleteFeed()
|
|||
query.exec("DELETE FROM rss WHERE address='"+url+"'");
|
||||
|
||||
ui->tabWidget->removeTab(ui->tabWidget->currentIndex());
|
||||
if (ui->tabWidget->count() == 0) {
|
||||
ui->deletebutton->setEnabled(false);
|
||||
ui->reload->setEnabled(false);
|
||||
ui->edit->setEnabled(false);
|
||||
if (ui->tabWidget->count() == 0)
|
||||
refreshTable();
|
||||
}
|
||||
}
|
||||
|
||||
void RSSManager::editFeed()
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <QNetworkAccessManager>
|
||||
#include <QFormLayout>
|
||||
#include <QPointer>
|
||||
#include <QDialogButtonBox>
|
||||
|
||||
namespace Ui {
|
||||
class RSSManager;
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
|
@ -49,48 +49,6 @@
|
|||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background: white;</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../data/icons.qrc">:/icons/menu/rss.png</pixmap>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignBottom|Qt::AlignHCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>You don't have any RSS Feeds.<br/>
|
||||
Please add some with RSS icon in navigation bar on site which offers feeds.</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignHCenter|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
|
@ -140,13 +98,6 @@ Please add some with RSS icon in navigation bar on site which offers feeds.</str
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
|
@ -282,7 +282,7 @@ void TabWidget::closeTab(int index)
|
|||
// disconnect(weView(index), SIGNAL(siteIconChanged()), p_QupZilla->locationBar(), SLOT(siteIconChanged()));
|
||||
// disconnect(weView(index), SIGNAL(showUrl(QUrl)), p_QupZilla->locationBar(), SLOT(showUrl(QUrl)));
|
||||
disconnect(webView, SIGNAL(wantsCloseTab(int)), this, SLOT(closeTab(int)));
|
||||
disconnect(webView, SIGNAL(changed()), mApp, SLOT(setChanged()));
|
||||
disconnect(webView, SIGNAL(changed()), mApp, SLOT(setStateChanged()));
|
||||
disconnect(webView, SIGNAL(ipChanged(QString)), p_QupZilla->ipLabel(), SLOT(setText(QString)));
|
||||
//Save last tab url and history
|
||||
m_closedTabsManager->saveView(webView);
|
||||
|
|
|
@ -296,102 +296,102 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="54"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="47"/>
|
||||
<source>Delete</source>
|
||||
<translation>Odstranit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="57"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="50"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="64"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="57"/>
|
||||
<source>Add Folder</source>
|
||||
<translation>Přidat složku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="80"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="79"/>
|
||||
<source>Add new folder</source>
|
||||
<translation>Přidat složku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="80"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="79"/>
|
||||
<source>Choose name for new bookmark folder: </source>
|
||||
<translation>Zvolte jméno pro novou složku:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="110"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="109"/>
|
||||
<source>New Tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="160"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="185"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="210"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="338"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="380"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="159"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="184"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="209"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="337"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="379"/>
|
||||
<source>Bookmarks In Menu</source>
|
||||
<translation>Záložky v menu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="161"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="190"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="212"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="339"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="381"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="160"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="189"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="211"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="338"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="380"/>
|
||||
<source>Bookmarks In ToolBar</source>
|
||||
<translation>Panel záložek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="153"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="152"/>
|
||||
<source>Open link in actual &tab</source>
|
||||
<translation>Otevřít odkaz v &aktuálním panelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="154"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="153"/>
|
||||
<source>Open link in &new tab</source>
|
||||
<translation>Otevřít odkaz v novém &panelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="158"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="157"/>
|
||||
<source>Move bookmark to &folder</source>
|
||||
<translation>Přesunout záložku do &složky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="169"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="168"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Zavřít</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="159"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="337"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="379"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="158"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="336"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="378"/>
|
||||
<source>Unsorted Bookmarks</source>
|
||||
<translation>Nesetříděné záložky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="334"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="333"/>
|
||||
<source><b>Warning: </b>You already have this page bookmarked!</source>
|
||||
<translation><b>Upozornění: </b>Tuto stránku již máte v záložkách!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="345"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="344"/>
|
||||
<source>Choose name and location of bookmark.</source>
|
||||
<translation>Zvolte jméno a umístění záložky.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="349"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="348"/>
|
||||
<source>Add New Bookmark</source>
|
||||
<translation>Přidat záložku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="387"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="386"/>
|
||||
<source>Choose folder for bookmarks:</source>
|
||||
<translation>Zvolte složku pro záložky:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="389"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="388"/>
|
||||
<source>Bookmark All Tabs</source>
|
||||
<translation>Přidat všechny panely do záložek</translation>
|
||||
</message>
|
||||
|
@ -572,6 +572,34 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Nesetříděné záložky</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BrowsingLibrary</name>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.ui" line="14"/>
|
||||
<source>Library</source>
|
||||
<translation>Knihovna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.ui" line="95"/>
|
||||
<source>Search...</source>
|
||||
<translation>Hledat...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.cpp" line="26"/>
|
||||
<source>History</source>
|
||||
<translation>Historie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.cpp" line="27"/>
|
||||
<source>Bookmarks</source>
|
||||
<translation>Záložky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.cpp" line="28"/>
|
||||
<source>RSS</source>
|
||||
<translation>RSS</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ClearPrivateData</name>
|
||||
<message>
|
||||
|
@ -812,6 +840,34 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>konce relace</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Core::Internal::FancyTabWidget</name>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="646"/>
|
||||
<source>Large sidebar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="647"/>
|
||||
<source>Small sidebar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="648"/>
|
||||
<source>Plain sidebar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="649"/>
|
||||
<source>Tabs on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="650"/>
|
||||
<source>Icons on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadItem</name>
|
||||
<message>
|
||||
|
@ -825,118 +881,118 @@ p, li { white-space: pre-wrap; }
|
|||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="64"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="63"/>
|
||||
<source>Remaining time unavailable</source>
|
||||
<translation>Neznámý zbývající čas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="129"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="128"/>
|
||||
<source>Done - %1</source>
|
||||
<translation>Hotovo - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="181"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="311"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="180"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="310"/>
|
||||
<source>Cancelled</source>
|
||||
<translation>Zrušeno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="187"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="186"/>
|
||||
<source>few seconds</source>
|
||||
<translation>několik sekund</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="189"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="188"/>
|
||||
<source>seconds</source>
|
||||
<translation>sekund</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="191"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="190"/>
|
||||
<source>minutes</source>
|
||||
<translation>minut</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="193"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="192"/>
|
||||
<source>hours</source>
|
||||
<translation>hodin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="199"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="198"/>
|
||||
<source>Unknown speed</source>
|
||||
<translation>Neznámá rychlost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="216"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="215"/>
|
||||
<source>Unknown size</source>
|
||||
<translation>Neznámá velikost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="252"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="251"/>
|
||||
<source>Remaining %1 - %2 of %3 (%4)</source>
|
||||
<translation>Zbývá %1 - %2 z %3 (%4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="265"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="264"/>
|
||||
<source>Cancelled - %1</source>
|
||||
<translation>Zrušeno - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="279"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="278"/>
|
||||
<source>Delete file</source>
|
||||
<translation>Smazat soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="279"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="278"/>
|
||||
<source>Do you want to also delete dowloaded file?</source>
|
||||
<translation>Chcete také smazat stahovaný soubor?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="295"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="294"/>
|
||||
<source>Open File</source>
|
||||
<translation>Otevřít soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="297"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="296"/>
|
||||
<source>Open Folder</source>
|
||||
<translation>Otevřít složku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="299"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="298"/>
|
||||
<source>Go to Download Page</source>
|
||||
<translation>Přejít na stránku stahování</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="300"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="299"/>
|
||||
<source>Copy Download Link</source>
|
||||
<translation>Kopírovat stahovaný odkaz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="308"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="307"/>
|
||||
<source>Cancel downloading</source>
|
||||
<translation>Zrušit stahování</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="309"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="308"/>
|
||||
<source>Clear</source>
|
||||
<translation>Vyčistit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="311"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="310"/>
|
||||
<source>Error</source>
|
||||
<translation>Chyba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="318"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="317"/>
|
||||
<source>New tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="339"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="338"/>
|
||||
<source>Not found</source>
|
||||
<translation>Soubor neexistuje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="339"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="338"/>
|
||||
<source>Sorry, the file
|
||||
%1
|
||||
was not found!</source>
|
||||
|
@ -945,12 +1001,12 @@ p, li { white-space: pre-wrap; }
|
|||
nebyl nalezen!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="354"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="353"/>
|
||||
<source>Error: Cannot write to file!</source>
|
||||
<translation>Chyba: Nelze zapisovat do souboru!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="366"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="365"/>
|
||||
<source>Error: </source>
|
||||
<translation>Chyba:</translation>
|
||||
</message>
|
||||
|
@ -1062,67 +1118,57 @@ nebyl nalezen!</translation>
|
|||
<translation>Historie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="24"/>
|
||||
<source>Search in history: </source>
|
||||
<translation>Vyhledávat v historii:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="44"/>
|
||||
<location filename="../src/history/historymanager.ui" line="34"/>
|
||||
<source>Title</source>
|
||||
<translation>Titulek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="49"/>
|
||||
<location filename="../src/history/historymanager.ui" line="39"/>
|
||||
<source>Url</source>
|
||||
<translation>Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="57"/>
|
||||
<location filename="../src/history/historymanager.ui" line="47"/>
|
||||
<source>Delete</source>
|
||||
<translation>Odstranit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="60"/>
|
||||
<location filename="../src/history/historymanager.ui" line="50"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="67"/>
|
||||
<location filename="../src/history/historymanager.ui" line="57"/>
|
||||
<source>Clear All History</source>
|
||||
<translation>Vymazat celou historii</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="59"/>
|
||||
<source>Search</source>
|
||||
<translation>Vyhledávání</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="92"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="90"/>
|
||||
<source>New Tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="104"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="102"/>
|
||||
<source>Open link in actual tab</source>
|
||||
<translation>Otevřít odkaz v aktuálním panelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="105"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="103"/>
|
||||
<source>Open link in new tab</source>
|
||||
<translation>Otevřít odkaz v novém panelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="109"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="107"/>
|
||||
<source>Close</source>
|
||||
<translation>Zavřít</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="172"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="170"/>
|
||||
<source>Confirmation</source>
|
||||
<translation>Potvrzení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="173"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="171"/>
|
||||
<source>Are you sure to delete all history?</source>
|
||||
<translation>Opravdu chcete vymazat celou historii?</translation>
|
||||
</message>
|
||||
|
@ -1211,12 +1257,12 @@ nebyl nalezen!</translation>
|
|||
<context>
|
||||
<name>MainApplication</name>
|
||||
<message>
|
||||
<location filename="../src/app/mainapplication.cpp" line="526"/>
|
||||
<location filename="../src/app/mainapplication.cpp" line="517"/>
|
||||
<source>Last session crashed</source>
|
||||
<translation>Poslední relace spadla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/mainapplication.cpp" line="527"/>
|
||||
<location filename="../src/app/mainapplication.cpp" line="518"/>
|
||||
<source><b>QupZilla crashed :-(</b><br/>Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state?</source>
|
||||
<translation><b>QupZilla spadla :-(</b><br/>Oops, poslední relace QupZilly skončila jejím pádem. Velice se omlouváme. Přejete si obnovit uložený stav?</translation>
|
||||
</message>
|
||||
|
@ -2332,7 +2378,7 @@ nebyl nalezen!</translation>
|
|||
<translation>Defaultní</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1133"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1124"/>
|
||||
<source>Start Private Browsing</source>
|
||||
<translation>Spustit anonymní prohlížení</translation>
|
||||
</message>
|
||||
|
@ -2490,48 +2536,48 @@ nebyl nalezen!</translation>
|
|||
<translation>Předvo&lby</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1014"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1015"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1005"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1006"/>
|
||||
<source>Web Inspector</source>
|
||||
<translation>Web Inspektor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1057"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1048"/>
|
||||
<source>Open file...</source>
|
||||
<translation>Otevřít soubor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1120"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1111"/>
|
||||
<source>Are you sure you want to turn on private browsing?</source>
|
||||
<translation>Jste si jistý že chcete zapnout soukromé prohlížení?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1121"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1112"/>
|
||||
<source>When private browsing is turned on, some actions concerning your privacy will be disabled:</source>
|
||||
<translation>Se zapnutým soukromým prohlížením jsou některé akce týkající se soukromí vypnuty:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1124"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1115"/>
|
||||
<source>Webpages are not added to the history.</source>
|
||||
<translation>Stránky nejsou přidávány do historie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1125"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1116"/>
|
||||
<source>New cookies are not stored, but current cookies can be accessed.</source>
|
||||
<translation>Nové cookies nejsou přijímány, ale současné cookies jsou zasílány.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1126"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1117"/>
|
||||
<source>Your session won't be stored.</source>
|
||||
<translation>Vaše relace nebude uložena.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1128"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1119"/>
|
||||
<source>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened.</source>
|
||||
<translation>Než zavřete prohlížeč, stále můžete použít tlačítka Zpět a Vpřed k vrácení se na stránky které jste otevřeli.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1172"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1163"/>
|
||||
<source>There are still %1 open tabs and your session won't be stored. Are you sure to quit?</source>
|
||||
<translation>Ještě je otevřeno %1 panelů a Vaše relace nebude uložena. Opravdu chcete skončit?</translation>
|
||||
</message>
|
||||
|
@ -2571,69 +2617,69 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.</
|
|||
<translation>Smazat kanál</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="82"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="81"/>
|
||||
<source>News</source>
|
||||
<translation>Novinky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="91"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="114"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="90"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="113"/>
|
||||
<source>Loading...</source>
|
||||
<translation>Načítám...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="154"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="153"/>
|
||||
<source>Fill title and URL of a feed: </source>
|
||||
<translation>Vyplňte titulek a adresu kanálu: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="156"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="155"/>
|
||||
<source>Feed title: </source>
|
||||
<translation>Titulek kanálu: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="157"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="156"/>
|
||||
<source>Feed URL: </source>
|
||||
<translation>Adresa kanálu: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="163"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="162"/>
|
||||
<source>Edit RSS Feed</source>
|
||||
<translation>Upravit kanál</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="200"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="199"/>
|
||||
<source>Open link in actual tab</source>
|
||||
<translation>Otevřít odkaz v aktuálním panelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="201"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="200"/>
|
||||
<source>Open link in new tab</source>
|
||||
<translation>Otevřít odkaz v novém panelu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="203"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="202"/>
|
||||
<source>Close</source>
|
||||
<translation>Zavřít</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="226"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="232"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="225"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="231"/>
|
||||
<source>New Tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="298"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="297"/>
|
||||
<source>Error in fetching feed</source>
|
||||
<translation>Chyba při stahování kanálu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="319"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="318"/>
|
||||
<source>RSS feed duplicated</source>
|
||||
<translation>Duplikovaný kanál</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="319"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="318"/>
|
||||
<source>You already have this feed.</source>
|
||||
<translation>Tento kanál již odebíráte.</translation>
|
||||
</message>
|
||||
|
|
|
@ -300,102 +300,102 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="54"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="47"/>
|
||||
<source>Delete</source>
|
||||
<translation>Odstrániť</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="57"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="50"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="64"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.ui" line="57"/>
|
||||
<source>Add Folder</source>
|
||||
<translation>Pridať zložku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="80"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="79"/>
|
||||
<source>Add new folder</source>
|
||||
<translation>Pridať novú zložku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="80"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="79"/>
|
||||
<source>Choose name for new bookmark folder: </source>
|
||||
<translation>Zvoľte meno pre novú zložku:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="110"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="109"/>
|
||||
<source>New Tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="160"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="185"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="210"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="338"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="380"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="159"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="184"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="209"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="337"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="379"/>
|
||||
<source>Bookmarks In Menu</source>
|
||||
<translation>Záložky v menu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="161"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="190"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="212"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="339"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="381"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="160"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="189"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="211"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="338"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="380"/>
|
||||
<source>Bookmarks In ToolBar</source>
|
||||
<translation>Panel záložiek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="153"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="152"/>
|
||||
<source>Open link in actual &tab</source>
|
||||
<translation>Otvoriť odkaz v &aktuálnom panely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="154"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="153"/>
|
||||
<source>Open link in &new tab</source>
|
||||
<translation>Otvoriť odkaz na &novom panely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="158"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="157"/>
|
||||
<source>Move bookmark to &folder</source>
|
||||
<translation>Presunúť záložku do &zložky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="169"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="168"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Zavrieť</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="159"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="337"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="379"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="158"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="336"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="378"/>
|
||||
<source>Unsorted Bookmarks</source>
|
||||
<translation>Nezotriedené záložky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="334"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="333"/>
|
||||
<source><b>Warning: </b>You already have this page bookmarked!</source>
|
||||
<translation><b>Upozornenie: </b>Túto stránku máte už v záložkách!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="345"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="344"/>
|
||||
<source>Choose name and location of bookmark.</source>
|
||||
<translation>Zvoľte meno a umiestnenie záložky.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="349"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="348"/>
|
||||
<source>Add New Bookmark</source>
|
||||
<translation>Pridať záložku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="387"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="386"/>
|
||||
<source>Choose folder for bookmarks:</source>
|
||||
<translation>Zvoľte zložku pre záložku:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="389"/>
|
||||
<location filename="../src/bookmarks/bookmarksmanager.cpp" line="388"/>
|
||||
<source>Bookmark All Tabs</source>
|
||||
<translation>Pridať všetky panely do záložiek</translation>
|
||||
</message>
|
||||
|
@ -576,6 +576,34 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Nezotriedené záložky</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BrowsingLibrary</name>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.ui" line="14"/>
|
||||
<source>Library</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.ui" line="95"/>
|
||||
<source>Search...</source>
|
||||
<translation type="unfinished">Hľadať...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.cpp" line="26"/>
|
||||
<source>History</source>
|
||||
<translation type="unfinished">História</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.cpp" line="27"/>
|
||||
<source>Bookmarks</source>
|
||||
<translation type="unfinished">Záložky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/other/browsinglibrary.cpp" line="28"/>
|
||||
<source>RSS</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ClearPrivateData</name>
|
||||
<message>
|
||||
|
@ -815,6 +843,34 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Konca relácie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Core::Internal::FancyTabWidget</name>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="646"/>
|
||||
<source>Large sidebar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="647"/>
|
||||
<source>Small sidebar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="648"/>
|
||||
<source>Plain sidebar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="649"/>
|
||||
<source>Tabs on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/3rdparty/fancytabwidget.cpp" line="650"/>
|
||||
<source>Icons on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadItem</name>
|
||||
<message>
|
||||
|
@ -828,118 +884,118 @@ p, li { white-space: pre-wrap; }
|
|||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="64"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="63"/>
|
||||
<source>Remaining time unavailable</source>
|
||||
<translation>Neznámy zostávajúci čas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="129"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="128"/>
|
||||
<source>Done - %1</source>
|
||||
<translation>Dokončené - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="181"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="311"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="180"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="310"/>
|
||||
<source>Cancelled</source>
|
||||
<translation>Zrušené</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="187"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="186"/>
|
||||
<source>few seconds</source>
|
||||
<translation>pár sekúnd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="189"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="188"/>
|
||||
<source>seconds</source>
|
||||
<translation>sekúnd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="191"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="190"/>
|
||||
<source>minutes</source>
|
||||
<translation>minút</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="193"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="192"/>
|
||||
<source>hours</source>
|
||||
<translation>hodín</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="199"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="198"/>
|
||||
<source>Unknown speed</source>
|
||||
<translation>Neznáma rýchslosť</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="216"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="215"/>
|
||||
<source>Unknown size</source>
|
||||
<translation>Neznáma veľkosť</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="252"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="251"/>
|
||||
<source>Remaining %1 - %2 of %3 (%4)</source>
|
||||
<translation>Zostáva %1 - %2 z %3 (%4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="265"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="264"/>
|
||||
<source>Cancelled - %1</source>
|
||||
<translation>Zrušene - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="279"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="278"/>
|
||||
<source>Delete file</source>
|
||||
<translation>Vymazať súbor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="279"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="278"/>
|
||||
<source>Do you want to also delete dowloaded file?</source>
|
||||
<translation>Chcete zmazať sťahovaný súbor?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="295"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="294"/>
|
||||
<source>Open File</source>
|
||||
<translation>Otvoriť súbor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="297"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="296"/>
|
||||
<source>Open Folder</source>
|
||||
<translation>Otvoriť priečinok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="299"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="298"/>
|
||||
<source>Go to Download Page</source>
|
||||
<translation>Prejsť k sťahovanie stránke</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="300"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="299"/>
|
||||
<source>Copy Download Link</source>
|
||||
<translation>Kopírovať sťahovaný odkaz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="308"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="307"/>
|
||||
<source>Cancel downloading</source>
|
||||
<translation>Zrušiť sťahovanie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="309"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="308"/>
|
||||
<source>Clear</source>
|
||||
<translation>Vyčistiť</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="311"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="310"/>
|
||||
<source>Error</source>
|
||||
<translation>Chyba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="318"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="317"/>
|
||||
<source>New tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="339"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="338"/>
|
||||
<source>Not found</source>
|
||||
<translation>Súbor neexistuje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="339"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="338"/>
|
||||
<source>Sorry, the file
|
||||
%1
|
||||
was not found!</source>
|
||||
|
@ -948,12 +1004,12 @@ p, li { white-space: pre-wrap; }
|
|||
nebol nájdený!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="354"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="353"/>
|
||||
<source>Error: Cannot write to file!</source>
|
||||
<translation>Chyba: Nejde zapisovať do súboru!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="366"/>
|
||||
<location filename="../src/downloads/downloaditem.cpp" line="365"/>
|
||||
<source>Error: </source>
|
||||
<translation>Chyba: </translation>
|
||||
</message>
|
||||
|
@ -1065,67 +1121,57 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>História</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="24"/>
|
||||
<source>Search in history: </source>
|
||||
<translation>Hľadať v histórii:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="44"/>
|
||||
<location filename="../src/history/historymanager.ui" line="34"/>
|
||||
<source>Title</source>
|
||||
<translation>Názov</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="49"/>
|
||||
<location filename="../src/history/historymanager.ui" line="39"/>
|
||||
<source>Url</source>
|
||||
<translation>Adresa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="57"/>
|
||||
<location filename="../src/history/historymanager.ui" line="47"/>
|
||||
<source>Delete</source>
|
||||
<translation>Vymazať</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="60"/>
|
||||
<location filename="../src/history/historymanager.ui" line="50"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.ui" line="67"/>
|
||||
<location filename="../src/history/historymanager.ui" line="57"/>
|
||||
<source>Clear All History</source>
|
||||
<translation>Vymazať celú históriu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="59"/>
|
||||
<source>Search</source>
|
||||
<translation>Hľadať</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="92"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="90"/>
|
||||
<source>New Tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="104"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="102"/>
|
||||
<source>Open link in actual tab</source>
|
||||
<translation>Otvoriť odkaz v aktuálnom panely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="105"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="103"/>
|
||||
<source>Open link in new tab</source>
|
||||
<translation>Otvoriť odkaz na novom panely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="109"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="107"/>
|
||||
<source>Close</source>
|
||||
<translation>Zavrieť</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="172"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="170"/>
|
||||
<source>Confirmation</source>
|
||||
<translation>Potvrdenie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/history/historymanager.cpp" line="173"/>
|
||||
<location filename="../src/history/historymanager.cpp" line="171"/>
|
||||
<source>Are you sure to delete all history?</source>
|
||||
<translation>Skutočne chcete vymazať celú históriu?</translation>
|
||||
</message>
|
||||
|
@ -1213,12 +1259,12 @@ p, li { white-space: pre-wrap; }
|
|||
<context>
|
||||
<name>MainApplication</name>
|
||||
<message>
|
||||
<location filename="../src/app/mainapplication.cpp" line="526"/>
|
||||
<location filename="../src/app/mainapplication.cpp" line="517"/>
|
||||
<source>Last session crashed</source>
|
||||
<translation>Posledná relácia spadla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/mainapplication.cpp" line="527"/>
|
||||
<location filename="../src/app/mainapplication.cpp" line="518"/>
|
||||
<source><b>QupZilla crashed :-(</b><br/>Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state?</source>
|
||||
<translation><b>QupZilla spadla :-(</b><br/>Oops, posledná relácia QupZilly skončila chybou. Prepáčte. Chcete obnoviť uložený stav?</translation>
|
||||
</message>
|
||||
|
@ -2334,7 +2380,7 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Základné</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1133"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1124"/>
|
||||
<source>Start Private Browsing</source>
|
||||
<translation>Spustiť anonymné prehliadanie</translation>
|
||||
</message>
|
||||
|
@ -2491,48 +2537,48 @@ p, li { white-space: pre-wrap; }
|
|||
<translation>Pr&edvoľby</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1014"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1015"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1005"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1006"/>
|
||||
<source>Web Inspector</source>
|
||||
<translation>Web inšpektor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1057"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1048"/>
|
||||
<source>Open file...</source>
|
||||
<translation>Otvoriť súbor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1120"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1111"/>
|
||||
<source>Are you sure you want to turn on private browsing?</source>
|
||||
<translation>Ste si istý, že chcete zapnúť súkromné prehliadanie?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1121"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1112"/>
|
||||
<source>When private browsing is turned on, some actions concerning your privacy will be disabled:</source>
|
||||
<translation>So zapnutým súkromným prehliadaním sú niektoré akcie týkajúce sa súkromia vypnuté:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1124"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1115"/>
|
||||
<source>Webpages are not added to the history.</source>
|
||||
<translation>Stránky nie sú pridávané do histórie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1125"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1116"/>
|
||||
<source>New cookies are not stored, but current cookies can be accessed.</source>
|
||||
<translation>Nové cookies nie sú prijímané, ale súčasné cookies sú zasielané.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1126"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1117"/>
|
||||
<source>Your session won't be stored.</source>
|
||||
<translation>Vaša relácia nebude uložená.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1128"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1119"/>
|
||||
<source>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened.</source>
|
||||
<translation>Dokiaľ nezavriete prehliadač, tak stále môžete používať tlačidla Späť a Dopredu k vráteniu sa na stránky, ktoré ste mali otvorené.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1172"/>
|
||||
<location filename="../src/app/qupzilla.cpp" line="1163"/>
|
||||
<source>There are still %1 open tabs and your session won't be stored. Are you sure to quit?</source>
|
||||
<translation>Stále sú otvorené %1 panely a Vaša relácia nebude uložená. Skutočne chcete skončiť?</translation>
|
||||
</message>
|
||||
|
@ -2572,69 +2618,69 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.</tran
|
|||
<translation>Zmazať kanál</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="82"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="81"/>
|
||||
<source>News</source>
|
||||
<translation>Novinky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="91"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="114"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="90"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="113"/>
|
||||
<source>Loading...</source>
|
||||
<translation>Nahrávam...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="154"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="153"/>
|
||||
<source>Fill title and URL of a feed: </source>
|
||||
<translation>Vyplnte názov a adresu kanálu: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="156"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="155"/>
|
||||
<source>Feed title: </source>
|
||||
<translation>Názov kanálu: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="157"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="156"/>
|
||||
<source>Feed URL: </source>
|
||||
<translation>Adresa kanálu: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="163"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="162"/>
|
||||
<source>Edit RSS Feed</source>
|
||||
<translation>Upraviť RSS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="200"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="199"/>
|
||||
<source>Open link in actual tab</source>
|
||||
<translation>Otvoriť odkaz v aktuálnom panely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="201"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="200"/>
|
||||
<source>Open link in new tab</source>
|
||||
<translation>Otvoriť odkaz na novom panely</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="203"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="202"/>
|
||||
<source>Close</source>
|
||||
<translation>Zavrieť</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="226"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="232"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="225"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="231"/>
|
||||
<source>New Tab</source>
|
||||
<translation>Nový panel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="298"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="297"/>
|
||||
<source>Error in fetching feed</source>
|
||||
<translation>Chyba pri sťahovaní kanálu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="319"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="318"/>
|
||||
<source>RSS feed duplicated</source>
|
||||
<translation>Duplikovaný kanál</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="319"/>
|
||||
<location filename="../src/rss/rssmanager.cpp" line="318"/>
|
||||
<source>You already have this feed.</source>
|
||||
<translation>Tento kanál už odoberáte.</translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in New Issue
Block a user