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

Merge branch 'master' into pshaw

This commit is contained in:
Prasenjit Kumar Shaw 2019-06-12 13:21:18 +05:30
commit 9932a11d26
10 changed files with 57 additions and 16 deletions

View File

@ -17,6 +17,7 @@
<name xml:lang="gl">Falkon</name>
<name xml:lang="id">Falkon</name>
<name xml:lang="it">Falkon</name>
<name xml:lang="ko">Falkon</name>
<name xml:lang="nl">Falkon</name>
<name xml:lang="nn">Falkon</name>
<name xml:lang="pl">Falkon</name>
@ -43,6 +44,7 @@
<summary xml:lang="gl">Navegador web</summary>
<summary xml:lang="id">Penelusur Web</summary>
<summary xml:lang="it">Browser web</summary>
<summary xml:lang="ko">웹 브라우저</summary>
<summary xml:lang="nl">Webbrowser</summary>
<summary xml:lang="nn">Nettlesar</summary>
<summary xml:lang="pl">Przeglądarka internetowa</summary>
@ -70,6 +72,7 @@
<p xml:lang="gl">Falkon é un navegador web novo e moi rápido feito con Qt. Pretende ser un navegador web lixeiro dispoñíbel nas plataformas maioritarias. O proxecto comezou por curiosidade. Pero desde entón, Falkon converteuse nun navegador moi completo.</p>
<p xml:lang="id">Falkon adalah penelusur web Qt yang baru dan sangat cepat. Ini bertujuan untuk menjadi penelusur web ringan yang tersedia melalui semua platform utama. Proyek ini awalnya hanya dimulai untuk tujuan pendidikan. Tapi sejak awal, Falkon telah tumbuh menjadi penelusur kaya fitur.</p>
<p xml:lang="it">Falkon è un nuovo e velocissimo browser web Qt. Mira ad essere un browser web leggero e disponibile per tutte le maggiori piattaforme. Il progetto è iniziato inizialmente a scopo educativo, ma da allora Falkon è diventato un browser ricco di funzionalità.</p>
<p xml:lang="ko">Falkon은 Qt 기반 웹 브라우저입니다. 모든 주요 플랫폼에서 사용할 수 있는 경량 웹 브라우저입니다. 이 프로젝트는 교육용 목적에서 시작해서 다기능 웹 브라우저로 발전했습니다.</p>
<p xml:lang="nl">Flacon is een nieuwe en zeer snelle Qt-webbrowser. Zijn doel is om een lichtgewicht webbrowser te zijn beschikbaar via alle belangrijke platformen. Dit project is oorspronkelijk gestart alleen gestart voor onderwijsdoeleinden. Maar vanaf zijn start is Falcon gegroeid in een functierijke browser.</p>
<p xml:lang="nn">Falkon er ein ny og svært kjapp Qt-nettlesar. Målet er ein nettlesar som ikkje krev mykje systemressursar og som er tilgjengeleg på dei mest brukte plattformene. Programmet vart opphavleg utvikla berre som eit læreprosjekt, men har over tid blitt til ein funksjonsrik nettlesar.</p>
<p xml:lang="pl">Falkon jest nową i bardzo szybką przeglądarką internetową opartą na Qt. Celem Falkona jest być lekkim oprogramowaniem, dostępnym na wszystkich głównych platformach. Projekt ten został pierwotnie rozpoczęty wyłącznie w celach edukacyjnych, ale od swojego początku, Falkon rozrósł się do bogatej w funkcje przeglądarki.</p>
@ -77,7 +80,7 @@
<p xml:lang="pt-BR">O Falkon é um navegador Web novo e muito rápido feito em Qt. Destina-se a ser um navegador Web leve disponível em todas as principais plataformas. Este projeto começou originalmente apenas para fins educacionais. Mas, desde o início, o Falkon tornou-se um navegador rico em funcionalidades.</p>
<p xml:lang="sk">Falkon je nový a veľmi rýchly Qt prehliadač. Jeho cieľom je byť ľahký a dostupný na všetkých platformách. Tento projekt začal iba na účely vzdelávania. Ale časom sa stal plnohodnotným prehliadačom.</p>
<p xml:lang="sv">Falkon är en ny och mycket snabb Qt webbläsare. Den har som mål att vara en lättviktig webbläsare tillgänglig på alla större plattformar. Projektet startades ursprungligen bara i utbildningssyfte, men från starten har Falkon växt till en funktionsrik webbläsare.</p>
<p xml:lang="uk">Falkon — нова і дуже швидка програма для перегляду інтернету на основі навігатора Qt. Метою проекту є створення невибагливого до ресурсів переглядача інтернету для усіх основних програмних платформ. Реалізацію проекту було розпочато з навчальною метою. Втім, з того часу Falkon стала повноцінним переглядачем.</p>
<p xml:lang="uk">Falkon — нова і дуже швидка програма для перегляду інтернету на основі навігатора Qt. Метою проєкту є створення невибагливого до ресурсів переглядача інтернету для усіх основних програмних платформ. Реалізацію проєкту було розпочато з навчальною метою. Втім, з того часу Falkon стала повноцінним переглядачем.</p>
<p xml:lang="x-test">xxFalkon is a new and very fast Qt web browser. It aims to be a lightweight web browser available through all major platforms. This project has been originally started only for educational purposes. But from its start, Falkon has grown into a feature-rich browser.xx</p>
<p xml:lang="zh-CN">Falkon 是一款全新的超快速 Qt 网络浏览器。它将是一款轻量级的跨平台浏览器。这个项目当初仅仅作为教育项目。但是从一开始Falkon 就成长为一款功能丰富的浏览器。</p>
<p>
@ -94,6 +97,7 @@
<p xml:lang="gl">Falkon ten todas as funcións estándar que esperaría dun navegador web. Inclúe marcadores, historial (ambos dispoñíbeis en barras laterais) e lapelas. Ademais, pode xestionar fontes de novas RSS cun lector de RSS incluído, bloquear anuncios cun complemento de AdBlock integrado, bloquear contido en Flash con Click2Flash e editar a base de datos local de certificados de autoridades certificadoras cun xestor de SSL.</p>
<p xml:lang="id">Falkon memiliki semua fungsi standar yang kamu harapkan dari penelusur web. Ini termasuk markah, histori (keduanya juga di bilah sisi) dan tab. Di samping itu, kamu bisa mengelola feed RSS dengan pembaca RSS yang disertakan, mencekal iklan dengan plugin AdBlock bawaan, mencekal konten Flash dengan Click2Flash dan mengedit database CA Certificates lokal dengan pengelola SSL.</p>
<p xml:lang="it">Falkon ha tutte le funzioni standard che ti aspetteresti da un browser web. Include i segnalibri e la cronologia, entrambi anche nella barra laterale, e le schede. Puoi inoltre gestire i feed RSS con un lettore RSS incluso, bloccare sia le inserzioni con un'estensione AdBlock integrata, sia i contenuti Flash con Click2Flash, ed infine modificare la banca dati dei certificati CA con un gestore SSL.</p>
<p xml:lang="ko">Falkon은 웹 브라우저의 표준 기능을 포함하고 있습니다. 책갈피, 과거 기록(사이드바 지원), 탭을 지원합니다. 이외에도 내장 RSS 리더를 통한 RSS 피드 구독, AdBlock 플러그인으로 광고 차단, Click2Flash로 플래시 콘텐츠 차단, SSL 관리자로 로컬 CA 인증서 편집 등을 지원합니다.</p>
<p xml:lang="nl">Falcon heeft alle standaard functies die u verwacht van een webbrowser. Het bevat bladwijzers, geschiedenis (ook in de zijbalk) en tabbladen. Bovendien kunt u RSS-feeds beheren met een ingevoegde RSS-reader, ads blokkeren met een ingebouwde AdBlock plug-in, Flash-inhoud blokkeren met Click2Flash en de lokale database met CA Certificaten met een SSL-beheerder.</p>
<p xml:lang="nn">Falkon har alle funksjonane du forventar av ein nettlesar, som fane- og bokmerkestøtte, og ein logg over vitja sider (også tilgjengeleg frå ein sidestolpe). Han har òg innebygd RSS-lesar, reklamefilter, Flash-blokkering (klikk for å starta) og redigerbar CA-sertifikatdabase.</p>
<p xml:lang="pl">Falkon oddaje do dyspozycji użytkownika wszystkie standardowe funkcje, których oczekuje się od przeglądarki internetowej. Posiada karty, zakładki oraz możliwość zapisu historii, którą następnie można wyświetlić zarówno w osobnym oknie, jak i na pasku bocznym. Poza tym, może on obsługiwać kanały RSS przy użyciu załączonego czytnika, blokować reklamy za pomocą wbudowanej wtyczki AdBlock, blokować treści Flash przy użyciu Click2Flash i edytować lokalne certyfikaty CA.</p>

View File

@ -148,6 +148,7 @@ void TabTreeDelegate::paint(QPainter *painter, const QStyleOptionViewItem &optio
const bool expanded = m_view->isExpanded(index);
const bool children = m_view->model()->rowCount(index) > 0;
const int depth = indexDepth(index);
const bool isRestoredTab = index.data(TabModel::RestoredRole).toBool();
QStyleOptionViewItem opt = option;
initStyleOption(&opt, index);
@ -162,6 +163,9 @@ void TabTreeDelegate::paint(QPainter *painter, const QStyleOptionViewItem &optio
const QPalette::ColorRole colorRole = opt.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text;
QPalette::ColorGroup cg = opt.state & QStyle::State_Enabled ? QPalette::Normal : QPalette::Disabled;
if (!isRestoredTab) {
cg = QPalette::Disabled;
}
if (cg == QPalette::Normal && !(opt.state & QStyle::State_Active)) {
cg = QPalette::Inactive;
}

View File

@ -59,6 +59,7 @@ VerticalTabsWidget::VerticalTabsWidget(BrowserWindow *window)
buttonAddTab->setIcon(QIcon::fromTheme(QSL("list-add")));
buttonAddTab->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
connect(buttonAddTab, &QAbstractButton::clicked, m_window, &BrowserWindow::addTab);
connect(buttonAddTab, &ToolButton::middleMouseClicked, this, &VerticalTabsWidget::addChildTab);
m_groupMenu = new QMenu(this);
buttonAddTab->setMenu(m_groupMenu);
@ -201,3 +202,10 @@ void VerticalTabsWidget::updateGroupMenu()
m_window->tabWidget()->addView(QUrl(QSL("extension://verticaltabs/group")), Qz::NT_SelectedTab);
});
}
void VerticalTabsWidget::addChildTab()
{
WebTab *tab = m_window->tabWidget()->webTab();
m_window->addTab();
m_window->tabWidget()->webTab()->setParentTab(tab);
}

View File

@ -43,6 +43,8 @@ public:
void switchToNextTab();
void switchToPreviousTab();
void addChildTab();
private:
WebTab *nextTab() const;
WebTab *previousTab() const;

View File

@ -16,9 +16,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ============================================================
import Falkon
import os, re, enum, shlex
import os
import re
import enum
import shlex
from PySide2 import QtCore, QtGui
class Action():
class Type(enum.Enum):
Invalid, Url, Command = range(3)
@ -53,19 +57,22 @@ class Action():
self.supported = data.tryExec()
def testAction(self, condition, url):
if not self.supported: return False
if not condition in self.typeCondition: return False
if not re.match(self.urlCondition, url.toString()): return False
if not self.supported:
return False
if condition not in self.typeCondition:
return False
if not re.match(self.urlCondition, url.toString()):
return False
return True
def execAction(self, url, text=""):
url = str(url.toEncoded())
url = str(url.toEncoded(), "utf-8")
if self.actionType == Action.Type.Command:
url = shlex.quote(url)
text = shlex.quote(text)
elif self.actionType == Action.Type.Url:
url = str(QtCore.QUrl.toPercentEncoding(url))
text = str(QtCore.QUrl.toPercentEncoding(text))
url = str(QtCore.QUrl.toPercentEncoding(url), "utf-8")
text = str(QtCore.QUrl.toPercentEncoding(text), "utf-8")
command = self.normalExec if text == "" else self.textExec
command = command.replace("{url}", url)
command = command.replace("{text}", text)

View File

@ -16,11 +16,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ============================================================
import Falkon
import os, subprocess
from PySide2 import QtCore, QtGui, QtWidgets, QtUiTools
import os
import subprocess
from PySide2 import QtCore
from runaction.action import Action
from runaction.settingsdialog import SettingsDialog
class ActionManager(QtCore.QObject):
actions = []
@ -58,7 +60,7 @@ class ActionManager(QtCore.QObject):
act = Falkon.Action(action.icon, action.title, self)
act.triggered.connect(lambda a=action, w=webView, u=url, t=text: self.execAction(a, w, u, t))
if action.submenu:
if not action.submenu in menus:
if action.submenu not in menus:
menu = Falkon.Menu(action.menuTitle, webView)
menus[action.submenu] = menu
out.append(menu)

View File

@ -20,6 +20,7 @@ import os
from PySide2 import QtGui, QtWidgets
from runaction.i18n import i18n
class RunActionButton(Falkon.AbstractButtonInterface):
def __init__(self, manager):
super().__init__()

View File

@ -19,6 +19,7 @@ import Falkon
from PySide2 import QtCore
from runaction import actionmanager, button
class RunActionPlugin(Falkon.PluginInterface, QtCore.QObject):
buttons = {}
manager = None
@ -61,10 +62,12 @@ class RunActionPlugin(Falkon.PluginInterface, QtCore.QObject):
self.buttons[window] = b
def mainWindowDeleted(self, window):
if not window in self.buttons: return
if window not in self.buttons:
return
b = self.buttons[window]
window.statusBar().removeButton(b)
window.navigationBar().removeToolButton(b)
del self.buttons[window]
Falkon.registerPlugin(RunActionPlugin())

View File

@ -15,7 +15,14 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label"/>
<widget class="QLabel" name="label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="listWidget">
@ -28,6 +35,9 @@
<height>16</height>
</size>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="uniformItemSizes">
<bool>true</bool>
</property>

View File

@ -15,11 +15,11 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ============================================================
import Falkon
import os
from PySide2 import QtCore, QtGui, QtWidgets, QtUiTools
from PySide2 import QtCore, QtWidgets, QtUiTools
from runaction.i18n import i18n
class SettingsDialog(QtWidgets.QDialog):
def __init__(self, manager, parent=None):
super().__init__(parent)
@ -36,7 +36,7 @@ class SettingsDialog(QtWidgets.QDialog):
self.setMinimumSize(400, 250)
self.setWindowTitle(i18n("Run Action Settings"))
self.ui.label.setText("<b>{}</b>".format(i18n("Available actions")))
self.ui.label.setText(i18n("Available actions"))
for action in self.manager.actions:
item = QtWidgets.QListWidgetItem(self.ui.listWidget)