From c877c9c412de985d987caa92a213753533e43eb5 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 12 Jul 2009 07:12:43 +0000 Subject: [PATCH] - Implemented cut/copy/paste actions on right click in search field - Added icons for menu actions --- src/Icons/oxygen/edit-clear.png | Bin 0 -> 2073 bytes src/Icons/oxygen/edit-copy.png | Bin 0 -> 860 bytes src/Icons/oxygen/edit-cut.png | Bin 0 -> 892 bytes src/Icons/oxygen/edit-paste.png | Bin 0 -> 937 bytes src/icons.qrc | 4 ++++ src/searchEngine.cpp | 34 ++++++++++++++++++++++++++++++-- 6 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 src/Icons/oxygen/edit-clear.png create mode 100644 src/Icons/oxygen/edit-copy.png create mode 100644 src/Icons/oxygen/edit-cut.png create mode 100644 src/Icons/oxygen/edit-paste.png diff --git a/src/Icons/oxygen/edit-clear.png b/src/Icons/oxygen/edit-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..3e052bffd11748059d5e46d5c086ddc190b6b999 GIT binary patch literal 2073 zcmV+!2RP)REG=wpRd*%GeBQq1Rq16ModiH<&$(P#k zCE)OX!0+{J=XL3Y>Zw!y1d|C3*!0*pshCPE)l~_U@+T%d;QJfCwK_2};LmmCpuMB} zHxnMD0L^EfXHVadCNZ|k1pCcsl4h} zlz>)vJxW8j9DxZH9EjRg9DQ+5YM5dDPR3eaCZswH9BA0K!5^{(VaQpGLaQop@@LHu zyCPe^)C5*7uJ>0~J+P&^RNy@P zhdg{LB_SEwACl>n}O| z#kGRKBP}bYSBD&ngYgy^oC+nI?SKgb`V`GbC8EO)uB{8YqyTqt@EjNoLsm4&0J_Kh zCH%(R=|R6;d&~wA9YY#YGN8&?$QcnF$DkM%^xPW!bQdA_DZsn6^QQ!J&iBA!h6;qh zPRQ-EQ!^l(?!b&iRXL21gL?>>Hm-n%2MP|mTtZRU=SF@GL3B8RYrP@{MGmPfhry9} zmY%ru33z&F=Hlvb{^xzfsv5*$w{mvD#_7vzIfq~&4xSQ0)etz{jt7_2=Bj4I%Vxw~ z1Ddxi-CGcFFCdhI!C4^2WAF+DK3;^&rl6~*53vjpgF4w)zhY)lxHrZV!EUjJaxHu? zkMI6!BmMD>L9S!v94fd4POzF0iiVO?Utr-wb8~ewqS=i2k6*$U*Du;qJthCOj-I$M ztF9ceSPF`yLDDtwstkwQjh?|coQ%ljQ6*i})eDFcBf0_3Fj#l}boS;aZLE?b$1aKT z@@MAEBDH_{2jfMVak|ck-Hsbe=cDarzo!0uWA+ov_AV&$HNSr1 zw9&DA37k9!Cjdc`Q8^TYzqrt)0QI*gaH4rJe=+8qPp!r;YAV9Dr!IEk!Rm4tP$9;$ z(5(bnMT3>;5OST!$SNY;@qxUNjJ?WC5IS$M;kp`j;M_%{GLZ9D*^-(MHAY1X$)-O2 zYPlDTnrpSB@LNW?G%R>WJE03y-#5`)NaUQO)(6Lv(gU z36h%3G*Kf?j}61|Gzx=mXo?C+(~<9UBO)rTS~8i6Q{Kl{R^Zr$%SL&A-oBCrQ;&nU zq%0bV85GgLl<=k8t0OmCyL*>~A70L#jzmV~e;<|aU`*v~`8giKlcH&5A!_4!>(rtk zBrwKw21+<++UV#hOgpjwibHOI*h4y!-fu;Kjz-PqQ0uq8bz&$}as2|4t`wGLY1$s3A9?@y=G`zm~%Ldnec z!bU$EjL4Hq{PvK~1<{;BMh8mFfSZwY8jQSVFeU literal 0 HcmV?d00001 diff --git a/src/Icons/oxygen/edit-copy.png b/src/Icons/oxygen/edit-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..d4180c69c2ce5791895782978b4e813bacc2270a GIT binary patch literal 860 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy%*9TgAsieWw;%dH0CG7CJR*yM zqGce=SbMeU3{X(A#5JNMI6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDFy~cqX3@} z*Z=?j1Jz>%&aSRNao<4y_@t!dwA84$nDm^iti0?Ud-mSGd+*TU!{;wt=$+8pH(|o0 zX;Ws-o;`EUtOW}fE?u^4<;s<-R)fIWwQJX{Tep7w`VAX4Y}&MG+qP{xckbM^Z~yMy zyAK{bc<9if!$%IEIC0|i>CNOa=0fV<-@D2>#zkm1P<9i_Z00ti+;M2!XVDK3X zzJS43F!%-r-@)Jq2>kpBL_dH10-|5PeuKcDKY#xI{rm6VKaQJcPXWV4v?Rzcn1PXr zS=HLr+oz&&(u`&6wjKHY>)*eN6TfrB(jw)AHloTbu#r>pGZ z)!FsJ{M%%wv)syFD$0L6d~K`!jMI-rZtk8Hd*o?lMP>R;=6YTyWraVpVqAY;ZzwQd z++d^gTHpWkKCy&vjg7oYT2h$?I}S`ar4T=>L2{#*LuG=`qyUM)%d0jth_G}w+NjR= ziw<*b5#UPq+07TCyM~MVNQ{ACV@#1U+gc?igYDA}l^RUZnsp#1@8~KIrd+dp`Nl3R&BO%$Kq(IxQdk;ED~%W4xMCGBG*-g4)_irQGpazIMs?zOh~3vU*XI z{~_XWpmgo&>gTe~DWM4f5f#Qg literal 0 HcmV?d00001 diff --git a/src/Icons/oxygen/edit-cut.png b/src/Icons/oxygen/edit-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..073232808a62fba614f56f1daeac9e4addc97ccd GIT binary patch literal 892 zcmV-?1B3jDP)kdg00002b3#c}2nbc| zMg#x=010qNS#tmY19kua19ky@)q>0b000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S* zE^l&Yo9;Xs0008}Nklpqd-%TR z|2P*vK`+{{^o5}LLo7{%!9>5_s(X6h6!4&|@wG|7Gj({ZFmArnqtBeLl6m=@OEcNdT02My0)1X$-i2NUA8lO)N72t?3bsjBer@&O??6`$nZpH-O9m zi>d@lw6_?3>DfIM8k)(`ECAxBjVa}-nylHg^2CV=nJ&2iWC1{&#t#Y%3^+N=Ol&$k zmH5&}t1SXR8D(Oq@$%7hZ>Ul+5|rGf1r`G2{YfZ;L{gG4)v~>Yh7|ZQ?i3HQ6rlap zlTe|%n{0{I`c@4w$_2F8VgN*eAB9qAv<(+-&%2sm~ONpS6-?k>+_aRT8l%mV()gRX@>3M$+ogXIGs+SLs_r&rYOhGu<^&tH?Z}VX` zW1Za1j(aYFNs<}>#EO=M4o|h9VIEvYjr}?}pJNfpc(FnL?I{Qh*8{xysR(ES`5lbW z`Rdp?pt)gtx+{3_eFzFF%7EWZJ%F2^iR8a=kNIjIoLWG}<5U&Q?9)ZJMfc`{`$`XR zvsh-A*A1~JTvZ3au^ZsZQQjDArrz|KuMFVjX1p SYgWbp0000OhyY5q10W3=1t0xvk9N?~$xasmc`-|fKd?d|tyZaQ>-KmjlaTzOz= zX{k4e#&UbQEtyOj0}EJKShx|1MDF_i{uy*NaDw^ydFXUH%I&JIwWZT(!1-#P>ffr@ z>yI*-%)7oJh(@E2r>Cc<0)YVdd_KF-;-OFo+#nv0LpU6U;o)I>ez{zp+1%WGirtO^ z6sC4|c7TJ(Yqc6oOt{OhY&HwQV2~$guRb<5c1=t|BBII4eQFWfO)8awcDrr&@qP@K zY9lX_+qE%;LV?Ed&04fS3!xgdiQL9wF=(|~TKlQ-G={8J8jS`~TvmB^B7lx{Qwh+{ zwz6vB)zww-f?O{5oj)V_RWy6t17~_cWiz2zD$&IMg&J6$EHDdd497{|g^>}vg$p=y z_sS~-o1ByCbtXisYj6qy7t&7v72YS13j%}?I16wHgBy4af#c5gXIX$00w;2b*kcH| z0D!*avJmef5XiNu1K8W&hj1ti!xvOKy>*tDpz1{!|?T~K>7VqDK z&!4_fcZrhD@kNx+=S_6orBe%XE9LIcons/oxygen/configure.png Icons/oxygen/connection.png Icons/oxygen/download.png + Icons/oxygen/edit-clear.png + Icons/oxygen/edit-copy.png + Icons/oxygen/edit-cut.png + Icons/oxygen/edit-paste.png Icons/oxygen/edit_clear.png Icons/oxygen/encrypted.png Icons/oxygen/file.png diff --git a/src/searchEngine.cpp b/src/searchEngine.cpp index c85eae101..91f1e75af 100644 --- a/src/searchEngine.cpp +++ b/src/searchEngine.cpp @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include "searchEngine.h" #include "bittorrent.h" @@ -101,14 +103,42 @@ SearchEngine::~SearchEngine(){ void SearchEngine::displayPatternContextMenu(QPoint) { QMenu myMenu(this); - QAction PasteAct(tr("Paste"), &myMenu); - QAction clearHistoryAct(tr("Clear completion history"), &myMenu); + QAction cutAct(QIcon(":/Icons/oxygen/edit-cut.png"), tr("Cut"), &myMenu); + QAction copyAct(QIcon(":/Icons/oxygen/edit-copy.png"), tr("Copy"), &myMenu); + QAction pasteAct(QIcon(":/Icons/oxygen/edit-paste.png"), tr("Paste"), &myMenu); + QAction clearAct(QIcon(":/Icons/oxygen/edit_clear.png"), tr("Clear field"), &myMenu); + QAction clearHistoryAct(QIcon(":/Icons/oxygen/edit-clear.png"), tr("Clear completion history"), &myMenu); + bool hasCopyAct = false; + if(search_pattern->hasSelectedText()) { + myMenu.addAction(&cutAct); + myMenu.addAction(©Act); + hasCopyAct = true; + } + if(qApp->clipboard()->mimeData()->hasText()) { + myMenu.addAction(&pasteAct); + hasCopyAct = true; + } + if(hasCopyAct) + myMenu.addSeparator(); myMenu.addAction(&clearHistoryAct); + myMenu.addAction(&clearAct); QAction *act = myMenu.exec(QCursor::pos()); if(act != 0) { if(act == &clearHistoryAct) { searchHistory.clear(); createCompleter(); + } else if (act == &pasteAct) { + } else if (act == &pasteAct) { + search_pattern->paste(); + } + else if (act == &cutAct) { + search_pattern->cut(); + } + else if (act == ©Act) { + search_pattern->copy(); + } + else if (act == &clearAct) { + search_pattern->clear(); } } }