diff --git a/bin/locale/cs_CZ.qm b/bin/locale/cs_CZ.qm index 82b407069..6288692eb 100644 Binary files a/bin/locale/cs_CZ.qm and b/bin/locale/cs_CZ.qm differ diff --git a/src/app/appui.cpp b/src/app/appui.cpp index 110b53d48..82a918e93 100644 --- a/src/app/appui.cpp +++ b/src/app/appui.cpp @@ -244,6 +244,10 @@ void QupZilla::setupMenu() , tr("Reload"), this); connect(m_actionReload, SIGNAL(triggered()), this, SLOT(reload())); m_actionReload->setShortcut(QKeySequence("Ctrl+R")); + QAction* actionEncoding = new QAction(tr("Character Encoding"), this); + m_menuEncoding = new QMenu(this); + actionEncoding->setMenu(m_menuEncoding); + connect(m_menuEncoding, SIGNAL(aboutToShow()), this, SLOT(aboutToShowEncodingMenu())); m_menuView->addAction(m_actionShowMenubar); m_menuView->addAction(m_actionShowToolbar); @@ -257,7 +261,7 @@ void QupZilla::setupMenu() m_menuView->addAction(QIcon::fromTheme("zoom-out"), tr("Zoom Out"), this, SLOT(zoomOut()))->setShortcut(QKeySequence("Ctrl+-")); m_menuView->addAction(QIcon::fromTheme("zoom-original"), tr("Reset"), this, SLOT(zoomReset()))->setShortcut(QKeySequence("Ctrl+0")); m_menuView->addSeparator(); - + m_menuView->addAction(actionEncoding); m_menuView->addSeparator(); m_menuView->addAction(QIcon::fromTheme("text-html"), tr("Page Source"), this, SLOT(showSource()))->setShortcut(QKeySequence("Ctrl+U")); m_menuView->addAction(m_actionShowFullScreen); diff --git a/src/app/mainapplication.cpp b/src/app/mainapplication.cpp index 0cc93b02e..e8351c931 100644 --- a/src/app/mainapplication.cpp +++ b/src/app/mainapplication.cpp @@ -179,6 +179,8 @@ void MainApplication::loadSettings() m_websettings->setFontSize(QWebSettings::DefaultFontSize, settings.value("DefaultFontSize", m_websettings->fontSize(QWebSettings::DefaultFontSize)).toInt() ); m_websettings->setFontSize(QWebSettings::DefaultFixedFontSize, settings.value("FixedFontSize", m_websettings->fontSize(QWebSettings::DefaultFixedFontSize)).toInt() ); + m_websettings->setDefaultTextEncoding("System"); + if (allowPersistentStorage) m_websettings->enablePersistentStorage(m_activeProfil); m_websettings->setMaximumPagesInCache(maxCachedPages); diff --git a/src/app/qupzilla.cpp b/src/app/qupzilla.cpp index 7642817f2..da20bb533 100644 --- a/src/app/qupzilla.cpp +++ b/src/app/qupzilla.cpp @@ -390,6 +390,64 @@ void QupZilla::aboutToShowViewMenu() m_actionStop->setEnabled(false); } +void QupZilla::aboutToShowEncodingMenu() +{ + m_menuEncoding->clear(); + QMenu* menuISO = new QMenu("ISO", this); + QMenu* menuUTF = new QMenu("UTF", this); + QMenu* menuWindows = new QMenu("Windows", this); + QMenu* menuIscii = new QMenu("Iscii", this); + QMenu* menuOther = new QMenu(tr("Other"), this); + + QList available = QTextCodec::availableCodecs(); + qSort(available); + QString activeCodec = mApp->webSettings()->defaultTextEncoding(); + + foreach (QByteArray name, available) { + if (QTextCodec::codecForName(name)->aliases().contains(name)) + continue; + QAction* action = new QAction(name=="System" ? tr("Default") : name, this); + action->setData(name); + action->setCheckable(true); + connect(action, SIGNAL(triggered()), this, SLOT(changeEncoding())); + if (activeCodec.contains(name, Qt::CaseInsensitive)) + action->setChecked(true); + + if (name.startsWith("ISO")) + menuISO->addAction(action); + else if (name.startsWith("UTF")) + menuUTF->addAction(action); + else if (name.startsWith("windows")) + menuWindows->addAction(action); + else if (name.startsWith("Iscii")) + menuIscii->addAction(action); + else if (name == "System") + m_menuEncoding->addAction(action); + else + menuOther->addAction(action); + } + + m_menuEncoding->addSeparator(); + if (!menuISO->isEmpty()) + m_menuEncoding->addMenu(menuISO); + if (!menuUTF->isEmpty()) + m_menuEncoding->addMenu(menuUTF); + if (!menuWindows->isEmpty()) + m_menuEncoding->addMenu(menuWindows); + if (!menuIscii->isEmpty()) + m_menuEncoding->addMenu(menuIscii); + if (!menuOther->isEmpty()) + m_menuEncoding->addMenu(menuOther); +} + +void QupZilla::changeEncoding() +{ + if (QAction* action = qobject_cast(sender())) { + mApp->webSettings()->setDefaultTextEncoding(action->data().toString()); + reload(); + } +} + void QupZilla::bookmarkPage() { mApp->bookmarksManager()->addBookmark(weView()); diff --git a/src/app/qupzilla.h b/src/app/qupzilla.h index ebe257970..b95598347 100644 --- a/src/app/qupzilla.h +++ b/src/app/qupzilla.h @@ -148,6 +148,7 @@ private slots: void aboutToShowToolsMenu(); void aboutToShowHelpMenu(); void aboutToShowViewMenu(); + void aboutToShowEncodingMenu(); void searchOnPage(); void showCookieManager(); @@ -181,6 +182,7 @@ private slots: void zoomReset() { weView()->zoomReset(); } void fullScreen(bool make); void startPrivate(bool state); + void changeEncoding(); bool quitApp(); diff --git a/translations/cs_CZ.ts b/translations/cs_CZ.ts index f0271fec2..628fe52f7 100644 --- a/translations/cs_CZ.ts +++ b/translations/cs_CZ.ts @@ -833,8 +833,7 @@ neexistuje! Chyba při načítání stránky - - + No Named Page Bezejmenná stránka @@ -899,12 +898,12 @@ neexistuje! MainApplication - + Last session crashed Poslední relace spadla - + <b>QupZilla crashed :-(</b><br/>Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state? <b>QupZilla spadla :-(</b><br/>Oops, poslední relace QupZilly skončila jejím pádem. Velice se omlouváme. Přejete si obnovit uložený stav? @@ -1716,22 +1715,27 @@ neexistuje! Obnovit - + + Character Encoding + Kódování znaků + + + Zoom In Zoom + - + Zoom Out Zoom - - + Reset Původní - + Page Source Zdrojový kód stránky @@ -1834,7 +1838,17 @@ neexistuje! RSS čtečka - + + Other + Ostatní + + + + Default + Defaultní + + + Start Private Browsing Spustit anonymní prohlížení @@ -1896,52 +1910,52 @@ neexistuje! Nový panel - + Web Inspector Web Inspektor - + Open file... Otevřít soubor... - + Are you sure you want to turn on private browsing? Jste si jistý že chcete zapnout soukromé prohlížení? - + When private browsing is turned on, some actions concerning your privacy will be disabled: Se zapnutým soukromým prohlížením jsou některé akce týkající se soukromí vypnuty: - + Webpages are not added to the history. Stránky nejsou přidávány do historie. - + New cookies are not stored, but current cookies can be accessed. Nové cookies nejsou přijímány, ale současné cookies jsou zasílány. - + Your session won't be stored. Vaše relace nebude uložena. - + Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. Než zavřete prohlížeč, stále můžete použít tlačítka Zpět a Vpřed k vrácení se na stránky které jste otevřeli. - + There are still open tabs Stále jsou otevřeny panely - + There are still %1 open tabs and your session won't be stored. Are you sure to quit? Ještě jsou otevřeny %1 panely a Vaše relace nebude uložena. Opravdu chcete skončit? diff --git a/translations/sk_SK.ts b/translations/sk_SK.ts index 2f0b9a3a3..52e3f0304 100644 --- a/translations/sk_SK.ts +++ b/translations/sk_SK.ts @@ -836,8 +836,7 @@ neexistuje! Chyba pri načítaní stránky - - + No Named Page Stránka bez mena @@ -901,12 +900,12 @@ neexistuje! MainApplication - + Last session crashed Posledná relácia spadla - + <b>QupZilla crashed :-(</b><br/>Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state? <b>QupZilla spadla :-(</b><br/>Oops, posledná relácia QupZilly skončila chybou. Prepáčte. Chcete obnoviť uložený stav? @@ -1718,22 +1717,27 @@ neexistuje! Obnoviť - + + Character Encoding + + + + Zoom In Priblížiť - + Zoom Out Oddialiť - + Reset Resetovať - + Page Source Zdrojový kód stránky @@ -1836,7 +1840,17 @@ neexistuje! RSS čítač - + + Other + Ostatné + + + + Default + + + + Start Private Browsing Spustiť anonymné prehliadanie @@ -1897,52 +1911,52 @@ neexistuje! Nový panel - + Web Inspector Web inšpektor - + Open file... Otvoriť súbor... - + Are you sure you want to turn on private browsing? Ste si istý, že chcete zapnúť súkromné prehliadanie? - + When private browsing is turned on, some actions concerning your privacy will be disabled: So zapnutým súkromným prehliadaním sú niektoré akcie týkajúce sa súkromia vypnuté: - + Webpages are not added to the history. Stránky nie sú pridávané do histórie. - + New cookies are not stored, but current cookies can be accessed. Nové cookies nie sú prijímané, ale súčasné cookies sú zasielané. - + Your session won't be stored. Vaša relácia nebude uložená. - + Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. Dokiaľ nezavriete prehliadač, tak stále môžete používať tlačidla Späť a Dopredu k vráteniu sa na stránky, ktoré ste mali otvorené. - + There are still open tabs Stále sú otvorené panely - + There are still %1 open tabs and your session won't be stored. Are you sure to quit? Stále sú otvorené %1 panely a Vaša relácia nebude uložená. Skutočne chcete skončiť?