From 42fe6350082bd564e8d6edfe58739e76d4075b27 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Tue, 6 Mar 2007 18:42:31 +0000 Subject: [PATCH] bat updates git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4323 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/dird/ua_tree.c | 5 +++ bacula/src/qt-console/console/console.cpp | 2 +- bacula/src/qt-console/images/home.png | Bin 0 -> 1781 bytes bacula/src/qt-console/images/mark.png | Bin 0 -> 452 bytes bacula/src/qt-console/images/next.png | Bin 0 -> 1646 bytes bacula/src/qt-console/images/prev.png | Bin 0 -> 1605 bytes bacula/src/qt-console/images/unmark.png | Bin 0 -> 387 bytes bacula/src/qt-console/images/up.png | Bin 0 -> 1579 bytes bacula/src/qt-console/mainwin.cpp | 35 +++++++++++++++ bacula/src/qt-console/mainwin.h | 3 ++ bacula/src/qt-console/restore/restore.cpp | 43 ++++++++++-------- bacula/src/qt-console/restore/restore.ui | 51 +++++++++++++--------- 12 files changed, 99 insertions(+), 40 deletions(-) create mode 100644 bacula/src/qt-console/images/home.png create mode 100644 bacula/src/qt-console/images/mark.png create mode 100644 bacula/src/qt-console/images/next.png create mode 100644 bacula/src/qt-console/images/prev.png create mode 100644 bacula/src/qt-console/images/unmark.png create mode 100644 bacula/src/qt-console/images/up.png diff --git a/bacula/src/dird/ua_tree.c b/bacula/src/dird/ua_tree.c index 3a2d160a70..1ff7d51353 100644 --- a/bacula/src/dird/ua_tree.c +++ b/bacula/src/dird/ua_tree.c @@ -103,6 +103,7 @@ bool user_select_files_from_tree(TREE_CTX *tree) /* Get a new context so we don't destroy restore command args */ UAContext *ua = new_ua_context(tree->ua->jcr); ua->UA_sock = tree->ua->UA_sock; /* patch in UA socket */ + BSOCK *user = ua->UA_sock; bsendmsg(tree->ua, _( "\nYou are now entering file selection mode where you add (mark) and\n" @@ -121,9 +122,11 @@ bool user_select_files_from_tree(TREE_CTX *tree) if (!get_cmd(ua, "$ ")) { break; } + if (ua->api) user->signal(BNET_CMD_BEGIN); parse_args_only(ua->cmd, &ua->args, &ua->argc, ua->argk, ua->argv, MAX_CMD_ARGS); if (ua->argc == 0) { bsendmsg(tree->ua, _("Invalid command. Enter \"done\" to exit.\n")); + if (ua->api) user->signal(BNET_CMD_FAILED); continue; } @@ -138,8 +141,10 @@ bool user_select_files_from_tree(TREE_CTX *tree) } if (!found) { bsendmsg(tree->ua, _("Invalid command. Enter \"done\" to exit.\n")); + if (ua->api) user->signal(BNET_CMD_FAILED); continue; } + if (ua->api) user->signal(BNET_CMD_OK); if (!stat) { break; } diff --git a/bacula/src/qt-console/console/console.cpp b/bacula/src/qt-console/console/console.cpp index b0bde34df2..38b4a0cf2b 100644 --- a/bacula/src/qt-console/console/console.cpp +++ b/bacula/src/qt-console/console/console.cpp @@ -99,7 +99,7 @@ void Console::terminate() m_sock->close(); m_sock = NULL; } - m_timer->stop(); +// m_timer->stop(); } /* diff --git a/bacula/src/qt-console/images/home.png b/bacula/src/qt-console/images/home.png new file mode 100644 index 0000000000000000000000000000000000000000..045339ceab11ed6e6e274bf44a5cad462b7ca91b GIT binary patch literal 1781 zcmVfy2OHEC3?@pN>MNqcA$5OgRUH z<71iVPJ4>GvA}_&O)mh?1BXiQG+iKM5jzSa0>1+5y(r|ko)E7A-uPH1ye|R=jyCO; zns_-3qESs3=t@T^g;ELXx7E|t{xATxv&Q+0XK`Ey&+~9?ue607`q2-SDPISi&4_GC zAU^eL0EVSVCTn>cHqLod=;o32>*!MPIv?C(8XwZ~s4|G=9ke$9;=83I2d^rLBI z%Fh9rjh3h)Py*Kzl5|TeUl{!w!~IWI0i2nCpS?Y!08F0$JG(j$RIRy{z0UEsf5FU| z|CC6)rA+xOkS~$Y^n|SNIq;UI3(_sEeDg~`pto%RKPXhlxyw^L+BHH)QxBTdNt!9n z%)d{{s;gM1^aOofd%3#&AvbR=0`wO0;YmFqKWZPS@h_dqR}yI3oqQWe*QAm>^V#P} zH+JB9c7Nd23d!bg(Vgz6v*i&CWtE8=%0lS|p6`-bxq?7e z=tV@dY)^A~Zh{~PTYWcL)|8lRAE+sm3AF7_z5;Z%wCrGX=m=31;su2YNjL1Iw`~y1 zsHyU|nMjf}Ygt-dB-_%_D?pkec{2kk>avxI>1e*wwQK&oAKlg$jVS zrfzn34r3;gTgHw0nkM%59_GZ<8|2-!@_XMea5K9|7)2PC!nM7@{EFY7tkaiDq4+R> zQi_Ic&E)KCSy>86$BrHz-~GkA3fC#Cj;BXn;5UDJg^O4IOJ?aB3zt7EνHZ4XVC z2Z71b4IBihtF14FFE>|~md18IGkEl#lgyD%eS?HDD!_{b62*gQ^Z{0xfTjy9D@op2 zD@(eugChr?yRR&_E!n_VM!!o}dk;dae`%U5j)fFGfLWdqQeYYuwwuRx^XyFb^3>4R zA1Kv!wmia%PrpQ0`$H8Z;)^c;B{!y2x8RbqSIOC{40I2Zvg#f<-}iOwr>}c(t7%!T z2cj^-aq?tkF*N`7FTcbxUI!q(y@ThUdg-2kfAs3J>mhkLQ#@sC1-}qh6(rMvA3g54 z4q;fFTwPl!FUobSZVK|%AMdMp{@qU}%Hsh2*i7)n(e!9Tkd3!rBz1 zv3~p31dM8(%S#`XF5$a+LdyZR1Q;L7L~#K*zLw47`5uO0mBmb$n}TdyW84OK`<&-{ ztYz~=Av0!5dlOgzoN`4pa;#Z;PIyr2;vWf9XHWk=^w%>0IAtCw$pVX}<>+fW`5#jCcF)zB1*jo)hYJ&i&a3(3`$eUJ3jS;5x7b_*FIGrBiv@2WkRM7gIqYS_#AO$;($RQ3!0Bx3`i|2{cW=ql8h! z*|{lZ&z>Rh!;RoqfknVBbxoU={y&THK+dr XD1`MGVh5eI00000NkvXXu0mjfXLVN^ literal 0 HcmV?d00001 diff --git a/bacula/src/qt-console/images/mark.png b/bacula/src/qt-console/images/mark.png new file mode 100644 index 0000000000000000000000000000000000000000..f066077ec29da3ca14a3e32d950ee3d4f6e9970c GIT binary patch literal 452 zcmV;#0XzPQP)8x#KJfCduIc|NmoPkO7OXJo;a>@x=e)O()@) zWP`Cq)XXz?{%5Z`{6A;)5je)Cj$1?lx3^c`dX9o;oxStF^T4J5sY?%_;QX~m|4%%2 z{r`+pxBs{8y6``J;U3(+0DJrLqyO>qcaw$j8Vqtl#Ek7^VY~)+?z!+kaMC8SFkXWb zXYc&)-Lnpk-8)wO_vu-SB8Cg&O)1!7+rMw!f0x#kC>WbM7G81ONsg6I3I&5S`1Y>* zZ(F|<1%t%d#8er;SX`ZfRZxzBiHV)GoaffI>c3g#0u)S@ENxk{_`gBX9286ygY|(1 uY358v!Bi_csa_tV17;2Z21Xzpo&W$mJjKI69!Jgq0000&Tn{ literal 0 HcmV?d00001 diff --git a/bacula/src/qt-console/images/next.png b/bacula/src/qt-console/images/next.png new file mode 100644 index 0000000000000000000000000000000000000000..0d15331f0674b622e57c93ca1123c615cf69d3de GIT binary patch literal 1646 zcmV-!29f!RP)P zDkK`IN~@%5`6snR)&2qPA2d>kEFq<>_#+8L4ORXiC$-pM6QF8LgM$HcPWzQgAqNmF&Cr@NVXJKyiTc{A@lk<1wUKb!e+l-qYVv;aGR`yv4l(Qltt^l7Ef zSSdLGsBCvmFSMpuj0M_vH+%=!2Rsmu8KywUX>6@DVNii}Rx6I132_YYv)wuMi3qgs zZfKK+IIKdw%`gR~Wnx(tmX)BsuAa}X{vrU5o9Dgvui$zvzVG8Xe!PUE0)5a*$(I4Q z8j(2(M7ur)khCq*=^D0g{wnJ~x0%*8n@A^XXMOYj@MW@>{zC8Nclh_1f-=w;uQ|%W9hz?JsZjzQ)NjuQD={BMdYu(0x`)J_O{- zEisEg3~nYQO)HxD+O|DxZrxcGSXV(166gsqRX+9 zT?}3uL@RpCgm@IVo$b!~hMAD%rvE|Gw%EGqLB8Cwi6Hdnl$NH}3Xok}p5oBU&+w(S z8)oThG%J=j@$NtmVW^q|PmdXv=v}?OrYOtS*axs|X#=e-8!32`^GdaL)^ z{rcJl+Ba+gKpNsPpdPS9GGoLq+|{IQaew=Rd|}PKi}Lg*wmn;Qe1BIb+uL`Q`aw|S z!-?Are>lXszIX5(A8#srB)!Bu8$ZQ604&R5XSXO* zcas~v#o*A@(wt>kc#e-@%B?_eOyE9%CAIa_&zCm^z{P)^Tad)xFTP#64b@1Dd^B7! zZdnPSfHYVK*d+pnDX{G{1vd}C)ertzb>WZGjvPG22CO`FD~;qD_oHLbJ%DQhSSdLW2Kub$_*(D- z8sNl8N-K^F$(HfSF;+EwW=;Zj(gxt@k55;f|KYE8mUQlHL!%$WPI%f(7*l{F0kYjW z9VL+2{6qmi@JS}^d8JzW(Qh7|Q{NAK@)HHLqCb@}P6FelBZ!Yj1^PK@inp)d806m8 zjhN=*v-Y3-eh=wXy6RjI1YEx{IPE)5c+^aoW55_NlMh_KSkP?@CZ@)?@a{iK;Hix9N8koh(3D zVTuc3QI9L7b`IURPBC<7T;5E=O3b;_a#31yW#9sruUsMwR5|!f;C2i?XIkFzWTOPq zZa&;@CgjhBWTTZdSkbVORn2Q@T-tuSTMXU2#_f?|d@n>R`io9@G`+;^ z1%@N=!n|qu9VAk~(xRiDmWFst$WlFsl{Cm?ri+t&eiGjcnTad(2Ss%{^7b)c1Q@MW z9nD*sMLuByH9&n~JZLpcxm6mhi{iN`3uXghpa+7Y?uj0mspzVWMgN0p#p&_<=WWPMUG3|rWBew;5dPnxNf0^ zJd{FPC@!>xxDV|^O8OG=;1=p45@;O)4W^-W118yrMv5hWfwO7it}IKdNV}`m%H1_v;)Z-EH#!9P;BB?>*YL9XJH+iUDB6pOacKsg*u& zWkeoOxv`?YQ%qwm8Q6QY@0-AJV6^_slm>=a;nqqMg-u*{W7C{=&r7xA^CccM~Bh)Mu@X z_%=|>oMEk*a3~f8^Eke_(#TNEB*Rs3)zA_##kj z%tVWTI=M^<1~w1!m4i>RZ|HDalJgU10XQ^rr0xF;m08Z5`!!Qn-l>at&B};lfKwM? z%9LoDbKo^o8Vqb6)X%?{M!R$F;psPE}kuQ9Mf!@2R1#Sx_u3zB9qbC!; zksYJtXQtZPYOT0`+e74ME>kX-5yIFhOyd>6EnIR`A|Ouvcha`Sfjyt+f$e(;qo4)X z3zJRc^>KZAvaNj>1!y#zHw|z(KTZ^>!LX)Fre#cQ9q#fQ52E7$y&L-&+P)j7w$ws0 zyHIFL4z#sz96js$*!%EjxsZDUVH%GEzXx2|aKeqIZHotXJVX%s1fky)VA-v7B!B6R z->ga=hCUxw=1^Lbwk>LIu*)fjL)i^-v7UiL0G4I3aeY6_ZlxtiC-T$hPIV-nTbQP} zc#9j;?;vvPdZmYV`S^Vl!eOy1~Qt}Zl@uLwv14#H$7 zU?&1hX<*w~9Ix8s@WW%zcYMQ6S^4OA;^c0$UO9VAv9jn5Ve9}h$sRO>K_+eE)|>>Z zk$;@=@~LqQ-!AI%VSJQ{!u^`%IZ22!ePT^f=%NfVhTxvtB@$ zQnujfXFs=Q5w@LeLOljR%?;3ssqS9+0pQkiqqO1-KzXTzownQJyT3ZzQABUgrUae* z%S)yDB77ZKP6Xt}iaIVJbJdDN5C){vc3XV!`LDJW(aFA!APlHh9JFF8(`~*Al#?ll zN1#IeBY?uq8>D24Y$n?lKYsDa76F}XvzaU@nWAv>1^~Vry#SPA1W7$mxa8=2M!IJr zUoR@9zqGhC&!_I%h9y&&rfk9A-+6^YBVPmHr@uYk*2Xj?8koHLHZ?aO@YHkmdihsi z1}NpmicwQdxc{ks1F!>6JtL&?%d~Cr@Pm6;-_`Sp_J3u$#Kp`1NXRqY=AVF@z%9Vd zjTLoMNmjVzuywdAGNo}b@^x7$b$I$_0Y7r--!w?dN_BkGMkuYhmcPi=YgdRu)kr=A z%+<*|mgW1O>K8!Pt45E=l=!(J*lndvHuv4dmce`I-#CC}rkZ?$$fvk?i|LsUn46y^ zs6}YSl|R zg}!<{UhO4d9$0MG9j)4$#cM(WT|kdh4u?!B4hWN-@qKPITxR(w)cMfYftgfj!jk96J8L?wz;%CWW1_XcyxG}stHK+du=qcwK*lKP-00000NkvXXu0mjf D_Kg%? literal 0 HcmV?d00001 diff --git a/bacula/src/qt-console/images/unmark.png b/bacula/src/qt-console/images/unmark.png new file mode 100644 index 0000000000000000000000000000000000000000..4f7ea940204b98701a491adf98d9c9f7a50c1aba GIT binary patch literal 387 zcmV-}0et?6P)ngRd+|Hq0O=I>^>|NaMqZc+=xU?y(T4Q6sm`%f;AJ6*r&#pK zK~#9!#g|=dTt^khe>3;{?%LiIrwz50v`LGaRt`x>6&Iw2AVo4lqAH@amHN;a1PG)` zNb~_2sZ`=aDu@(#sdz|J2ntn1A_YOKRw5JuH4VgWQtUi9bsFp>wzpo}vG?BHd+!Vn zxp%W0?_xVu#Yk7XGiTRNY^gg~`0#;nr{X+5t@X3s3m;xciH3UkN#Jc|IUw}iWjuv0MDFCU) zW)!MkX^Q87UI53luq+GD^>G~+*Y$C1hp-Y51ZC#0&Jjfsl_1Jky$$R?b+kCNY5=L$ zZWOAoNmKk3Am8rO(N+K;iX$x3qAlM+ds~5=*M{f#_--D6(!vZQV`rEx73+cYx3Y#| z+VV!>eiW*2NK^d8c1<>Iyn{mfIufnWN}-g(kOq$J;y5n0mTBWTIW}}|r04Ek z_&Ja1(j}54Mk^lby3fCOX{0>d62J|@pYw7KJ@@RuFinyqCQjlN0a&JuZ8`W(j?K5< z%cic)TzUT@L1hV*=%yfqlQ%M-d*Nd88OxQwcRY(vYbHU;7 z4c3_a_~obY-8`O?Bj>e~_uBEDYp%H(%=4=g&vW_8rR<{atiKbo?m4bAZTT#~$M4&P zX|#T!^}+$3e)Q)p_jY~cPCmEiF+AV9CeRQE>gh5yeXbg)ej(Y}-Q7iduF#U<%isT3 z)AesY^uv~Cc5mHB?~Xk#8DKf8PL8vlGkKZ)w}Wr+0rA z(=q`by#JBTJ2L>DVaiVdbbWMFQ>HIG{rZ~Xdw<^mmKA+YglK`uheL z9Jy{i-)W=JUdZmj_WDaG^7*!g!_V$N)RgI$26i@GKlthoT7oz^bi6jdqx)mEB$fe? ztJSEL@RdNc%0u;mh{eUL4b*2|d~!{~YjNU@Un~Q)cgMrEc@Qq5m2N0VlvetDR7ti) zNwwkdcYgU;EflY1{Nb&aYN5FI-hBjrtb}P1 za~(h!SM_Ot$;rY$F` zWi=1_fl{eNB?_?9ET*(V2!Yl*72ME};JO}@)8oAI#xZ7#CA0z+>pxnq{30+ncw{DN z*%xG$F>otzTX{a-VSC2cg`}sxF>xIiA!LK*iBd#SwV^T5iqmmbJ>%w$KLh1@)34Z= z0PBEGpb#!5pEqr}F9TBZUs}?~)keNrF{~1O%=YBL)U{zV;VZUgKn^GX9YAhzHr`~~ zVy9t>EkcSd^)j{6V=CcX605)Y9p-5IvX+22dvZ73oTe7>($7uTvP`PdXBDPFElB@I dt+cKm{{{ALa`)F<6CVHo002ovPDHLkV1jM`0=xhK literal 0 HcmV?d00001 diff --git a/bacula/src/qt-console/mainwin.cpp b/bacula/src/qt-console/mainwin.cpp index 767ae66cfc..306aea39d6 100644 --- a/bacula/src/qt-console/mainwin.cpp +++ b/bacula/src/qt-console/mainwin.cpp @@ -61,6 +61,39 @@ void MainWin::resetFocus() lineEdit->setFocus(); } +void MainWin::keyPressEvent(QKeyEvent *event) +{ + if (m_cmd_history.size() == 0) { + event->ignore(); + return; + } + switch (event->key()) { + case Qt::Key_Down: +// Dmsg0(000, "Down key pressed\n"); + if (m_cmd_last < 0 || m_cmd_last >= (m_cmd_history.size()-1)) { + event->ignore(); + return; + } + m_cmd_last++; + break; + case Qt::Key_Up: +// Dmsg0(000, "Up key pressed\n"); + if (m_cmd_last == 0) { + event->ignore(); + return; + } + if (m_cmd_last < 0 || m_cmd_last > (m_cmd_history.size()-1)) { + m_cmd_last = m_cmd_history.size() - 1; + } else { + m_cmd_last--; + } + break; + default: + event->ignore(); + return; + } + lineEdit->setText(m_cmd_history[m_cmd_last]); +} void MainWin::createConnections() { @@ -168,6 +201,8 @@ void MainWin::input_line() } else { set_status("Director not connected. Click on connect button."); } + m_cmd_history.append(cmdStr); + m_cmd_last = -1; } diff --git a/bacula/src/qt-console/mainwin.h b/bacula/src/qt-console/mainwin.h index 9ec3240801..68d37bbb60 100644 --- a/bacula/src/qt-console/mainwin.h +++ b/bacula/src/qt-console/mainwin.h @@ -69,6 +69,7 @@ public slots: protected: void closeEvent(QCloseEvent *event); + void keyPressEvent(QKeyEvent *event); private: void createConnections(); @@ -76,6 +77,8 @@ private: private: QString m_UserInput; Console *m_console; + QStringList m_cmd_history; + int m_cmd_last; }; #endif /* _MAINWIN_H_ */ diff --git a/bacula/src/qt-console/restore/restore.cpp b/bacula/src/qt-console/restore/restore.cpp index 0a7c416788..144a17667a 100644 --- a/bacula/src/qt-console/restore/restore.cpp +++ b/bacula/src/qt-console/restore/restore.cpp @@ -122,7 +122,7 @@ void restoreDialog::fillDirectory() } split_path_and_filename(p, &path, &pnl, &file, &fnl); item.clear(); - item << "" << file << modes << user << group << size << date; + item << marked << file << modes << user << group << size << date; QTreeWidgetItem *ti = new QTreeWidgetItem((QTreeWidget *)0, item); ti->setTextAlignment(5, Qt::AlignRight); /* right align size */ items.append(ti); @@ -159,13 +159,17 @@ void restoreDialog::fileDoubleClicked(QTreeWidgetItem *item, int column) char cmd[1000]; if (column == 0) { /* mark/unmark */ if (item->text(0) == "*") { - bsnprintf(cmd, sizeof(cmd), "unmark \"%s\"\n", item->text(1).toUtf8().data()); + bsnprintf(cmd, sizeof(cmd), "unmark \"%s\"", item->text(1).toUtf8().data()); item->setText(0, " "); } else { - bsnprintf(cmd, sizeof(cmd), "mark \"%s\"\n", item->text(1).toUtf8().data()); + bsnprintf(cmd, sizeof(cmd), "mark \"%s\"", item->text(1).toUtf8().data()); item->setText(0, "*"); } - m_console->write(cmd); + m_console->write_dir(cmd); + if (m_console->read() > 0) { + strip_trailing_junk(m_console->msg()); + statusLine->setText(m_console->msg()); + } m_console->displayToPrompt(); return; } @@ -191,14 +195,15 @@ void restoreDialog::markButtonPushed() QTreeWidgetItem *item; char cmd[1000]; foreach (item, items) { - Dmsg1(000, "item=%s\n", item->text(1).toUtf8().data()); - if (item->text(0) == " ") { - bsnprintf(cmd, sizeof(cmd), "mark \"%s\"", item->text(1).toUtf8().data()); - item->setText(0, "*"); - m_console->write(cmd); - Dmsg1(000, "cmd=%s\n", cmd); - m_console->displayToPrompt(); + bsnprintf(cmd, sizeof(cmd), "mark \"%s\"", item->text(1).toUtf8().data()); + item->setText(0, "*"); + m_console->write_dir(cmd); + if (m_console->read() > 0) { + strip_trailing_junk(m_console->msg()); + statusLine->setText(m_console->msg()); } + Dmsg1(100, "cmd=%s\n", cmd); + m_console->discardToPrompt(); } } @@ -208,13 +213,15 @@ void restoreDialog::unmarkButtonPushed() QTreeWidgetItem *item; char cmd[1000]; foreach (item, items) { - if (item->text(0) == "*") { - bsnprintf(cmd, sizeof(cmd), "unmark \"%s\"", item->text(1).toUtf8().data()); - item->setText(0, " "); - m_console->write(cmd); - Dmsg1(000, "cmd=%s\n", cmd); - m_console->displayToPrompt(); + bsnprintf(cmd, sizeof(cmd), "unmark \"%s\"", item->text(1).toUtf8().data()); + item->setText(0, " "); + m_console->write_dir(cmd); + if (m_console->read() > 0) { + strip_trailing_junk(m_console->msg()); + statusLine->setText(m_console->msg()); } + Dmsg1(100, "cmd=%s\n", cmd); + m_console->discardToPrompt(); } } @@ -226,7 +233,7 @@ bool restoreDialog::cwd(const char *dir) int stat; char cd_cmd[MAXSTRING]; - bsnprintf(cd_cmd, sizeof(cd_cmd), "cd \"%s\"\n", dir); + bsnprintf(cd_cmd, sizeof(cd_cmd), "cd \"%s\"", dir); Dmsg2(100, "dir=%s cmd=%s\n", dir, cd_cmd); m_console->write_dir(cd_cmd); if ((stat = m_console->read()) > 0) { diff --git a/bacula/src/qt-console/restore/restore.ui b/bacula/src/qt-console/restore/restore.ui index a746e40c0b..c9a542698b 100644 --- a/bacula/src/qt-console/restore/restore.ui +++ b/bacula/src/qt-console/restore/restore.ui @@ -12,30 +12,14 @@ Restore File Selection - + 9 6 - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 16 - - - - - + Qt::Horizontal @@ -146,7 +130,7 @@ - + 0 @@ -327,6 +311,15 @@ true + + QAbstractItemView::ExtendedSelection + + + QAbstractItemView::ScrollPerItem + + + true + 7 @@ -371,7 +364,23 @@ - + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 16 + + + + + 0 @@ -435,7 +444,7 @@ - + 0 -- 2.39.5