mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 02:36:34 +01:00
Merge branch 'master' into anmolgautam
This commit is contained in:
commit
90757e8846
@ -67,36 +67,36 @@ void AdBlockTest::parseRegExpFilterTest_data()
|
||||
QTest::addColumn<QString>("parsedFilter");
|
||||
QTest::addColumn<QStringList>("result");
|
||||
|
||||
QTest::newRow("test1") << "||doubleclick.net/pfadx/tmg.telegraph."
|
||||
<< (QStringList() << "doubleclick.net/pfadx/tmg.telegraph.");
|
||||
QTest::newRow("test2") << "||doubleclick.net/pfadx/*.mtvi"
|
||||
<< (QStringList() << "doubleclick.net/pfadx/" << ".mtvi");
|
||||
QTest::newRow("test3") << "&prvtof=*&poru="
|
||||
<< (QStringList() << "&prvtof=" << "&poru=");
|
||||
QTest::newRow("test4") << "/addyn|*;adtech;"
|
||||
<< (QStringList() << "/addyn" << ";adtech;");
|
||||
QTest::newRow("test5") << "/eas_fif.html^"
|
||||
<< (QStringList() << "/eas_fif.html");
|
||||
QTest::newRow("test6") << "://findnsave.^.*/api/groupon.json?"
|
||||
<< (QStringList() << "://findnsave." << "/api/groupon.json?");
|
||||
QTest::newRow("test7") << "^fp=*&prvtof="
|
||||
<< (QStringList() << "fp=" << "&prvtof=");
|
||||
QTest::newRow("test8") << "|http://ax-d.*/jstag^"
|
||||
<< (QStringList() << "http://ax-d." << "/jstag");
|
||||
QTest::newRow("test9") << "||reuters.com^*/rcom-wt-mlt.js"
|
||||
<< (QStringList() << "reuters.com" <<"/rcom-wt-mlt.js");
|
||||
QTest::newRow("test10") << "||chip.de^*/tracking.js"
|
||||
<< (QStringList() << "chip.de" << "/tracking.js");
|
||||
QTest::newRow("ignore1char") << "/search.php?uid=*.*&src="
|
||||
<< (QStringList() << "/search.php?uid=" << "&src=");
|
||||
QTest::newRow("ignoreDuplicates") << "/search.*.dup.*.dup.*&src="
|
||||
<< (QStringList() << "/search." << ".dup." << "&src=");
|
||||
QTest::newRow("test1") << QSL("||doubleclick.net/pfadx/tmg.telegraph.")
|
||||
<< (QStringList() << QSL("doubleclick.net/pfadx/tmg.telegraph."));
|
||||
QTest::newRow("test2") << QSL("||doubleclick.net/pfadx/*.mtvi")
|
||||
<< (QStringList() << QSL("doubleclick.net/pfadx/") << QSL(".mtvi"));
|
||||
QTest::newRow("test3") << QSL("&prvtof=*&poru=")
|
||||
<< (QStringList() << QSL("&prvtof=") << QSL("&poru="));
|
||||
QTest::newRow("test4") << QSL("/addyn|*;adtech;")
|
||||
<< (QStringList() << QSL("/addyn") << QSL(";adtech;"));
|
||||
QTest::newRow("test5") << QSL("/eas_fif.html^")
|
||||
<< (QStringList() << QSL("/eas_fif.html"));
|
||||
QTest::newRow("test6") << QSL("://findnsave.^.*/api/groupon.json?")
|
||||
<< (QStringList() << QSL("://findnsave.") << QSL("/api/groupon.json?"));
|
||||
QTest::newRow("test7") << QSL("^fp=*&prvtof=")
|
||||
<< (QStringList() << QSL("fp=") << QSL("&prvtof="));
|
||||
QTest::newRow("test8") << QSL("|http://ax-d.*/jstag^")
|
||||
<< (QStringList() << QSL("http://ax-d.") << QSL("/jstag"));
|
||||
QTest::newRow("test9") << QSL("||reuters.com^*/rcom-wt-mlt.js")
|
||||
<< (QStringList() << QSL("reuters.com") <<QSL("/rcom-wt-mlt.js"));
|
||||
QTest::newRow("test10") << QSL("||chip.de^*/tracking.js")
|
||||
<< (QStringList() << QSL("chip.de") << QSL("/tracking.js"));
|
||||
QTest::newRow("ignore1char") << QSL("/search.php?uid=*.*&src=")
|
||||
<< (QStringList() << QSL("/search.php?uid=") << QSL("&src="));
|
||||
QTest::newRow("ignoreDuplicates") << QSL("/search.*.dup.*.dup.*&src=")
|
||||
<< (QStringList() << QSL("/search.") << QSL(".dup.") << QSL("&src="));
|
||||
QTest::newRow("empty") << QString()
|
||||
<< (QStringList());
|
||||
QTest::newRow("justspaces") << QString(" ")
|
||||
<< (QStringList() << " ");
|
||||
QTest::newRow("spacesWithMetachars") << QString(" * ?")
|
||||
<< (QStringList() << " " << " ?");
|
||||
QTest::newRow("justspaces") << QSL(" ")
|
||||
<< (QStringList() << QSL(" "));
|
||||
QTest::newRow("spacesWithMetachars") << QSL(" * ?")
|
||||
<< (QStringList() << QSL(" ") << QSL(" ?"));
|
||||
}
|
||||
|
||||
void AdBlockTest::parseRegExpFilterTest()
|
||||
@ -111,13 +111,13 @@ void AdBlockTest::parseRegExpFilterTest()
|
||||
|
||||
void AdBlockTest::ignoreEmptyLinesInSubscriptionTest()
|
||||
{
|
||||
AdBlockSubscription subscription("test-subscription");
|
||||
subscription.setFilePath(":autotests/data/adblock_empty_lines.txt");
|
||||
AdBlockSubscription subscription(QSL("test-subscription"));
|
||||
subscription.setFilePath(QSL(":autotests/data/adblock_empty_lines.txt"));
|
||||
subscription.loadSubscription({});
|
||||
|
||||
QCOMPARE(subscription.allRules().count(), 3);
|
||||
QCOMPARE(subscription.allRules().at(0)->filter(), QString("filter.com"));
|
||||
QCOMPARE(subscription.allRules().at(1)->filter(), QString("test"));
|
||||
QCOMPARE(subscription.allRules().at(0)->filter(), QSL("filter.com"));
|
||||
QCOMPARE(subscription.allRules().at(1)->filter(), QSL("test"));
|
||||
QCOMPARE(subscription.allRules().at(2)->isComment(), true);
|
||||
}
|
||||
|
||||
|
@ -72,9 +72,9 @@ void CookiesTest::listMatchesDomainTest_data()
|
||||
QTest::addColumn<bool>("result");
|
||||
|
||||
QStringList list;
|
||||
list << "www.example.com" << "accounts.google.com";
|
||||
list << QSL("www.example.com") << QSL("accounts.google.com");
|
||||
QStringList list2;
|
||||
list2 << "anotherexample.com" << "a.b.x.google.com";
|
||||
list2 << QSL("anotherexample.com") << QSL("a.b.x.google.com");
|
||||
|
||||
QTest::newRow("test1") << list << ".www.example.com" << true;
|
||||
QTest::newRow("test2") << list << ".google.com" << false;
|
||||
|
@ -43,8 +43,8 @@ void DatabaseEncryptedPasswordBackendTest::init()
|
||||
{
|
||||
QSqlDatabase db = QSqlDatabase::database();
|
||||
if (!db.isValid()) {
|
||||
db = QSqlDatabase::addDatabase("QSQLITE");
|
||||
db.setDatabaseName(":memory:");
|
||||
db = QSqlDatabase::addDatabase(QSL("QSQLITE"));
|
||||
db.setDatabaseName(QSL(":memory:"));
|
||||
}
|
||||
db.open();
|
||||
}
|
||||
|
@ -29,12 +29,12 @@ void DatabasePasswordBackendTest::reloadBackend()
|
||||
|
||||
void DatabasePasswordBackendTest::init()
|
||||
{
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
|
||||
db.setDatabaseName(":memory:");
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase(QSL("QSQLITE"));
|
||||
db.setDatabaseName(QSL(":memory:"));
|
||||
db.open();
|
||||
|
||||
db.exec("CREATE TABLE autofill (data TEXT, id INTEGER PRIMARY KEY, password TEXT,"
|
||||
"server TEXT, username TEXT, last_used NUMERIC)");
|
||||
db.exec(QSL("CREATE TABLE autofill (data TEXT, id INTEGER PRIMARY KEY, password TEXT,"
|
||||
"server TEXT, username TEXT, last_used NUMERIC)"));
|
||||
}
|
||||
|
||||
void DatabasePasswordBackendTest::cleanup()
|
||||
|
@ -53,7 +53,7 @@ static bool compareEntries(const PasswordEntry &value, const PasswordEntry &ref)
|
||||
|
||||
PasswordBackendTest::PasswordBackendTest()
|
||||
: QObject()
|
||||
, m_backend(0)
|
||||
, m_backend(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
@ -83,28 +83,28 @@ void PasswordBackendTest::storeTest()
|
||||
|
||||
/* Basic password entry */
|
||||
PasswordEntry entry;
|
||||
entry.host = "org.falkon.google.com";
|
||||
entry.username = "user1";
|
||||
entry.password = "pass1";
|
||||
entry.host = QSL("org.falkon.google.com");
|
||||
entry.username = QSL("user1");
|
||||
entry.password = QSL("pass1");
|
||||
entry.data = "entry1-data=23&username=user1&password=pass1";
|
||||
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
// Check entry that may be stored in cache
|
||||
PasswordEntry stored = m_backend->getEntries(QUrl("org.falkon.google.com")).constFirst();
|
||||
PasswordEntry stored = m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).constFirst();
|
||||
QVERIFY(compareEntries(stored, entry) == true);
|
||||
|
||||
reloadBackend();
|
||||
|
||||
// Check entry retrieved from backend engine
|
||||
QVERIFY(!m_backend->getEntries(QUrl("org.falkon.google.com")).isEmpty());
|
||||
stored = m_backend->getEntries(QUrl("org.falkon.google.com")).constFirst();
|
||||
QVERIFY(!m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).isEmpty());
|
||||
stored = m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).constFirst();
|
||||
QVERIFY(compareEntries(stored, entry) == true);
|
||||
|
||||
|
||||
/* UTF-8 password entry */
|
||||
PasswordEntry entry2;
|
||||
entry2.host = "org.falkon.falkon.com";
|
||||
entry2.host = QSL("org.falkon.falkon.com");
|
||||
entry2.username = QString::fromUtf8("+ě ++ éí§`]|~đ11 +!:");
|
||||
entry2.password = QString::fromUtf8("+ěš asn~đ°#&# |€");
|
||||
entry2.data = "use%C2%B6+_nam%C4%8D=%2B%C4%9B+%2B%2B+%C3%A9%C3%AD%C2%A7%60%5D%7C%7E%C4%9111+%2B%21%3A"
|
||||
@ -113,28 +113,28 @@ void PasswordBackendTest::storeTest()
|
||||
m_backend->addEntry(entry2);
|
||||
|
||||
// Check entry that may be stored in cache
|
||||
PasswordEntry stored2 = m_backend->getEntries(QUrl("org.falkon.falkon.com")).constFirst();
|
||||
PasswordEntry stored2 = m_backend->getEntries(QUrl(QSL("org.falkon.falkon.com"))).constFirst();
|
||||
QVERIFY(compareEntries(stored2, entry2) == true);
|
||||
|
||||
reloadBackend();
|
||||
|
||||
// Check entry retrieved from backend engine
|
||||
stored2 = m_backend->getEntries(QUrl("org.falkon.falkon.com")).constFirst();
|
||||
stored2 = m_backend->getEntries(QUrl(QSL("org.falkon.falkon.com"))).constFirst();
|
||||
QVERIFY(compareEntries(stored2, entry2) == true);
|
||||
|
||||
/* Cleanup */
|
||||
// Local cleanup
|
||||
m_backend->removeEntry(stored);
|
||||
QCOMPARE(m_backend->getEntries(QUrl("org.falkon.google.com")).count(), 0);
|
||||
QCOMPARE(m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).count(), 0);
|
||||
|
||||
m_backend->removeEntry(stored2);
|
||||
QCOMPARE(m_backend->getEntries(QUrl("org.falkon.falkon.com")).count(), 0);
|
||||
QCOMPARE(m_backend->getEntries(QUrl(QSL("org.falkon.falkon.com"))).count(), 0);
|
||||
|
||||
reloadBackend();
|
||||
|
||||
// Backend engine cleanup
|
||||
QCOMPARE(m_backend->getEntries(QUrl("org.falkon.google.com")).count(), 0);
|
||||
QCOMPARE(m_backend->getEntries(QUrl("org.falkon.falkon.com")).count(), 0);
|
||||
QCOMPARE(m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).count(), 0);
|
||||
QCOMPARE(m_backend->getEntries(QUrl(QSL("org.falkon.falkon.com"))).count(), 0);
|
||||
}
|
||||
|
||||
void PasswordBackendTest::removeAllTest()
|
||||
@ -142,33 +142,33 @@ void PasswordBackendTest::removeAllTest()
|
||||
reloadBackend();
|
||||
|
||||
PasswordEntry entry;
|
||||
entry.host = "org.falkon.google.com";
|
||||
entry.username = "user1";
|
||||
entry.password = "pass1";
|
||||
entry.host = QSL("org.falkon.google.com");
|
||||
entry.username = QSL("user1");
|
||||
entry.password = QSL("pass1");
|
||||
entry.data = "entry1-data=23&username=user1&password=pass1";
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
entry.username.append("s");
|
||||
entry.username.append(QSL("s"));
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
entry.username.append("s");
|
||||
entry.username.append(QSL("s"));
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
entry.username.append("s");
|
||||
entry.username.append(QSL("s"));
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
entry.username.append("s");
|
||||
entry.username.append(QSL("s"));
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
entry.username.append("s");
|
||||
entry.username.append(QSL("s"));
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
entry.username.append("s");
|
||||
entry.username.append(QSL("s"));
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
QCOMPARE(m_backend->getEntries(QUrl("org.falkon.google.com")).count(), 7);
|
||||
QCOMPARE(m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).count(), 7);
|
||||
reloadBackend();
|
||||
QCOMPARE(m_backend->getEntries(QUrl("org.falkon.google.com")).count(), 7);
|
||||
QCOMPARE(m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).count(), 7);
|
||||
|
||||
m_backend->removeAll();
|
||||
|
||||
@ -182,9 +182,9 @@ void PasswordBackendTest::updateLastUsedTest()
|
||||
reloadBackend();
|
||||
|
||||
PasswordEntry entry;
|
||||
entry.host = "org.falkon.google.com";
|
||||
entry.username = "user1";
|
||||
entry.password = "pass1";
|
||||
entry.host = QSL("org.falkon.google.com");
|
||||
entry.username = QSL("user1");
|
||||
entry.password = QSL("pass1");
|
||||
entry.data = "entry1-data=23&username=user1&password=pass1";
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
@ -194,17 +194,17 @@ void PasswordBackendTest::updateLastUsedTest()
|
||||
sleep(1);
|
||||
#endif
|
||||
|
||||
entry.username.append("s");
|
||||
entry.username.append(QSL("s"));
|
||||
m_backend->addEntry(entry);
|
||||
|
||||
QVERIFY(!m_backend->getEntries(QUrl("org.falkon.google.com")).isEmpty());
|
||||
QVERIFY(compareEntries(entry, m_backend->getEntries(QUrl("org.falkon.google.com")).constFirst()));
|
||||
QVERIFY(!m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).isEmpty());
|
||||
QVERIFY(compareEntries(entry, m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).constFirst()));
|
||||
reloadBackend();
|
||||
QVERIFY(!m_backend->getEntries(QUrl("org.falkon.google.com")).isEmpty());
|
||||
QVERIFY(compareEntries(entry, m_backend->getEntries(QUrl("org.falkon.google.com")).constFirst()));
|
||||
QVERIFY(!m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).isEmpty());
|
||||
QVERIFY(compareEntries(entry, m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).constFirst()));
|
||||
|
||||
m_backend->removeEntry(m_backend->getEntries(QUrl("org.falkon.google.com")).constFirst());
|
||||
m_backend->removeEntry(m_backend->getEntries(QUrl("org.falkon.google.com")).constFirst());
|
||||
m_backend->removeEntry(m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).constFirst());
|
||||
m_backend->removeEntry(m_backend->getEntries(QUrl(QSL("org.falkon.google.com"))).constFirst());
|
||||
|
||||
QCOMPARE(m_backend->getAllEntries().count(), 0);
|
||||
reloadBackend();
|
||||
|
@ -42,7 +42,7 @@ void SqlDatabaseTest::sqlQueryJobTest()
|
||||
QTemporaryFile file;
|
||||
file.open();
|
||||
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase(QSL("QSQLITE"));
|
||||
db.setDatabaseName(file.fileName());
|
||||
db.open();
|
||||
|
||||
@ -51,37 +51,37 @@ void SqlDatabaseTest::sqlQueryJobTest()
|
||||
QCOMPARE(db.tables().count(), 0);
|
||||
|
||||
SqlQueryJob *job = new SqlQueryJob();
|
||||
job->setQuery("CREATE TABLE test1 (data TEXT, id INTEGER PRIMARY KEY)");
|
||||
job->setQuery(QSL("CREATE TABLE test1 (data TEXT, id INTEGER PRIMARY KEY)"));
|
||||
job->start();
|
||||
QVERIFY(waitForFinished(job));
|
||||
QVERIFY(!job->error().isValid());
|
||||
|
||||
QCOMPARE(db.tables(), QStringList{"test1"});
|
||||
QCOMPARE(db.tables(), QStringList{QSL("test1")});
|
||||
|
||||
job = new SqlQueryJob();
|
||||
job->setQuery("INSERT INTO test1 (data) VALUES (?)");
|
||||
job->addBindValue("test-value");
|
||||
job->setQuery(QSL("INSERT INTO test1 (data) VALUES (?)"));
|
||||
job->addBindValue(QSL("test-value"));
|
||||
job->start();
|
||||
QVERIFY(waitForFinished(job));
|
||||
QVERIFY(!job->error().isValid());
|
||||
|
||||
QCOMPARE(job->lastInsertId().toInt(), 1);
|
||||
QSqlQuery query("SELECT data FROM test1", db);
|
||||
QSqlQuery query(QSL("SELECT data FROM test1"), db);
|
||||
query.next();
|
||||
QCOMPARE(query.value(0).toString(), QString("test-value"));
|
||||
QCOMPARE(query.value(0).toString(), QSL("test-value"));
|
||||
QVERIFY(!query.next());
|
||||
|
||||
job = new SqlQueryJob();
|
||||
job->setQuery("SELECT data FROM test1");
|
||||
job->setQuery(QSL("SELECT data FROM test1"));
|
||||
job->start();
|
||||
QVERIFY(waitForFinished(job));
|
||||
QVERIFY(!job->error().isValid());
|
||||
|
||||
QCOMPARE(job->records().size(), 1);
|
||||
QCOMPARE(job->records().at(0).value(0).toString(), QString("test-value"));
|
||||
QCOMPARE(job->records().at(0).value(0).toString(), QSL("test-value"));
|
||||
|
||||
job = new SqlQueryJob();
|
||||
job->setQuery("SELECT invalid sql syntax; 1321sdsa from");
|
||||
job->setQuery(QSL("SELECT invalid sql syntax; 1321sdsa from"));
|
||||
job->start();
|
||||
QVERIFY(waitForFinished(job));
|
||||
QVERIFY(job->error().isValid());
|
||||
|
@ -18,6 +18,7 @@
|
||||
<name xml:lang="id">Falkon</name>
|
||||
<name xml:lang="it">Falkon</name>
|
||||
<name xml:lang="nl">Falkon</name>
|
||||
<name xml:lang="nn">Falkon</name>
|
||||
<name xml:lang="pl">Falkon</name>
|
||||
<name xml:lang="pt">Falkon</name>
|
||||
<name xml:lang="pt-BR">Falkon</name>
|
||||
@ -41,6 +42,7 @@
|
||||
<summary xml:lang="id">Penelusur Web</summary>
|
||||
<summary xml:lang="it">Browser web</summary>
|
||||
<summary xml:lang="nl">Webbrowser</summary>
|
||||
<summary xml:lang="nn">Nettlesar</summary>
|
||||
<summary xml:lang="pl">Przeglądarka sieciowa</summary>
|
||||
<summary xml:lang="pt">Navegador Web</summary>
|
||||
<summary xml:lang="pt-BR">Navegador Web</summary>
|
||||
@ -55,6 +57,7 @@
|
||||
</p>
|
||||
<p xml:lang="ca">El Falkon és un navegador Qt nou i molt ràpid. Pretén ser un navegador web lleuger, disponible a través de totes les principals plataformes. Aquest projecte només es va iniciar originalment amb finalitats educatives. Però des del seu inici, el Falkon s'ha convertit en un navegador ric en característiques.</p>
|
||||
<p xml:lang="ca-valencia">El Falkon és un navegador Qt nou i molt ràpid. Pretén ser un navegador web lleuger, disponible a través de totes les principals plataformes. Aquest projecte només es va iniciar originalment amb finalitats educatives. Però des del seu inici, el Falkon s'ha convertit en un navegador ric en característiques.</p>
|
||||
<p xml:lang="cs">Falkon je nový a velmi rychlý webový prohlížeč ve Qt. Cílem je poskytnout lehký prohlížeč dostupný na všech hlavních platformách. Tento projekt původně začal pouze pro vzdělávací účely, ale stal se z něj prohlížeč plný různých užitečných vlastností.</p>
|
||||
<p xml:lang="da">Falkon er en ny og meget hurtig Qt-webbrowser. Den går efter at være en letvægts-webbrowser tilgængelig på alle større platforme. Projektet blev oprindeligt kun startet til uddannelsesformål, men Falkon har siden sin begyndelse vokset sig til en funktionsrig browser.</p>
|
||||
<p xml:lang="en-GB">Falkon 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.</p>
|
||||
<p xml:lang="es">Falkon es un nuevo y muy rápido navegador web. Pretende ser un navegador web ligero disponible para todas las plataformas más populares. Este proyecto se inició originalmente con fines educativos. Aunque, desde el principio, Falkon se ha ido convirtiendo en un navegador rico en funcionalidades.</p>
|
||||
@ -64,6 +67,7 @@
|
||||
<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="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ą sieciową Qt. Jej celem jest być dostępną na wszystkich głównych platformach. Projekt zaczął się ze względów edukacyjnych, lecz od jego początków Falkon stał się bogatą w możliwości przeglądarką.</p>
|
||||
<p xml:lang="pt">O Falkon é um navegador novo e muito rápido em QtWebKit. Pretende ser um navegador Web leve e disponível em todas as plataformas importantes. Este projecto foi iniciado originalmente para fins educativos. Porém, desde o início, o Falkon cresceu para um navegador rico em funcionalidades.</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>
|
||||
@ -75,6 +79,7 @@
|
||||
</p>
|
||||
<p xml:lang="ca">El Falkon té totes les funcions estàndard que s'esperen d'un navegador web. Inclou adreces d'interès, historial (ambdós també a la barra lateral) i pestanyes. A més, podeu gestionar els canals RSS amb un lector RSS inclòs, bloquejar els anuncis amb un complement AdBlock integrat, bloquejar el contingut Flash amb Click2Flash i editar la base de dades de certificats de l'AC local amb un gestor SSL.</p>
|
||||
<p xml:lang="ca-valencia">El Falkon té totes les funcions estàndard que s'esperen d'un navegador web. Inclou adreces d'interés, historial (ambdós també a la barra lateral) i pestanyes. A més, podeu gestionar els canals RSS amb un lector RSS inclòs, bloquejar els anuncis amb un complement AdBlock integrat, bloquejar el contingut Flash amb Click2Flash i editar la base de dades de certificats de l'AC local amb un gestor SSL.</p>
|
||||
<p xml:lang="cs">Falkon obsahuje všechny standardní funcke, které byste u prohlížeče čekali. Obsahuje záložky, historii (obojí rovněž v postranní liště) a karty. Navíc může pomocí vlastní čtečky RSS spravovat kanály RSS, blokovat reklamu s vlastním modulem AdBlock, blokovat Flash s Click2Flash a upravovat místní databázi certifikátů CA se správcem SSL.</p>
|
||||
<p xml:lang="da">Falkon har alle standardfunktioner som du forventer fra en webbrowser. Den inkluderer bogmærker, historik (begge findes også i sidebjælken) og faneblade. Derudover kan du håndtere RSS-feeds med en inkluderet RSS-læser, blokere reklamer med et indbygget AdBlock-plugin, blokere Flash-indhold med Click2Flash og redigere den lokale CA-certifikater-database med en SSL-manager.</p>
|
||||
<p xml:lang="en-GB">Falkon has all standard functions you expect from a web browser. It includes bookmarks, history (both also in sidebar) and tabs. Above that, you can manage RSS feeds with an included RSS reader, block ads with a built-in AdBlock plugin, block Flash content with Click2Flash and edit the local CA Certificates database with an SSL manager.</p>
|
||||
<p xml:lang="es">Falkon posee todas las funciones estándares que cabría esperar de un navegador web. Incluye marcadores, historial (ambos disponibles también en una barra lateral) y pestañas. Además, puede gestionar fuentes RSS con el lector RSS que incluye, bloquear publicidad mediante un complemento integrado, bloquear contenido Flash con Click2Flash y editar la base de datos local de certificados con un gestor SSL.</p>
|
||||
@ -84,6 +89,7 @@
|
||||
<p xml:lang="id">Falkon memiliki semua fungsi standar yang kamu harapkan dari penelusur web. Ini termasuk markah, riwayat (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="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 ma wszystkie standardowe funkcje, których oczekuje się od przglądarek. Zawiera zakładki, historię (zarówno obie na pasku bocznym) i karty. Poza tym, może obsługiwać kanały RSS przy użyciu załączonego czytnika, blokować reklamy przy użyciu wbudowanej wtyczki AdBlock, blokować treści Flash przy użyciu Click2Flash i dedytować lokalne certyfikaty UC przy użyciu zarządzania SSL.</p>
|
||||
<p xml:lang="pt">O Falkon tem todas as funções-padrão que iria esperar de um navegador Web. Inclui os favoritos, o histórico (ambos na barra lateral) e páginas separadas. Para além disso, pode gerir fontes RSS com um leitor de RSS incluído, o bloqueio de anúncios com um 'plugin' do AdBlock incorporado, o bloqueio de conteúdos em Flash com o Click2Flash e a edição da base de dados de Certificados da AC locais com um gestor de SSL.</p>
|
||||
<p xml:lang="sv">Falkon har alla standardfunktioner man kan förvänta sig av en webbläsare. Det omfattar bokmärken, historik (båda också i sidorad) och flikar. Förutom det, kan man hantera RSS-kanaler med en inbyggd RSS-läsare, blockera reklam med ett inbyggt insticksprogram för reklamblockering, blockera Flash-innehåll med Click2Flash och redigera den lokala certifikatdatabasen för certifikatutfärdare med en SSL-hanterare.</p>
|
||||
|
@ -15,6 +15,7 @@ Name[gl]=Falkon
|
||||
Name[id]=Falkon
|
||||
Name[it]=Falkon
|
||||
Name[nl]=Falkon
|
||||
Name[nn]=Falkon
|
||||
Name[pl]=Falkon
|
||||
Name[pt]=Falkon
|
||||
Name[pt_BR]=Falkon
|
||||
@ -42,6 +43,7 @@ Comment[gl]=Un navegador rápido e seguro
|
||||
Comment[id]=Sebuah penelusur web yang cepat dan aman
|
||||
Comment[it]=Un browser web veloce e sicuro
|
||||
Comment[nl]=Een snelle en veilige webbrowser
|
||||
Comment[nn]=Ein kjapp og sikker nettlesar
|
||||
Comment[pl]=Szybka i bezpieczna przeglądarka sieciowa
|
||||
Comment[pt]=Um navegador Web rápido e seguro
|
||||
Comment[sv]=En snabb och säker webbläsare
|
||||
@ -64,6 +66,7 @@ GenericName[gl]=Navegador web
|
||||
GenericName[id]=Penelusur Web
|
||||
GenericName[it]=Browser web
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[nn]=Nettlesar
|
||||
GenericName[pl]=Przeglądarka sieciowa
|
||||
GenericName[pt]=Navegador Web
|
||||
GenericName[pt_BR]=Navegador Web
|
||||
@ -95,6 +98,7 @@ Name[gl]=Abrir unha lapela nova
|
||||
Name[id]=Buka tab baru
|
||||
Name[it]=Apri una nuova scheda
|
||||
Name[nl]=Nieuw tabblad openen
|
||||
Name[nn]=Opna ny fane
|
||||
Name[pl]=Otwórz nową kartę
|
||||
Name[pt]=Abrir uma nova página
|
||||
Name[pt_BR]=Abrir uma nova aba
|
||||
@ -122,6 +126,7 @@ Name[gl]=Abrir unha xanela nova
|
||||
Name[id]=Buka jendela baru
|
||||
Name[it]=Apre una nuova finestra
|
||||
Name[nl]=Nieuw venster openen
|
||||
Name[nn]=Opna nytt vindauge
|
||||
Name[pl]=Otwórz nowe okno
|
||||
Name[pt]=Abrir uma nova janela
|
||||
Name[pt_BR]=Abrir nova janela
|
||||
@ -148,6 +153,7 @@ Name[gl]=Iniciar a navegación privada
|
||||
Name[id]=Mulai penelusuran privasi
|
||||
Name[it]=Avvia navigazione anonima
|
||||
Name[nl]=Privébrowsing starten
|
||||
Name[nn]=Start privat nettlesing
|
||||
Name[pl]=Rozpocznij prywatne przeglądanie
|
||||
Name[pt]=Iniciar a navegação privada
|
||||
Name[sv]=Starta privat webbläsning
|
||||
|
12
src/lib/3rdparty/fancytabwidget.cpp
vendored
12
src/lib/3rdparty/fancytabwidget.cpp
vendored
@ -122,8 +122,8 @@ void FancyTabProxyStyle::drawControl(
|
||||
p->drawText(text_rect, textFlags, text);
|
||||
p->setPen(selected ? QColor(60, 60, 60) : Utils::StyleHelper::panelTextColor());
|
||||
if (widget) {
|
||||
const QString fader_key = "tab_" + text + "_fader";
|
||||
const QString animation_key = "tab_" + text + "_animation";
|
||||
const QString fader_key = QSL("tab_") + text + QSL("_fader");
|
||||
const QString animation_key = QSL("tab_") + text + QSL("_animation");
|
||||
|
||||
const QString tab_hover = widget->property("tab_hover").toString();
|
||||
int fader = widget->property(fader_key.toUtf8().constData()).toInt();
|
||||
@ -174,7 +174,7 @@ void FancyTabProxyStyle::drawControl(
|
||||
|
||||
void FancyTabProxyStyle::polish(QWidget* widget)
|
||||
{
|
||||
if (QString(widget->metaObject()->className()) == QLatin1String("QTabBar")) {
|
||||
if (QString::fromLatin1(widget->metaObject()->className()) == QLatin1String("QTabBar")) {
|
||||
widget->setMouseTracking(true);
|
||||
widget->installEventFilter(this);
|
||||
}
|
||||
@ -492,13 +492,13 @@ private:
|
||||
FancyTabWidget::FancyTabWidget(QWidget* parent)
|
||||
: QWidget(parent),
|
||||
mode_(Mode_None),
|
||||
tab_bar_(NULL),
|
||||
tab_bar_(nullptr),
|
||||
stack_(new QStackedLayout),
|
||||
side_widget_(new QWidget),
|
||||
side_layout_(new QVBoxLayout),
|
||||
top_layout_(new QVBoxLayout),
|
||||
use_background_(false),
|
||||
menu_(NULL),
|
||||
menu_(nullptr),
|
||||
proxy_style_(new FancyTabProxyStyle)
|
||||
{
|
||||
side_layout_->setSpacing(0);
|
||||
@ -602,7 +602,7 @@ void FancyTabWidget::SetMode(Mode mode)
|
||||
{
|
||||
// Remove previous tab bar
|
||||
delete tab_bar_;
|
||||
tab_bar_ = NULL;
|
||||
tab_bar_ = nullptr;
|
||||
|
||||
use_background_ = false;
|
||||
|
||||
|
14
src/lib/3rdparty/fancytabwidget.h
vendored
14
src/lib/3rdparty/fancytabwidget.h
vendored
@ -100,16 +100,16 @@ class FALKON_EXPORT FancyTabBar : public QWidget
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
FancyTabBar(QWidget* parent = 0);
|
||||
~FancyTabBar();
|
||||
explicit FancyTabBar(QWidget* parent = nullptr);
|
||||
~FancyTabBar() override;
|
||||
|
||||
void paintEvent(QPaintEvent* event);
|
||||
void paintEvent(QPaintEvent* event) override;
|
||||
void paintTab(QPainter* painter, int tabIndex) const;
|
||||
void mousePressEvent(QMouseEvent*);
|
||||
void mousePressEvent(QMouseEvent*) override;
|
||||
bool validIndex(int index) const { return index >= 0 && index < m_tabs.count(); }
|
||||
|
||||
QSize sizeHint() const;
|
||||
QSize minimumSizeHint() const;
|
||||
QSize sizeHint() const override;
|
||||
QSize minimumSizeHint() const override;
|
||||
|
||||
void addTab(const QIcon &icon, const QString &label);
|
||||
void addSpacer(int size = 40);
|
||||
@ -151,7 +151,7 @@ class FALKON_EXPORT FancyTabWidget : public QWidget
|
||||
Q_PROPERTY(QPixmap bgPixmap READ bgPixmap WRITE SetBackgroundPixmap)
|
||||
|
||||
public:
|
||||
FancyTabWidget(QWidget* parent = 0);
|
||||
explicit FancyTabWidget(QWidget* parent = nullptr);
|
||||
|
||||
// Values are persisted - only add to the end
|
||||
enum Mode {
|
||||
|
@ -85,7 +85,7 @@ QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId)
|
||||
#endif
|
||||
prefix = id.section(QLatin1Char('/'), -1);
|
||||
}
|
||||
prefix.remove(QRegExp("[^a-zA-Z]"));
|
||||
prefix.remove(QRegExp(QLatin1String("[^a-zA-Z]")));
|
||||
prefix.truncate(6);
|
||||
|
||||
QByteArray idc = id.toUtf8();
|
||||
@ -163,7 +163,7 @@ bool QtLocalPeer::sendMessage(const QString &message, int timeout)
|
||||
Sleep(DWORD(ms));
|
||||
#else
|
||||
struct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 };
|
||||
nanosleep(&ts, NULL);
|
||||
nanosleep(&ts, nullptr);
|
||||
#endif
|
||||
}
|
||||
if (!connOk) {
|
||||
|
2
src/lib/3rdparty/squeezelabelv2.cpp
vendored
2
src/lib/3rdparty/squeezelabelv2.cpp
vendored
@ -62,7 +62,7 @@ void SqueezeLabelV2::contextMenuEvent(QContextMenuEvent* event)
|
||||
|
||||
QMenu menu;
|
||||
QAction* act = menu.addAction(tr("Copy"), this, SLOT(copy()));
|
||||
act->setShortcut(QKeySequence("Ctrl+C"));
|
||||
act->setShortcut(QKeySequence(QSL("Ctrl+C")));
|
||||
act->setEnabled(hasSelectedText());
|
||||
|
||||
menu.exec(event->globalPos());
|
||||
|
2
src/lib/3rdparty/squeezelabelv2.h
vendored
2
src/lib/3rdparty/squeezelabelv2.h
vendored
@ -27,7 +27,7 @@ class FALKON_EXPORT SqueezeLabelV2 : public QLabel
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SqueezeLabelV2(QWidget* parent = 0);
|
||||
explicit SqueezeLabelV2(QWidget* parent = nullptr);
|
||||
SqueezeLabelV2(const QString &string);
|
||||
|
||||
QString originalText();
|
||||
|
2
src/lib/3rdparty/stylehelper.cpp
vendored
2
src/lib/3rdparty/stylehelper.cpp
vendored
@ -181,7 +181,7 @@ 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());
|
||||
QString pixmapName = QSL("icon %0 %1 %2").arg(icon.cacheKey()).arg(iconMode).arg(rect.height());
|
||||
|
||||
if (!QPixmapCache::find(pixmapName, cache)) {
|
||||
QPixmap px = icon.pixmap(rect.size(), iconMode);
|
||||
|
@ -25,23 +25,23 @@ AdBlockAddSubscriptionDialog::AdBlockAddSubscriptionDialog(QWidget* parent)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_knownSubscriptions << Subscription("EasyList (English)", ADBLOCK_EASYLIST_URL)
|
||||
<< Subscription("NoCoin List", ADBLOCK_NOCOINLIST_URL)
|
||||
<< Subscription("BSI Lista Polska (Polish)", "http://www.bsi.info.pl/filtrABP.txt")
|
||||
<< Subscription("Czech List (Czech)", "http://adblock.dajbych.net/adblock.txt")
|
||||
<< Subscription("dutchblock (Dutch)", "http://groenewoudt.net/dutchblock/list.txt")
|
||||
<< Subscription("Filtros Nauscopicos (Spanish)", "http://abp.mozilla-hispano.org/nauscopio/filtros.txt")
|
||||
<< Subscription("IsraelList (Hebrew)", "http://secure.fanboy.co.nz/israelilist/IsraelList.txt")
|
||||
<< Subscription("NLBlock (Dutch)", "http://www.verzijlbergh.com/adblock/nlblock.txt")
|
||||
<< Subscription("Peter Lowe's list (English)", "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=adblockplus&mimetype=plaintext")
|
||||
<< Subscription("PLgeneral (Polish)", "http://www.niecko.pl/adblock/adblock.txt")
|
||||
<< Subscription("Schacks Adblock Plus liste (Danish)", "http://adblock.schack.dk/block.txt")
|
||||
<< Subscription("Xfiles (Italian)", "http://mozilla.gfsolone.com/filtri.txt")
|
||||
<< Subscription("EasyPrivacy (English)", "http://easylist-downloads.adblockplus.org/easyprivacy.txt")
|
||||
<< Subscription("RU Adlist (Russian)", "https://easylist-downloads.adblockplus.org/advblock.txt")
|
||||
<< Subscription("ABPindo (Indonesian)", "https://raw.githubusercontent.com/heradhis/indonesianadblockrules/master/subscriptions/abpindo.txt")
|
||||
<< Subscription("Easylist China (Chinese)", "https://easylist-downloads.adblockplus.org/easylistchina.txt")
|
||||
<< Subscription("Anti-Adblock Killer", "https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt")
|
||||
m_knownSubscriptions << Subscription(QSL("EasyList (English)"), ADBLOCK_EASYLIST_URL)
|
||||
<< Subscription(QSL("NoCoin List"), ADBLOCK_NOCOINLIST_URL)
|
||||
<< Subscription(QSL("BSI Lista Polska (Polish)"), QSL("http://www.bsi.info.pl/filtrABP.txt"))
|
||||
<< Subscription(QSL("Czech List (Czech)"), QSL("http://adblock.dajbych.net/adblock.txt"))
|
||||
<< Subscription(QSL("dutchblock (Dutch)"), QSL("http://groenewoudt.net/dutchblock/list.txt"))
|
||||
<< Subscription(QSL("Filtros Nauscopicos (Spanish)"), QSL("http://abp.mozilla-hispano.org/nauscopio/filtros.txt"))
|
||||
<< Subscription(QSL("IsraelList (Hebrew)"), QSL("http://secure.fanboy.co.nz/israelilist/IsraelList.txt"))
|
||||
<< Subscription(QSL("NLBlock (Dutch)"), QSL("http://www.verzijlbergh.com/adblock/nlblock.txt"))
|
||||
<< Subscription(QSL("Peter Lowe's list (English)"), QSL("http://pgl.yoyo.org/adservers/serverlist.php?hostformat=adblockplus&mimetype=plaintext"))
|
||||
<< Subscription(QSL("PLgeneral (Polish)"), QSL("http://www.niecko.pl/adblock/adblock.txt"))
|
||||
<< Subscription(QSL("Schacks Adblock Plus liste (Danish)"), QSL("http://adblock.schack.dk/block.txt"))
|
||||
<< Subscription(QSL("Xfiles (Italian)"), QSL("http://mozilla.gfsolone.com/filtri.txt"))
|
||||
<< Subscription(QSL("EasyPrivacy (English)"), QSL("http://easylist-downloads.adblockplus.org/easyprivacy.txt"))
|
||||
<< Subscription(QSL("RU Adlist (Russian)"), QSL("https://easylist-downloads.adblockplus.org/advblock.txt"))
|
||||
<< Subscription(QSL("ABPindo (Indonesian)"), QSL("https://raw.githubusercontent.com/heradhis/indonesianadblockrules/master/subscriptions/abpindo.txt"))
|
||||
<< Subscription(QSL("Easylist China (Chinese)"), QSL("https://easylist-downloads.adblockplus.org/easylistchina.txt"))
|
||||
<< Subscription(QSL("Anti-Adblock Killer"), QSL("https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt"))
|
||||
<< Subscription(tr("Other..."), QString());
|
||||
|
||||
foreach (const Subscription &subscription, m_knownSubscriptions) {
|
||||
|
@ -31,8 +31,8 @@
|
||||
AdBlockDialog::AdBlockDialog(QWidget* parent)
|
||||
: QDialog(parent)
|
||||
, m_manager(AdBlockManager::instance())
|
||||
, m_currentTreeWidget(0)
|
||||
, m_currentSubscription(0)
|
||||
, m_currentTreeWidget(nullptr)
|
||||
, m_currentSubscription(nullptr)
|
||||
, m_loaded(false)
|
||||
{
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
@ -157,7 +157,7 @@ void AdBlockDialog::aboutToShowMenu()
|
||||
|
||||
void AdBlockDialog::learnAboutRules()
|
||||
{
|
||||
mApp->addNewTab(QUrl("http://adblockplus.org/en/filters"));
|
||||
mApp->addNewTab(QUrl(QSL("http://adblockplus.org/en/filters")));
|
||||
}
|
||||
|
||||
void AdBlockDialog::loadSubscriptions()
|
||||
|
@ -33,7 +33,7 @@ class FALKON_EXPORT AdBlockDialog : public QDialog, public Ui_AdBlockDialog
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AdBlockDialog(QWidget* parent = 0);
|
||||
explicit AdBlockDialog(QWidget* parent = nullptr);
|
||||
|
||||
void showRule(const AdBlockRule* rule) const;
|
||||
|
||||
|
@ -147,8 +147,8 @@ void AdBlockIcon::clicked(ClickController *controller)
|
||||
|
||||
if (!pageUrl.host().isEmpty() && manager->isEnabled() && manager->canRunOnScheme(pageUrl.scheme())) {
|
||||
const QString host = view->url().host().contains(QLatin1String("www.")) ? pageUrl.host().mid(4) : pageUrl.host();
|
||||
const QString hostFilter = QString("@@||%1^$document").arg(host);
|
||||
const QString pageFilter = QString("@@|%1|$document").arg(pageUrl.toString());
|
||||
const QString hostFilter = QSL("@@||%1^$document").arg(host);
|
||||
const QString pageFilter = QSL("@@|%1|$document").arg(pageUrl.toString());
|
||||
|
||||
QAction* act = menu->addAction(tr("Disable on %1").arg(host));
|
||||
act->setCheckable(true);
|
||||
|
@ -78,8 +78,8 @@ void AdBlockManager::setEnabled(bool enabled)
|
||||
emit enabledChanged(enabled);
|
||||
|
||||
Settings settings;
|
||||
settings.beginGroup("AdBlock");
|
||||
settings.setValue("enabled", m_enabled);
|
||||
settings.beginGroup(QSL("AdBlock"));
|
||||
settings.setValue(QSL("enabled"), m_enabled);
|
||||
settings.endGroup();
|
||||
|
||||
load();
|
||||
@ -183,7 +183,7 @@ bool AdBlockManager::addSubscriptionFromUrl(const QUrl &url)
|
||||
|
||||
const QString message = AdBlockManager::tr("Do you want to add <b>%1</b> subscription?").arg(subscriptionTitle);
|
||||
|
||||
QMessageBox::StandardButton result = QMessageBox::question(0, AdBlockManager::tr("AdBlock Subscription"), message, QMessageBox::Yes | QMessageBox::No);
|
||||
QMessageBox::StandardButton result = QMessageBox::question(nullptr, AdBlockManager::tr("AdBlock Subscription"), message, QMessageBox::Yes | QMessageBox::No);
|
||||
if (result == QMessageBox::Yes) {
|
||||
AdBlockManager::instance()->addSubscription(subscriptionTitle, subscriptionUrl);
|
||||
AdBlockManager::instance()->showDialog();
|
||||
@ -195,18 +195,18 @@ bool AdBlockManager::addSubscriptionFromUrl(const QUrl &url)
|
||||
AdBlockSubscription* AdBlockManager::addSubscription(const QString &title, const QString &url)
|
||||
{
|
||||
if (title.isEmpty() || url.isEmpty()) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QString fileName = QzTools::filterCharsFromFilename(title.toLower()) + ".txt";
|
||||
QString filePath = QzTools::ensureUniqueFilename(DataPaths::currentProfilePath() + "/adblock/" + fileName);
|
||||
QString fileName = QzTools::filterCharsFromFilename(title.toLower()) + QSL(".txt");
|
||||
QString filePath = QzTools::ensureUniqueFilename(DataPaths::currentProfilePath() + QSL("/adblock/") + fileName);
|
||||
|
||||
QByteArray data = QString("Title: %1\nUrl: %2\n[Adblock Plus 1.1.1]").arg(title, url).toLatin1();
|
||||
QByteArray data = QSL("Title: %1\nUrl: %2\n[Adblock Plus 1.1.1]").arg(title, url).toLatin1();
|
||||
|
||||
QSaveFile file(filePath);
|
||||
if (!file.open(QFile::WriteOnly)) {
|
||||
qWarning() << "AdBlockManager: Cannot write to file" << filePath;
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
file.write(data);
|
||||
file.commit();
|
||||
@ -250,7 +250,7 @@ AdBlockCustomList* AdBlockManager::customList() const
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void AdBlockManager::load()
|
||||
@ -267,23 +267,23 @@ void AdBlockManager::load()
|
||||
#endif
|
||||
|
||||
Settings settings;
|
||||
settings.beginGroup("AdBlock");
|
||||
m_enabled = settings.value("enabled", m_enabled).toBool();
|
||||
m_disabledRules = settings.value("disabledRules", QStringList()).toStringList();
|
||||
QDateTime lastUpdate = settings.value("lastUpdate", QDateTime()).toDateTime();
|
||||
settings.beginGroup(QSL("AdBlock"));
|
||||
m_enabled = settings.value(QSL("enabled"), m_enabled).toBool();
|
||||
m_disabledRules = settings.value(QSL("disabledRules"), QStringList()).toStringList();
|
||||
QDateTime lastUpdate = settings.value(QSL("lastUpdate"), QDateTime()).toDateTime();
|
||||
settings.endGroup();
|
||||
|
||||
if (!m_enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
QDir adblockDir(DataPaths::currentProfilePath() + "/adblock");
|
||||
QDir adblockDir(DataPaths::currentProfilePath() + QSL("/adblock"));
|
||||
// Create if neccessary
|
||||
if (!adblockDir.exists()) {
|
||||
QDir(DataPaths::currentProfilePath()).mkdir("adblock");
|
||||
QDir(DataPaths::currentProfilePath()).mkdir(QSL("adblock"));
|
||||
}
|
||||
|
||||
foreach (const QString &fileName, adblockDir.entryList(QStringList("*.txt"), QDir::Files)) {
|
||||
foreach (const QString &fileName, adblockDir.entryList(QStringList(QSL("*.txt")), QDir::Files)) {
|
||||
if (fileName == QLatin1String("customlist.txt")) {
|
||||
continue;
|
||||
}
|
||||
@ -371,8 +371,8 @@ void AdBlockManager::updateAllSubscriptions()
|
||||
}
|
||||
|
||||
Settings settings;
|
||||
settings.beginGroup("AdBlock");
|
||||
settings.setValue("lastUpdate", QDateTime::currentDateTime());
|
||||
settings.beginGroup(QSL("AdBlock"));
|
||||
settings.setValue(QSL("lastUpdate"), QDateTime::currentDateTime());
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
@ -387,9 +387,9 @@ void AdBlockManager::save()
|
||||
}
|
||||
|
||||
Settings settings;
|
||||
settings.beginGroup("AdBlock");
|
||||
settings.setValue("enabled", m_enabled);
|
||||
settings.setValue("disabledRules", m_disabledRules);
|
||||
settings.beginGroup(QSL("AdBlock"));
|
||||
settings.setValue(QSL("enabled"), m_enabled);
|
||||
settings.setValue(QSL("disabledRules"), m_disabledRules);
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
@ -433,7 +433,7 @@ AdBlockSubscription* AdBlockManager::subscriptionByName(const QString &name) con
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
AdBlockDialog *AdBlockManager::showDialog(QWidget *parent)
|
||||
|
@ -27,8 +27,8 @@
|
||||
|
||||
#include "qzcommon.h"
|
||||
|
||||
#define ADBLOCK_EASYLIST_URL "https://easylist-downloads.adblockplus.org/easylist.txt"
|
||||
#define ADBLOCK_NOCOINLIST_URL "https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt"
|
||||
#define ADBLOCK_EASYLIST_URL QSL("https://easylist-downloads.adblockplus.org/easylist.txt")
|
||||
#define ADBLOCK_NOCOINLIST_URL QSL("https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt")
|
||||
|
||||
class AdBlockRule;
|
||||
class AdBlockDialog;
|
||||
|
@ -83,7 +83,7 @@ AdBlockRule::AdBlockRule(const QString &filter, AdBlockSubscription* subscriptio
|
||||
, m_isEnabled(true)
|
||||
, m_isException(false)
|
||||
, m_isInternalDisabled(false)
|
||||
, m_regExp(0)
|
||||
, m_regExp(nullptr)
|
||||
{
|
||||
setFilter(filter);
|
||||
}
|
||||
@ -186,7 +186,7 @@ void AdBlockRule::setEnabled(bool enabled)
|
||||
|
||||
bool AdBlockRule::isSlow() const
|
||||
{
|
||||
return m_regExp != 0;
|
||||
return m_regExp != nullptr;
|
||||
}
|
||||
|
||||
bool AdBlockRule::isInternalDisabled() const
|
||||
@ -720,7 +720,7 @@ QString AdBlockRule::createRegExpFromFilter(const QString &filter) const
|
||||
i++;
|
||||
}
|
||||
else {
|
||||
parsed.append('^');
|
||||
parsed.append(QL1C('^'));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ class FALKON_EXPORT AdBlockRule
|
||||
Q_DISABLE_COPY(AdBlockRule)
|
||||
|
||||
public:
|
||||
AdBlockRule(const QString &filter = QString(), AdBlockSubscription* subscription = 0);
|
||||
AdBlockRule(const QString &filter = QString(), AdBlockSubscription* subscription = nullptr);
|
||||
~AdBlockRule();
|
||||
|
||||
AdBlockRule* copy() const;
|
||||
|
@ -57,7 +57,7 @@
|
||||
|
||||
AdBlockSubscription::AdBlockSubscription(const QString &title, QObject* parent)
|
||||
: QObject(parent)
|
||||
, m_reply(0)
|
||||
, m_reply(nullptr)
|
||||
, m_title(title)
|
||||
, m_updated(false)
|
||||
{
|
||||
@ -191,7 +191,7 @@ bool AdBlockSubscription::saveDownloadedData(const QByteArray &data)
|
||||
}
|
||||
|
||||
// Write subscription header
|
||||
file.write(QString("Title: %1\nUrl: %2\n").arg(title(), url().toString()).toUtf8());
|
||||
file.write(QSL("Title: %1\nUrl: %2\n").arg(title(), url().toString()).toUtf8());
|
||||
file.write(data);
|
||||
file.commit();
|
||||
return true;
|
||||
@ -200,7 +200,7 @@ bool AdBlockSubscription::saveDownloadedData(const QByteArray &data)
|
||||
const AdBlockRule* AdBlockSubscription::rule(int offset) const
|
||||
{
|
||||
if (!QzTools::containsIndex(m_rules, offset)) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return m_rules[offset];
|
||||
@ -214,7 +214,7 @@ QVector<AdBlockRule*> AdBlockSubscription::allRules() const
|
||||
const AdBlockRule* AdBlockSubscription::enableRule(int offset)
|
||||
{
|
||||
if (!QzTools::containsIndex(m_rules, offset)) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
AdBlockRule* rule = m_rules[offset];
|
||||
@ -232,7 +232,7 @@ const AdBlockRule* AdBlockSubscription::enableRule(int offset)
|
||||
const AdBlockRule* AdBlockSubscription::disableRule(int offset)
|
||||
{
|
||||
if (!QzTools::containsIndex(m_rules, offset)) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
AdBlockRule* rule = m_rules[offset];
|
||||
@ -273,7 +273,7 @@ const AdBlockRule* AdBlockSubscription::replaceRule(AdBlockRule* rule, int offse
|
||||
{
|
||||
Q_UNUSED(rule)
|
||||
Q_UNUSED(offset)
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
AdBlockSubscription::~AdBlockSubscription()
|
||||
|
@ -60,7 +60,7 @@ class FALKON_EXPORT AdBlockSubscription : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AdBlockSubscription(const QString &title, QObject* parent = 0);
|
||||
explicit AdBlockSubscription(const QString &title, QObject* parent = nullptr);
|
||||
~AdBlockSubscription();
|
||||
|
||||
QString title() const;
|
||||
@ -116,7 +116,7 @@ class AdBlockCustomList : public AdBlockSubscription
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AdBlockCustomList(QObject* parent = 0);
|
||||
explicit AdBlockCustomList(QObject* parent = nullptr);
|
||||
|
||||
void loadSubscription(const QStringList &disabledRules);
|
||||
void saveSubscription();
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=Bloqueador de publicidade
|
||||
Name[id]=AdBlock
|
||||
Name[it]=Adblock
|
||||
Name[nl]=AdBlock
|
||||
Name[nn]=Reklamefilter
|
||||
Name[pl]=AdBlock
|
||||
Name[pt]=AdBlock
|
||||
Name[pt_BR]=AdBlock
|
||||
@ -32,6 +33,7 @@ Comment[gl]=Bloquea contenido web non desexado
|
||||
Comment[id]=Memblokir konten web yang tak diinginkan
|
||||
Comment[it]=Blocca i contenuti web non desiderati
|
||||
Comment[nl]=Blokkeert niet-gewilde webinhoud
|
||||
Comment[nn]=Blokkerer uønskt vevinnhald
|
||||
Comment[pl]=Blokuje niechciane treści z sieci
|
||||
Comment[pt]=Bloqueia o conteúdo Web indesejado
|
||||
Comment[sv]=Blockerar oönskat webbinnehåll
|
||||
|
@ -190,18 +190,18 @@ QDataStream &operator>>(QDataStream &stream, BrowserWindow::SavedWindow &window)
|
||||
}
|
||||
|
||||
BrowserWindow::BrowserWindow(Qz::BrowserWindowType type, const QUrl &startUrl)
|
||||
: QMainWindow(0)
|
||||
: QMainWindow(nullptr)
|
||||
, m_startUrl(startUrl)
|
||||
, m_windowType(type)
|
||||
, m_startTab(0)
|
||||
, m_startPage(0)
|
||||
, m_startTab(nullptr)
|
||||
, m_startPage(nullptr)
|
||||
, m_sideBarManager(new SideBarManager(this))
|
||||
, m_hideNavigationTimer(0)
|
||||
, m_hideNavigationTimer(nullptr)
|
||||
{
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
setAttribute(Qt::WA_DontCreateNativeAncestors);
|
||||
|
||||
setObjectName("mainwindow");
|
||||
setObjectName(QSL("mainwindow"));
|
||||
setWindowTitle(tr("Falkon"));
|
||||
setProperty("private", mApp->isPrivate());
|
||||
|
||||
@ -218,10 +218,10 @@ BrowserWindow::BrowserWindow(Qz::BrowserWindowType type, const QUrl &startUrl)
|
||||
QTimer::singleShot(0, this, SLOT(postLaunch()));
|
||||
|
||||
if (mApp->isPrivate()) {
|
||||
QzTools::setWmClass("Falkon Browser (Private Window)", this);
|
||||
QzTools::setWmClass(QSL("Falkon Browser (Private Window)"), this);
|
||||
}
|
||||
else {
|
||||
QzTools::setWmClass("Falkon Browser", this);
|
||||
QzTools::setWmClass(QSL("Falkon Browser"), this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -259,7 +259,7 @@ void BrowserWindow::postLaunch()
|
||||
break;
|
||||
|
||||
case MainApplication::OpenSpeedDial:
|
||||
startUrl = QUrl("falkon:speeddial");
|
||||
startUrl = QUrl(QSL("falkon:speeddial"));
|
||||
break;
|
||||
|
||||
case MainApplication::OpenHomePage:
|
||||
@ -281,7 +281,7 @@ void BrowserWindow::postLaunch()
|
||||
if (mApp->isStartingAfterCrash()) {
|
||||
addTab = false;
|
||||
startUrl.clear();
|
||||
m_tabWidget->addView(QUrl("falkon:restore"), Qz::NT_CleanSelectedTabAtTheEnd);
|
||||
m_tabWidget->addView(QUrl(QSL("falkon:restore")), Qz::NT_CleanSelectedTabAtTheEnd);
|
||||
}
|
||||
else if (mApp->afterLaunch() == MainApplication::SelectSession || mApp->afterLaunch() == MainApplication::RestoreSession) {
|
||||
addTab = m_tabWidget->count() <= 0;
|
||||
@ -338,7 +338,7 @@ void BrowserWindow::postLaunch()
|
||||
void BrowserWindow::setupUi()
|
||||
{
|
||||
Settings settings;
|
||||
settings.beginGroup("Browser-View-Settings");
|
||||
settings.beginGroup(QSL("Browser-View-Settings"));
|
||||
const QByteArray windowGeometry = settings.value(QSL("WindowGeometry")).toByteArray();
|
||||
|
||||
const QStringList keys = {
|
||||
@ -364,7 +364,7 @@ void BrowserWindow::setupUi()
|
||||
m_mainLayout->setContentsMargins(0, 0, 0, 0);
|
||||
m_mainLayout->setSpacing(0);
|
||||
m_mainSplitter = new QSplitter(this);
|
||||
m_mainSplitter->setObjectName("sidebar-splitter");
|
||||
m_mainSplitter->setObjectName(QSL("sidebar-splitter"));
|
||||
m_tabWidget = new TabWidget(this);
|
||||
m_superMenu = new QMenu(this);
|
||||
m_navigationToolbar = new NavigationBar(this);
|
||||
@ -386,12 +386,12 @@ void BrowserWindow::setupUi()
|
||||
m_mainLayout->addWidget(m_mainSplitter);
|
||||
|
||||
m_statusBar = new StatusBar(this);
|
||||
m_statusBar->setObjectName("mainwindow-statusbar");
|
||||
m_statusBar->setObjectName(QSL("mainwindow-statusbar"));
|
||||
m_statusBar->setCursor(Qt::ArrowCursor);
|
||||
setStatusBar(m_statusBar);
|
||||
m_progressBar = new ProgressBar(m_statusBar);
|
||||
m_ipLabel = new QLabel(this);
|
||||
m_ipLabel->setObjectName("statusbar-ip-label");
|
||||
m_ipLabel->setObjectName(QSL("statusbar-ip-label"));
|
||||
m_ipLabel->setToolTip(tr("IP Address of current page"));
|
||||
|
||||
m_statusBar->addPermanentWidget(m_progressBar);
|
||||
@ -471,10 +471,10 @@ void BrowserWindow::setupMenu()
|
||||
connect(closeTabAction, SIGNAL(activated()), this, SLOT(closeTab()));
|
||||
connect(closeTabAction2, SIGNAL(activated()), this, SLOT(closeTab()));
|
||||
|
||||
QShortcut* reloadAction = new QShortcut(QKeySequence("Ctrl+R"), this);
|
||||
QShortcut* reloadAction = new QShortcut(QKeySequence(QSL("Ctrl+R")), this);
|
||||
connect(reloadAction, SIGNAL(activated()), this, SLOT(reload()));
|
||||
|
||||
QShortcut* openLocationAction = new QShortcut(QKeySequence("Alt+D"), this);
|
||||
QShortcut* openLocationAction = new QShortcut(QKeySequence(QSL("Alt+D")), this);
|
||||
connect(openLocationAction, SIGNAL(activated()), this, SLOT(openLocation()));
|
||||
|
||||
QShortcut* inspectorAction = new QShortcut(QKeySequence(QSL("F12")), this);
|
||||
@ -574,35 +574,35 @@ void BrowserWindow::loadSettings()
|
||||
Settings settings;
|
||||
|
||||
//Url settings
|
||||
settings.beginGroup("Web-URL-Settings");
|
||||
m_homepage = settings.value("homepage", "falkon:start").toUrl();
|
||||
settings.beginGroup(QSL("Web-URL-Settings"));
|
||||
m_homepage = settings.value(QSL("homepage"), QSL("falkon:start")).toUrl();
|
||||
settings.endGroup();
|
||||
|
||||
//Browser Window settings
|
||||
settings.beginGroup("Browser-View-Settings");
|
||||
bool showStatusBar = settings.value("showStatusBar", false).toBool();
|
||||
bool showBookmarksToolbar = settings.value("showBookmarksToolbar", false).toBool();
|
||||
bool showNavigationToolbar = settings.value("showNavigationToolbar", true).toBool();
|
||||
bool showMenuBar = settings.value("showMenubar", false).toBool();
|
||||
settings.beginGroup(QSL("Browser-View-Settings"));
|
||||
bool showStatusBar = settings.value(QSL("showStatusBar"), false).toBool();
|
||||
bool showBookmarksToolbar = settings.value(QSL("showBookmarksToolbar"), false).toBool();
|
||||
bool showNavigationToolbar = settings.value(QSL("showNavigationToolbar"), true).toBool();
|
||||
bool showMenuBar = settings.value(QSL("showMenubar"), false).toBool();
|
||||
|
||||
// Make sure both menubar and navigationbar are not hidden
|
||||
// Fixes #781
|
||||
if (!showNavigationToolbar) {
|
||||
showMenuBar = true;
|
||||
settings.setValue("showMenubar", true);
|
||||
settings.setValue(QSL("showMenubar"), true);
|
||||
}
|
||||
|
||||
settings.endGroup();
|
||||
|
||||
settings.beginGroup("Shortcuts");
|
||||
m_useTabNumberShortcuts = settings.value("useTabNumberShortcuts", true).toBool();
|
||||
m_useSpeedDialNumberShortcuts = settings.value("useSpeedDialNumberShortcuts", true).toBool();
|
||||
m_useSingleKeyShortcuts = settings.value("useSingleKeyShortcuts", false).toBool();
|
||||
settings.beginGroup(QSL("Shortcuts"));
|
||||
m_useTabNumberShortcuts = settings.value(QSL("useTabNumberShortcuts"), true).toBool();
|
||||
m_useSpeedDialNumberShortcuts = settings.value(QSL("useSpeedDialNumberShortcuts"), true).toBool();
|
||||
m_useSingleKeyShortcuts = settings.value(QSL("useSingleKeyShortcuts"), false).toBool();
|
||||
settings.endGroup();
|
||||
|
||||
settings.beginGroup("Web-Browser-Settings");
|
||||
settings.beginGroup(QSL("Web-Browser-Settings"));
|
||||
QAction *quitAction = m_mainMenu->action(QSL("Standard/Quit"));
|
||||
if (settings.value("closeAppWithCtrlQ", true).toBool()) {
|
||||
if (settings.value(QSL("closeAppWithCtrlQ"), true).toBool()) {
|
||||
quitAction->setShortcut(QzTools::actionShortcut(QKeySequence::Quit, QKeySequence(QSL("Ctrl+Q"))));
|
||||
} else {
|
||||
quitAction->setShortcut(QKeySequence());
|
||||
@ -656,7 +656,7 @@ TabbedWebView* BrowserWindow::weView(int index) const
|
||||
{
|
||||
WebTab* webTab = qobject_cast<WebTab*>(m_tabWidget->widget(index));
|
||||
if (!webTab) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return webTab->webView();
|
||||
@ -745,7 +745,7 @@ void BrowserWindow::changeEncoding()
|
||||
mApp->webSettings()->setDefaultTextEncoding(encoding);
|
||||
|
||||
Settings settings;
|
||||
settings.setValue("Web-Browser-Settings/DefaultEncoding", encoding);
|
||||
settings.setValue(QSL("Web-Browser-Settings/DefaultEncoding"), encoding);
|
||||
|
||||
weView()->reload();
|
||||
}
|
||||
@ -868,7 +868,7 @@ void BrowserWindow::toggleShowMenubar()
|
||||
|
||||
setUpdatesEnabled(true);
|
||||
|
||||
Settings().setValue("Browser-View-Settings/showMenubar", menuBar()->isVisible());
|
||||
Settings().setValue(QSL("Browser-View-Settings/showMenubar"), menuBar()->isVisible());
|
||||
|
||||
// Make sure we show Navigation Toolbar when Menu Bar is hidden
|
||||
if (!m_navigationToolbar->isVisible() && !menuBar()->isVisible()) {
|
||||
@ -884,7 +884,7 @@ void BrowserWindow::toggleShowStatusBar()
|
||||
|
||||
setUpdatesEnabled(true);
|
||||
|
||||
Settings().setValue("Browser-View-Settings/showStatusBar", m_statusBar->isVisible());
|
||||
Settings().setValue(QSL("Browser-View-Settings/showStatusBar"), m_statusBar->isVisible());
|
||||
|
||||
}
|
||||
|
||||
@ -896,8 +896,8 @@ void BrowserWindow::toggleShowBookmarksToolbar()
|
||||
|
||||
setUpdatesEnabled(true);
|
||||
|
||||
Settings().setValue("Browser-View-Settings/showBookmarksToolbar", m_bookmarksToolbar->isVisible());
|
||||
Settings().setValue("Browser-View-Settings/instantBookmarksToolbar", false);
|
||||
Settings().setValue(QSL("Browser-View-Settings/showBookmarksToolbar"), m_bookmarksToolbar->isVisible());
|
||||
Settings().setValue(QSL("Browser-View-Settings/instantBookmarksToolbar"), false);
|
||||
}
|
||||
|
||||
void BrowserWindow::toggleShowNavigationToolbar()
|
||||
@ -908,7 +908,7 @@ void BrowserWindow::toggleShowNavigationToolbar()
|
||||
|
||||
setUpdatesEnabled(true);
|
||||
|
||||
Settings().setValue("Browser-View-Settings/showNavigationToolbar", m_navigationToolbar->isVisible());
|
||||
Settings().setValue(QSL("Browser-View-Settings/showNavigationToolbar"), m_navigationToolbar->isVisible());
|
||||
|
||||
#ifndef Q_OS_MACOS
|
||||
// Make sure we show Menu Bar when Navigation Toolbar is hidden
|
||||
@ -1056,7 +1056,7 @@ void BrowserWindow::createToolbarsMenu(QMenu* menu)
|
||||
|
||||
action = menu->addAction(tr("&Bookmarks Toolbar"), this, SLOT(toggleShowBookmarksToolbar()));
|
||||
action->setCheckable(true);
|
||||
action->setChecked(Settings().value("Browser-View-Settings/showBookmarksToolbar").toBool());
|
||||
action->setChecked(Settings().value(QSL("Browser-View-Settings/showBookmarksToolbar")).toBool());
|
||||
|
||||
menu->addSeparator();
|
||||
|
||||
@ -1109,11 +1109,11 @@ void BrowserWindow::createEncodingMenu(QMenu* menu)
|
||||
if (!menu->isEmpty())
|
||||
menu->addSeparator();
|
||||
|
||||
createEncodingSubMenu("ISO", isoCodecs, menu);
|
||||
createEncodingSubMenu("UTF", utfCodecs, menu);
|
||||
createEncodingSubMenu("Windows", windowsCodecs, menu);
|
||||
createEncodingSubMenu("Iscii", isciiCodecs, menu);
|
||||
createEncodingSubMenu("IBM", ibmCodecs, menu);
|
||||
createEncodingSubMenu(QSL("ISO"), isoCodecs, menu);
|
||||
createEncodingSubMenu(QSL("UTF"), utfCodecs, menu);
|
||||
createEncodingSubMenu(QSL("Windows"), windowsCodecs, menu);
|
||||
createEncodingSubMenu(QSL("Iscii"), isciiCodecs, menu);
|
||||
createEncodingSubMenu(QSL("IBM"), ibmCodecs, menu);
|
||||
createEncodingSubMenu(tr("Other"), otherCodecs, menu);
|
||||
}
|
||||
|
||||
@ -1143,7 +1143,7 @@ void BrowserWindow::searchOnPage()
|
||||
{
|
||||
if (weView() && weView()->webTab()) {
|
||||
const QString searchText = weView()->page()->selectedText();
|
||||
if (!searchText.contains('\n')) {
|
||||
if (!searchText.contains(QL1C('\n'))) {
|
||||
weView()->webTab()->showSearchToolBar(searchText);
|
||||
} else {
|
||||
weView()->webTab()->showSearchToolBar();
|
||||
@ -1153,12 +1153,12 @@ void BrowserWindow::searchOnPage()
|
||||
|
||||
void BrowserWindow::openFile()
|
||||
{
|
||||
const QString fileTypes = QString("%1(*.html *.htm *.shtml *.shtm *.xhtml);;"
|
||||
const QString fileTypes = QSL("%1(*.html *.htm *.shtml *.shtm *.xhtml);;"
|
||||
"%2(*.png *.jpg *.jpeg *.bmp *.gif *.svg *.tiff);;"
|
||||
"%3(*.txt);;"
|
||||
"%4(*.*)").arg(tr("HTML files"), tr("Image files"), tr("Text files"), tr("All files"));
|
||||
|
||||
const QString filePath = QzTools::getOpenFileName("MainWindow-openFile", this, tr("Open file..."), QDir::homePath(), fileTypes);
|
||||
const QString filePath = QzTools::getOpenFileName(QSL("MainWindow-openFile"), this, tr("Open file..."), QDir::homePath(), fileTypes);
|
||||
|
||||
if (!filePath.isEmpty()) {
|
||||
loadAddress(QUrl::fromLocalFile(filePath));
|
||||
@ -1489,7 +1489,7 @@ void BrowserWindow::closeEvent(QCloseEvent* event)
|
||||
}
|
||||
|
||||
Settings settings;
|
||||
bool askOnClose = settings.value("Browser-Tabs-Settings/AskOnClosing", true).toBool();
|
||||
bool askOnClose = settings.value(QSL("Browser-Tabs-Settings/AskOnClosing"), true).toBool();
|
||||
|
||||
if ((mApp->afterLaunch() == MainApplication::SelectSession || mApp->afterLaunch() == MainApplication::RestoreSession) && mApp->windowCount() == 1) {
|
||||
askOnClose = false;
|
||||
@ -1511,7 +1511,7 @@ void BrowserWindow::closeEvent(QCloseEvent* event)
|
||||
}
|
||||
|
||||
if (dialog.isChecked()) {
|
||||
settings.setValue("Browser-Tabs-Settings/AskOnClosing", false);
|
||||
settings.setValue(QSL("Browser-Tabs-Settings/AskOnClosing"), false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1547,8 +1547,8 @@ void BrowserWindow::saveSettings()
|
||||
}
|
||||
|
||||
Settings settings;
|
||||
settings.beginGroup("Browser-View-Settings");
|
||||
settings.setValue("WindowGeometry", saveGeometry());
|
||||
settings.beginGroup(QSL("Browser-View-Settings"));
|
||||
settings.setValue(QSL("WindowGeometry"), saveGeometry());
|
||||
|
||||
const auto state = saveUiState();
|
||||
for (auto it = state.constBegin(); it != state.constEnd(); ++it) {
|
||||
|
@ -86,23 +86,23 @@ MainApplication::MainApplication(int &argc, char** argv)
|
||||
, m_isPortable(false)
|
||||
, m_isClosing(false)
|
||||
, m_isStartingAfterCrash(false)
|
||||
, m_history(0)
|
||||
, m_bookmarks(0)
|
||||
, m_autoFill(0)
|
||||
, m_cookieJar(0)
|
||||
, m_plugins(0)
|
||||
, m_browsingLibrary(0)
|
||||
, m_networkManager(0)
|
||||
, m_restoreManager(0)
|
||||
, m_sessionManager(0)
|
||||
, m_downloadManager(0)
|
||||
, m_userAgentManager(0)
|
||||
, m_searchEnginesManager(0)
|
||||
, m_closedWindowsManager(0)
|
||||
, m_html5PermissionsManager(0)
|
||||
, m_desktopNotifications(0)
|
||||
, m_webProfile(0)
|
||||
, m_autoSaver(0)
|
||||
, m_history(nullptr)
|
||||
, m_bookmarks(nullptr)
|
||||
, m_autoFill(nullptr)
|
||||
, m_cookieJar(nullptr)
|
||||
, m_plugins(nullptr)
|
||||
, m_browsingLibrary(nullptr)
|
||||
, m_networkManager(nullptr)
|
||||
, m_restoreManager(nullptr)
|
||||
, m_sessionManager(nullptr)
|
||||
, m_downloadManager(nullptr)
|
||||
, m_userAgentManager(nullptr)
|
||||
, m_searchEnginesManager(nullptr)
|
||||
, m_closedWindowsManager(nullptr)
|
||||
, m_html5PermissionsManager(nullptr)
|
||||
, m_desktopNotifications(nullptr)
|
||||
, m_webProfile(nullptr)
|
||||
, m_autoSaver(nullptr)
|
||||
, m_newWindowId(0)
|
||||
#if defined(Q_OS_WIN) && !defined(Q_OS_OS2)
|
||||
, m_registerQAppAssociation(0)
|
||||
@ -119,7 +119,7 @@ MainApplication::MainApplication(int &argc, char** argv)
|
||||
#ifdef GIT_REVISION
|
||||
setApplicationVersion(QSL("%1 (%2)").arg(Qz::VERSION, GIT_REVISION));
|
||||
#else
|
||||
setApplicationVersion(Qz::VERSION);
|
||||
setApplicationVersion(QString::fromLatin1(Qz::VERSION));
|
||||
#endif
|
||||
|
||||
// Set fallback icon theme (eg. on Windows/Mac)
|
||||
@ -129,7 +129,7 @@ MainApplication::MainApplication(int &argc, char** argv)
|
||||
|
||||
// QSQLITE database plugin is required
|
||||
if (!QSqlDatabase::isDriverAvailable(QSL("QSQLITE"))) {
|
||||
QMessageBox::critical(0, QSL("Error"), QSL("Qt SQLite database plugin is not available. Please install it and restart the application."));
|
||||
QMessageBox::critical(nullptr, QSL("Error"), QSL("Qt SQLite database plugin is not available. Please install it and restart the application."));
|
||||
m_isClosing = true;
|
||||
return;
|
||||
}
|
||||
@ -670,7 +670,7 @@ void MainApplication::startPrivateBrowsing(const QUrl &startUrl)
|
||||
|
||||
void MainApplication::reloadUserStyleSheet()
|
||||
{
|
||||
const QString userCssFile = Settings().value("Web-Browser-Settings/userStyleSheet", QString()).toString();
|
||||
const QString userCssFile = Settings().value(QSL("Web-Browser-Settings/userStyleSheet"), QString()).toString();
|
||||
setUserStyleSheet(userCssFile);
|
||||
}
|
||||
|
||||
@ -771,19 +771,19 @@ void MainApplication::saveSettings()
|
||||
m_isClosing = true;
|
||||
|
||||
Settings settings;
|
||||
settings.beginGroup("SessionRestore");
|
||||
settings.setValue("isRunning", false);
|
||||
settings.setValue("isRestoring", false);
|
||||
settings.beginGroup(QSL("SessionRestore"));
|
||||
settings.setValue(QSL("isRunning"), false);
|
||||
settings.setValue(QSL("isRestoring"), false);
|
||||
settings.endGroup();
|
||||
|
||||
settings.beginGroup("Web-Browser-Settings");
|
||||
bool deleteCache = settings.value("deleteCacheOnClose", false).toBool();
|
||||
bool deleteHistory = settings.value("deleteHistoryOnClose", false).toBool();
|
||||
bool deleteHtml5Storage = settings.value("deleteHTML5StorageOnClose", false).toBool();
|
||||
settings.beginGroup(QSL("Web-Browser-Settings"));
|
||||
bool deleteCache = settings.value(QSL("deleteCacheOnClose"), false).toBool();
|
||||
bool deleteHistory = settings.value(QSL("deleteHistoryOnClose"), false).toBool();
|
||||
bool deleteHtml5Storage = settings.value(QSL("deleteHTML5StorageOnClose"), false).toBool();
|
||||
settings.endGroup();
|
||||
|
||||
settings.beginGroup("Cookie-Settings");
|
||||
bool deleteCookies = settings.value("deleteCookiesOnClose", false).toBool();
|
||||
settings.beginGroup(QSL("Cookie-Settings"));
|
||||
bool deleteCookies = settings.value(QSL("deleteCookiesOnClose"), false).toBool();
|
||||
settings.endGroup();
|
||||
|
||||
if (deleteHistory) {
|
||||
@ -903,8 +903,8 @@ void MainApplication::downloadRequested(QWebEngineDownloadItem *download)
|
||||
void MainApplication::loadSettings()
|
||||
{
|
||||
Settings settings;
|
||||
settings.beginGroup("Themes");
|
||||
QString activeTheme = settings.value("activeTheme", DEFAULT_THEME_NAME).toString();
|
||||
settings.beginGroup(QSL("Themes"));
|
||||
QString activeTheme = settings.value(QSL("activeTheme"), DEFAULT_THEME_NAME).toString();
|
||||
settings.endGroup();
|
||||
|
||||
loadTheme(activeTheme);
|
||||
@ -912,54 +912,54 @@ void MainApplication::loadSettings()
|
||||
QWebEngineSettings* webSettings = m_webProfile->settings();
|
||||
|
||||
// Web browsing settings
|
||||
settings.beginGroup("Web-Browser-Settings");
|
||||
settings.beginGroup(QSL("Web-Browser-Settings"));
|
||||
|
||||
webSettings->setAttribute(QWebEngineSettings::LocalStorageEnabled, settings.value("HTML5StorageEnabled", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::PluginsEnabled, settings.value("allowPlugins", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptEnabled, settings.value("allowJavaScript", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, settings.value("allowJavaScriptOpenWindow", false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptCanAccessClipboard, settings.value("allowJavaScriptAccessClipboard", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::LinksIncludedInFocusChain, settings.value("IncludeLinkInFocusChain", false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::XSSAuditingEnabled, settings.value("XSSAuditing", false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::PrintElementBackgrounds, settings.value("PrintElementBackground", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, settings.value("SpatialNavigation", false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::ScrollAnimatorEnabled, settings.value("AnimateScrolling", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::LocalStorageEnabled, settings.value(QSL("HTML5StorageEnabled"), true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::PluginsEnabled, settings.value(QSL("allowPlugins"), true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptEnabled, settings.value(QSL("allowJavaScript"), true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, settings.value(QSL("allowJavaScriptOpenWindow"), false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptCanAccessClipboard, settings.value(QSL("allowJavaScriptAccessClipboard"), true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::LinksIncludedInFocusChain, settings.value(QSL("IncludeLinkInFocusChain"), false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::XSSAuditingEnabled, settings.value(QSL("XSSAuditing"), false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::PrintElementBackgrounds, settings.value(QSL("PrintElementBackground"), true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, settings.value(QSL("SpatialNavigation"), false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::ScrollAnimatorEnabled, settings.value(QSL("AnimateScrolling"), true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::HyperlinkAuditingEnabled, false);
|
||||
webSettings->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
|
||||
webSettings->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, true);
|
||||
webSettings->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, false);
|
||||
|
||||
#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 10, 0)
|
||||
webSettings->setAttribute(QWebEngineSettings::AllowWindowActivationFromJavaScript, settings.value("allowJavaScriptActivateWindow", false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::AllowWindowActivationFromJavaScript, settings.value(QSL("allowJavaScriptActivateWindow"), false).toBool());
|
||||
#endif
|
||||
|
||||
#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 11, 0)
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptCanPaste, settings.value("allowJavaScriptPaste", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::PlaybackRequiresUserGesture, settings.value("DisableVideoAutoPlay", false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::WebRTCPublicInterfacesOnly, settings.value("WebRTCPublicIpOnly", true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::JavascriptCanPaste, settings.value(QSL("allowJavaScriptPaste"), true).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::PlaybackRequiresUserGesture, settings.value(QSL("DisableVideoAutoPlay"), false).toBool());
|
||||
webSettings->setAttribute(QWebEngineSettings::WebRTCPublicInterfacesOnly, settings.value(QSL("WebRTCPublicIpOnly"), true).toBool());
|
||||
webSettings->setUnknownUrlSchemePolicy(QWebEngineSettings::AllowAllUnknownUrlSchemes);
|
||||
#endif
|
||||
|
||||
webSettings->setDefaultTextEncoding(settings.value("DefaultEncoding", webSettings->defaultTextEncoding()).toString());
|
||||
webSettings->setDefaultTextEncoding(settings.value(QSL("DefaultEncoding"), webSettings->defaultTextEncoding()).toString());
|
||||
|
||||
setWheelScrollLines(settings.value("wheelScrollLines", wheelScrollLines()).toInt());
|
||||
setWheelScrollLines(settings.value(QSL("wheelScrollLines"), wheelScrollLines()).toInt());
|
||||
|
||||
const QString userCss = settings.value("userStyleSheet", QString()).toString();
|
||||
const QString userCss = settings.value(QSL("userStyleSheet"), QString()).toString();
|
||||
settings.endGroup();
|
||||
|
||||
setUserStyleSheet(userCss);
|
||||
|
||||
settings.beginGroup("Browser-Fonts");
|
||||
webSettings->setFontFamily(QWebEngineSettings::StandardFont, settings.value("StandardFont", webSettings->fontFamily(QWebEngineSettings::StandardFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::CursiveFont, settings.value("CursiveFont", webSettings->fontFamily(QWebEngineSettings::CursiveFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::FantasyFont, settings.value("FantasyFont", webSettings->fontFamily(QWebEngineSettings::FantasyFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::FixedFont, settings.value("FixedFont", webSettings->fontFamily(QWebEngineSettings::FixedFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::SansSerifFont, settings.value("SansSerifFont", webSettings->fontFamily(QWebEngineSettings::SansSerifFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::SerifFont, settings.value("SerifFont", webSettings->fontFamily(QWebEngineSettings::SerifFont)).toString());
|
||||
webSettings->setFontSize(QWebEngineSettings::DefaultFontSize, settings.value("DefaultFontSize", 15).toInt());
|
||||
webSettings->setFontSize(QWebEngineSettings::DefaultFixedFontSize, settings.value("FixedFontSize", 14).toInt());
|
||||
webSettings->setFontSize(QWebEngineSettings::MinimumFontSize, settings.value("MinimumFontSize", 3).toInt());
|
||||
webSettings->setFontSize(QWebEngineSettings::MinimumLogicalFontSize, settings.value("MinimumLogicalFontSize", 5).toInt());
|
||||
settings.beginGroup(QSL("Browser-Fonts"));
|
||||
webSettings->setFontFamily(QWebEngineSettings::StandardFont, settings.value(QSL("StandardFont"), webSettings->fontFamily(QWebEngineSettings::StandardFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::CursiveFont, settings.value(QSL("CursiveFont"), webSettings->fontFamily(QWebEngineSettings::CursiveFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::FantasyFont, settings.value(QSL("FantasyFont"), webSettings->fontFamily(QWebEngineSettings::FantasyFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::FixedFont, settings.value(QSL("FixedFont"), webSettings->fontFamily(QWebEngineSettings::FixedFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::SansSerifFont, settings.value(QSL("SansSerifFont"), webSettings->fontFamily(QWebEngineSettings::SansSerifFont)).toString());
|
||||
webSettings->setFontFamily(QWebEngineSettings::SerifFont, settings.value(QSL("SerifFont"), webSettings->fontFamily(QWebEngineSettings::SerifFont)).toString());
|
||||
webSettings->setFontSize(QWebEngineSettings::DefaultFontSize, settings.value(QSL("DefaultFontSize"), 15).toInt());
|
||||
webSettings->setFontSize(QWebEngineSettings::DefaultFixedFontSize, settings.value(QSL("FixedFontSize"), 14).toInt());
|
||||
webSettings->setFontSize(QWebEngineSettings::MinimumFontSize, settings.value(QSL("MinimumFontSize"), 3).toInt());
|
||||
webSettings->setFontSize(QWebEngineSettings::MinimumLogicalFontSize, settings.value(QSL("MinimumLogicalFontSize"), 5).toInt());
|
||||
settings.endGroup();
|
||||
|
||||
QWebEngineProfile* profile = QWebEngineProfile::defaultProfile();
|
||||
@ -969,7 +969,7 @@ void MainApplication::loadSettings()
|
||||
QString defaultPath = DataPaths::path(DataPaths::Cache);
|
||||
if (!defaultPath.startsWith(DataPaths::currentProfilePath()))
|
||||
defaultPath.append(QLatin1Char('/') + ProfileManager::currentProfile());
|
||||
const QString &cachePath = settings.value("Web-Browser-Settings/CachePath", defaultPath).toString();
|
||||
const QString &cachePath = settings.value(QSL("Web-Browser-Settings/CachePath"), defaultPath).toString();
|
||||
profile->setCachePath(cachePath);
|
||||
|
||||
const bool allowCache = settings.value(QSL("Web-Browser-Settings/AllowLocalCache"), true).toBool();
|
||||
@ -1003,7 +1003,7 @@ void MainApplication::loadTheme(const QString &name)
|
||||
|
||||
if (activeThemePath.isEmpty()) {
|
||||
qWarning() << "Cannot load theme " << name;
|
||||
activeThemePath = QString("%1/%2").arg(DataPaths::path(DataPaths::Themes), DEFAULT_THEME_NAME);
|
||||
activeThemePath = QSL("%1/%2").arg(DataPaths::path(DataPaths::Themes), DEFAULT_THEME_NAME);
|
||||
}
|
||||
|
||||
QString qss = QzTools::readAllFileContents(activeThemePath + QLatin1String("/main.css"));
|
||||
@ -1027,7 +1027,7 @@ void MainApplication::loadTheme(const QString &name)
|
||||
qss.append(QzTools::readAllFileContents(DataPaths::currentProfilePath() + QL1S("/userChrome.css")));
|
||||
|
||||
QString relativePath = QDir::current().relativeFilePath(activeThemePath);
|
||||
qss.replace(QRegularExpression(QSL("url\\s*\\(\\s*([^\\*:\\);]+)\\s*\\)")), QString("url(%1/\\1)").arg(relativePath));
|
||||
qss.replace(QRegularExpression(QSL("url\\s*\\(\\s*([^\\*:\\);]+)\\s*\\)")), QSL("url(%1/\\1)").arg(relativePath));
|
||||
setStyleSheet(qss);
|
||||
}
|
||||
|
||||
@ -1039,7 +1039,7 @@ void MainApplication::checkDefaultWebBrowser()
|
||||
|
||||
#if defined(Q_OS_WIN) && !defined(Q_OS_OS2)
|
||||
Settings settings;
|
||||
bool checkNow = settings.value("Web-Browser-Settings/CheckDefaultBrowser", DEFAULT_CHECK_DEFAULTBROWSER).toBool();
|
||||
bool checkNow = settings.value(QSL("Web-Browser-Settings/CheckDefaultBrowser"), DEFAULT_CHECK_DEFAULTBROWSER).toBool();
|
||||
|
||||
if (!checkNow) {
|
||||
return;
|
||||
@ -1064,7 +1064,7 @@ void MainApplication::checkDefaultWebBrowser()
|
||||
checkAgain = dialog.isChecked();
|
||||
}
|
||||
|
||||
settings.setValue("Web-Browser-Settings/CheckDefaultBrowser", checkAgain);
|
||||
settings.setValue(QSL("Web-Browser-Settings/CheckDefaultBrowser"), checkAgain);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -113,13 +113,13 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(Qz::NewTabPositionFlags)
|
||||
}
|
||||
|
||||
#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
|
||||
#define DEFAULT_THEME_NAME "windows"
|
||||
#define DEFAULT_THEME_NAME QSL("windows")
|
||||
#elif defined(Q_OS_MACOS)
|
||||
#define DEFAULT_THEME_NAME "mac"
|
||||
#define DEFAULT_THEME_NAME QSL("mac")
|
||||
#elif defined(Q_OS_UNIX)
|
||||
#define DEFAULT_THEME_NAME "linux"
|
||||
#define DEFAULT_THEME_NAME QSL("linux")
|
||||
#else
|
||||
#define DEFAULT_THEME_NAME "default"
|
||||
#define DEFAULT_THEME_NAME QSL("default")
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
|
@ -22,9 +22,9 @@
|
||||
|
||||
AutoFillIcon::AutoFillIcon(QWidget* parent)
|
||||
: ClickableLabel(parent)
|
||||
, m_view(0)
|
||||
, m_view(nullptr)
|
||||
{
|
||||
setObjectName("locationbar-autofillicon");
|
||||
setObjectName(QSL("locationbar-autofillicon"));
|
||||
setCursor(Qt::PointingHandCursor);
|
||||
setToolTip(AutoFillWidget::tr("Choose username to login"));
|
||||
setFocusPolicy(Qt::ClickFocus);
|
||||
|
@ -28,7 +28,7 @@ class FALKON_EXPORT AutoFillIcon : public ClickableLabel
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AutoFillIcon(QWidget* parent = 0);
|
||||
explicit AutoFillIcon(QWidget* parent = nullptr);
|
||||
|
||||
void setWebView(WebView* view);
|
||||
void setUsernames(const QStringList &usernames);
|
||||
|
@ -43,8 +43,8 @@ void AutoFillWidget::setUsernames(const QStringList &usernames)
|
||||
}
|
||||
|
||||
QPushButton* button = new QPushButton(this);
|
||||
button->setIcon(QIcon(":icons/other/login.png"));
|
||||
button->setStyleSheet("text-align:left;font-weight:bold;");
|
||||
button->setIcon(QIcon(QSL(":icons/other/login.png")));
|
||||
button->setStyleSheet(QSL("text-align:left;font-weight:bold;"));
|
||||
button->setText(username);
|
||||
button->setFlat(true);
|
||||
|
||||
|
@ -36,7 +36,7 @@ class FALKON_EXPORT AutoFillWidget : public LocationBarPopup
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AutoFillWidget(WebView* view, QWidget* parent = 0);
|
||||
explicit AutoFillWidget(WebView* view, QWidget* parent = nullptr);
|
||||
~AutoFillWidget();
|
||||
|
||||
void setUsernames(const QStringList &usernames);
|
||||
|
@ -37,9 +37,9 @@ DatabaseEncryptedPasswordBackend::DatabaseEncryptedPasswordBackend()
|
||||
{
|
||||
QSqlDatabase db = SqlDatabase::instance()->database();
|
||||
if (!db.tables().contains(QLatin1String("autofill_encrypted"))) {
|
||||
db.exec("CREATE TABLE autofill_encrypted (data_encrypted TEXT, id INTEGER PRIMARY KEY,"
|
||||
"password_encrypted TEXT, server TEXT, username_encrypted TEXT, last_used NUMERIC)");
|
||||
db.exec("CREATE INDEX autofillEncryptedServer ON autofill_encrypted(server ASC)");
|
||||
db.exec(QSL("CREATE TABLE autofill_encrypted (data_encrypted TEXT, id INTEGER PRIMARY KEY,"
|
||||
"password_encrypted TEXT, server TEXT, username_encrypted TEXT, last_used NUMERIC)"));
|
||||
db.exec(QSL("CREATE INDEX autofillEncryptedServer ON autofill_encrypted(server ASC)"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ QStringList DatabaseEncryptedPasswordBackend::getUsernames(const QUrl &url)
|
||||
}
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT username_encrypted FROM autofill_encrypted WHERE server=? ORDER BY last_used DESC");
|
||||
query.prepare(QSL("SELECT username_encrypted FROM autofill_encrypted WHERE server=? ORDER BY last_used DESC"));
|
||||
query.addBindValue(PasswordManager::createHost(url));
|
||||
query.exec();
|
||||
|
||||
@ -74,8 +74,8 @@ QVector<PasswordEntry> DatabaseEncryptedPasswordBackend::getEntries(const QUrl &
|
||||
const QString host = PasswordManager::createHost(url);
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT id, username_encrypted, password_encrypted, data_encrypted FROM autofill_encrypted "
|
||||
"WHERE server=? ORDER BY last_used DESC");
|
||||
query.prepare(QSL("SELECT id, username_encrypted, password_encrypted, data_encrypted FROM autofill_encrypted "
|
||||
"WHERE server=? ORDER BY last_used DESC"));
|
||||
query.addBindValue(host);
|
||||
query.exec();
|
||||
|
||||
@ -105,7 +105,7 @@ QVector<PasswordEntry> DatabaseEncryptedPasswordBackend::getAllEntries()
|
||||
AesInterface aesDecryptor;
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT id, server, username_encrypted, password_encrypted, data_encrypted FROM autofill_encrypted");
|
||||
query.prepare(QSL("SELECT id, server, username_encrypted, password_encrypted, data_encrypted FROM autofill_encrypted"));
|
||||
query.exec();
|
||||
|
||||
if (query.next() && hasPermission()) {
|
||||
@ -160,7 +160,7 @@ void DatabaseEncryptedPasswordBackend::addEntry(const PasswordEntry &entry)
|
||||
if (entry.data.isEmpty()) {
|
||||
// Multiple-usernames for HTTP/FTP authorization not supported
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT username_encrypted FROM autofill_encrypted WHERE server=?");
|
||||
query.prepare(QSL("SELECT username_encrypted FROM autofill_encrypted WHERE server=?"));
|
||||
query.addBindValue(entry.host);
|
||||
query.exec();
|
||||
|
||||
@ -174,8 +174,8 @@ void DatabaseEncryptedPasswordBackend::addEntry(const PasswordEntry &entry)
|
||||
|
||||
if (hasPermission() && encryptPasswordEntry(encryptedEntry, &aesEncryptor)) {
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("INSERT INTO autofill_encrypted (server, data_encrypted, username_encrypted, password_encrypted, last_used) "
|
||||
"VALUES (?,?,?,?,strftime('%s', 'now'))");
|
||||
query.prepare(QSL("INSERT INTO autofill_encrypted (server, data_encrypted, username_encrypted, password_encrypted, last_used) "
|
||||
"VALUES (?,?,?,?,strftime('%s', 'now'))"));
|
||||
query.bindValue(0, encryptedEntry.host);
|
||||
query.bindValue(1, encryptedEntry.data);
|
||||
query.bindValue(2, encryptedEntry.username);
|
||||
@ -194,13 +194,13 @@ bool DatabaseEncryptedPasswordBackend::updateEntry(const PasswordEntry &entry)
|
||||
|
||||
// Data is empty only for HTTP/FTP authorization
|
||||
if (entry.data.isEmpty()) {
|
||||
query.prepare("UPDATE autofill_encrypted SET username_encrypted=?, password_encrypted=? WHERE server=?");
|
||||
query.prepare(QSL("UPDATE autofill_encrypted SET username_encrypted=?, password_encrypted=? WHERE server=?"));
|
||||
query.bindValue(0, encryptedEntry.username);
|
||||
query.bindValue(1, encryptedEntry.password);
|
||||
query.bindValue(2, encryptedEntry.host);
|
||||
}
|
||||
else {
|
||||
query.prepare("UPDATE autofill_encrypted SET data_encrypted=?, username_encrypted=?, password_encrypted=? WHERE id=?");
|
||||
query.prepare(QSL("UPDATE autofill_encrypted SET data_encrypted=?, username_encrypted=?, password_encrypted=? WHERE id=?"));
|
||||
query.addBindValue(encryptedEntry.data);
|
||||
query.addBindValue(encryptedEntry.username);
|
||||
query.addBindValue(encryptedEntry.password);
|
||||
@ -216,7 +216,7 @@ bool DatabaseEncryptedPasswordBackend::updateEntry(const PasswordEntry &entry)
|
||||
void DatabaseEncryptedPasswordBackend::updateLastUsed(PasswordEntry &entry)
|
||||
{
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("UPDATE autofill_encrypted SET last_used=strftime('%s', 'now') WHERE id=?");
|
||||
query.prepare(QSL("UPDATE autofill_encrypted SET last_used=strftime('%s', 'now') WHERE id=?"));
|
||||
query.addBindValue(entry.id);
|
||||
query.exec();
|
||||
}
|
||||
@ -228,7 +228,7 @@ void DatabaseEncryptedPasswordBackend::removeEntry(const PasswordEntry &entry)
|
||||
}
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("DELETE FROM autofill_encrypted WHERE id=?");
|
||||
query.prepare(QSL("DELETE FROM autofill_encrypted WHERE id=?"));
|
||||
query.addBindValue(entry.id);
|
||||
query.exec();
|
||||
|
||||
@ -245,7 +245,7 @@ void DatabaseEncryptedPasswordBackend::removeAll()
|
||||
}
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("DELETE FROM autofill_encrypted");
|
||||
query.prepare(QSL("DELETE FROM autofill_encrypted"));
|
||||
query.exec();
|
||||
|
||||
m_stateOfMasterPassword = PasswordIsSetted;
|
||||
@ -393,7 +393,7 @@ void DatabaseEncryptedPasswordBackend::encryptDataBaseTableOnFly(const QByteArra
|
||||
}
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT id, data_encrypted, password_encrypted, username_encrypted, server FROM autofill_encrypted");
|
||||
query.prepare(QSL("SELECT id, data_encrypted, password_encrypted, username_encrypted, server FROM autofill_encrypted"));
|
||||
query.exec();
|
||||
|
||||
AesInterface encryptor;
|
||||
@ -423,7 +423,7 @@ void DatabaseEncryptedPasswordBackend::encryptDataBaseTableOnFly(const QByteArra
|
||||
}
|
||||
|
||||
QSqlQuery updateQuery(SqlDatabase::instance()->database());
|
||||
updateQuery.prepare("UPDATE autofill_encrypted SET data_encrypted = ?, password_encrypted = ?, username_encrypted = ? WHERE id = ?");
|
||||
updateQuery.prepare(QSL("UPDATE autofill_encrypted SET data_encrypted = ?, password_encrypted = ?, username_encrypted = ? WHERE id = ?"));
|
||||
updateQuery.addBindValue(data);
|
||||
updateQuery.addBindValue(password);
|
||||
updateQuery.addBindValue(username);
|
||||
@ -439,7 +439,7 @@ QByteArray DatabaseEncryptedPasswordBackend::someDataFromDatabase()
|
||||
}
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT password_encrypted, data_encrypted, username_encrypted FROM autofill_encrypted");
|
||||
query.prepare(QSL("SELECT password_encrypted, data_encrypted, username_encrypted FROM autofill_encrypted"));
|
||||
query.exec();
|
||||
|
||||
QByteArray someData;
|
||||
@ -467,7 +467,7 @@ QByteArray DatabaseEncryptedPasswordBackend::someDataFromDatabase()
|
||||
void DatabaseEncryptedPasswordBackend::updateSampleData(const QByteArray &password)
|
||||
{
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT id FROM autofill_encrypted WHERE server = ?");
|
||||
query.prepare(QSL("SELECT id FROM autofill_encrypted WHERE server = ?"));
|
||||
query.addBindValue(INTERNAL_SERVER_ID);
|
||||
query.exec();
|
||||
|
||||
@ -476,10 +476,10 @@ void DatabaseEncryptedPasswordBackend::updateSampleData(const QByteArray &passwo
|
||||
m_someDataStoredOnDataBase = aes.encrypt(AesInterface::createRandomData(16), password);
|
||||
|
||||
if (query.next()) {
|
||||
query.prepare("UPDATE autofill_encrypted SET password_encrypted = ? WHERE server=?");
|
||||
query.prepare(QSL("UPDATE autofill_encrypted SET password_encrypted = ? WHERE server=?"));
|
||||
}
|
||||
else {
|
||||
query.prepare("INSERT INTO autofill_encrypted (password_encrypted, server) VALUES (?,?)");
|
||||
query.prepare(QSL("INSERT INTO autofill_encrypted (password_encrypted, server) VALUES (?,?)"));
|
||||
}
|
||||
|
||||
query.addBindValue(QString::fromUtf8(m_someDataStoredOnDataBase));
|
||||
@ -489,7 +489,7 @@ void DatabaseEncryptedPasswordBackend::updateSampleData(const QByteArray &passwo
|
||||
m_stateOfMasterPassword = PasswordIsSetted;
|
||||
}
|
||||
else if (query.next()) {
|
||||
query.prepare("DELETE FROM autofill_encrypted WHERE server = ?");
|
||||
query.prepare(QSL("DELETE FROM autofill_encrypted WHERE server = ?"));
|
||||
query.addBindValue(INTERNAL_SERVER_ID);
|
||||
query.exec();
|
||||
|
||||
@ -580,7 +580,7 @@ void MasterPasswordDialog::reject()
|
||||
AutoFill::tr("This backend needs a master password to be set! "
|
||||
"Falkon just switches to its default backend"));
|
||||
// active default backend
|
||||
mApp->autoFill()->passwordManager()->switchBackend("database");
|
||||
mApp->autoFill()->passwordManager()->switchBackend(QSL("database"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -610,7 +610,7 @@ void MasterPasswordDialog::clearMasterPasswordAndConvert(bool forcedAskPass)
|
||||
|
||||
if (m_backend->hasPermission()) {
|
||||
QVector<PasswordEntry> list = m_backend->getAllEntries();
|
||||
PasswordBackend* databaseBackend = mApp->autoFill()->passwordManager()->availableBackends().value("database");
|
||||
PasswordBackend* databaseBackend = mApp->autoFill()->passwordManager()->availableBackends().value(QSL("database"));
|
||||
if (!databaseBackend) {
|
||||
return;
|
||||
}
|
||||
@ -638,11 +638,11 @@ void MasterPasswordDialog::clearMasterPasswordAndConvert(bool forcedAskPass)
|
||||
m_backend->removeMasterPassword();
|
||||
m_backend->setAskMasterPasswordState(false);
|
||||
|
||||
mApp->autoFill()->passwordManager()->switchBackend("database");
|
||||
mApp->autoFill()->passwordManager()->switchBackend(QSL("database"));
|
||||
}
|
||||
else {
|
||||
QMessageBox::information(this, tr("Warning!"), tr("Some data has not been decrypted. The master password was not cleared!"));
|
||||
mApp->autoFill()->passwordManager()->switchBackend("database");
|
||||
mApp->autoFill()->passwordManager()->switchBackend(QSL("database"));
|
||||
}
|
||||
}
|
||||
reject();
|
||||
|
@ -37,8 +37,8 @@ QVector<PasswordEntry> DatabasePasswordBackend::getEntries(const QUrl &url)
|
||||
const QString host = PasswordManager::createHost(url);
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT id, username, password, data FROM autofill "
|
||||
"WHERE server=? ORDER BY last_used DESC");
|
||||
query.prepare(QSL("SELECT id, username, password, data FROM autofill "
|
||||
"WHERE server=? ORDER BY last_used DESC"));
|
||||
query.addBindValue(host);
|
||||
query.exec();
|
||||
|
||||
@ -63,7 +63,7 @@ QVector<PasswordEntry> DatabasePasswordBackend::getAllEntries()
|
||||
QVector<PasswordEntry> list;
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT id, server, username, password, data FROM autofill");
|
||||
query.prepare(QSL("SELECT id, server, username, password, data FROM autofill"));
|
||||
query.exec();
|
||||
|
||||
while (query.next()) {
|
||||
@ -86,7 +86,7 @@ void DatabasePasswordBackend::addEntry(const PasswordEntry &entry)
|
||||
if (entry.data.isEmpty()) {
|
||||
// Multiple-usernames for HTTP/FTP authorization not supported
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("SELECT username FROM autofill WHERE server=?");
|
||||
query.prepare(QSL("SELECT username FROM autofill WHERE server=?"));
|
||||
query.addBindValue(entry.host);
|
||||
query.exec();
|
||||
|
||||
@ -96,8 +96,8 @@ void DatabasePasswordBackend::addEntry(const PasswordEntry &entry)
|
||||
}
|
||||
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("INSERT INTO autofill (server, data, username, password, last_used) "
|
||||
"VALUES (?,?,?,?,strftime('%s', 'now'))");
|
||||
query.prepare(QSL("INSERT INTO autofill (server, data, username, password, last_used) "
|
||||
"VALUES (?,?,?,?,strftime('%s', 'now'))"));
|
||||
query.bindValue(0, entry.host);
|
||||
query.bindValue(1, entry.data);
|
||||
query.bindValue(2, entry.username);
|
||||
@ -111,13 +111,13 @@ bool DatabasePasswordBackend::updateEntry(const PasswordEntry &entry)
|
||||
|
||||
// Data is empty only for HTTP/FTP authorization
|
||||
if (entry.data.isEmpty()) {
|
||||
query.prepare("UPDATE autofill SET username=?, password=? WHERE server=?");
|
||||
query.prepare(QSL("UPDATE autofill SET username=?, password=? WHERE server=?"));
|
||||
query.bindValue(0, entry.username);
|
||||
query.bindValue(1, entry.password);
|
||||
query.bindValue(2, entry.host);
|
||||
}
|
||||
else {
|
||||
query.prepare("UPDATE autofill SET data=?, username=?, password=? WHERE id=?");
|
||||
query.prepare(QSL("UPDATE autofill SET data=?, username=?, password=? WHERE id=?"));
|
||||
query.addBindValue(entry.data);
|
||||
query.addBindValue(entry.username);
|
||||
query.addBindValue(entry.password);
|
||||
@ -130,7 +130,7 @@ bool DatabasePasswordBackend::updateEntry(const PasswordEntry &entry)
|
||||
void DatabasePasswordBackend::updateLastUsed(PasswordEntry &entry)
|
||||
{
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("UPDATE autofill SET last_used=strftime('%s', 'now') WHERE id=?");
|
||||
query.prepare(QSL("UPDATE autofill SET last_used=strftime('%s', 'now') WHERE id=?"));
|
||||
query.addBindValue(entry.id);
|
||||
query.exec();
|
||||
}
|
||||
@ -138,7 +138,7 @@ void DatabasePasswordBackend::updateLastUsed(PasswordEntry &entry)
|
||||
void DatabasePasswordBackend::removeEntry(const PasswordEntry &entry)
|
||||
{
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare("DELETE FROM autofill WHERE id=?");
|
||||
query.prepare(QSL("DELETE FROM autofill WHERE id=?"));
|
||||
query.addBindValue(entry.id);
|
||||
query.exec();
|
||||
}
|
||||
@ -146,5 +146,5 @@ void DatabasePasswordBackend::removeEntry(const PasswordEntry &entry)
|
||||
void DatabasePasswordBackend::removeAll()
|
||||
{
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.exec("DELETE FROM autofill");
|
||||
query.exec(QSL("DELETE FROM autofill"));
|
||||
}
|
||||
|
@ -61,25 +61,25 @@ QDataStream &operator >>(QDataStream &stream, PasswordEntry &entry)
|
||||
PasswordManager::PasswordManager(QObject* parent)
|
||||
: QObject(parent)
|
||||
, m_loaded(false)
|
||||
, m_backend(0)
|
||||
, m_backend(nullptr)
|
||||
, m_databaseBackend(new DatabasePasswordBackend)
|
||||
, m_databaseEncryptedBackend(new DatabaseEncryptedPasswordBackend)
|
||||
{
|
||||
m_backends["database"] = m_databaseBackend;
|
||||
m_backends["database-encrypted"] = m_databaseEncryptedBackend;
|
||||
m_backends[QSL("database")] = m_databaseBackend;
|
||||
m_backends[QSL("database-encrypted")] = m_databaseEncryptedBackend;
|
||||
}
|
||||
|
||||
void PasswordManager::loadSettings()
|
||||
{
|
||||
Settings settings;
|
||||
settings.beginGroup("PasswordManager");
|
||||
QString backendId = settings.value("Backend", "database").toString();
|
||||
settings.beginGroup(QSL("PasswordManager"));
|
||||
QString backendId = settings.value(QSL("Backend"), QSL("database")).toString();
|
||||
settings.endGroup();
|
||||
|
||||
if (m_backend) {
|
||||
m_backend->setActive(false);
|
||||
}
|
||||
m_backend = m_backends[m_backends.contains(backendId) ? backendId : "database"];
|
||||
m_backend = m_backends[m_backends.contains(backendId) ? backendId : QSL("database")];
|
||||
m_backend->setActive(true);
|
||||
}
|
||||
|
||||
@ -159,8 +159,8 @@ void PasswordManager::switchBackend(const QString &backendID)
|
||||
m_backend->setActive(true);
|
||||
|
||||
Settings settings;
|
||||
settings.beginGroup("PasswordManager");
|
||||
settings.setValue("Backend", backendID);
|
||||
settings.beginGroup(QSL("PasswordManager"));
|
||||
settings.setValue(QSL("Backend"), backendID);
|
||||
settings.endGroup();
|
||||
|
||||
emit passwordBackendChanged();
|
||||
|
@ -58,7 +58,7 @@ class FALKON_EXPORT PasswordManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PasswordManager(QObject* parent = 0);
|
||||
explicit PasswordManager(QObject* parent = nullptr);
|
||||
~PasswordManager();
|
||||
|
||||
void loadSettings();
|
||||
|
@ -192,7 +192,7 @@ void BookmarkItem::addChild(BookmarkItem* child, int index)
|
||||
|
||||
void BookmarkItem::removeChild(BookmarkItem* child)
|
||||
{
|
||||
child->m_parent = 0;
|
||||
child->m_parent = nullptr;
|
||||
m_children.removeOne(child);
|
||||
}
|
||||
|
||||
@ -217,15 +217,15 @@ QString BookmarkItem::typeToString(BookmarkItem::Type type)
|
||||
{
|
||||
switch (type) {
|
||||
case Url:
|
||||
return QString("url");
|
||||
return QSL("url");
|
||||
|
||||
case Folder:
|
||||
return QString("folder");
|
||||
return QSL("folder");
|
||||
|
||||
case Separator:
|
||||
return QString("separator");
|
||||
return QSL("separator");
|
||||
|
||||
default:
|
||||
return QString("invalid");
|
||||
return QSL("invalid");
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
Invalid
|
||||
};
|
||||
|
||||
explicit BookmarkItem(Type type, BookmarkItem* parent = 0);
|
||||
explicit BookmarkItem(Type type, BookmarkItem* parent = nullptr);
|
||||
~BookmarkItem();
|
||||
|
||||
Type type() const;
|
||||
|
@ -31,7 +31,7 @@ static const int bookmarksVersion = 1;
|
||||
|
||||
Bookmarks::Bookmarks(QObject* parent)
|
||||
: QObject(parent)
|
||||
, m_autoSaver(0)
|
||||
, m_autoSaver(nullptr)
|
||||
{
|
||||
m_autoSaver = new AutoSaver(this);
|
||||
connect(m_autoSaver, SIGNAL(save()), this, SLOT(saveSettings()));
|
||||
@ -49,9 +49,9 @@ Bookmarks::~Bookmarks()
|
||||
void Bookmarks::loadSettings()
|
||||
{
|
||||
Settings settings;
|
||||
settings.beginGroup("Bookmarks");
|
||||
m_showOnlyIconsInToolbar = settings.value("showOnlyIconsInToolbar", false).toBool();
|
||||
m_showOnlyTextInToolbar = settings.value("showOnlyTextInToolbar", false).toBool();
|
||||
settings.beginGroup(QSL("Bookmarks"));
|
||||
m_showOnlyIconsInToolbar = settings.value(QSL("showOnlyIconsInToolbar"), false).toBool();
|
||||
m_showOnlyTextInToolbar = settings.value(QSL("showOnlyTextInToolbar"), false).toBool();
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
@ -191,9 +191,9 @@ void Bookmarks::setShowOnlyTextInToolbar(bool state)
|
||||
void Bookmarks::saveSettings()
|
||||
{
|
||||
Settings settings;
|
||||
settings.beginGroup("Bookmarks");
|
||||
settings.setValue("showOnlyIconsInToolbar", m_showOnlyIconsInToolbar);
|
||||
settings.setValue("showOnlyTextInToolbar", m_showOnlyTextInToolbar);
|
||||
settings.beginGroup(QSL("Bookmarks"));
|
||||
settings.setValue(QSL("showOnlyIconsInToolbar"), m_showOnlyIconsInToolbar);
|
||||
settings.setValue(QSL("showOnlyTextInToolbar"), m_showOnlyTextInToolbar);
|
||||
settings.endGroup();
|
||||
|
||||
saveBookmarks();
|
||||
@ -254,13 +254,13 @@ void Bookmarks::loadBookmarks()
|
||||
Q_ASSERT(err.error == QJsonParseError::NoError);
|
||||
Q_ASSERT(data.type() == QVariant::Map);
|
||||
|
||||
loadBookmarksFromMap(data.toMap().value("roots").toMap());
|
||||
loadBookmarksFromMap(data.toMap().value(QSL("roots")).toMap());
|
||||
|
||||
// Don't forget to save the bookmarks
|
||||
m_autoSaver->changeOccurred();
|
||||
}
|
||||
else {
|
||||
loadBookmarksFromMap(res.toMap().value("roots").toMap());
|
||||
loadBookmarksFromMap(res.toMap().value(QSL("roots")).toMap());
|
||||
}
|
||||
}
|
||||
|
||||
@ -270,22 +270,22 @@ void Bookmarks::saveBookmarks()
|
||||
|
||||
#define WRITE_FOLDER(name, mapName, folder) \
|
||||
QVariantMap mapName; \
|
||||
mapName.insert("children", writeBookmarks(folder)); \
|
||||
mapName.insert("expanded", folder->isExpanded()); \
|
||||
mapName.insert("expanded_sidebar", folder->isSidebarExpanded()); \
|
||||
mapName.insert("name", folder->title()); \
|
||||
mapName.insert("description", folder->description()); \
|
||||
mapName.insert("type", "folder"); \
|
||||
mapName.insert(QSL("children"), writeBookmarks(folder)); \
|
||||
mapName.insert(QSL("expanded"), folder->isExpanded()); \
|
||||
mapName.insert(QSL("expanded_sidebar"), folder->isSidebarExpanded()); \
|
||||
mapName.insert(QSL("name"), folder->title()); \
|
||||
mapName.insert(QSL("description"), folder->description()); \
|
||||
mapName.insert(QSL("type"), QSL("folder")); \
|
||||
bookmarksMap.insert(name, mapName);
|
||||
|
||||
WRITE_FOLDER("bookmark_bar", toolbarMap, m_folderToolbar)
|
||||
WRITE_FOLDER("bookmark_menu", menuMap, m_folderMenu)
|
||||
WRITE_FOLDER("other", unsortedMap, m_folderUnsorted)
|
||||
WRITE_FOLDER(QSL("bookmark_bar"), toolbarMap, m_folderToolbar)
|
||||
WRITE_FOLDER(QSL("bookmark_menu"), menuMap, m_folderMenu)
|
||||
WRITE_FOLDER(QSL("other"), unsortedMap, m_folderUnsorted)
|
||||
#undef WRITE_FOLDER
|
||||
|
||||
QVariantMap map;
|
||||
map.insert("version", bookmarksVersion);
|
||||
map.insert("roots", bookmarksMap);
|
||||
map.insert(QSL("version"), bookmarksVersion);
|
||||
map.insert(QSL("roots"), bookmarksMap);
|
||||
|
||||
const QJsonDocument json = QJsonDocument::fromVariant(map);
|
||||
const QByteArray data = json.toJson();
|
||||
@ -308,13 +308,13 @@ void Bookmarks::saveBookmarks()
|
||||
void Bookmarks::loadBookmarksFromMap(const QVariantMap &map)
|
||||
{
|
||||
#define READ_FOLDER(name, folder) \
|
||||
readBookmarks(map.value(name).toMap().value("children").toList(), folder); \
|
||||
folder->setExpanded(map.value(name).toMap().value("expanded").toBool()); \
|
||||
folder->setSidebarExpanded(map.value(name).toMap().value("expanded_sidebar").toBool());
|
||||
readBookmarks(map.value(name).toMap().value(QSL("children")).toList(), folder); \
|
||||
folder->setExpanded(map.value(name).toMap().value(QSL("expanded")).toBool()); \
|
||||
folder->setSidebarExpanded(map.value(name).toMap().value(QSL("expanded_sidebar")).toBool());
|
||||
|
||||
READ_FOLDER("bookmark_bar", m_folderToolbar)
|
||||
READ_FOLDER("bookmark_menu", m_folderMenu)
|
||||
READ_FOLDER("other", m_folderUnsorted)
|
||||
READ_FOLDER(QSL("bookmark_bar"), m_folderToolbar)
|
||||
READ_FOLDER(QSL("bookmark_menu"), m_folderMenu)
|
||||
READ_FOLDER(QSL("other"), m_folderUnsorted)
|
||||
#undef READ_FOLDER
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@ void Bookmarks::readBookmarks(const QVariantList &list, BookmarkItem* parent)
|
||||
|
||||
foreach (const QVariant &entry, list) {
|
||||
const QVariantMap map = entry.toMap();
|
||||
BookmarkItem::Type type = BookmarkItem::typeFromString(map.value("type").toString());
|
||||
BookmarkItem::Type type = BookmarkItem::typeFromString(map.value(QSL("type")).toString());
|
||||
|
||||
if (type == BookmarkItem::Invalid) {
|
||||
continue;
|
||||
@ -334,26 +334,26 @@ void Bookmarks::readBookmarks(const QVariantList &list, BookmarkItem* parent)
|
||||
|
||||
switch (type) {
|
||||
case BookmarkItem::Url:
|
||||
item->setUrl(QUrl::fromEncoded(map.value("url").toByteArray()));
|
||||
item->setTitle(map.value("name").toString());
|
||||
item->setDescription(map.value("description").toString());
|
||||
item->setKeyword(map.value("keyword").toString());
|
||||
item->setVisitCount(map.value("visit_count").toInt());
|
||||
item->setUrl(QUrl::fromEncoded(map.value(QSL("url")).toByteArray()));
|
||||
item->setTitle(map.value(QSL("name")).toString());
|
||||
item->setDescription(map.value(QSL("description")).toString());
|
||||
item->setKeyword(map.value(QSL("keyword")).toString());
|
||||
item->setVisitCount(map.value(QSL("visit_count")).toInt());
|
||||
break;
|
||||
|
||||
case BookmarkItem::Folder:
|
||||
item->setTitle(map.value("name").toString());
|
||||
item->setDescription(map.value("description").toString());
|
||||
item->setExpanded(map.value("expanded").toBool());
|
||||
item->setSidebarExpanded(map.value("expanded_sidebar").toBool());
|
||||
item->setTitle(map.value(QSL("name")).toString());
|
||||
item->setDescription(map.value(QSL("description")).toString());
|
||||
item->setExpanded(map.value(QSL("expanded")).toBool());
|
||||
item->setSidebarExpanded(map.value(QSL("expanded_sidebar")).toBool());
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (map.contains("children")) {
|
||||
readBookmarks(map.value("children").toList(), item);
|
||||
if (map.contains(QSL("children"))) {
|
||||
readBookmarks(map.value(QSL("children")).toList(), item);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -366,22 +366,22 @@ QVariantList Bookmarks::writeBookmarks(BookmarkItem* parent)
|
||||
|
||||
foreach (BookmarkItem* child, parent->children()) {
|
||||
QVariantMap map;
|
||||
map.insert("type", BookmarkItem::typeToString(child->type()));
|
||||
map.insert(QSL("type"), BookmarkItem::typeToString(child->type()));
|
||||
|
||||
switch (child->type()) {
|
||||
case BookmarkItem::Url:
|
||||
map.insert("url", child->urlString());
|
||||
map.insert("name", child->title());
|
||||
map.insert("description", child->description());
|
||||
map.insert("keyword", child->keyword());
|
||||
map.insert("visit_count", child->visitCount());
|
||||
map.insert(QSL("url"), child->urlString());
|
||||
map.insert(QSL("name"), child->title());
|
||||
map.insert(QSL("description"), child->description());
|
||||
map.insert(QSL("keyword"), child->keyword());
|
||||
map.insert(QSL("visit_count"), child->visitCount());
|
||||
break;
|
||||
|
||||
case BookmarkItem::Folder:
|
||||
map.insert("name", child->title());
|
||||
map.insert("description", child->description());
|
||||
map.insert("expanded", child->isExpanded());
|
||||
map.insert("expanded_sidebar", child->isSidebarExpanded());
|
||||
map.insert(QSL("name"), child->title());
|
||||
map.insert(QSL("description"), child->description());
|
||||
map.insert(QSL("expanded"), child->isExpanded());
|
||||
map.insert(QSL("expanded_sidebar"), child->isSidebarExpanded());
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -389,7 +389,7 @@ QVariantList Bookmarks::writeBookmarks(BookmarkItem* parent)
|
||||
}
|
||||
|
||||
if (!child->children().isEmpty()) {
|
||||
map.insert("children", writeBookmarks(child));
|
||||
map.insert(QSL("children"), writeBookmarks(child));
|
||||
}
|
||||
|
||||
list.append(map);
|
||||
|
@ -33,7 +33,7 @@ class FALKON_EXPORT Bookmarks : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Bookmarks(QObject* parent = 0);
|
||||
explicit Bookmarks(QObject* parent = nullptr);
|
||||
~Bookmarks();
|
||||
|
||||
void loadSettings();
|
||||
|
@ -34,9 +34,9 @@ BookmarksImportDialog::BookmarksImportDialog(QWidget* parent)
|
||||
: QDialog(parent)
|
||||
, ui(new Ui::BookmarksImportDialog)
|
||||
, m_currentPage(0)
|
||||
, m_importer(0)
|
||||
, m_importedFolder(0)
|
||||
, m_model(0)
|
||||
, m_importer(nullptr)
|
||||
, m_importedFolder(nullptr)
|
||||
, m_model(nullptr)
|
||||
{
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
ui->setupUi(this);
|
||||
@ -56,7 +56,7 @@ BookmarksImportDialog::BookmarksImportDialog(QWidget* parent)
|
||||
|
||||
BookmarksImportDialog::~BookmarksImportDialog()
|
||||
{
|
||||
ui->treeView->setModel(0);
|
||||
ui->treeView->setModel(nullptr);
|
||||
delete m_model;
|
||||
delete m_importedFolder;
|
||||
delete m_importer;
|
||||
@ -148,7 +148,7 @@ void BookmarksImportDialog::previousPage()
|
||||
ui->stackedWidget->setCurrentIndex(--m_currentPage);
|
||||
|
||||
delete m_importer;
|
||||
m_importer = 0;
|
||||
m_importer = nullptr;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
@ -159,12 +159,12 @@ void BookmarksImportDialog::previousPage()
|
||||
ui->backButton->setEnabled(true);
|
||||
ui->stackedWidget->setCurrentIndex(--m_currentPage);
|
||||
|
||||
ui->treeView->setModel(0);
|
||||
ui->treeView->setModel(nullptr);
|
||||
delete m_model;
|
||||
m_model = 0;
|
||||
m_model = nullptr;
|
||||
|
||||
delete m_importedFolder;
|
||||
m_importedFolder = 0;
|
||||
m_importedFolder = nullptr;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -185,12 +185,12 @@ void BookmarksImportDialog::showImporterPage()
|
||||
ui->iconLabel->setPixmap(ui->browserList->currentItem()->icon().pixmap(48));
|
||||
ui->importingFromLabel->setText(tr("<b>Importing from %1</b>").arg(ui->browserList->currentItem()->text()));
|
||||
ui->fileText1->setText(m_importer->description());
|
||||
ui->standardDirLabel->setText(QString("<i>%1</i>").arg(m_importer->standardPath()));
|
||||
ui->standardDirLabel->setText(QSL("<i>%1</i>").arg(m_importer->standardPath()));
|
||||
}
|
||||
|
||||
void BookmarksImportDialog::showExportedBookmarks()
|
||||
{
|
||||
m_model = new BookmarksModel(m_importedFolder, 0, this);
|
||||
m_model = new BookmarksModel(m_importedFolder, nullptr, this);
|
||||
ui->treeView->setModel(m_model);
|
||||
ui->treeView->header()->resizeSection(0, ui->treeView->header()->width() / 2);
|
||||
ui->treeView->expandAll();
|
||||
@ -199,5 +199,5 @@ void BookmarksImportDialog::showExportedBookmarks()
|
||||
void BookmarksImportDialog::addExportedBookmarks()
|
||||
{
|
||||
mApp->bookmarks()->addBookmark(mApp->bookmarks()->unsortedFolder(), m_importedFolder);
|
||||
m_importedFolder = 0;
|
||||
m_importedFolder = nullptr;
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ QString ChromeImporter::standardPath() const
|
||||
|
||||
QString ChromeImporter::getPath(QWidget* parent)
|
||||
{
|
||||
m_path = QFileDialog::getOpenFileName(parent, BookmarksImporter::tr("Choose file..."), standardPath(), "Bookmarks (Bookmarks)");
|
||||
m_path = QFileDialog::getOpenFileName(parent, BookmarksImporter::tr("Choose file..."), standardPath(), QSL("Bookmarks (Bookmarks)"));
|
||||
return m_path;
|
||||
}
|
||||
|
||||
@ -74,25 +74,25 @@ BookmarkItem* ChromeImporter::importBookmarks()
|
||||
|
||||
if (err.error != QJsonParseError::NoError || res.type() != QVariant::Map) {
|
||||
setError(BookmarksImporter::tr("Cannot parse JSON file!"));
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QVariantMap rootMap = res.toMap().value("roots").toMap();
|
||||
QVariantMap rootMap = res.toMap().value(QSL("roots")).toMap();
|
||||
|
||||
BookmarkItem* root = new BookmarkItem(BookmarkItem::Folder);
|
||||
root->setTitle("Chrome Import");
|
||||
root->setTitle(QSL("Chrome Import"));
|
||||
|
||||
BookmarkItem* toolbar = new BookmarkItem(BookmarkItem::Folder, root);
|
||||
toolbar->setTitle(rootMap.value("bookmark_bar").toMap().value("name").toString());
|
||||
readBookmarks(rootMap.value("bookmark_bar").toMap().value("children").toList(), toolbar);
|
||||
toolbar->setTitle(rootMap.value(QSL("bookmark_bar")).toMap().value(QSL("name")).toString());
|
||||
readBookmarks(rootMap.value(QSL("bookmark_bar")).toMap().value(QSL("children")).toList(), toolbar);
|
||||
|
||||
BookmarkItem* other = new BookmarkItem(BookmarkItem::Folder, root);
|
||||
other->setTitle(rootMap.value("other").toMap().value("name").toString());
|
||||
readBookmarks(rootMap.value("other").toMap().value("children").toList(), other);
|
||||
other->setTitle(rootMap.value(QSL("other")).toMap().value(QSL("name")).toString());
|
||||
readBookmarks(rootMap.value(QSL("other")).toMap().value(QSL("children")).toList(), other);
|
||||
|
||||
BookmarkItem* synced = new BookmarkItem(BookmarkItem::Folder, root);
|
||||
synced->setTitle(rootMap.value("synced").toMap().value("name").toString());
|
||||
readBookmarks(rootMap.value("synced").toMap().value("synced").toList(), other);
|
||||
synced->setTitle(rootMap.value(QSL("synced")).toMap().value(QSL("name")).toString());
|
||||
readBookmarks(rootMap.value(QSL("synced")).toMap().value(QSL("synced")).toList(), other);
|
||||
|
||||
return root;
|
||||
}
|
||||
@ -103,7 +103,7 @@ void ChromeImporter::readBookmarks(const QVariantList &list, BookmarkItem* paren
|
||||
|
||||
foreach (const QVariant &entry, list) {
|
||||
const QVariantMap map = entry.toMap();
|
||||
const QString typeString = map.value("type").toString();
|
||||
const QString typeString = map.value(QSL("type")).toString();
|
||||
BookmarkItem::Type type;
|
||||
|
||||
if (typeString == QLatin1String("url")) {
|
||||
@ -117,14 +117,14 @@ void ChromeImporter::readBookmarks(const QVariantList &list, BookmarkItem* paren
|
||||
}
|
||||
|
||||
BookmarkItem* item = new BookmarkItem(type, parent);
|
||||
item->setTitle(map.value("name").toString());
|
||||
item->setTitle(map.value(QSL("name")).toString());
|
||||
|
||||
if (item->isUrl()) {
|
||||
item->setUrl(QUrl::fromEncoded(map.value("url").toByteArray()));
|
||||
item->setUrl(QUrl::fromEncoded(map.value(QSL("url")).toByteArray()));
|
||||
}
|
||||
|
||||
if (map.contains("children")) {
|
||||
readBookmarks(map.value("children").toList(), item);
|
||||
if (map.contains(QSL("children"))) {
|
||||
readBookmarks(map.value(QSL("children")).toList(), item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ BookmarksManager::BookmarksManager(BrowserWindow* window, QWidget* parent)
|
||||
, ui(new Ui::BookmarksManager)
|
||||
, m_window(window)
|
||||
, m_bookmarks(mApp->bookmarks())
|
||||
, m_selectedBookmark(0)
|
||||
, m_selectedBookmark(nullptr)
|
||||
, m_blockDescriptionChangedSignal(false)
|
||||
, m_adjustHeaderSizesOnShow(true)
|
||||
{
|
||||
@ -48,7 +48,7 @@ BookmarksManager::BookmarksManager(BrowserWindow* window, QWidget* parent)
|
||||
connect(ui->tree, SIGNAL(contextMenuRequested(QPoint)), this, SLOT(createContextMenu(QPoint)));
|
||||
|
||||
// Box for editing bookmarks
|
||||
updateEditBox(0);
|
||||
updateEditBox(nullptr);
|
||||
connect(ui->title, SIGNAL(textEdited(QString)), this, SLOT(bookmarkEdited()));
|
||||
connect(ui->address, SIGNAL(textEdited(QString)), this, SLOT(bookmarkEdited()));
|
||||
connect(ui->keyword, SIGNAL(textEdited(QString)), this, SLOT(bookmarkEdited()));
|
||||
@ -90,8 +90,8 @@ void BookmarksManager::bookmarkShiftActivated(BookmarkItem* item)
|
||||
void BookmarksManager::bookmarksSelected(const QList<BookmarkItem*> &items)
|
||||
{
|
||||
if (items.size() != 1) {
|
||||
m_selectedBookmark = 0;
|
||||
updateEditBox(0);
|
||||
m_selectedBookmark = nullptr;
|
||||
updateEditBox(nullptr);
|
||||
}
|
||||
else {
|
||||
m_selectedBookmark = items.at(0);
|
||||
@ -111,7 +111,7 @@ void BookmarksManager::createContextMenu(const QPoint &pos)
|
||||
menu.addAction(tr("New Folder"), this, SLOT(addFolder()));
|
||||
menu.addAction(tr("New Separator"), this, SLOT(addSeparator()));
|
||||
menu.addSeparator();
|
||||
QAction* actDelete = menu.addAction(QIcon::fromTheme("edit-delete"), tr("Delete"));
|
||||
QAction* actDelete = menu.addAction(QIcon::fromTheme(QSL("edit-delete")), tr("Delete"));
|
||||
|
||||
connect(actNewTab, SIGNAL(triggered()), this, SLOT(openBookmarkInNewTab()));
|
||||
connect(actNewWindow, SIGNAL(triggered()), this, SLOT(openBookmarkInNewWindow()));
|
||||
@ -169,7 +169,7 @@ void BookmarksManager::addBookmark()
|
||||
{
|
||||
BookmarkItem* item = new BookmarkItem(BookmarkItem::Url);
|
||||
item->setTitle(tr("New Bookmark"));
|
||||
item->setUrl(QUrl("http://"));
|
||||
item->setUrl(QUrl(QSL("http://")));
|
||||
addBookmark(item);
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@ Name[gl]=Breeze
|
||||
Name[id]=Breeze
|
||||
Name[it]=Brezza
|
||||
Name[nl]=Breeze
|
||||
Name[nn]=Breeze
|
||||
Name[pl]=Bryza
|
||||
Name[pt]=Brisa
|
||||
Name[pt_BR]=Breeze
|
||||
@ -26,8 +27,8 @@ Name[zh_CN]=微风
|
||||
Comment=Breeze Team
|
||||
Comment[ar]=فريق نسيم
|
||||
Comment[ast]=L'equipu de Breeze
|
||||
Comment[ca]=L'equip Brisa
|
||||
Comment[ca@valencia]=L'equip Brisa
|
||||
Comment[ca]=L'equip «Breeze»
|
||||
Comment[ca@valencia]=L'equip «Breeze»
|
||||
Comment[cs]=Team Breeze
|
||||
Comment[da]=Breeze-tema
|
||||
Comment[de]=Breeze-Team
|
||||
@ -39,6 +40,7 @@ Comment[gl]=Equipo de Breeze
|
||||
Comment[id]=Tim Breeze
|
||||
Comment[it]=La squadra di Brezza
|
||||
Comment[nl]=Breeze-team
|
||||
Comment[nn]=Breeze-laget
|
||||
Comment[pl]=Zespół Bryzy
|
||||
Comment[pt]=Equipa do Brisa
|
||||
Comment[sv]=Breeze-gruppen
|
||||
|
@ -268,10 +268,7 @@ void DownloadManager::download(QWebEngineDownloadItem *downloadItem)
|
||||
QString downloadPath;
|
||||
bool openFile = false;
|
||||
|
||||
QString fileName = QFileInfo(downloadItem->path()).fileName();
|
||||
fileName = QUrl::fromPercentEncoding(fileName.toUtf8());
|
||||
// Filename may have been percent encoded and actually containing path
|
||||
fileName = QFileInfo(fileName).fileName();
|
||||
const QString fileName = QFileInfo(downloadItem->path()).fileName();
|
||||
|
||||
const bool forceAsk = downloadItem->savePageFormat() != QWebEngineDownloadItem::UnknownSaveFormat
|
||||
|| downloadItem->type() == QWebEngineDownloadItem::UserRequested;
|
||||
|
@ -230,19 +230,24 @@ void NavigationBar::setCurrentView(TabbedWebView *view)
|
||||
return;
|
||||
}
|
||||
|
||||
auto updateButton = [](ToolButton *button, QAction *action) {
|
||||
button->setEnabled(action->isEnabled());
|
||||
auto connectPageActions = [this](QWebEnginePage *page) {
|
||||
auto updateButton = [](ToolButton *button, QAction *action) {
|
||||
button->setEnabled(action->isEnabled());
|
||||
};
|
||||
auto updateBackButton = std::bind(updateButton, m_buttonBack, page->action(QWebEnginePage::Back));
|
||||
auto updateForwardButton = std::bind(updateButton, m_buttonForward, page->action(QWebEnginePage::Forward));
|
||||
|
||||
updateBackButton();
|
||||
updateForwardButton();
|
||||
|
||||
disconnect(m_backConnection);
|
||||
disconnect(m_forwardConnection);
|
||||
m_backConnection = connect(page->action(QWebEnginePage::Back), &QAction::changed, this, updateBackButton);
|
||||
m_forwardConnection = connect(page->action(QWebEnginePage::Forward), &QAction::changed, this, updateForwardButton);
|
||||
};
|
||||
auto updateBackButton = std::bind(updateButton, m_buttonBack, view->pageAction(QWebEnginePage::Back));
|
||||
auto updateForwardButton = std::bind(updateButton, m_buttonForward, view->pageAction(QWebEnginePage::Forward));
|
||||
|
||||
updateBackButton();
|
||||
updateForwardButton();
|
||||
|
||||
disconnect(m_backConnection);
|
||||
disconnect(m_forwardConnection);
|
||||
m_backConnection = connect(view->pageAction(QWebEnginePage::Back), &QAction::changed, this, updateBackButton);
|
||||
m_forwardConnection = connect(view->pageAction(QWebEnginePage::Forward), &QAction::changed, this, updateForwardButton);
|
||||
connectPageActions(view->page());
|
||||
connect(view, &TabbedWebView::pageChanged, this, connectPageActions);
|
||||
}
|
||||
|
||||
void NavigationBar::showReloadButton()
|
||||
|
@ -89,8 +89,7 @@ FalkonSchemeReply::FalkonSchemeReply(QWebEngineUrlRequestJob *job, QObject *pare
|
||||
{
|
||||
m_pageName = m_job->requestUrl().path();
|
||||
|
||||
open(QIODevice::ReadOnly);
|
||||
m_buffer.open(QIODevice::ReadWrite);
|
||||
QTimer::singleShot(0, this, &FalkonSchemeReply::loadPage);
|
||||
}
|
||||
|
||||
void FalkonSchemeReply::loadPage()
|
||||
@ -98,38 +97,40 @@ void FalkonSchemeReply::loadPage()
|
||||
if (m_loaded)
|
||||
return;
|
||||
|
||||
QTextStream stream(&m_buffer);
|
||||
stream.setCodec("UTF-8");
|
||||
QString contents;
|
||||
|
||||
if (m_pageName == QLatin1String("about")) {
|
||||
stream << aboutPage();
|
||||
}
|
||||
else if (m_pageName == QLatin1String("start")) {
|
||||
stream << startPage();
|
||||
}
|
||||
else if (m_pageName == QLatin1String("speeddial")) {
|
||||
stream << speeddialPage();
|
||||
}
|
||||
else if (m_pageName == QLatin1String("config")) {
|
||||
stream << configPage();
|
||||
}
|
||||
else if (m_pageName == QLatin1String("restore")) {
|
||||
stream << restorePage();
|
||||
contents = aboutPage();
|
||||
} else if (m_pageName == QLatin1String("start")) {
|
||||
contents = startPage();
|
||||
} else if (m_pageName == QLatin1String("speeddial")) {
|
||||
contents = speeddialPage();
|
||||
} else if (m_pageName == QLatin1String("config")) {
|
||||
contents = configPage();
|
||||
} else if (m_pageName == QLatin1String("restore")) {
|
||||
contents = restorePage();
|
||||
}
|
||||
|
||||
stream.flush();
|
||||
m_buffer.reset();
|
||||
QMutexLocker lock(&m_mutex);
|
||||
m_buffer.setData(contents.toUtf8());
|
||||
m_buffer.open(QIODevice::ReadOnly);
|
||||
lock.unlock();
|
||||
|
||||
open(QIODevice::ReadOnly);
|
||||
emit readyRead();
|
||||
|
||||
m_loaded = true;
|
||||
}
|
||||
|
||||
qint64 FalkonSchemeReply::bytesAvailable() const
|
||||
{
|
||||
QMutexLocker lock(&m_mutex);
|
||||
return m_buffer.bytesAvailable();
|
||||
}
|
||||
|
||||
qint64 FalkonSchemeReply::readData(char *data, qint64 maxSize)
|
||||
{
|
||||
loadPage();
|
||||
QMutexLocker lock(&m_mutex);
|
||||
return m_buffer.read(data, maxSize);
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
#ifndef FALKONSCHEMEHANDLER_H
|
||||
#define FALKONSCHEMEHANDLER_H
|
||||
|
||||
#include <QMutex>
|
||||
#include <QBuffer>
|
||||
#include <QIODevice>
|
||||
#include <QWebEngineUrlSchemeHandler>
|
||||
@ -60,6 +61,7 @@ private:
|
||||
QBuffer m_buffer;
|
||||
QString m_pageName;
|
||||
QWebEngineUrlRequestJob *m_job;
|
||||
mutable QMutex m_mutex;
|
||||
};
|
||||
|
||||
#endif // FALKONSCHEMEHANDLER_H
|
||||
|
@ -52,7 +52,7 @@ public:
|
||||
static QString fromPunycode(const QString &str);
|
||||
static QString escapeSqlGlobString(QString urlString);
|
||||
|
||||
static QString ensureUniqueFilename(const QString &name, const QString &appendFormat = QString("(%1)"));
|
||||
static QString ensureUniqueFilename(const QString &name, const QString &appendFormat = QSL("(%1)"));
|
||||
static QString getFileNameFromUrl(const QUrl &url);
|
||||
static QString filterCharsFromFilename(const QString &name);
|
||||
|
||||
|
@ -16,7 +16,7 @@ add_executable(falkon ${SRCS})
|
||||
target_link_libraries(falkon FalkonPrivate)
|
||||
|
||||
if (APPLE)
|
||||
set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/main/Info.plist)
|
||||
set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
|
||||
set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.falkon")
|
||||
set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Falkon")
|
||||
install(FILES lib/data/icons/exeicons/falkon.icns DESTINATION ${BUNDLE_INSTALL_DIR}/falkon.app/Contents/Resources)
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Desprazamento automático
|
||||
Name[id]=AutoScroll
|
||||
Name[it]=Scorrimento automatico
|
||||
Name[nl]=Auto-schuiven
|
||||
Name[nn]=Autorulling
|
||||
Name[pl]=Samoprzewijanie
|
||||
Name[pt]=Deslocamento Automático
|
||||
Name[sv]=Rulla automatiskt
|
||||
@ -20,8 +21,8 @@ Name[uk]=Автогортання
|
||||
Name[x-test]=xxAutoScrollxx
|
||||
Name[zh_CN]=自动滚动
|
||||
Comment=Provides support for autoscroll with middle mouse button
|
||||
Comment[ca]=Proporciona suport per al desplaçament automàtic amb el botó mig del ratolí
|
||||
Comment[ca@valencia]=Proporciona suport per al desplaçament automàtic amb el botó mig del ratolí
|
||||
Comment[ca]=Proporciona suport per al desplaçament automàtic amb el botó del mig del ratolí
|
||||
Comment[ca@valencia]=Proporciona suport per al desplaçament automàtic amb el botó del mig del ratolí
|
||||
Comment[cs]=Poskytuje podporu pro automatický posun pomocí prostředního tlačítka
|
||||
Comment[da]=Giver understøttelse af autorul med den midterste museknap
|
||||
Comment[en_GB]=Provides support for autoscroll with middle mouse button
|
||||
@ -32,6 +33,7 @@ Comment[gl]=Fornece a funcionalidade de desprazamento automático co botón cent
|
||||
Comment[id]=Menyediakan dukungan untuk gulir otomatis dengan tombol tengah mouse
|
||||
Comment[it]=Fornisce il supporto allo scorrimento automatico con il pulsante centrale del mouse
|
||||
Comment[nl]=Bied ondersteuning voor auto-schuiven met middelste muisknop
|
||||
Comment[nn]=Gjev støtte for autorulling med midtknappen på musa
|
||||
Comment[pl]=Zapewnia obsługę samoprzewijania na środkowy przycisk myszy
|
||||
Comment[pt]=Oferece o suporte para o deslocamento automático com o botão do meio do rato
|
||||
Comment[sv]=Tillhandahåller stöd för automatisk rullning med musens mittenknapp
|
||||
|
@ -1,7 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Name=Flash Cookie Manager
|
||||
Name[ca]=Gestor de galetes Flash
|
||||
Name[ca@valencia]=Gestor de galetes Flash
|
||||
Name[ca]=Gestor de les galetes Flash
|
||||
Name[ca@valencia]=Gestor de les galetes Flash
|
||||
Name[cs]=Správce cookies pro Flash
|
||||
Name[da]=Håndtering af flash-cookie
|
||||
Name[de]=Flash-Cookie-Verwaltung
|
||||
@ -13,6 +13,7 @@ Name[gl]=Xestor de cookies flash
|
||||
Name[id]=Flash Cookie Manager
|
||||
Name[it]=Gestore dei cookie in flash
|
||||
Name[nl]=Cookiebeheerder van Flash
|
||||
Name[nn]=Handsamar for Flash-infokapslar
|
||||
Name[pl]=Zarządzanie ciasteczkami Flash
|
||||
Name[pt]=Gestor de 'Cookies' do Flash
|
||||
Name[sv]=Flash kakhanterare
|
||||
@ -20,8 +21,8 @@ Name[uk]=Керування куками Flash
|
||||
Name[x-test]=xxFlash Cookie Managerxx
|
||||
Name[zh_CN]=Flash Cookie 管理器
|
||||
Comment=You can easily view/delete flash cookies stored on your computer. This is a solution for having more privacy.
|
||||
Comment[ca]=Podeu veure/eliminar fàcilment les galetes Flash emmagatzemades a l'ordinador. Aquesta és una solució per tenir més privacitat.
|
||||
Comment[ca@valencia]=Podeu veure/eliminar fàcilment les galetes Flash emmagatzemades a l'ordinador. Aquesta és una solució per tindre més privacitat.
|
||||
Comment[ca]=Podeu veure/eliminar fàcilment les galetes Flash emmagatzemades a l'ordinador. Aquesta és una solució per a tenir més privacitat.
|
||||
Comment[ca@valencia]=Podeu veure/eliminar fàcilment les galetes Flash emmagatzemades a l'ordinador. Aquesta és una solució per a tindre més privacitat.
|
||||
Comment[cs]=Můžete snadno prohlížet/mazat cookies pro flash uložené na vašem počítači. Toto je řešení pro větší soukromí.
|
||||
Comment[da]=Du kan let vise/slette flash-cookies som er lagret på din computer. En løsning til mere privatliv.
|
||||
Comment[en_GB]=You can easily view/delete flash cookies stored on your computer. This is a solution for having more privacy.
|
||||
@ -32,6 +33,7 @@ Comment[gl]=Pode ver e eliminar facilmente cookies flash almacenadas no seu comp
|
||||
Comment[id]=Kamu bisa menampilkan/menghapus cookies flash yang tersimpan pada komputermu. Ini adalah sebuah solusi untuk membuat lebih privasi.
|
||||
Comment[it]=Puoi vedere o cancellare in maniera semplice i cookie in flash immagazzinati nel tuo computer. È una soluzione per avere una maggior privacy.
|
||||
Comment[nl]=U kunt gemakkelijk cookies van flash opgeslagen op uw computer bekijken/verwijderen. Dit is een oplossing om meer privacy te hebben.
|
||||
Comment[nn]=Du kan visa og sletta lagra Flash-infokapslar. Dette styrkjer personvernet.
|
||||
Comment[pl]=Możesz łatwo obejrzeć/usunąć ciasteczka flash przechowywane na twoim komputerze. Jest to rozwiązanie umożliwiające większą prywatność.
|
||||
Comment[pt]=Poderá ver/apagar facilmente os 'cookies' do Flash gravados no seu computador. Esta é uma solução para ter mais privacidade.
|
||||
Comment[sv]=Det går enkelt att titta på eller ta bort Flash kakor lagrade på datorn. Det är en lösning på integritetsproblem.
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=Contrasinais do chaveiro de Gnome
|
||||
Name[id]=Gnome Keyring Passwords
|
||||
Name[it]=Portachiavi per le chiavi di Gnome
|
||||
Name[nl]=GNOME-sleutelbos wachtwoorden
|
||||
Name[nn]=Passord for Gnome-nøkkelring
|
||||
Name[pl]=Hasła pęku kluczy Gnome
|
||||
Name[pt]=Senhas no Porta-Chaves do Gnome
|
||||
Name[sv]=Gnome-nyckelring lösenord
|
||||
@ -19,8 +20,8 @@ Name[uk]=Паролі сховища ключів Gnome
|
||||
Name[x-test]=xxGnome Keyring Passwordsxx
|
||||
Name[zh_CN]=Gnome 钥匙链密码
|
||||
Comment=Provides support for storing passwords in gnome-keyring
|
||||
Comment[ca]=Proporciona suport per emmagatzemar contrasenyes a l'anell de claus de Gnome
|
||||
Comment[ca@valencia]=Proporciona suport per emmagatzemar contrasenyes a l'anell de claus de Gnome
|
||||
Comment[ca]=Proporciona suport per emmagatzemar les contrasenyes a l'anell de claus de Gnome
|
||||
Comment[ca@valencia]=Proporciona suport per emmagatzemar les contrasenyes a l'anell de claus de Gnome
|
||||
Comment[cs]=Poskytuje podporu pro ukládání hesel pomocí gnome-keyring
|
||||
Comment[da]=Giver understøttelse af lagring af adgangskoder i gnome-nøglring
|
||||
Comment[en_GB]=Provides support for storing passwords in gnome-keyring
|
||||
@ -31,6 +32,7 @@ Comment[gl]=Permite almacenar contrasinais en gnome-keyring
|
||||
Comment[id]=Menyediakan dukungan untuk menyimpan sandi dalam gnome-keyring
|
||||
Comment[it]=Fornisce un supporto all'immagazzinamento delle password nel portachiavi di Gnome
|
||||
Comment[nl]=Biedt ondersteuning voor opslaan van GNOME-sleutelbos wachtwoorden
|
||||
Comment[nn]=Gjev støtte for lagring av passord i Gnome-nøkkelringen
|
||||
Comment[pl]=Zapewnia obsługę przechowywania haseł w pęku kluczy gnome
|
||||
Comment[pt]=Oferece o suporte para gravar as senhas no 'gnome-keyring'
|
||||
Comment[sv]=Tillhandahåller stöd för att lagra lösenord i Gnome-nyckelring
|
||||
|
@ -13,15 +13,16 @@ Name[gl]=GreaseMonkey
|
||||
Name[id]=GreaseMonkey
|
||||
Name[it]=GreaseMonkey
|
||||
Name[nl]=GreaseMonkey
|
||||
Name[nn]=GreaseMonkey
|
||||
Name[pl]=GreaseMonkey
|
||||
Name[pt]=GreaseMonkey
|
||||
Name[sv]=GreaseMonkey
|
||||
Name[uk]=GreaseMonkey
|
||||
Name[x-test]=xxGreaseMonkeyxx
|
||||
Name[zh_CN]=GreaseMonkey
|
||||
Name[zh_CN]=油猴
|
||||
Comment=Provides support for userscripts
|
||||
Comment[ca]=Proporciona suport per scripts d'usuari
|
||||
Comment[ca@valencia]=Proporciona suport per scripts d'usuari
|
||||
Comment[ca]=Proporciona suport per als scripts d'usuari
|
||||
Comment[ca@valencia]=Proporciona suport per als scripts d'usuari
|
||||
Comment[cs]=Poskytuje podporu pro uživatelské skripty
|
||||
Comment[da]=Giver understøttelse af brugerscripts
|
||||
Comment[en_GB]=Provides support for userscripts
|
||||
@ -32,6 +33,7 @@ Comment[gl]=Permite scripts de usuario
|
||||
Comment[id]=Menyediakan dukungan untuk skrip pengguna
|
||||
Comment[it]=Fornisce un supporto agli script utente
|
||||
Comment[nl]=Biedt ondersteuning voor scripts van gebruikers
|
||||
Comment[nn]=Gjev støtte for brukarskript
|
||||
Comment[pl]=Zapewnia obsługę dla skryptów użytkownika
|
||||
Comment[pt]=Oferece o suporte para programas do utilizador
|
||||
Comment[sv]=Tillhandahåller stöd för användarskript
|
||||
|
@ -11,14 +11,15 @@ Name[gl]=Integración coas infraestruturas de KDE
|
||||
Name[id]=KDE Frameworks Integration
|
||||
Name[it]=Integrazione con KDE Frameworks
|
||||
Name[nl]=KDE Frameworks integratie
|
||||
Name[nn]=Integrering med KDE Frameworks
|
||||
Name[pt]=Integração com as Plataformas do KDE
|
||||
Name[sv]=Integration med KDE Ramverk
|
||||
Name[uk]=Інтерграція із KDE Frameworks
|
||||
Name[x-test]=xxKDE Frameworks Integrationxx
|
||||
Name[zh_CN]=KDE 框架集成
|
||||
Comment=Provides support for KIO and storing passwords in KWallet
|
||||
Comment[ca]=Proporciona suport pel KIO i per emmagatzemar contrasenyes al KWallet
|
||||
Comment[ca@valencia]=Proporciona suport pel KIO i per emmagatzemar contrasenyes al KWallet
|
||||
Comment[ca]=Proporciona suport pel KIO i per emmagatzemar les contrasenyes al KWallet
|
||||
Comment[ca@valencia]=Proporciona suport pel KIO i per emmagatzemar les contrasenyes al KWallet
|
||||
Comment[cs]=Poskytuje podporu pro KIO a ukládání hesel v Kwallet
|
||||
Comment[da]=Giver understøttelse af KIO og lagring af adgangskoder i KWallet
|
||||
Comment[en_GB]=Provides support for KIO and storing passwords in KWallet
|
||||
@ -28,6 +29,7 @@ Comment[gl]=Fornece compatibilidade con KIO e permite almacenar contrasinais en
|
||||
Comment[id]=Menyediakan dukungan untuk KIO dan menyimpan sandi dalam KWallet
|
||||
Comment[it]=Fornisce un supporto per KIO e per l'immagazzinamento delle password in KWallet
|
||||
Comment[nl]=Biedt ondersteuning voor KIO en opslaan van wachtwoorden in KWallet
|
||||
Comment[nn]=Gjev støtte for KIO og lagring av passord i KWallet
|
||||
Comment[pt]=Oferece o suporte para o KIO e para guardar as senhas no KWallet
|
||||
Comment[sv]=Tillhandahåller stöd KIO och för att lagra lösenord i plånboken
|
||||
Comment[uk]=Забезпечує підтримку засобів введення-виведення KIO і зберігання паролів у KWallet
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Xestos do rato
|
||||
Name[id]=Mouse Gestures
|
||||
Name[it]=Gesti del mouse
|
||||
Name[nl]=Muisgebaren
|
||||
Name[nn]=Muserørsler
|
||||
Name[pl]=Gesty myszy
|
||||
Name[pt]=Gestos do Rato
|
||||
Name[sv]=Musgester
|
||||
@ -20,8 +21,8 @@ Name[uk]=Керування мишею
|
||||
Name[x-test]=xxMouse Gesturesxx
|
||||
Name[zh_CN]=鼠标手势
|
||||
Comment=Provides support for navigating in webpages by mouse gestures
|
||||
Comment[ca]=Proporciona suport per navegar per les pàgines web amb gestos del ratolí
|
||||
Comment[ca@valencia]=Proporciona suport per navegar per les pàgines web amb gestos del ratolí
|
||||
Comment[ca]=Proporciona suport per a navegar per les pàgines web amb els gestos del ratolí
|
||||
Comment[ca@valencia]=Proporciona suport per a navegar per les pàgines web amb els gestos del ratolí
|
||||
Comment[cs]=Poskytuje podporu pro procházení webových stránek pomocí gest myší
|
||||
Comment[da]=Giver understøttelse af navigering på websider med musebevægelser
|
||||
Comment[de]=Unterstützung für die Navigation auf Webseiten durch Mausgesten
|
||||
@ -33,6 +34,7 @@ Comment[gl]=Permite navegar por páxinas web con acenos co rato
|
||||
Comment[id]=Menyediakan dukungan untuk menavigasi dalam halaman web dengan pergerakan mouse
|
||||
Comment[it]=Fornisce un supporto alla navigazione nelle pagine web per mezzo di gesti del mouse
|
||||
Comment[nl]=Biedt ondersteuning voor navigeren in webpagina's door muisgebaren
|
||||
Comment[nn]=Gjev støtte for muserørsler for nettsidenavigering
|
||||
Comment[pl]=Zapewnia obsługę poruszania się po stronach przy użyciu gestów myszy
|
||||
Comment[pt]=Oferece o suporte para navegar nas páginas Web com gestos do rato
|
||||
Comment[sv]=Tillhandahåller stöd för att navigera på webbsidor med musgester
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=PIM
|
||||
Name[id]=PIM
|
||||
Name[it]=PIM
|
||||
Name[nl]=PIM
|
||||
Name[nn]=PIM
|
||||
Name[pl]=ZIO
|
||||
Name[pt]=PIM
|
||||
Name[sv]=Personlig information
|
||||
@ -20,8 +21,8 @@ Name[uk]=Керування інформацією
|
||||
Name[x-test]=xxPIMxx
|
||||
Name[zh_CN]=个人信息管理
|
||||
Comment=Adds ability for Falkon to store some personal data
|
||||
Comment[ca]=Afegeix la possibilitat del Falkon per emmagatzemar diverses dades personals
|
||||
Comment[ca@valencia]=Afig la possibilitat del Falkon per emmagatzemar diverses dades personals
|
||||
Comment[ca]=Afegeix la possibilitat que el Falkon emmagatzemi diverses dades personals
|
||||
Comment[ca@valencia]=Afig la possibilitat que el Falkon emmagatzeme diverses dades personals
|
||||
Comment[cs]=Přidává Falkonu schopnost ukládat nějaká osobní data
|
||||
Comment[da]=Tilføjer mulighed for at Falkon kan lagre nogle personlige data
|
||||
Comment[en_GB]=Adds ability for Falkon to store some personal data
|
||||
@ -32,6 +33,7 @@ Comment[gl]=Permite a Falkon almacenar algúns datos persoais
|
||||
Comment[id]=Menambah kemampuan terhadap Falkon untuk menyimpan beberapa data pribadi
|
||||
Comment[it]=Aggiunge a Falkon la capacità di immagazzinare alcuni dati personali
|
||||
Comment[nl]=Biedt mogelijkheid voor Falkon om enige persoonlijke gegevens op te slaan
|
||||
Comment[nn]=Gjer det mogleg for Falkon å lagra nokre persondata
|
||||
Comment[pl]=Dodaje możliwość przechowywania pewnych danych osobistych
|
||||
Comment[pt]=Adiciona ao Falkon a capacidade de guardar alguns dados pessoais
|
||||
Comment[sv]=Lägger till möjlighet för Falkon att lagra viss personlig information
|
||||
|
@ -19,6 +19,10 @@
|
||||
// Make "signals:", "slots:" visible as access specifiers
|
||||
#define QT_ANNOTATE_ACCESS_SPECIFIER(a) __attribute__((annotate(#a)))
|
||||
|
||||
// PYSIDE-711
|
||||
#include <QHstsPolicy>
|
||||
#include <QWebEngineContextMenuData>
|
||||
|
||||
// 3rdparty
|
||||
#include "lineedit.h"
|
||||
#include "squeezelabelv1.h"
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Iconas da barra de estado
|
||||
Name[id]=Ikon BilahStatus
|
||||
Name[it]=Icone della barra di stato
|
||||
Name[nl]=Pictogrammen op de statusbalk
|
||||
Name[nn]=Statuslinje-ikon
|
||||
Name[pl]=Ikony paska stanu
|
||||
Name[pt]=Ícones da Barra de Estado
|
||||
Name[sv]=Ikoner i statusraden
|
||||
@ -32,6 +33,7 @@ Comment[gl]=Engade iconas adicionais e un trebello de ampliación á barra de es
|
||||
Comment[id]=Menambah tambahan ikon dan perbesaran widget untuk bilah status
|
||||
Comment[it]=Aggiunge alla barra di stato alcune icone aggiuntive ed uno strumento di ingrandimento
|
||||
Comment[nl]=Voegt extra pictogrammen en zoomwidget toe aan de statusbalk
|
||||
Comment[nn]=Leggjer til fleire ikon og sideforstørring via statuslinja
|
||||
Comment[pl]=Dodaje dodatkowe ikony i element do powiększania na pasku stanu
|
||||
Comment[pt]=Adiciona ícones extra e um item de ampliação à barra de estado
|
||||
Comment[sv]=Lägger till ytterligare ikoner och en zoomkomponent i statusraden
|
||||
|
@ -31,8 +31,8 @@ SBI_NetworkIconDialog::SBI_NetworkIconDialog(QWidget* parent)
|
||||
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->addButton->setIcon(QIcon::fromTheme("document-new", QIcon(":sbi/data/add.png")));
|
||||
ui->removeButton->setIcon(QIcon::fromTheme("edit-delete", QIcon(":sbi/data/remove.png")));
|
||||
ui->addButton->setIcon(QIcon::fromTheme(QLatin1String("document-new"), QIcon(QLatin1String(":sbi/data/add.png"))));
|
||||
ui->removeButton->setIcon(QIcon::fromTheme(QLatin1String("edit-delete"), QIcon(QLatin1String(":sbi/data/remove.png"))));
|
||||
|
||||
const QHash<QString, SBI_NetworkProxy*> &proxies = SBINetManager->proxies();
|
||||
|
||||
|
@ -23,12 +23,12 @@
|
||||
|
||||
#include <QSettings>
|
||||
|
||||
SBI_NetworkManager* SBI_NetworkManager::s_instance = 0;
|
||||
SBI_NetworkManager* SBI_NetworkManager::s_instance = nullptr;
|
||||
|
||||
SBI_NetworkManager::SBI_NetworkManager(const QString &settingsPath, QObject* parent)
|
||||
: QObject(parent)
|
||||
, m_settingsFile(settingsPath + QL1S("/networkicon.ini"))
|
||||
, m_currentProxy(0)
|
||||
, m_currentProxy(nullptr)
|
||||
{
|
||||
s_instance = this;
|
||||
|
||||
@ -58,8 +58,8 @@ void SBI_NetworkManager::loadSettings()
|
||||
m_proxies[group] = proxy;
|
||||
}
|
||||
|
||||
const QString currentName = settings.value("CurrentProxy", QString()).toString();
|
||||
m_currentProxy = m_proxies.contains(currentName) ? m_proxies.value(currentName) : 0;
|
||||
const QString currentName = settings.value(QSL("CurrentProxy"), QString()).toString();
|
||||
m_currentProxy = m_proxies.contains(currentName) ? m_proxies.value(currentName) : nullptr;
|
||||
|
||||
applyCurrentProxy();
|
||||
}
|
||||
@ -77,9 +77,9 @@ SBI_NetworkProxy* SBI_NetworkManager::currentProxy() const
|
||||
void SBI_NetworkManager::setCurrentProxy(const QString &name)
|
||||
{
|
||||
QSettings settings(m_settingsFile, QSettings::IniFormat);
|
||||
settings.setValue("CurrentProxy", name);
|
||||
settings.setValue(QSL("CurrentProxy"), name);
|
||||
|
||||
m_currentProxy = m_proxies.contains(name) ? m_proxies.value(name) : 0;
|
||||
m_currentProxy = m_proxies.contains(name) ? m_proxies.value(name) : nullptr;
|
||||
applyCurrentProxy();
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Xestor de lapelas
|
||||
Name[id]=Pengelola Tab
|
||||
Name[it]=Gestore delle schede
|
||||
Name[nl]=Tabbladbeheerder
|
||||
Name[nn]=Fanehandsamar
|
||||
Name[pl]=Zarządzanie kartami
|
||||
Name[pt]=Gestor de Páginas
|
||||
Name[sv]=Flikhanterare
|
||||
@ -20,8 +21,8 @@ Name[uk]=Керування вкладками
|
||||
Name[x-test]=xxTab Managerxx
|
||||
Name[zh_CN]=标签页管理器
|
||||
Comment=Adds ability to managing tabs and windows
|
||||
Comment[ca]=Afegeix la possibilitat de gestionar pestanyes i finestres
|
||||
Comment[ca@valencia]=Afig la possibilitat de gestionar pestanyes i finestres
|
||||
Comment[ca]=Afegeix la possibilitat de gestionar les pestanyes i finestres
|
||||
Comment[ca@valencia]=Afig la possibilitat de gestionar les pestanyes i finestres
|
||||
Comment[cs]=Přidává schopnost správy karet a oken
|
||||
Comment[da]=Tilføjer mulighed for at håndtere faneblade og vinduer
|
||||
Comment[de]=Verwaltung von Unterfenstern und Fenstern
|
||||
@ -33,6 +34,7 @@ Comment[gl]=Permite xestionar lapelas e xanelas
|
||||
Comment[id]=Menambah kemampuan untuk mengelola tab dan jendela
|
||||
Comment[it]=Aggiunge la capacità di gestione delle schede e delle finestre
|
||||
Comment[nl]=Voegt mogelijkheid toe om tabbladen en vensters te beheren
|
||||
Comment[nn]=Gjer det mogleg å handtera faner og vindauge
|
||||
Comment[pl]=Dodaje możliwość zarządzania kartami i oknami
|
||||
Comment[pt]=Adiciona a capacidade para gerir páginas e janelas
|
||||
Comment[sv]=Lägger till möjlighet att hantera flikar och fönster
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Complemento de exemplo
|
||||
Name[id]=Contoh Plugin
|
||||
Name[it]=Estensione di esempio
|
||||
Name[nl]=Voorbeeld plug-in
|
||||
Name[nn]=Eksempel-tillegg
|
||||
Name[pl]=Przykładowa wtyczka
|
||||
Name[pt]='Plugin' de Exemplo
|
||||
Name[sv]=Exempelinsticksprogram
|
||||
@ -20,8 +21,8 @@ Name[uk]=Приклад додатка
|
||||
Name[x-test]=xxExample Pluginxx
|
||||
Name[zh_CN]=示例插件
|
||||
Comment=Very simple minimal plugin example
|
||||
Comment[ca]=Exemple molt senzill de connector mínim
|
||||
Comment[ca@valencia]=Exemple molt senzill de connector mínim
|
||||
Comment[ca]=Exemple molt senzill d'un connector mínim
|
||||
Comment[ca@valencia]=Exemple molt senzill d'un connector mínim
|
||||
Comment[cs]=Jednoduchá ukázka modulu
|
||||
Comment[da]=Meget simpelt minimalt plugin eksempel
|
||||
Comment[de]=Einfaches minimales Beispielmodul
|
||||
@ -33,6 +34,7 @@ Comment[gl]=Exemplo de complemento mínimo moi simple
|
||||
Comment[id]=Contoh plugin minimal yang sangat sederhana
|
||||
Comment[it]=Estensione di esempio molto semplice e minimale
|
||||
Comment[nl]=Zeer eenvoudige minimaal voorbeeld voor plug-in
|
||||
Comment[nn]=Veldig enkelt og lite eksempel-tillegg
|
||||
Comment[pl]=Bardzo prosty minimalny przykład wtyczki
|
||||
Comment[pt]='Plugin' de exemplo muito simples e minimalista
|
||||
Comment[sv]=Mycket enkelt minimalt exempel på ett insticksprogram
|
||||
|
@ -13,12 +13,13 @@ Name[gl]=Lapelas verticais
|
||||
Name[id]=Tab Tegak
|
||||
Name[it]=Schede verticali
|
||||
Name[nl]=Verticale tabbladen
|
||||
Name[nn]=Loddrette faner
|
||||
Name[pl]=Pionowe karty
|
||||
Name[pt]=Páginas Verticais
|
||||
Name[sv]=Vertikala flikar
|
||||
Name[uk]=Вертикальні вкладки
|
||||
Name[x-test]=xxVertical Tabsxx
|
||||
Name[zh_CN]=垂直选项卡
|
||||
Name[zh_CN]=垂直标签页
|
||||
Comment=Adds ability to show tabs in sidebar
|
||||
Comment[ca]=Afegeix la possibilitat de mostrar les pestanyes a la barra lateral
|
||||
Comment[ca@valencia]=Afig la possibilitat de mostrar les pestanyes a la barra lateral
|
||||
@ -32,12 +33,13 @@ Comment[gl]=Permite mostrar lapelas na barra lateral
|
||||
Comment[id]=Menambah kemampuan untuk menampilkan tab dalam bilah sisi
|
||||
Comment[it]=Aggiunge la capacità di mostrare le schede nella barra laterale
|
||||
Comment[nl]=Voegt mogelijkheid toe om tabbladen in de zijbalk te tonen
|
||||
Comment[nn]=Gjer det mogleg å visa faner i sidestolpen
|
||||
Comment[pl]=Dodaje możliwość pokazywania kart na pasku bocznym
|
||||
Comment[pt]=Adiciona a capacidade de mostrar as páginas na barra lateral
|
||||
Comment[sv]=Lägger till möjlighet att visa flikar i sidorader
|
||||
Comment[uk]=Додає можливість показу вкладок на бічній панелі
|
||||
Comment[x-test]=xxAdds ability to show tabs in sidebarxx
|
||||
Comment[zh_CN]=添加在边栏中显示选项卡的功能
|
||||
Comment[zh_CN]=添加在边栏中显示标签页的功能
|
||||
|
||||
Icon=:verticaltabs/data/icon.svg
|
||||
Type=Service
|
||||
|
@ -386,6 +386,14 @@ void TabTreeView::addMenuActions(QMenu *menu, const QModelIndex &index) const
|
||||
tab->closeTab();
|
||||
}
|
||||
});
|
||||
m->addAction(tr("Unload Tree"), this, [=]() {
|
||||
reverseTraverse(pindex, [&](const QModelIndex &index) {
|
||||
WebTab *tab = index.data(TabModel::WebTabRole).value<WebTab*>();
|
||||
if (tab && tab->isRestored()) {
|
||||
tab->unload();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
m->addSeparator();
|
||||
|
@ -18,5 +18,6 @@ endfunction()
|
||||
|
||||
install_python_script(hellopython)
|
||||
install_python_script(runaction)
|
||||
install_python_script(middleclickloader)
|
||||
|
||||
install_qml_script(helloqml)
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=Ola, Python!
|
||||
Name[id]=Hello Python
|
||||
Name[it]=Hello Python
|
||||
Name[nl]=Hallo Python
|
||||
Name[nn]=Hei-Python
|
||||
Name[pl]=Witaj Python
|
||||
Name[pt]=Olá em Python
|
||||
Name[sv]=Hej Python
|
||||
@ -31,6 +32,7 @@ Comment[gl]=Extensión de Python de exemplo
|
||||
Comment[id]=Contoh ekstensi Python
|
||||
Comment[it]=Estensione di esempio in Python
|
||||
Comment[nl]=Voorbeeld Python-extensie
|
||||
Comment[nn]=Eksempel på Python-tillegg
|
||||
Comment[pl]=Przykładowe rozszerzenie Python
|
||||
Comment[pt]=Extensão de exemplo em Python
|
||||
Comment[sv]=Exempel på Python-utökning
|
||||
|
11
src/scripts/middleclickloader/Messages.sh
Normal file
11
src/scripts/middleclickloader/Messages.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#! /bin/sh
|
||||
|
||||
XGETTEXT_FLAGS_PYTHON="\
|
||||
--copyright-holder=This_file_is_part_of_KDE \
|
||||
--msgid-bugs-address=http://bugs.kde.org \
|
||||
--from-code=UTF-8 \
|
||||
-L Python \
|
||||
-ki18n:1 -ki18np:1,2 \
|
||||
"
|
||||
|
||||
$XGETTEXT_PROGRAM $XGETTEXT_FLAGS_PYTHON `find . -name '*.py'` -o $podir/falkon_middleclickloader.pot
|
51
src/scripts/middleclickloader/__init__.py
Normal file
51
src/scripts/middleclickloader/__init__.py
Normal file
@ -0,0 +1,51 @@
|
||||
# ============================================================
|
||||
# MiddleClickLoader - plugin for Falkon
|
||||
# Copyright (C) 2018 Juraj Oravec <sgd.orava@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# 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
|
||||
from PySide2 import QtCore
|
||||
from middleclickloader.mcl_handler import MCL_Handler
|
||||
|
||||
|
||||
class MCL_Plugin(Falkon.PluginInterface, QtCore.QObject):
|
||||
handler = None
|
||||
|
||||
def init(self, state, settingsPath):
|
||||
plugins = Falkon.MainApplication.instance().plugins()
|
||||
plugins.registerAppEventHandler(Falkon.PluginProxy.MousePressHandler, self)
|
||||
|
||||
self.handler = MCL_Handler(settingsPath)
|
||||
|
||||
def unload(self):
|
||||
del self.handler
|
||||
self.handler = None
|
||||
|
||||
def testPlugin(self):
|
||||
return True
|
||||
|
||||
def mousePress(self, type, obj, event):
|
||||
if type == Falkon.Qz.ON_WebView:
|
||||
return self.handler.mousePress(obj, event)
|
||||
|
||||
return False
|
||||
|
||||
def showSettings(self, parent):
|
||||
pass
|
||||
self.handler.showSettings(parent)
|
||||
|
||||
|
||||
Falkon.registerPlugin(MCL_Plugin())
|
90
src/scripts/middleclickloader/mcl_handler.py
Normal file
90
src/scripts/middleclickloader/mcl_handler.py
Normal file
@ -0,0 +1,90 @@
|
||||
# ============================================================
|
||||
# MiddleClickLoader - plugin for Falkon
|
||||
# Copyright (C) 2018 Juraj Oravec <sgd.orava@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# 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
|
||||
from PySide2 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from middleclickloader.mcl_loadmode import MCL_LoadMode
|
||||
from middleclickloader.mcl_settings import MCL_Settings
|
||||
|
||||
|
||||
class MCL_Handler(QtCore.QObject):
|
||||
settingsFile = ""
|
||||
loaded = False
|
||||
|
||||
onlyValidUrl = False
|
||||
loadMode = 0
|
||||
|
||||
def __init__(self, settingsPath, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
self.settingsFile = settingsPath + "/extensions.ini"
|
||||
|
||||
def loadSettings(self):
|
||||
settings = QtCore.QSettings(self.settingsFile, QtCore.QSettings.IniFormat)
|
||||
settings.beginGroup("MiddleClickLoader")
|
||||
self.loadMode = int(settings.value("LoadMode", MCL_LoadMode.NEW_TAB))
|
||||
self.onlyValidUrl = bool(settings.value("OnlyValidUrl", True))
|
||||
settings.endGroup()
|
||||
|
||||
self.loaded = True
|
||||
|
||||
def showSettings(self, parent=None):
|
||||
self.settings = MCL_Settings(self.settingsFile, parent)
|
||||
self.settings.accepted.connect(self.loadSettings)
|
||||
|
||||
self.settings.exec_()
|
||||
|
||||
def mousePress(self, view, event):
|
||||
if not self.loaded:
|
||||
self.loadSettings()
|
||||
|
||||
if event.buttons() == QtCore.Qt.MiddleButton:
|
||||
res = view.page().hitTestContent(event.pos())
|
||||
|
||||
if res.isContentEditable() or not res.linkUrl().isEmpty():
|
||||
return False
|
||||
|
||||
selectionClipboard = QtWidgets.QApplication.clipboard().text(QtGui.QClipboard.Selection)
|
||||
|
||||
if selectionClipboard:
|
||||
guessedUrl = QtCore.QUrl.fromUserInput(selectionClipboard)
|
||||
isValid = view.isUrlValid(guessedUrl)
|
||||
|
||||
if self.onlyValidUrl and not isValid:
|
||||
return False
|
||||
|
||||
if not isValid:
|
||||
searchManager = Falkon.MainApplication.instance().searchEnginesManager()
|
||||
engine = searchManager.defaultEngine()
|
||||
req = searchManager.searchResult(engine, selectionClipboard)
|
||||
guessedUrl = req.url()
|
||||
|
||||
return self.loadUrl(view, guessedUrl)
|
||||
return False
|
||||
|
||||
def loadUrl(self, view, url):
|
||||
if self.loadMode == MCL_LoadMode.NEW_TAB:
|
||||
view.openUrlInNewTab(url, Falkon.Qz.NT_NotSelectedTab)
|
||||
elif self.loadMode == MCL_LoadMode.CURRENT_TAB:
|
||||
view.load(url)
|
||||
elif self.loadMode == MCL_LoadMode.NEW_WINDOW:
|
||||
Falkon.MainApplication.instance().createWindow(Falkon.Qz.BW_NewWindow, url)
|
||||
else:
|
||||
return False
|
||||
return True
|
25
src/scripts/middleclickloader/mcl_loadmode.py
Normal file
25
src/scripts/middleclickloader/mcl_loadmode.py
Normal file
@ -0,0 +1,25 @@
|
||||
# ============================================================
|
||||
# MiddleClickLoader - plugin for Falkon
|
||||
# Copyright (C) 2018 Juraj Oravec <sgd.orava@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# ============================================================
|
||||
|
||||
from enum import IntEnum
|
||||
|
||||
|
||||
class MCL_LoadMode(IntEnum):
|
||||
NEW_TAB = 0
|
||||
CURRENT_TAB = 1
|
||||
NEW_WINDOW = 2
|
69
src/scripts/middleclickloader/mcl_settings.py
Normal file
69
src/scripts/middleclickloader/mcl_settings.py
Normal file
@ -0,0 +1,69 @@
|
||||
# ============================================================
|
||||
# MiddleClickLoader - plugin for Falkon
|
||||
# Copyright (C) 2018 Juraj Oravec <sgd.orava@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# 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 os
|
||||
from PySide2 import QtCore, QtWidgets, QtUiTools
|
||||
from middleclickloader.i18n import i18n
|
||||
from middleclickloader.mcl_loadmode import MCL_LoadMode
|
||||
|
||||
|
||||
class MCL_Settings(QtWidgets.QDialog):
|
||||
settingsFile = ""
|
||||
ui = None
|
||||
|
||||
def __init__(self, settingsFile, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
self.settingsFile = settingsFile
|
||||
|
||||
file = QtCore.QFile(os.path.join(os.path.dirname(__file__), "mcl_settings.ui"))
|
||||
file.open(QtCore.QFile.ReadOnly)
|
||||
self.ui = QtUiTools.QUiLoader().load(file, self)
|
||||
file.close()
|
||||
|
||||
layout = QtWidgets.QVBoxLayout(self)
|
||||
layout.addWidget(self.ui)
|
||||
self.setLayout(layout)
|
||||
|
||||
self.setWindowTitle(i18n("MiddleClickLoader Setting"))
|
||||
self.ui.label_header.setText("<h2>{}</h2>".format(i18n("MiddleClickLoader")))
|
||||
self.ui.label_loadMode.setText(i18n("Open url in:"))
|
||||
self.ui.onlyValidUrl.setText(i18n("Use only valid url"))
|
||||
|
||||
self.ui.loadMode.addItem(i18n("New Tab"), MCL_LoadMode.NEW_TAB)
|
||||
self.ui.loadMode.addItem(i18n("Current Tab"), MCL_LoadMode.CURRENT_TAB)
|
||||
self.ui.loadMode.addItem(i18n("New Window"), MCL_LoadMode.NEW_WINDOW)
|
||||
|
||||
settings = QtCore.QSettings(self.settingsFile, QtCore.QSettings.IniFormat)
|
||||
settings.beginGroup("MiddleClickLoader")
|
||||
self.ui.loadMode.setCurrentIndex(int(settings.value("LoadMode", MCL_LoadMode.NEW_TAB)))
|
||||
self.ui.onlyValidUrl.setChecked(bool(settings.value("OnlyValidUrl", True)))
|
||||
settings.endGroup()
|
||||
|
||||
self.ui.buttonBox.accepted.connect(self.accept)
|
||||
self.ui.buttonBox.rejected.connect(self.reject)
|
||||
|
||||
def accept(self):
|
||||
settings = QtCore.QSettings(self.settingsFile, QtCore.QSettings.IniFormat)
|
||||
settings.beginGroup("MiddleClickLoader")
|
||||
settings.setValue("LoadMode", self.ui.loadMode.currentIndex())
|
||||
settings.setValue("OnlyValidUrl", self.ui.onlyValidUrl.isChecked())
|
||||
settings.endGroup()
|
||||
|
||||
super().accept()
|
||||
self.close()
|
105
src/scripts/middleclickloader/mcl_settings.ui
Normal file
105
src/scripts/middleclickloader/mcl_settings.ui
Normal file
@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MCL_Settings</class>
|
||||
<widget class="QWidget" name="MiddleClickLoaderSettings">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>379</width>
|
||||
<height>194</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MiddleClickLoader Settings</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_header">
|
||||
<property name="text">
|
||||
<string><h2>MiddleClickLoader</h2></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<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>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_loadMode">
|
||||
<property name="text">
|
||||
<string>Open url in:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<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="QComboBox" name="loadMode"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="onlyValidUrl">
|
||||
<property name="text">
|
||||
<string>Use only valid url</string>
|
||||
</property>
|
||||
<property name="tristate">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
30
src/scripts/middleclickloader/metadata.desktop
Normal file
30
src/scripts/middleclickloader/metadata.desktop
Normal file
@ -0,0 +1,30 @@
|
||||
[Desktop Entry]
|
||||
Name=MiddleClickLoader
|
||||
Name[ca]=MiddleClickLoader
|
||||
Name[ca@valencia]=MiddleClickLoader
|
||||
Name[es]=Cargador de clic central
|
||||
Name[fr]=MiddleClickLoader
|
||||
Name[it]=Caricatore al clic centrale
|
||||
Name[nl]=MiddleClickLoader
|
||||
Name[pt]=CarregadorBotãoMeio
|
||||
Name[sv]=Mittenklicksinläsning
|
||||
Name[uk]=Завантажувач за клацанням середньою
|
||||
Name[x-test]=xxMiddleClickLoaderxx
|
||||
Comment=Load text in selection clipboard as URL
|
||||
Comment[ca]=Carrega text com a URL en una selecció del porta-retalls
|
||||
Comment[ca@valencia]=Carrega text com a URL en una selecció del porta-retalls
|
||||
Comment[fr]=Charger l'URL sélectionnée dans le presse-papier
|
||||
Comment[it]=Carica come URL il testo negli appunti della selezione
|
||||
Comment[nl]=Tekst laden in selectieklembord als URL
|
||||
Comment[pt]=Carrega o texto na área de transferência como um URL
|
||||
Comment[sv]=Läs in text i markeringen eller klippbordet som webbadress
|
||||
Comment[uk]=Завантажує текст у буфері обміну як адресу
|
||||
Comment[x-test]=xxLoad text in selection clipboard as URLxx
|
||||
|
||||
Icon=
|
||||
Type=Service
|
||||
|
||||
X-Falkon-Author=Juraj Oravec
|
||||
X-Falkon-Email=sgd.orava@gmail.com
|
||||
X-Falkon-Version=0.2.0
|
||||
X-Falkon-Settings=true
|
@ -12,6 +12,7 @@ Name[gl]=Dicionario
|
||||
Name[id]=Kamus
|
||||
Name[it]=Dizionario
|
||||
Name[nl]=Woordenboek
|
||||
Name[nn]=Ordliste
|
||||
Name[pt]=Dicionário
|
||||
Name[sv]=Ordlista
|
||||
Name[uk]=Словник
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=Google
|
||||
Name[id]=Google
|
||||
Name[it]=Google
|
||||
Name[nl]=Google
|
||||
Name[nn]=Google
|
||||
Name[pt]=Google
|
||||
Name[sv]=Google
|
||||
Name[uk]=Google
|
||||
@ -30,6 +31,7 @@ Comment[gl]=Buscar con…
|
||||
Comment[id]=Cari dengan...
|
||||
Comment[it]=Cerca con...
|
||||
Comment[nl]=Zoeken met...
|
||||
Comment[nn]=Søk med …
|
||||
Comment[pt]=Procurar com...
|
||||
Comment[sv]=Sök med...
|
||||
Comment[uk]=Шукати за допомогою…
|
||||
|
@ -11,6 +11,7 @@ Name[gl]=Abrir con mpv
|
||||
Name[id]=Buka dengan mpv
|
||||
Name[it]=Apri con mpv
|
||||
Name[nl]=Met mpv openen
|
||||
Name[nn]=Opna med mpv
|
||||
Name[pt]=Abrir com o 'mpv'
|
||||
Name[sv]=Öppna med mpv
|
||||
Name[uk]=Відкрити за допомогою mpv
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=TinEye
|
||||
Name[id]=TinEye
|
||||
Name[it]=TinEye
|
||||
Name[nl]=TinEye
|
||||
Name[nn]=TinEye
|
||||
Name[pt]=TinEye
|
||||
Name[sv]=TinEye
|
||||
Name[uk]=TinEye
|
||||
@ -30,6 +31,7 @@ Comment[gl]=Buscar con…
|
||||
Comment[id]=Cari dengan...
|
||||
Comment[it]=Cerca con...
|
||||
Comment[nl]=Zoeken met...
|
||||
Comment[nn]=Søk med …
|
||||
Comment[pt]=Procurar com...
|
||||
Comment[sv]=Sök med...
|
||||
Comment[uk]=Шукати за допомогою…
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=Traducir a páxina
|
||||
Name[id]=Terjemahkan halaman
|
||||
Name[it]=Traduci la pagina
|
||||
Name[nl]=Pagina vertalen
|
||||
Name[nn]=Set om side
|
||||
Name[pt]=Traduzir a página
|
||||
Name[sv]=Översätt sida
|
||||
Name[uk]=Перекласти сторінку
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=Validar a páxina
|
||||
Name[id]=Validasi halaman
|
||||
Name[it]=Convalida la pagina
|
||||
Name[nl]=Pagina valideren
|
||||
Name[nn]=Valider side
|
||||
Name[pt]=Validar a página
|
||||
Name[sv]=Validera sida
|
||||
Name[uk]=Перевірити достовірність сторінки
|
||||
|
@ -12,6 +12,7 @@ Name[gl]=Yandex
|
||||
Name[id]=Yandex
|
||||
Name[it]=Yandex
|
||||
Name[nl]=Yandex
|
||||
Name[nn]=Yandex
|
||||
Name[pt]=Yandex
|
||||
Name[sv]=Yandex
|
||||
Name[uk]=Яндекс
|
||||
@ -30,6 +31,7 @@ Comment[gl]=Buscar con…
|
||||
Comment[id]=Cari dengan...
|
||||
Comment[it]=Cerca con...
|
||||
Comment[nl]=Zoeken met...
|
||||
Comment[nn]=Søk med …
|
||||
Comment[pt]=Procurar com...
|
||||
Comment[sv]=Sök med...
|
||||
Comment[uk]=Шукати за допомогою…
|
||||
|
@ -11,6 +11,7 @@ Name[gl]=Executar a acción
|
||||
Name[id]=Run Action
|
||||
Name[it]=Esegui azione
|
||||
Name[nl]=Uitvoeractie
|
||||
Name[nn]=Køyr handling
|
||||
Name[pt]=Executar uma Acção
|
||||
Name[sv]=Utför åtgärd
|
||||
Name[uk]=Виконати дію
|
||||
@ -28,6 +29,7 @@ Comment[gl]=Executar varias accións en sitios
|
||||
Comment[id]=Jalankan beberapa aksi pada situs
|
||||
Comment[it]=Esegue numerose azioni nei siti
|
||||
Comment[nl]=Verschillende acties op sites uitvoeren
|
||||
Comment[nn]=Køyr ymse handlingar på nettstadar
|
||||
Comment[pt]=Executar várias acções sobre as páginas
|
||||
Comment[sv]=Utför diverse åtgärder på webbplatser
|
||||
Comment[uk]=Виконання різноманітних дій на сайтах
|
||||
|
@ -29,6 +29,8 @@ class SettingsDialog(QtWidgets.QDialog):
|
||||
file = QtCore.QFile(os.path.join(os.path.dirname(__file__), "settings.ui"))
|
||||
file.open(QtCore.QFile.ReadOnly)
|
||||
self.ui = QtUiTools.QUiLoader().load(file, self)
|
||||
file.close()
|
||||
|
||||
layout = QtWidgets.QVBoxLayout(self)
|
||||
layout.addWidget(self.ui)
|
||||
|
||||
|
@ -33,8 +33,8 @@ private Q_SLOTS:
|
||||
void AdBlockParseRule::parseEasyList()
|
||||
{
|
||||
QBENCHMARK {
|
||||
AdBlockSubscription* subscription = new AdBlockSubscription("EasyList", this);
|
||||
subscription->setFilePath(":/files/easylist.txt");
|
||||
AdBlockSubscription* subscription = new AdBlockSubscription(QSL("EasyList"), this);
|
||||
subscription->setFilePath(QSL(":/files/easylist.txt"));
|
||||
subscription->loadSubscription(QStringList());
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Chrome
|
||||
Name[id]=Chrome
|
||||
Name[it]=Chrome
|
||||
Name[nl]=Chrome
|
||||
Name[nn]=Chrome
|
||||
Name[pl]=Chrome
|
||||
Name[pt]=Chrome
|
||||
Name[sv]=Chrome
|
||||
@ -20,8 +21,8 @@ Name[uk]=Хромування
|
||||
Name[x-test]=xxChromexx
|
||||
Name[zh_CN]=Chrome
|
||||
Comment=Chrome like theme for Falkon based on Firefox Chromifox theme
|
||||
Comment[ca]=Tema semblant al Chrome pel Falkon basat en el tema Chromifox del Firefox
|
||||
Comment[ca@valencia]=Tema semblant al Chrome pel Falkon basat en el tema Chromifox del Firefox
|
||||
Comment[ca]=Tema semblant al Chrome pel Falkon, basat en el tema Chromifox del Firefox
|
||||
Comment[ca@valencia]=Tema semblant al Chrome pel Falkon, basat en el tema Chromifox del Firefox
|
||||
Comment[cs]=Motiv pro Falkon podobný Chrome založený na motivu Firefox Chromifox
|
||||
Comment[da]=Chrome-lignende tema til Falkon baseret på Firefox Chromifox-tema
|
||||
Comment[de]=Chrome ähnliches Design für Falkon auf der Basis des Chromifox-Designs von Firefox
|
||||
@ -33,6 +34,7 @@ Comment[gl]=Tema parecido a Chrome para Falkon baseado no tema Chromifox de Fire
|
||||
Comment[id]=Tema seperti Chrome untuk Falkon berdasarkan pada tema Firefox Chromifox
|
||||
Comment[it]=Tema di tipo Chrome per Falkon, basato sul tema Chromifox di Firefox
|
||||
Comment[nl]=Op Chrome lijkend thema voor Falkon gebaseerd op Firefox Chromifox thema
|
||||
Comment[nn]=Chrome-liknande tema for Falkon, basert på Firefox Chromifox-temaet
|
||||
Comment[pl]=Wygląd przypominający Chrome dla Falkona oparty na wyglądzie Firefox Chromifox
|
||||
Comment[pt]=Tema semelhante ao Chrome para o Falkon, baseado no tema Chromifox do Firefox
|
||||
Comment[sv]=Chrome-liknande tema för Falkon baserat på Firefox Chromifox-tema
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Linux
|
||||
Name[id]=Linux
|
||||
Name[it]=Linux
|
||||
Name[nl]=Linux
|
||||
Name[nn]=Linux
|
||||
Name[pl]=Linux
|
||||
Name[pt]=Linux
|
||||
Name[sv]=Linux
|
||||
@ -20,8 +21,8 @@ Name[uk]=Linux
|
||||
Name[x-test]=xxLinuxxx
|
||||
Name[zh_CN]=Linux
|
||||
Comment=Default simple theme for Linux using native widget style and some basic icons from desktop icon set
|
||||
Comment[ca]=Tema senzill predeterminat per a Linux usant l'estil d'estris natiu i diverses icones bàsiques del conjunt d'icones de l'escriptori
|
||||
Comment[ca@valencia]=Tema senzill predeterminat per a Linux usant l'estil d'estris natiu i diverses icones bàsiques del conjunt d'icones de l'escriptori
|
||||
Comment[ca]=Tema senzill predeterminat per a Linux, usant l'estil natiu dels estris i diverses icones bàsiques del conjunt d'icones de l'escriptori
|
||||
Comment[ca@valencia]=Tema senzill predeterminat per a Linux, usant l'estil natiu dels estris i diverses icones bàsiques del conjunt d'icones de l'escriptori
|
||||
Comment[cs]=Výchozí jednoduchý motiv pro Linux používající nativní styl widgetu style a nějaké základní ikony ze sady ikon pracovní plochy
|
||||
Comment[da]=Standard simpelt tema til Linux som bruger systemets widgetstil og nogle basisikoner fra skrivebordets ikonsæt
|
||||
Comment[en_GB]=Default simple theme for Linux using native widget style and some basic icons from desktop icon set
|
||||
@ -32,6 +33,7 @@ Comment[gl]=Tema predeterminado simple para Linux que usa o estilo de trebellos
|
||||
Comment[id]=Tema sederhana baku untuk Linux menggunakan gaya widget bawaan dan beberapa ikon dasar dari set ikon desktop
|
||||
Comment[it]=Semplice tema predefinito per Linux, che usa lo stile nativo degli oggetti ed alcune icone di base dall'insieme di icone del desktop
|
||||
Comment[nl]=Standaard eenvoudig thema voor Linux met inheemse widgetstijl en enige basis pictogrammen uit set pictogrammen voor bureaublad
|
||||
Comment[nn]=Standardtema for Linux, som brukar systemutsjånad på skjermelement og nokre ikon frå skrivebordsikontemaet
|
||||
Comment[pl]=Domyślny prosty wygląd dla Linuksa używający natywnego wyglądu elementów interfejsu i podstawowych ikon z zestawu ikon dla pulpitu
|
||||
Comment[pt]=Tema predefinido simples para o Linux, usando o estilo gráfico nativo e alguns ícones básicos do conjunto de ícones do ambiente de trabalho
|
||||
Comment[sv]=Enkelt standardtema för Linux som använder inbyggd komponentstil och några grundläggande ikoner från skrivbordets ikonuppsättning
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Mac
|
||||
Name[id]=Mac
|
||||
Name[it]=Mac
|
||||
Name[nl]=Mac
|
||||
Name[nn]=Mac
|
||||
Name[pl]=Mac
|
||||
Name[pt]=Mac
|
||||
Name[sv]=Mac
|
||||
@ -20,8 +21,8 @@ Name[uk]=Mac
|
||||
Name[x-test]=xxMacxx
|
||||
Name[zh_CN]=Mac
|
||||
Comment=Mac like theme for Falkon based on Firefox Mac OS X theme
|
||||
Comment[ca]=Tema semblant al Mac pel Falkon basat en el tema Mac OS X del Firefox
|
||||
Comment[ca@valencia]=Tema semblant al Mac pel Falkon basat en el tema Mac OS X del Firefox
|
||||
Comment[ca]=Tema semblant al Mac pel Falkon, basat en el tema Mac OS X del Firefox
|
||||
Comment[ca@valencia]=Tema semblant al Mac pel Falkon, basat en el tema Mac OS X del Firefox
|
||||
Comment[cs]=Motiv pro Falkon podobný Macu založený na motivu Firefox Mac OS X
|
||||
Comment[da]=Mac-lignende tema til Falkon baseret på Firefox Mac OS X-tema
|
||||
Comment[de]=Mac ähnliches Design für Falkon auf der Basis des „Mac OS X“-Designs von Firefox
|
||||
@ -33,6 +34,7 @@ Comment[gl]=Tema parecido a Mac para Falkon baseado no tema de Mac OS X de Firef
|
||||
Comment[id]=Tema seperti Mac untuk Falkon berdasarkan pada tema Firefox Mac OS X
|
||||
Comment[it]=Tema di tipo Mac per Falkon, basato sul tema Mac OS X di Firefox
|
||||
Comment[nl]=Op Mac lijkend thema voor Falkon gebaseerd op Firefox Mac OS X thema
|
||||
Comment[nn]=Mac-liknande tema for Falkon, basert på Firefox Mac OS X-temaet
|
||||
Comment[pl]=Wygląd przypominający Maka dla Falkona oparty na wyglądzie Firefox Mac OS X
|
||||
Comment[pt]=Tema semelhante ao Mac para o Falkon, baseado no tema Mac OS X do Firefox
|
||||
Comment[sv]=Mac-liknande tema för Falkon baserat på Firefox Mac OS X-tema
|
||||
|
@ -13,6 +13,7 @@ Name[gl]=Xanelas
|
||||
Name[id]=Windows
|
||||
Name[it]=Windows
|
||||
Name[nl]=Windows
|
||||
Name[nn]=Windows
|
||||
Name[pl]=Windows
|
||||
Name[pt]=Windows
|
||||
Name[sv]=Windows
|
||||
@ -20,8 +21,8 @@ Name[uk]=Windows
|
||||
Name[x-test]=xxWindowsxx
|
||||
Name[zh_CN]=Windows
|
||||
Comment=Windows like theme based on Material design
|
||||
Comment[ca]=Tema semblant al Windows basat en el «Material design»
|
||||
Comment[ca@valencia]=Tema semblant al Windows basat en el «Material design»
|
||||
Comment[ca]=Tema semblant al Windows, basat en el «Material design»
|
||||
Comment[ca@valencia]=Tema semblant al Windows, basat en el «Material design»
|
||||
Comment[cs]=Motiv podobný Windows založený na designu Material
|
||||
Comment[da]=Windows-lignende tema baseret på Material design
|
||||
Comment[de]=Windows ähnliches Design auf der Basis des Designs Material
|
||||
@ -33,6 +34,7 @@ Comment[gl]=Tema parecido a Windows baseado no deseño material
|
||||
Comment[id]=Tema seperti Windows berdasarkan pada desain Material
|
||||
Comment[it]=Tema di tipo Windows, basato sul design Material
|
||||
Comment[nl]=Op Windows lijkend thema gebaseerd op Material ontwerp
|
||||
Comment[nn]=Windows-liknande tema, basert på Material-stilen
|
||||
Comment[pl]=Wygląd przypominający Windowsa dla Falkona oparty na wyglądzie Material
|
||||
Comment[pt]=Tema semelhante ao Windows, baseado no 'material design'
|
||||
Comment[sv]=Windows-liknande tema baserat på Material design
|
||||
|
Loading…
Reference in New Issue
Block a user