From 99a6b5de86e64741c5169c97e5900c27daf7a894 Mon Sep 17 00:00:00 2001 From: nowrep Date: Sat, 24 Mar 2012 22:08:17 +0100 Subject: [PATCH] Fixed loading utf urls from command line. - updated Brazilian Portuguese translation --- src/lib/app/commandlineoptions.cpp | 66 +++++++----- src/lib/app/commandlineoptions.h | 3 +- src/lib/app/mainapplication.cpp | 16 ++- src/lib/app/mainapplication.h | 3 +- src/main/main.cpp | 25 +---- translations/pt_BR.ts | 163 +++++++++++++++-------------- 6 files changed, 135 insertions(+), 141 deletions(-) diff --git a/src/lib/app/commandlineoptions.cpp b/src/lib/app/commandlineoptions.cpp index 5c32063d7..d7dea01d7 100644 --- a/src/lib/app/commandlineoptions.cpp +++ b/src/lib/app/commandlineoptions.cpp @@ -18,9 +18,10 @@ #include "commandlineoptions.h" #include "qupzilla.h" -CommandLineOptions::CommandLineOptions(int &argc, char** argv) +#include + +CommandLineOptions::CommandLineOptions(int &argc) : m_argc(argc) - , m_argv(argv) { parseActions(); } @@ -35,26 +36,26 @@ void CommandLineOptions::showHelp() using namespace std; const char* help = " Usage: qupzilla [options] URL \n" - "\n" - " QupZilla options:\n" - " -h or --help print this message \n" - " -a or --authors print QupZilla authors \n" - " -v or --version print QupZilla version \n" - "\n" - " -p=PROFILE or --profile=PROFILE start with specified profile \n" - " -ne or --no-extensions start without extensions\n" - "\n" - " Options to control running QupZilla:\n" - " -nt or --new-tab open new tab\n" - " -nw or --new-window open new window\n" - " -pb or --private-browsing start private browsing\n" - " -dm or --download-manager show download manager\n" - "\n" - " QupZilla is a new, fast and secure web browser\n" - " based on WebKit core (http://webkit.org) and\n" - " written in Qt Framework (http://qt.nokia.com) \n\n" - " For more information please visit wiki at \n" - " https://github.com/nowrep/QupZilla/wiki \n"; + "\n" + " QupZilla options:\n" + " -h or --help print this message \n" + " -a or --authors print QupZilla authors \n" + " -v or --version print QupZilla version \n" + "\n" + " -p=PROFILE or --profile=PROFILE start with specified profile \n" + " -ne or --no-extensions start without extensions\n" + "\n" + " Options to control running QupZilla:\n" + " -nt or --new-tab open new tab\n" + " -nw or --new-window open new window\n" + " -pb or --private-browsing start private browsing\n" + " -dm or --download-manager show download manager\n" + "\n" + " QupZilla is a new, fast and secure web browser\n" + " based on WebKit core (http://webkit.org) and\n" + " written in Qt Framework (http://qt.nokia.com) \n\n" + " For more information please visit wiki at \n" + " https://github.com/nowrep/QupZilla/wiki \n"; cout << help << " > " << QupZilla::WWWADDRESS.toUtf8().data() << endl; } @@ -63,9 +64,15 @@ void CommandLineOptions::parseActions() { using namespace std; + const QStringList &arguments = QCoreApplication::arguments(); + if (arguments.isEmpty()) { + return; + } + // Skip first argument (it should be program itself) - for (int i = 1; i < m_argc; i++) { - QString arg(m_argv[i]); + for (int i = 1; i < arguments.count(); ++i) { + QString arg = arguments.at(i); + if (arg == "-h" || arg == "--help") { showHelp(); ActionPair pair; @@ -85,9 +92,9 @@ void CommandLineOptions::parseActions() if (arg == "-v" || arg == "--version") { cout << "QupZilla v" << QupZilla::VERSION.toUtf8().data() -#ifdef GIT_REVISION + #ifdef GIT_REVISION << " rev " << GIT_REVISION << " " -#endif + #endif << "(build " << QupZilla::BUILDTIME.toUtf8().data() << ")" << endl; ActionPair pair; @@ -142,9 +149,10 @@ void CommandLineOptions::parseActions() } } - QString url(m_argv[m_argc - 1]); - if (m_argc > 1 && !url.isEmpty() && !url.startsWith("-") && url.contains(".")) { - cout << "QupZilla: Starting with url " << url.toUtf8().data() << endl; + const QString &url = arguments.last(); + + if (m_argc > 1 && !url.isEmpty() && !url.startsWith("-") && + (url.contains(".") || url.contains("/") || url.contains("\\"))) { ActionPair pair; pair.action = Qz::CL_OpenUrl; pair.text = url; diff --git a/src/lib/app/commandlineoptions.h b/src/lib/app/commandlineoptions.h index 4f3b52a21..b3c6be2e4 100644 --- a/src/lib/app/commandlineoptions.h +++ b/src/lib/app/commandlineoptions.h @@ -33,7 +33,7 @@ public: typedef QList ActionPairList; - explicit CommandLineOptions(int &argc, char** argv); + explicit CommandLineOptions(int &argc); ActionPairList getActions(); private: @@ -41,7 +41,6 @@ private: void parseActions(); int m_argc; - char** m_argv; ActionPairList m_actions; }; diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index cadb5aedc..838b11b6d 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -47,6 +47,8 @@ #include "locationbarsettings.h" #include "webviewsettings.h" #include "clearprivatedata.h" +#include "proxystyle.h" +#include "commandlineoptions.h" #ifdef Q_WS_MAC #include @@ -81,7 +83,7 @@ #define NO_SYSTEM_DATAPATH #endif -MainApplication::MainApplication(const QList &cmdActions, int &argc, char** argv) +MainApplication::MainApplication(int &argc, char** argv) : QtSingleApplication("QupZillaWebBrowser", argc, argv) , m_cookiemanager(0) , m_browsingLibrary(0) @@ -132,7 +134,9 @@ MainApplication::MainApplication(const QList &cm QString startProfile; if (argc > 1) { - foreach(const CommandLineOptions::ActionPair & pair, cmdActions) { + CommandLineOptions cmd(argc); + + foreach(const CommandLineOptions::ActionPair & pair, cmd.getActions()) { switch (pair.action) { case Qz::CL_StartWithoutAddons: noAddons = true; @@ -156,9 +160,12 @@ MainApplication::MainApplication(const QList &cm m_postLaunchActions.append(PrivateBrowsing); break; case Qz::CL_OpenUrl: - startUrl = QUrl(pair.text.toUtf8()); + startUrl = QUrl::fromUserInput(pair.text); messages.append("URL:" + pair.text); break; + case Qz::CL_ExitAction: + m_isClosing = true; + return; default: break; } @@ -183,6 +190,7 @@ MainApplication::MainApplication(const QList &cm setQuitOnLastWindowClosed(true); #endif + setStyle(new ProxyStyle); setApplicationName("QupZilla"); setApplicationVersion(QupZilla::VERSION); setOrganizationDomain("qupzilla"); @@ -441,7 +449,7 @@ void MainApplication::receiveAppMessage(QString message) { QWidget* actWin = getWindow(); if (message.startsWith("URL:")) { - QUrl url = QUrl::fromEncoded(message.mid(4).toUtf8()); + QUrl url = QUrl::fromUserInput(message.mid(4)); addNewTab(url); actWin = getWindow(); } diff --git a/src/lib/app/mainapplication.h b/src/lib/app/mainapplication.h index 23e460489..f9f3b73cf 100644 --- a/src/lib/app/mainapplication.h +++ b/src/lib/app/mainapplication.h @@ -25,7 +25,6 @@ #include #include "qtsingleapplication.h" -#include "commandlineoptions.h" #include "qz_namespace.h" class QWebSettings; @@ -58,7 +57,7 @@ public: QString TRANSLATIONSDIR; QString THEMESDIR; - explicit MainApplication(const CommandLineOptions::ActionPairList &cmdActions, int &argc, char** argv); + explicit MainApplication(int &argc, char** argv); void connectDatabase(); void loadSettings(); diff --git a/src/main/main.cpp b/src/main/main.cpp index f241d0613..0d7031c3d 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -18,9 +18,7 @@ #include -#include "commandlineoptions.h" #include "mainapplication.h" -#include "proxystyle.h" #ifdef Q_WS_X11 #include @@ -44,23 +42,7 @@ int main(int argc, char* argv[]) signal(SIGPIPE, sigpipe_handler); #endif - QList cmdActions; - - if (argc > 1) { - CommandLineOptions cmd(argc, argv); - cmdActions = cmd.getActions(); - foreach(const CommandLineOptions::ActionPair & pair, cmdActions) { - switch (pair.action) { - case Qz::CL_ExitAction: - return 0; - break; - default: - break; - } - } - } - - MainApplication app(cmdActions, argc, argv); + MainApplication app(argc, argv); if (app.isClosing()) { // Not showing any output, otherwise XFCE shows "Failed to execute default browser. I/O error" error @@ -70,8 +52,5 @@ int main(int argc, char* argv[]) return 0; } - app.setStyle(new ProxyStyle()); - - int result = app.exec(); - return result; + return app.exec(); } diff --git a/translations/pt_BR.ts b/translations/pt_BR.ts index 6f2ccebb7..778a7d2c1 100644 --- a/translations/pt_BR.ts +++ b/translations/pt_BR.ts @@ -436,7 +436,7 @@ <b>Note:</b> Currently, only import from Html File can import also bookmark folders. - + <b>Observação:</b> Atualmente, estamos importanto favoritos e pastas somente de arquivos HTML. @@ -573,7 +573,7 @@ Open link in current &tab - Abrir link na aba a&tual + Abrir link na guia a&tual &Delete @@ -652,7 +652,7 @@ Show Only Icons - + Mostras Somente Icons @@ -711,11 +711,11 @@ Remove - Remover + Remover Add to Bookmarks - + Adicionar aos Favoritos @@ -840,11 +840,11 @@ Clear web databases - + Limpar Banco de Dados da Web Clear local storage - + Limpar arquivos temporários @@ -886,7 +886,7 @@ CloseDialog There are still open tabs - Ainda existem abas abertas + Você ainda possui guias abertas Don't ask again @@ -981,43 +981,43 @@ Stored Cookies - + Cookies Salvos Cookie Filtering - + Filtrar Cookie <b>Cookie whitelist</b> - + <b>Cookie Whitelist</b> Cookies from these servers will ALWAYS be accepted (even if you have disabled saving cookies) - + Cookies desses servidores SEMPRE serão aceitos (mesmo que você desabilite a função cookies) Add - Adicionar + Adicionar Remove - Remover + Remover <b>Cookie blacklist</b> - + <b>Cookies Blacklist</b> Cookies from these servers will NEVER be accepted - + Cookies desses servidores NUNCA serão aceitos (mesmo que você habilite a função cookies) Add to whitelist - + Adicionar à whitelist Add to blacklist - + Adicionar à Blacklist @@ -1256,7 +1256,7 @@ não foi encontrado! Image files - + Imagens @@ -1416,7 +1416,7 @@ não foi encontrado! LicenseViewer License Viewer - Visualizador de licença + Visualizador de licença @@ -1448,7 +1448,7 @@ não foi encontrado! .co.uk Append domain name on ALT + Enter = Should be different for every country - .com.br + .com.br @@ -1627,11 +1627,11 @@ não foi encontrado! Error! - Erro! + Erro! Cannot load extension! - + Não foi possível carregar essa extensão! @@ -2278,27 +2278,27 @@ não foi encontrado! Allow Netscape Plugins (Flash plugin) - + Permitir Plugins NetScape (Flash plugin) Don't load tabs until selected - + Não carregar guias até ser selecionada Extensions - + Extensões <b>Exceptions</b> - + <b>Excessões</b> Server: - Servidor: + Servidor: Use different proxy for https connection - + Usar proxy diferente para conexões https @@ -2695,44 +2695,45 @@ não foi encontrado! Configuration Information - + Informações de Configurações HTML files - + Arquivos HTML Image files - + Imagens Text files - + Arquivos de texto All files - + Todos os Arquivos Last session crashed - O navegador foi fechado de forma incorreta + O navegador foi fechado de forma incorreta <b>QupZilla crashed :-(</b><br/>Oops, the last session of QupZilla was interrupted unexpectedly. We apologize for this. Would you like to try restoring the last saved state? - <b>QupZilla travou :/</b><br/>Oops, parece que a última sessão do QupZilla não foi fechada como o planejado. Pedimos mil desculpas por isso. Você deseja que nós tentassemos abrir a última sessão que você estava? + <b>QupZilla travou :/</b><br/>Oops, parece que a última sessão do QupZilla não foi fechada como o planejado. Pedimos mil desculpas por isso. Você deseja que nós tentassemos abrir a última sessão que você estava? There are still %1 open tabs and your session won't be stored. Are you sure to quit QupZilla? - + Ainda há %1 guias abertas. A sua sessão não será salva. +Você tem certeza que deseja sair do QupZilla? Don't ask again - Não perguntar novamente + Não perguntar novamente There are still open tabs - Ainda existem abas abertas + Ainda existem guias abertas @@ -2951,99 +2952,99 @@ Are you sure to quit QupZilla? E-mail is optional<br/><b>Note: </b>Please read how to make a bug report <a href=%1>here</a> first. - + O Email é opicional<br/><b>Observação:</b>Por favor, leia como reportar um bug <a href=%1>aqui</a> antes. Cover - + Cover Configuration Information - + Informações de Configurações Preferences - Preferências + Preferências Option - + Opções Value - Valor + Valor Name - + Nome Author - + Autor Description - + Descrição Application version - + Versão do Aplicativo Qt version - + Versão do Qt Build Configuration - + Configuração da compilação Disabled - + Desabilitado <b>Enabled</b> - + <b>Habilitado</b> Debug build - + Compilar WebGL support - + Suporte WebGL Windows 7 API - + Windows 7 API KDE integration - + Integração com o KDE Portable build - + Compilação Portátil Extensions - + Extensões No available extensions. - + Não há extensões disponíveis. If you are experiencing problems with QupZilla, please try to disable all extensions first. <br/>If this does not fix it, then please fill out this form: - + Se você estiver enfrentando problemas com o QupZilla, tente desabilitar as extensões.<br/>Se não funcionar, por favor, preencha o formulário abaixo: Close - Fechar + Fechar This page contains information about QupZilla's current configuration - relevant for troubleshooting. Please include this information when submitting bug reports. - + Essa página contém informações sobre as configurações atuais do QupZilla - que são importantes para sabermos a causa do problema. Por favor, inclua essas informações quanto for reportar um bug (por favor, escreva em Inglês). @@ -3417,7 +3418,7 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici Save image... - Salvaragem... + Salvar imagem... Security @@ -3441,7 +3442,7 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici <b>Your connection to this page is secured with this certificate: </b> - <b>A conexão para essa página é seguda com um certificado.</b> + <b>A conexão para essa página é sgura por causa desse certificado.</b> Cannot write to file! @@ -3449,27 +3450,27 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici Databases - + Banco de Dados <b>Database details</b> - + <b>Detalhe do banco de dados</b> Name: - Nome: + Nome: Path: - Caminho: + Atalho: <database not selected> - + <nenhum banco de dados selecionado> No databases are used by this page. - + Essa página não usa nenhum banco de dados. @@ -3645,14 +3646,14 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici Image files - + Imagens SqueezeLabelV2 Copy - Copiar + Copiar @@ -3746,7 +3747,7 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici Loading... - A carregar... + Carregando... No Named Page @@ -3904,7 +3905,7 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici QupZilla can't load page from %1. - O Qupzilla não conseguiu carregar a página %1. + O QupZilla não conseguiu carregar a página %1. Server not found @@ -3942,11 +3943,11 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici JavaScript alert - + Alerta JavaScript Unknown network error - + Erro de rede desconhecido @@ -4136,7 +4137,7 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici &Copy Media Address - &Copiar endereço multimidia + &Copiar endereço multimídia Send text... @@ -4144,7 +4145,7 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici &Send Media Address - &Enviar endereço multimidia + &Enviar endereço multimídia Copy image ad&dress @@ -4152,11 +4153,11 @@ Após adicionar ou remover os caminhos dos certificados, você terá que reinici Search with... - + Procurar com... Create Search Engine - + Criar Motor de Busca