From 47887329da8c41e0920c1154b6f3e2796f24cc6f Mon Sep 17 00:00:00 2001 From: nowrep Date: Tue, 6 Dec 2011 19:18:06 +0100 Subject: [PATCH] Updated Dutch + Spanish translation. Little improvements in downloads. - save file is now selected option in download dialog, also your choice is saved (through one browser run), so if you choose to open file, then each next downloaded files will have automatically selected open file selection (instead of default save file) - hopefully fixed one crash in webview, showing QMenu with popup() instead of exec(), popup() is asynchronous call. - scrolling to top in source viewer on open --- bin/locale/{es.qm => es_ES.qm} | Bin 87388 -> 88780 bytes bin/locale/nl_NL.qm | Bin 84583 -> 86334 bytes src/downloads/downloadfilehelper.cpp | 6 ++ src/downloads/downloadfilehelper.h | 5 ++ src/downloads/downloadmanager.cpp | 1 + src/downloads/downloadmanager.h | 6 +- src/downloads/downloadoptionsdialog.cpp | 18 +++++ src/downloads/downloadoptionsdialog.h | 4 + src/downloads/downloadoptionsdialog.ui | 6 +- src/other/sourceviewer.cpp | 4 + src/src.pro | 2 +- src/webview/webview.cpp | 93 ++++++++++++------------ src/webview/webview.h | 1 + translations/{es.ts => es_ES.ts} | 59 +++++++-------- translations/nl_NL.ts | 38 +++++----- 15 files changed, 144 insertions(+), 99 deletions(-) rename bin/locale/{es.qm => es_ES.qm} (75%) rename translations/{es.ts => es_ES.ts} (98%) diff --git a/bin/locale/es.qm b/bin/locale/es_ES.qm similarity index 75% rename from bin/locale/es.qm rename to bin/locale/es_ES.qm index 2904023c6e17fb4038236d6cc745521df3fba7a8..cc4a5ac1756c74c4b146ee2137d0d5ef9e5dd0c1 100644 GIT binary patch delta 8126 zcmZ8m2Ut{Bx7}xE?vy)C0YyM@XeuaRZy<_YgNR~9CBQJqC=56ZwnWAn8x|aKtk|#{ zG!iv-5kWv>j~X>bVu@WWM2#hH&D{6${_och*S(i}&e>=0wf5fUdV42#Za=rw&6-L? zt%$yBK*XISl9u9DLp0|lQJ+F0>nZ`?mkap!&qRG&5Ou#w)c-UwFI>mYCmKJIX!tCm zE|@NE60!PWM5A+w{5=H>c_X0lD*<0NBGJy%nEy;SlFVI0lr@VaTc;57{791R8;R~+ zAjyF{FzOIVj!1}H;sm@u!--5fP(UvmNiGHuYZMFY3H**Ezb+-(DkaHZ?T9QpiEG%2 zXxt-UFBs}hT+}_HH)DWr$x6D7#2J6Vi?@kexQCc`JK}P&;Psz~TUkcbX+Cjl1Bm#3 zz@9|U{vmFgjp)c$;&vqveJCRCG{))jh^zRUNN*tS!WrC`6L;$fQSSg!dd((UK8E}s z|3S>xlbVhlOcY$tfmWi{^{H7#2r*3tHGA5YXw6Xya(JX%=0w)vF$Fn1aONWgVW(8l z90)@y#!%3+mPC~<6y(@xWjAV$4ba&+)ZAg%xz5xahS9kl)EoxUx!oSJ~Y6p`H^T# zD;i)Z1{To3tsqR&_Y~9N7hSKk-dUq=dDESdQJ3cue43>hL|>SF;-4+VTNkVeHp z9mYliW_Z%*S^F{m1;syy#|z7?q@Q!1pan7%1rcptLWb*pM4EAwG959mIY;S=LSh~@ zl)i!|O4vggX&_%*L&^?YOe|1GQ)^~JHDhRYx}0eGGn(^LCD?v|Rva-AYm-8&>v|LA zo~7N3hCtR9+IO@+v3iH-*c{B?$Eu)ndT?NBDqWpkK(si3st42~%KVN=3cnx}qgkUH z=ZSUd&HU@ZQ%!zl{^n4kpYvGIwQq<5#Xb&KAyeSbl=7xQ6%LW7vAXi$tqk*`C89qEkuiU{60{0R`;XSR}IkUD-(`3|e%9 zooc>|XoWW`U0g(roo7{xUqJtxCa|+hUK6z$%&Nb@6X(y0*z(y#hen7*KAVWfss&7M zE8v@@qI#n|h&HYgdFba54QniFB8wo_pg`2DfdzTufGBut7Ub1X)ba=x?kf>RyWIjw zJBp&~1KW2N4IK9lp$-x0+qQ%L|M)|cow^Sh>xpPe)d!+oQKGryO~g916fL;&8RWb! zTI2>7?qQ<5yc~pRjp+MkSZGkZ=m6MERX>XkE=6psK8cQ`w1LjkL`P2UBIY(rbi5;; z_fv~bcN$ETcUDwsf=7N`C3>&~K-x zfN2}WE*ltFJ6`M-FNPf5#hxXFNXd)EUfZLIGNy_fc7zNSmEuOebr4DyabPUQ=g${6 zZ-?3v>mhDm00Z8g6o-qK5f$5<$e36hX`P%*v?EyDV{atU5+8B@fFqc&uXs3vD!#N4 zkIWiJiCx5NE?p(&^;x{G z2=Dv$5Es5h2t2zwk%e>+?;Vc!E6T+u+>tS5OU2gPw*!ct{vf{NnnNt~y|}s$FyfZ@ zei1lOGhO_sPg}^UllbL4Z+Pm8xW*TFBt-nWz87{pN&LDo6N$QMv zsKHZWK2%LKq((Az0>*PWPGnq(WZ^S}%(zXmWX(M++)1*u+?A-2HD0o^9~N$KMY8rA z>~!#Nl7egb#Qd*FHuTjK&4`v1_C{tLK1j0VI56(8WOoaYuK6|rQ-%n*!QF|>YqX@8 zw-8PFR#K_}X&<>rD&u^KS_~4f)nEZrDh0Hr)d&~aega-C6YxzVC$gr$ODZRyLd>s9 zDyL#1b*X^E<_h?W*oiD4Nx){_0=8Z)U^tUht^l_@?+94fz=_OdhZC)=k+RMBd@(}YG2RQZ?3w|x0GlvF|k)euHzI}SYzp($83d4Zg69+K}CKsT*^>u2cr5Lxv^o# zi5Ax3#%3iD9lOp=ae0jfucTUi0W#f9X}!k?#mXmAA77BH zJWT3$3fOd%fSsEPctLp1RQsj=zxlyK!P4fR;)(85O1rD{$oUVY1G@U7c1Wc|{4lTk zBk9m%W}-3gq{A}c$r}fq$eLJ_rSXNCM6WhWzixq@SBFZI7Gc8Mx24AZUm%-R(zLpm zIQ~0nT8umJj5OUb@vutiH;xI`^cDsaXwU24cfm+K+T<3otVW@%o2cZA}NH18M8 zb234?Jp2R_Q$OkQaXIkV4e5$wU5Q!Qbg8`#UcA&?y1Evw)O$(SufoA1WxCan?d)N)(9MmZ|Lv~QLJpTX-C=;wfj>xza1J3>1)~i z4q?a#mt{-OKqdQn%knQ~qgH&8t?<;KT3VgR>P(icnrg)_R5N93w&LjI*+jN>6j<-t zSyu2E3-vxN+f{uBO=hWVccKV#(#wvl`+_31P*y2!N_4TI?CdQZEJo>M7uXY`ZbM`j zyq6QL?Bxs#p%H;>Kz`b0#&oz`&Wro~0Zvu{B z59A>w*lCZM@|M~nqThn$E&suN^bhh58-^ki^78H_3Zmn&@*c~;m5Wd02{+;C6T9SA z!x-fDW7QJug$3)?P?bf ziXAeYr6^p`2YtglMPZ2v9nc-cHd||udAZ_naw+y5idRm|)~p#j~C-kW!y0 zp4qX`ympEg$9_adBvE{Byah!pQt^4(ah#&Pd725?U6=CWf?}do^Lc*7bz(AYEM2;50@84@xg~+VZwbrr2ZYEyCr;>bS>n?_^_0yEAeZ~_v%mMpf#njP>xqQb<|Loz22Y7=dHe86v~G5O z{cdof^>u!C3%uV_FW{LBz9_=l2CO`Wi@y=G7yKUmk2o~m;14y$4kG&VNBV1%Tr2kUe8$Cr#j`<0=2i1np?%9fj;mdEpy?LPd2)@!peObt)m z3s-i<`*ilXvQMtVlljV#pYP#pC{iXg0e7~0qK;9hIAJt04PMR^^sE8t6GqxpQJZj?V*>yEe5X(p4*W=LaIj zt(Cw*LG@grylQd-`}--c zm9!x`SVwv79y}y%tNeA49r>k5d2`j<}vbq;Yq*m3vF_x&bMCGyr14BsV$&dz$qEw!Xa6q~BQq_1uEK;?< z%CBoOF`cWbSr?FUr~-gx7*L2-v<(9sz%O+A#1}`qyG}&!$Y=e%tDZK;Coe~d?TvbO_e?b8E@M{mBqdV zF(0g&WJOHd<*B|M@B_Z0`KxlGpca>E)y#|{koIfUobAYfg?XxZ<6on*nygwXu7&>X z3slRydLlKts+M1mfc~RZ`AG=Hqlv0jT`-`miE5Q$I=))PtJV(B!Pl{IsvSN)VD(2; zagr|#^Hd#SS?B|v2>85%6B&zCmCVJ)f>#KbDiZMRG*#JoZ;NB4dP4shzE-SAMya<%aWGMObqZM=!t zRxENN>zJcXTaNoNYt<81gA4WI)KjJ|M*k3}p79ps?zc!i-`P73Qm+|v2N^J5y{2S2 zKH+4k3#|9z5hE9MfdjufD`1LRz=9Cqg?hiD7{zIt zx-{P(ZM05(x*{BUzT`yaa#MX~3S8fGoq(Y}0=C>JV25Gq*Tu-VDo$;!UEB}3-LC#{ zBnK%sQ2qDU@WA0w>W|x8P&DRhT+aQB1^&>uiWZ}|JkWT?VW+j;8m~yCRF9q-?}mlw zo;z!TKiSZ*1Zz6phbb2%?*wd)7muK zj%5+8v!-Z@E+E$3nrKRs!1C9y!1K{gWd0+x`~j5l@Yw>UEE4cam=l@mh1Mmy1V=Vr+pydO!~PV|I&HhQaqWF% zDx21~Jz_Slo)cN9aL>XLwEj_WwflQ*bAQDC^E7SCBk23rfq*19{9#n+r>8k zRkE(ONB8+C!`rld?!@C0Z5{0}UxY;6OPg>VZGLmJcI=~0IH(kBjlHi!|B3Ci#yx1k zWS_N`%+@&fmuoFokszAl-hrW30Xys$@ItnBng?|MV|{JzyCmR4?XE>)aOi{fWOxM8 zUrn{A3ig5%HQI|~qtVWXYcEA1Rd@cNy}uD2@E@Rk{P6`&Mmp__Ls>p3I=8hi?ne_7 z=V<>L6@#+6So^^PoLI5TNG!5Pv9CvU#_n)*`TxSZsA+} zRf{D|>`T$MI!kmea>5@ee&j>53}#bey1`Zw?4h1cC#WYGC<{M{_V>M5BUdvn9g`Z! zOv(6HM`^Z2!42_$BL90EPDvC&0r(H1a0+!^>+qThzYn0+)b-z$B6?=%retL6CMB9I zxg{(iu%U$Me|OD4pKc*!Ik`)9{S!v}EVNG~;-K!$;|fz(mt#-{nnMh^@fay;U}r zGh+D+#N|1b*U<=yrPzOW>)Okdn3QJFjfjoaMP?@(Ez9;bDE2)(SJhcZkqDC+qsZWL>f`G0hgap)j1nn99Pxe%U1J1Vn5!5HLxWV z%U$(Y%#0ts(~AzGWfhk^sF5jB99H0OM)Be2KMtiyt2j#krm==Bd!h?-JJ_!-3uaspJY=-b zaD}HgxS&5xwCB`^;U*aEAf&@=fg59CxY@B4+m{P|cHWiswQX3{z}_>8xyT$FL_)Id z9_wQ-cV!yMl71;VdtO~c?u{$+Z{t`y%PI91PATaVomAEvQ>H+emeeeW%9IV3PSH(D zHJBl@RC_l!mds)gZgFF|jQQKk-B|#qcdY;4#`?G?Qo6(CFv3C144Caqd-ljE=4vmi z&)VAuyD~Ss%$;@T(}$!Qq4O+VqJ5A%3l+mOyVafb#!LUb#CtcUwl`?Ne8h0LJ-h)6 zWJB!VHedyCl7|Ot;)WDz)@37U>oUz5DaJHIh_2tkp&o2yu&sS=puJlRQy#qEn@!gI E58^j;g#Z8m delta 7429 zcmZ8lcUTnHyZ+AZ%+Bs?Qv?(#t`rL@7z7)r!LA^pq9~To7Fb14z#n2;8&MHkK-NOA zcSBSxv0y|*!QM4$P-00;j0HraqPg$x+~+>O=l%ij%-K`E`hMS;i--6JyZM#&W+f4Q zMYP}<5r2wEQI1y~-b;xFY$ckVC}G_z3F{vd4Qx*oJb-BM8DfrOh(=(};|AaoB2yeu z<0lk;zOat%Wr{i$xJQmi8tNC#46&K{z%LzmiSy8coS!@sUYgoKzyMWkvIt0 zm*|hX#P7%>I`WqIJ<&vO?+||m>zq##U-^+JW;pRz&f&d|`1{9+`mQ0h^FpHU+L7n; z--x*mpw@}QiP|l;qM4}U5^9s`LrhgjZT|8nTAM@OR*Re-X+!4s3wc{DaApvBLt{FV z1%x1H_K^3BjzksFsqA9VFUZ zL_>@v@SU25Zf{N$y^g}W+#;syM#CmfC0boTBNnfL?>f=)g&eYLtVh?n-0TaE1GD3EQ8OFyXd@$v0?h6tW>v zlyI^@;}#quX6H;3{)VMDccQrL%Y+m#ld;&FXk!Bz?|2aDCQ`y&`1-GUnylJN%)yl= z7l=d?3Mn-iK{r}O(*lk>!+JX(#^R=L`&1Vet`=HG1t47 ziTQVCo(`~(S19vL^FrO!9+bLve}+Zi7p*t z=HC$mQBiE^d`RBkj}_d;e7o6fgU3}OOAY(+n2hM;K6a$92QkA1R+fAL&_rRW>c@0MXV+S=RXvL_3el7EMYq6Z133a&CM^5I&PFvxmv{rpQ*UnnRRp zlKs#I2Mi679Y)mBIcM3CmGI@c!Ls8CosieZWXDhKA*SCaJJ}WE1Ln%kbQ?~zVy&zy z1s1qfBYV06L3}t;R(G=}QThnkhsB7IK!4eXiV9+0-Q?Q$=5iw63_JiQE|=SFWQguH za{CE#qWq`w=4D$!z02j!JHv=3C(2#A<`Ai>iOKjLtZfSw{ca7!iuieD&-tzB@vCeQq)pBmdH50*cpr zjz3?5^z6o|t_}h*`Ek14u;9GioYNEpXYU5iW4I9*%XyAHfrAyC*OePYeV&;)zr{NE z;4gZy! zF%|3iIW}bUl3V%$E=$bkR;+)F1NU+(&o&`)zQ(N?goB&*=L%;+;qdcZ(e2g97Bg`h z2gV@}UAV3N!GI%sa@$SHUu|EQGr{;1sxiD0ej+HKe%*cRhSF2y6v+V^|9E ze_LPf?y(g_jeg_q9h!!qdd&Uh+lOdJTkiD-1kvIUu3-l(bUl@)Rq(ZWAx}Z%!|*mt0gM$!O!${Bbrsm�L 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, mApp->activeWindow()); + dialog->setLastDownloadOption(m_lastDownloadOption); dialog->show(); connect(dialog, SIGNAL(dialogFinished(int)), this, SLOT(optionsDialogAccepted(int))); } @@ -96,11 +98,15 @@ void DownloadFileHelper::optionsDialogAccepted(int finish) break; case 1: //Open m_openFileChoosed = true; + m_lastDownloadOption = DownloadManager::OpenFile; break; case 2: //Save + m_lastDownloadOption = DownloadManager::SaveFile; break; } + m_manager->setLastDownloadOption(m_lastDownloadOption); + if (!m_openFileChoosed) { if (m_downloadPath.isEmpty()) { if (m_useNativeDialog) { diff --git a/src/downloads/downloadfilehelper.h b/src/downloads/downloadfilehelper.h index 122f4dcd3..4913552b1 100644 --- a/src/downloads/downloadfilehelper.h +++ b/src/downloads/downloadfilehelper.h @@ -28,6 +28,8 @@ #include #include +#include "downloadmanager.h" + class DownloadItem; class DownloadManager; class WebPage; @@ -40,6 +42,8 @@ public: void setListWidget(QListWidget* tw) { m_listWidget = tw; } void setDownloadManager(DownloadManager* m) { m_manager = m; } + void setLastDownloadOption(const DownloadManager::DownloadOption &option) { m_lastDownloadOption = option; } + void handleUnsupportedContent(QNetworkReply* reply, bool askWhatToDo); signals: @@ -52,6 +56,7 @@ private slots: private: QString getFileName(QNetworkReply* reply); + DownloadManager::DownloadOption m_lastDownloadOption; QString m_lastDownloadPath; QString m_downloadPath; bool m_useNativeDialog; diff --git a/src/downloads/downloadmanager.cpp b/src/downloads/downloadmanager.cpp index a8792f96e..c22c4182c 100644 --- a/src/downloads/downloadmanager.cpp +++ b/src/downloads/downloadmanager.cpp @@ -188,6 +188,7 @@ void DownloadManager::handleUnsupportedContent(QNetworkReply* reply, WebPage* pa DownloadFileHelper* h = new DownloadFileHelper(m_lastDownloadPath, m_downloadPath, m_useNativeDialog, page); connect(h, SIGNAL(itemCreated(QListWidgetItem*, DownloadItem*)), this, SLOT(itemCreated(QListWidgetItem*, DownloadItem*))); + h->setLastDownloadOption(m_lastDownloadOption); h->setDownloadManager(this); h->setListWidget(ui->list); h->handleUnsupportedContent(reply, askWhatToDo); diff --git a/src/downloads/downloadmanager.h b/src/downloads/downloadmanager.h index b146264b4..714c9ac19 100644 --- a/src/downloads/downloadmanager.h +++ b/src/downloads/downloadmanager.h @@ -47,8 +47,9 @@ class WebPage; class DownloadManager : public QWidget { Q_OBJECT - public: + enum DownloadOption { OpenFile, SaveFile }; + explicit DownloadManager(QWidget* parent = 0); ~DownloadManager(); @@ -58,6 +59,7 @@ public: void handleUnsupportedContent(QNetworkReply* reply, WebPage* page, bool askWhatToDo = true); bool canClose(); void setLastDownloadPath(const QString &lastPath) { m_lastDownloadPath = lastPath; } + void setLastDownloadOption(const DownloadOption &option) { m_lastDownloadOption = option; } public slots: void show(); @@ -94,6 +96,8 @@ private: bool m_useNativeDialog; bool m_isClosing; bool m_closeOnFinish; + + DownloadOption m_lastDownloadOption; }; #endif // DOWNLOADMANAGER_H diff --git a/src/downloads/downloadoptionsdialog.cpp b/src/downloads/downloadoptionsdialog.cpp index 917dce987..0489f63a9 100644 --- a/src/downloads/downloadoptionsdialog.cpp +++ b/src/downloads/downloadoptionsdialog.cpp @@ -31,9 +31,27 @@ DownloadOptionsDialog::DownloadOptionsDialog(const QString &fileName, const QPix setFixedHeight(sizeHint().height()); + ui->buttonBox->setFocus(); + connect(this, SIGNAL(finished(int)), this, SLOT(emitDialogFinished(int))); } +void DownloadOptionsDialog::setLastDownloadOption(const DownloadManager::DownloadOption &option) +{ + switch (option) { + case DownloadManager::OpenFile: + ui->radioOpen->setChecked(true); + break; + + case DownloadManager::SaveFile: + ui->radioSave->setChecked(true); + break; + + default: + break; + } +} + void DownloadOptionsDialog::emitDialogFinished(int status) { if (status != 0) { diff --git a/src/downloads/downloadoptionsdialog.h b/src/downloads/downloadoptionsdialog.h index fec5c4326..cec1b6907 100644 --- a/src/downloads/downloadoptionsdialog.h +++ b/src/downloads/downloadoptionsdialog.h @@ -22,6 +22,8 @@ #include #include +#include "downloadmanager.h" + namespace Ui { class DownloadOptionsDialog; @@ -35,6 +37,8 @@ public: explicit DownloadOptionsDialog(const QString &fileName, const QPixmap &fileIcon, const QString &mimeType, const QUrl &url, QWidget* parent = 0); ~DownloadOptionsDialog(); + void setLastDownloadOption(const DownloadManager::DownloadOption &option); + private slots: void emitDialogFinished(int status); diff --git a/src/downloads/downloadoptionsdialog.ui b/src/downloads/downloadoptionsdialog.ui index b527839a6..613a0cd2c 100644 --- a/src/downloads/downloadoptionsdialog.ui +++ b/src/downloads/downloadoptionsdialog.ui @@ -137,9 +137,6 @@ Open... - - true - @@ -147,6 +144,9 @@ Save File + + true + diff --git a/src/other/sourceviewer.cpp b/src/other/sourceviewer.cpp index 8e83fcdaa..8c03f4e64 100644 --- a/src/other/sourceviewer.cpp +++ b/src/other/sourceviewer.cpp @@ -91,6 +91,10 @@ SourceViewer::SourceViewer(QWebPage* page, const QString &selectedHtml) : //Highlight selectedHtml if (!selectedHtml.isEmpty()) { m_sourceEdit->find(selectedHtml, QTextDocument::FindWholeWords); + } else { + QTextCursor cursor = m_sourceEdit->textCursor(); + cursor.setPosition(0); + m_sourceEdit->setTextCursor(cursor); } } diff --git a/src/src.pro b/src/src.pro index e43dca92b..06dda7ffc 100644 --- a/src/src.pro +++ b/src/src.pro @@ -35,7 +35,7 @@ TRANSLATIONS +=../translations/cs_CZ.ts\ ../translations/zh_CN.ts\ ../translations/it_IT.ts\ ../translations/pl_PL.ts\ - ../translations/es.ts\ + ../translations/es_ES.ts\ INCLUDEPATH += 3rdparty\ diff --git a/src/webview/webview.cpp b/src/webview/webview.cpp index 63ef0fd52..4616afe9a 100644 --- a/src/webview/webview.cpp +++ b/src/webview/webview.cpp @@ -46,6 +46,7 @@ WebView::WebView(QupZilla* mainClass, WebTab* webTab) , m_page(new WebPage(this, p_QupZilla)) , m_webTab(webTab) , m_locationBar(0) + , m_menu(new QMenu(this)) , m_mouseTrack(false) , m_navigationVisible(false) , m_mouseWheelEnabled(true) @@ -529,7 +530,7 @@ void WebView::mouseMoveEvent(QMouseEvent* event) void WebView::contextMenuEvent(QContextMenuEvent* event) { - QMenu* menu = new QMenu(this); + m_menu->clear(); QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos()); @@ -537,83 +538,84 @@ void WebView::contextMenuEvent(QContextMenuEvent* event) if (page()->selectedText() == r.linkText()) { findText(""); } - menu->addAction(QIcon(":/icons/menu/popup.png"), tr("Open link in new &tab"), this, SLOT(openUrlInNewTab()))->setData(r.linkUrl()); - menu->addAction(tr("Open link in new &window"), this, SLOT(openUrlInNewWindow()))->setData(r.linkUrl()); - menu->addSeparator(); - menu->addAction(IconProvider::fromTheme("user-bookmarks"), tr("B&ookmark link"), this, SLOT(bookmarkLink()))->setData(r.linkUrl()); - menu->addAction(QIcon::fromTheme("document-save"), tr("&Save link as..."), this, SLOT(downloadLinkToDisk()))->setData(r.linkUrl()); - menu->addAction(tr("Send link..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl()); - menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy link address"), this, SLOT(copyLinkToClipboard()))->setData(r.linkUrl()); - menu->addSeparator(); + m_menu->addAction(QIcon(":/icons/menu/popup.png"), tr("Open link in new &tab"), this, SLOT(openUrlInNewTab()))->setData(r.linkUrl()); + m_menu->addAction(tr("Open link in new &window"), this, SLOT(openUrlInNewWindow()))->setData(r.linkUrl()); + m_menu->addSeparator(); + m_menu->addAction(IconProvider::fromTheme("user-bookmarks"), tr("B&ookmark link"), this, SLOT(bookmarkLink()))->setData(r.linkUrl()); + m_menu->addAction(QIcon::fromTheme("document-save"), tr("&Save link as..."), this, SLOT(downloadLinkToDisk()))->setData(r.linkUrl()); + m_menu->addAction(tr("Send link..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl()); + m_menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy link address"), this, SLOT(copyLinkToClipboard()))->setData(r.linkUrl()); + m_menu->addSeparator(); if (!selectedText().isEmpty()) { - menu->addAction(pageAction(QWebPage::Copy)); + m_menu->addAction(pageAction(QWebPage::Copy)); } } if (!r.imageUrl().isEmpty()) { - if (!menu->isEmpty()) { - menu->addSeparator(); + if (!m_menu->isEmpty()) { + m_menu->addSeparator(); } - menu->addAction(tr("Show i&mage"), this, SLOT(showImage()))->setData(r.imageUrl()); - menu->addAction(tr("Copy im&age"), this, SLOT(copyImageToClipboard()))->setData(r.imageUrl()); - menu->addAction(QIcon::fromTheme("edit-copy"), tr("Copy image ad&dress"), this, SLOT(copyLinkToClipboard()))->setData(r.imageUrl()); - menu->addSeparator(); - menu->addAction(QIcon::fromTheme("document-save"), tr("&Save image as..."), this, SLOT(downloadImageToDisk()))->setData(r.imageUrl()); - menu->addAction(tr("Send image..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl()); - menu->addSeparator(); + m_menu->addAction(tr("Show i&mage"), this, SLOT(showImage()))->setData(r.imageUrl()); + m_menu->addAction(tr("Copy im&age"), this, SLOT(copyImageToClipboard()))->setData(r.imageUrl()); + m_menu->addAction(QIcon::fromTheme("edit-copy"), tr("Copy image ad&dress"), this, SLOT(copyLinkToClipboard()))->setData(r.imageUrl()); + m_menu->addSeparator(); + m_menu->addAction(QIcon::fromTheme("document-save"), tr("&Save image as..."), this, SLOT(downloadImageToDisk()))->setData(r.imageUrl()); + m_menu->addAction(tr("Send image..."), this, SLOT(sendLinkByMail()))->setData(r.linkUrl()); + m_menu->addSeparator(); //menu->addAction(tr("Block image"), this, SLOT(blockImage()))->setData(r.imageUrl().toString()); if (!selectedText().isEmpty()) { - menu->addAction(pageAction(QWebPage::Copy)); + m_menu->addAction(pageAction(QWebPage::Copy)); } } QWebElement element = r.element(); - if (!element.isNull() && (element.tagName().toLower() == "input" || element.tagName().toLower() == "textarea")) { - if (menu->isEmpty()) { - delete menu; - menu = page()->createStandardContextMenu(); + if (!element.isNull() && (element.tagName().toLower() == "input" || element.tagName().toLower() == "textarea" || + element.tagName().toLower() == "video" || element.tagName().toLower() == "audio") ) { + if (m_menu->isEmpty()) { + page()->createStandardContextMenu()->popup(QCursor::pos()); + return; } } - if (menu->isEmpty()) { - QAction* action = menu->addAction(tr("&Back"), this, SLOT(back())); + if (m_menu->isEmpty()) { + QAction* action = m_menu->addAction(tr("&Back"), this, SLOT(back())); action->setIcon(IconProvider::standardIcon(QStyle::SP_ArrowBack)); history()->canGoBack() ? action->setEnabled(true) : action->setEnabled(false); - action = menu->addAction(tr("&Forward"), this, SLOT(forward())); + action = m_menu->addAction(tr("&Forward"), this, SLOT(forward())); action->setIcon(IconProvider::standardIcon(QStyle::SP_ArrowForward)); history()->canGoForward() ? action->setEnabled(true) : action->setEnabled(false); - menu->addAction(IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("&Reload"), this, SLOT(slotReload())); - action = menu->addAction(IconProvider::standardIcon(QStyle::SP_BrowserStop), tr("S&top"), this, SLOT(stop())); + m_menu->addAction(IconProvider::standardIcon(QStyle::SP_BrowserReload), tr("&Reload"), this, SLOT(slotReload())); + action = m_menu->addAction(IconProvider::standardIcon(QStyle::SP_BrowserStop), tr("S&top"), this, SLOT(stop())); isLoading() ? action->setEnabled(true) : action->setEnabled(false); - menu->addSeparator(); - menu->addAction(IconProvider::fromTheme("user-bookmarks"), tr("Book&mark page"), this, SLOT(bookmarkLink())); - menu->addAction(QIcon::fromTheme("document-save"), tr("&Save page as..."), this, SLOT(downloadLinkToDisk()))->setData(url()); - menu->addAction(tr("Send page..."), this, SLOT(sendLinkByMail()))->setData(url()); - menu->addSeparator(); - menu->addAction(QIcon::fromTheme("edit-select-all"), tr("Select &all"), this, SLOT(selectAll())); + m_menu->addSeparator(); + m_menu->addAction(IconProvider::fromTheme("user-bookmarks"), tr("Book&mark page"), this, SLOT(bookmarkLink())); + m_menu->addAction(QIcon::fromTheme("document-save"), tr("&Save page as..."), this, SLOT(downloadLinkToDisk()))->setData(url()); + m_menu->addAction(tr("Send page..."), this, SLOT(sendLinkByMail()))->setData(url()); + m_menu->addSeparator(); + m_menu->addAction(QIcon::fromTheme("edit-select-all"), tr("Select &all"), this, SLOT(selectAll())); if (!selectedText().isEmpty()) { - menu->addAction(pageAction(QWebPage::Copy)); + m_menu->addAction(pageAction(QWebPage::Copy)); } - menu->addSeparator(); - menu->addAction(QIcon::fromTheme("text-html"), tr("Show so&urce code"), this, SLOT(showSource())); - menu->addAction(QIcon::fromTheme("dialog-information"), tr("Show info ab&out site"), this, SLOT(showSiteInfo()))->setData(url()); - menu->addAction(tr("Show Web &Inspector"), this, SLOT(showInspector())); + m_menu->addSeparator(); + m_menu->addAction(QIcon::fromTheme("text-html"), tr("Show so&urce code"), this, SLOT(showSource())); + m_menu->addAction(QIcon::fromTheme("dialog-information"), tr("Show info ab&out site"), this, SLOT(showSiteInfo()))->setData(url()); + m_menu->addAction(tr("Show Web &Inspector"), this, SLOT(showInspector())); } - mApp->plugins()->populateWebViewMenu(menu, this, r); + mApp->plugins()->populateWebViewMenu(m_menu, this, r); if (!selectedText().isEmpty()) { - menu->addSeparator(); + m_menu->addSeparator(); QString selectedText = page()->selectedText(); selectedText.truncate(20); SearchEngine engine = mApp->searchEnginesManager()->activeEngine(); - menu->addAction(engine.icon, tr("Search \"%1 ..\" with %2").arg(selectedText, engine.name), this, SLOT(searchSelectedText())); + m_menu->addAction(engine.icon, tr("Search \"%1 ..\" with %2").arg(selectedText, engine.name), this, SLOT(searchSelectedText())); } #if QT_VERSION == 0x040800 @@ -621,12 +623,11 @@ void WebView::contextMenuEvent(QContextMenuEvent* event) // menu->addAction(tr("Show source of selection"), this, SLOT(showSourceOfSelection())); #endif - if (!menu->isEmpty()) { + if (!m_menu->isEmpty()) { //Prevent choosing first option with double rightclick QPoint pos = QCursor::pos(); QPoint p(pos.x(), pos.y() + 1); - menu->exec(p); - delete menu; + m_menu->popup(p); return; } diff --git a/src/webview/webview.h b/src/webview/webview.h index 15dc717b9..ec3a84dec 100644 --- a/src/webview/webview.h +++ b/src/webview/webview.h @@ -153,6 +153,7 @@ private: WebTab* m_webTab; NetworkManagerProxy* m_networkProxy; LocationBar* m_locationBar; + QMenu* m_menu; bool m_mouseTrack; bool m_navigationVisible; diff --git a/translations/es.ts b/translations/es_ES.ts similarity index 98% rename from translations/es.ts rename to translations/es_ES.ts index 3f6e6a50c..38fe65bf8 100644 --- a/translations/es.ts +++ b/translations/es_ES.ts @@ -236,7 +236,7 @@ Username - + Nombre de usuario @@ -280,7 +280,7 @@ Hide Passwords - + Ocultar contraseñas @@ -308,7 +308,7 @@ Do you want QupZilla to remember password for <b>%1</b> on %2? - + ¿Desea que QupZilla recuerde las contraseñas de <b>%1</b> en %2? @@ -1122,7 +1122,7 @@ Native System Notification - + Sistema de notificación nativo @@ -1643,7 +1643,7 @@ .co.uk Append domain name on ALT + Enter = Should be different for every country - .co.uk + .co.uk @@ -1729,12 +1729,12 @@ The page you are trying to access has the following errors in the SSL certificate: - + La página a la que está intentando acceder tiene los siguientes errores en el certificado SSL: Would you like to make an exception for this certificate? - + ¿Le gustaría hacer una excepción para este certificado? @@ -2197,17 +2197,17 @@ Open speed dial - + Abrir speed dial Select all text by clicking in address bar - + Seleccionar todo el texto al hacer click en la barra de direcciones Enable XSS Auditing - + Habilitar Auditoría XSS @@ -2810,7 +2810,7 @@ Character &Encoding - &Carácter y codificación + &Codificación de caracteres @@ -2943,7 +2943,7 @@ Report &Issue - &Informar de un error + &Informar de un fallo @@ -3084,7 +3084,7 @@ Report Issue - + Informar de un fallo @@ -3226,43 +3226,43 @@ Speed Dial - + Speed Dial Add New Page - + Añadir página nueva Edit - Editar + Editar Remove - Quitar + Quitar Reload - Recargar + Recargar Url - Url + Url Title - Título + Título New Page - + Página nueva @@ -3428,28 +3428,29 @@ Por favor, añada alguno con el icono RSS de la barra de navegación en sitios q This is a list of CA Authorities Certificates stored in the standard system path and in user specified paths. - + Esta es una lista con los certificados de autoridades CA alamcenados en la ruta estándard del sistema y en las rutas especificadas por el usuario. This is a list of Local Certificates stored in your user profile. It also contains all certificates, that have received an exception. - + Esta es una lista con los certificados locales almacenados en su perfil de usuario. También contiene todos los certificados que han recibido una excepción. If CA Authorities Certificates were not automatically loaded from the system, you can specify paths manually where the certificates are stored. - + Si los certificados de autoridades CA no se cargaron automáticamente desde el sistema, puede especificar manualmente la ruta donde están almacenados. <b>NOTE:</b> Setting this option is a high security risk! - + <b>NOTA:</b> ¡Establecer esta opción supone un alto riesgo de seguridad! All certificates must have .crt suffix. After adding or removing certificate paths, it is neccessary to restart QupZilla in order to take effect the changes. - + Todos los certificados deben tener el sufijo .crt. +Después de añadir o quitar rutas de certificados, es necesario reiniciar QupZilla para que los cambios surjan efecto. @@ -3475,7 +3476,7 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla Ignore all SSL Warnings - Ignorar todos los avisos SLL + Ignorar todos los avisos SSL @@ -4129,7 +4130,7 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla New tab - Nueva pestaña + Nueva pestaña @@ -4373,4 +4374,4 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla Prevenir que esta página cree diálogos adicionales - + \ No newline at end of file diff --git a/translations/nl_NL.ts b/translations/nl_NL.ts index d06a31521..766d044f6 100644 --- a/translations/nl_NL.ts +++ b/translations/nl_NL.ts @@ -236,7 +236,7 @@ Username - + Gebruikersnaam @@ -280,7 +280,7 @@ Hide Passwords - + Verberg wachtwoorden @@ -308,7 +308,7 @@ Do you want QupZilla to remember password for <b>%1</b> on %2? - + Wilt u dat QupZilla het wachtwoord onthoudt voor <b>%1</b> op %2? @@ -1123,7 +1123,7 @@ Native System Notification - + Natieve systeemmelding @@ -1644,7 +1644,7 @@ werd niet gevonden! .co.uk Append domain name on ALT + Enter = Should be different for every country - .nl + .nl @@ -1730,12 +1730,12 @@ werd niet gevonden! The page you are trying to access has the following errors in the SSL certificate: - + De pagina die u probeert te bereiken heeft de volgende fouten in het SSL-certificaat: Would you like to make an exception for this certificate? - + Wilt u een uitzondering maken voor dit certificaat? @@ -2153,7 +2153,7 @@ werd niet gevonden! Open speed dial - + Open speed dial @@ -2178,7 +2178,7 @@ werd niet gevonden! Select all text by clicking in address bar - + Selecteer alle tekst door te klikken in de adresbalk @@ -2188,7 +2188,7 @@ werd niet gevonden! Enable XSS Auditing - + Schakel XSS-auditing in @@ -3229,43 +3229,43 @@ werd niet gevonden! Speed Dial - + Speed Dial Add New Page - + Voeg nieuwe pagina toe Edit - Bewerk + Bewerk Remove - Verwijder + Verwijder Reload - Herlaad + Herlaad Url - URL + URL Title - Titel + Titel New Page - + Nieuwe pagina @@ -4134,7 +4134,7 @@ Na het toevoegen of verwijderen van paden, is het noodzakelijk om de browser te New tab - Nieuw tabblad + Nieuw tabblad