From 4fcabed862788ec1f45634279ce8ce6e06f51fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Wed, 10 Jun 2009 10:20:19 +0200 Subject: [PATCH 01/10] Fixed .h++ and .c++ files to be recognized as supported file types For example, when creating a new generic project, such files would not automatically get added to the list of files. Reviewed-by: Daniel Molkentin --- src/plugins/coreplugin/mimedatabase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp index 1a5f457ecb5..85dd2b64a25 100644 --- a/src/plugins/coreplugin/mimedatabase.cpp +++ b/src/plugins/coreplugin/mimedatabase.cpp @@ -573,7 +573,7 @@ private: BaseMimeTypeParser:: BaseMimeTypeParser() : // RE to match a suffix glob pattern: "*.ext" (and not sth like "Makefile" or // "*.log[1-9]" - m_suffixPattern(QLatin1String("^\\*\\.[\\w]+$")) + m_suffixPattern(QLatin1String("^\\*\\.[\\w+]+$")) { QTC_ASSERT(m_suffixPattern.isValid(), /**/); } From 75d13e02881b560fdaaf45710228a1fa176a511a Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Wed, 10 Jun 2009 10:45:35 +0200 Subject: [PATCH 02/10] Fixes: Fix debugger icon size Details: The old debugger icon was simply too large so I made a new one. --- .../projectexplorer/images/debugger_start.png | Bin 1616 -> 1257 bytes .../projectexplorer/projectexplorer.cpp | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/images/debugger_start.png b/src/plugins/projectexplorer/images/debugger_start.png index 36e5fc4780474e115f8e982bdcfadd964e28a3fe..f42d2e077c50a9e7dbda0ce78f812ba814915257 100644 GIT binary patch literal 1257 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo7>k44ofy`glX=O&z`&N| z?e4&(?*f#_${Ftf;oxZz_85fgUm4di#Efdw*;+A~5?OEOIIcHMx(x1hA`?hecn5Ro(qOeY4leYwHh2eXy5L)lAQj{@q|u5cEF%V;#e~rE~bdhSY6-`}3G{pKkfet7X@u z1y62b<4I=v>A*AwxO5NW7cVC>!*vGqy zsZT)UjZUPt>n)#2+r>0*xh|Q&!PzxO?atj3ZO?YCd(!ane)3+gYR}8eW9&ZX>IEKrZPquop06SkSp4m)J2@kE zqp$PasQ3-e%DFm8w*|ENFRjXZdS|0ioOMk{L@e*eiYY&*oV(CFJEP8CH}~w8En9x5 zx4+zK^RU0@nw+&_2oeEN;e)$)42$!`9}yC*10bqnx>8CB%YsI+y> zRXMi#{M*%UU%arWQoq*4aGNPKV@Iz2HJ=Hu0y;vh{O@fz@zndwa-LJ#%`4=@FK@Q` z+2k4e!4vE1SzK zebf8umRf&UT;mk2K4r(!!mrcif4;p`UQr_#GF^QB^|R~d?fv;V-G6Ryn6XXM#BEzA zwtW@9W%j0{RArmMiZyEUqaQ4PfB*R7O*3apxv$dVV4okYx$o<{cK0dO5}W;79?#Xk zW>WI5y!wx+-C6eo(Mee)9E&F$ou<{bXwj}I;iqE1F+P=>)*_bhH@JfY45%F z9%dH*t`dB6&ms+{z^j*w7l-rNb*xpXI{u<2<@L)|H+EeMs9p5)9e+Jzjg89EL#dk& RGcYhPc)I$ztaD0e0s!fuOmhGL literal 1616 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O z`AMk?p1FzXsX?iUDV2pMQ*9U+SU-8XIEGZ*Iuc&(6C5t{?^d<9X0E%VAd61Of{fCn zgX$tCk#qVN`aPZ#Ic-JZE{W->h5rnV%_pbcd?v4Vu16qt({X#_w6tz1(^)T)YOL2r z&GCOTqlrUHw|4vYt@rod$ue|Q@UwmL+VcCI;`iU@-hUlqGD+oOs+n$FQS#*Gg;!@) zURkSVBJ|Bh{}8+SQajxZRTqzK+}w7vXLsfw;lxYbWe0VlQ^mq+!@FY=Z{FBo3CJdJ>m>W^BFCI<+@A zFf{&y=HV=*El(yt*K$x3KRPc?K&7R^zHP>5gYuo+-rIeSt+LjwKFw;2OgVZH=Da+ zYES*1V#n5^wOw4tb{Af)7YqNhJYlwl2)Et*hE8txb-u>QslzfqFf!>&(yH zw{A;(**asx3K`X_t&eSg@4fx5`tR8E|UU>hqfu_R)4z0>dSAw|0`u;KP zbC9sl|ETcj>_LrcRh=|pR(1aGox3eW{;>b-OZ(9jXR_1wc&NCH>X{&FoOL{z||Ap^! z_Ni?)*OOWGE*kqOO+M?Yqx9%|{`Yh%JoxtEII$S8`Ld%C7GpW-+=RJ<8D{)N!oB z<+05!PZx_*2feOcFyfiDS69W!Va|tFJGgpQ7fkyYlf%ns#P)>A?x^UeIcJ|Zth>mi zxTIZA*I98|`Aip$LknlSM6L~MQ4X|u^UAI1S?ZK&w-(mD;??1p>J!ks;m9M0v|j>0 zqM2{(Dm9KwlacRIi&$*NE5#dX`0L_=<=3-3csNg=KkxooSO3koqOQdnaT|FU55GEn zr@cNPvhHPcL(K1|bNkN}9ayCPXdA=1xgQQ(zqNKru$)_M&GxTlsT0@62r{%rXs+;D z&v7Z^;8CR;+c!7f6J1toaG@hJ>guhe{bB{rc0CC0{F{6Cq|Lvt4>hA=N|Y}@-e!`L z_B6}LCvED6?W(t;^bQxN=^OF9JY`+FMl8+E<>(Vh$=7B%oVLCP3h&QtI9GgI>`Phf^XI3 zMG6vD`Q~%=HD-%cCUxt7772y|e}!ejC5%}N3=9mOu6{1-oD!M<registerAction(m_debugAction, Constants::DEBUG, globalcontext); cmd->setAttribute(Core::Command::CA_UpdateText); From 38717c2a55ccf48811e7126627ac13a947b0cbac Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 10 Jun 2009 10:29:31 +0200 Subject: [PATCH 03/10] less inefficient --- src/plugins/debugger/breakhandler.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index f37dd9b442d..888bf09cc58 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -312,8 +312,11 @@ int BreakHandler::findBreakpoint(const QString &fileName, int lineNumber) int BreakHandler::findBreakpoint(int bpNumber) { + if (!size()) + return -1; + QString numStr = QString::number(bpNumber); for (int index = 0; index != size(); ++index) - if (at(index)->bpNumber == QString::number(bpNumber)) + if (at(index)->bpNumber == numStr) return index; return -1; } From bab72215c8f860f26f9515f5b5a563d522b44fbf Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 10 Jun 2009 10:29:55 +0200 Subject: [PATCH 04/10] fix test build --- tests/manual/gdbdebugger/simple/app/app.pro | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/manual/gdbdebugger/simple/app/app.pro b/tests/manual/gdbdebugger/simple/app/app.pro index bfeedd0bc5e..e991a3dba4e 100644 --- a/tests/manual/gdbdebugger/simple/app/app.pro +++ b/tests/manual/gdbdebugger/simple/app/app.pro @@ -10,4 +10,3 @@ SOURCES += ../app.cpp # SOURCES += ../../../../../share/qtcreator/gdbmacros/gdbmacros.cpp QT += network message("this says ") -FORMS += ../form.ui From d7c573054c1b0a02bda760ceb0b79e60a196011a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 10 Jun 2009 10:30:48 +0200 Subject: [PATCH 05/10] re-apply enabled state to restored breakpoints --- src/plugins/debugger/breakhandler.h | 1 + src/plugins/debugger/gdb/gdbengine.cpp | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/breakhandler.h b/src/plugins/debugger/breakhandler.h index 0f2cef63b26..2ecc314d23d 100644 --- a/src/plugins/debugger/breakhandler.h +++ b/src/plugins/debugger/breakhandler.h @@ -89,6 +89,7 @@ public: QString bpFuncName; // function name acknowledged by the debugger engine QString bpAddress; // address acknowledged by the debugger engine bool bpMultiple; // happens in constructors/gdb + bool bpEnabled; // enable/disable command sent // taken from either user input or gdb responses QString markerFileName; // used to locate the marker diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index b84f891c1e9..aa4820bc219 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1799,6 +1799,7 @@ void GdbEngine::breakpointDataFromOutput(BreakpointData *data, const GdbMi &bkpt return; data->pending = false; data->bpMultiple = false; + data->bpEnabled = true; data->bpCondition.clear(); QStringList files; foreach (const GdbMi &child, bkpt.children()) { @@ -1830,6 +1831,8 @@ void GdbEngine::breakpointDataFromOutput(BreakpointData *data, const GdbMi &bkpt // gdb 6.3 likes to "rewrite" conditions. Just accept that fact. if (data->bpCondition != data->condition && data->conditionsMatch()) data->condition = data->bpCondition; + } else if (child.hasName("enabled")) { + data->bpEnabled = (child.data() == "y"); } else if (child.hasName("pending")) { data->pending = true; @@ -2146,14 +2149,18 @@ void GdbEngine::attemptBreakpointSynchronization() foreach (BreakpointData *data, handler->takeDisabledBreakpoints()) { QString bpNumber = data->bpNumber; - if (!bpNumber.trimmed().isEmpty()) + if (!bpNumber.trimmed().isEmpty()) { postCommand(_("-break-disable ") + bpNumber, NeedsStop); + data->bpEnabled = false; + } } foreach (BreakpointData *data, handler->takeEnabledBreakpoints()) { QString bpNumber = data->bpNumber; - if (!bpNumber.trimmed().isEmpty()) + if (!bpNumber.trimmed().isEmpty()) { postCommand(_("-break-enable ") + bpNumber, NeedsStop); + data->bpEnabled = true; + } } foreach (BreakpointData *data, handler->takeRemovedBreakpoints()) { @@ -2210,6 +2217,12 @@ void GdbEngine::attemptBreakpointSynchronization() updateNeeded = true; break; } + if (data->bpNumber.toInt() && !data->enabled && data->bpEnabled) { + postCommand(_("-break-disable ") + data->bpNumber, NeedsStop); + data->bpEnabled = false; + updateNeeded = true; + break; + } } } From 29f1b9214d9f723f38fe2e39399b24b6889a396b Mon Sep 17 00:00:00 2001 From: dt Date: Wed, 10 Jun 2009 11:12:32 +0200 Subject: [PATCH 06/10] Fix "Rebuild Debugging Helper" not enabled after changing path. In the Qt Options Dialog. --- src/plugins/qt4projectmanager/qtoptionspage.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp index b85607e3ea6..2e34a2a83d3 100644 --- a/src/plugins/qt4projectmanager/qtoptionspage.cpp +++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp @@ -443,9 +443,11 @@ void QtOptionsPageWidget::updateCurrentQtPath() m_ui->debuggingHelperStateLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png")); } m_ui->showLogButton->setEnabled(hasLog); + m_ui->rebuildButton->setEnabled(true); } else { currentItem->setData(2, Qt::DecorationRole, QIcon()); m_ui->debuggingHelperStateLabel->setPixmap(QPixmap()); + m_ui->rebuildButton->setEnabled(true); } } From 14955ed34bc414970c4067f9cf299b65e505de6e Mon Sep 17 00:00:00 2001 From: Kavindra Devi Palaraja Date: Wed, 10 Jun 2009 11:25:51 +0200 Subject: [PATCH 07/10] Doc - A few fixes RevBy: TrustMe --- doc/addressbook-sdk.qdoc | 16 ++++---- .../addressbook-sdk/part5/finddialog.ui | 38 ++++--------------- doc/examples/addressbook-sdk/part5/part5.pro | 6 ++- 3 files changed, 19 insertions(+), 41 deletions(-) diff --git a/doc/addressbook-sdk.qdoc b/doc/addressbook-sdk.qdoc index 31c67a120e9..e7ceb38b580 100644 --- a/doc/addressbook-sdk.qdoc +++ b/doc/addressbook-sdk.qdoc @@ -43,7 +43,7 @@ \page tutorials-addressbook-sdk.html \startpage {index.html}{Qt Reference Documentation} - \nextpage \l{Designing the User Interface}{Chapter 1} + \nextpage {Designing the User Interface}{Chapter 1} \title Address Book Tutorial \ingroup howto @@ -99,7 +99,7 @@ /*! \page tutorials-addressbook-sdk-part1.html \contentspage {Address Book Tutorial}{Contents} - \nextpage \l{examples/addressbook-sdk/part2}{Chapter 2} + \nextpage {examples/addressbook-sdk/part2}{Chapter 2} \example examples/addressbook-sdk/part1 \title Address Book 1 - Designing the User Interface @@ -253,7 +253,7 @@ \page tutorials-addressbook-sdk-part2.html \previouspage Address Book 1 - Designing the User Interface \contentspage {Address Book Tutorial}{Contents} - \nextpage \l{examples/addressbook-sdk/part3}{Chapter 3} + \nextpage {examples/addressbook-sdk/part3}{Chapter 3} \example examples/addressbook-sdk/part2 \title Address Book 2 - Adding Addresses @@ -425,7 +425,7 @@ \page tutorials-addressbook-sdk-part3.html \previouspage Address Book 2 - Adding Addresses \contentspage {Address Book Tutorial}{Contents} - \nextpage \l{examples/addressbook-sdk/part4}{Chapter 4} + \nextpage {examples/addressbook-sdk/part4}{Chapter 4} \example examples/addressbook-sdk/part3 \title Address Book 3 - Navigating between Entries} @@ -547,7 +547,7 @@ \page tutorials-addressbook-sdk-part4.html \previouspage Address Book 3 - Navigating between Entries \contentspage {Address Book Tutorial}{Contents} - \nextpage \l{examples/addressbook-sdk/part5}{Chapter 5} + \nextpage {examples/addressbook-sdk/part5}{Chapter 5} \example examples/addressbook-sdk/part4 \title Address Book 4 - Editing and Removing Addresses} @@ -708,7 +708,7 @@ \page tutorials-addressbook-sdk-part5.html \previouspage Address Book 4 - Editing and Removing Addresses \contentspage {Address Book Tutorial}{Contents} - \nextpage \l{examples/addressbook-sdk/part6}{Chapter 6} + \nextpage {examples/addressbook-sdk/part6}{Chapter 6} \example examples/addressbook-sdk/part5 \title Address Book 5 - Adding a Find Function} @@ -733,7 +733,7 @@ We begin by adding a new \c{.ui} file to our project. Right click on your project and select \gui{Add New...}. In the \gui{New File} dialog, select - \gui{Qt Designer Form}. In the \gui{Qt Designer Form| dialog, select + \gui{Qt Designer Form}. In the \gui{Qt Designer Form} dialog, select \e{Dialog without buttons}. Name it \c{finddialog.ui} and add it to your project. The \QD plugin within Qt Creator will now display your new form. @@ -749,7 +749,7 @@ \page tutorials-addressbook-sdk-part6.html \previouspage Address Book 5 - Adding a Find Function \contentspage {Address Book Tutorial}{Contents} - \nextpage \l{examples/addressbook-sdk/part7}{Chapter 7} + \nextpage {examples/addressbook-sdk/part7}{Chapter 7} \example examples/addressbook-sdk/part6 \title Address Book 6 - Loading and Saving} diff --git a/doc/examples/addressbook-sdk/part5/finddialog.ui b/doc/examples/addressbook-sdk/part5/finddialog.ui index e4e6b3ffcdc..500b70b7c36 100644 --- a/doc/examples/addressbook-sdk/part5/finddialog.ui +++ b/doc/examples/addressbook-sdk/part5/finddialog.ui @@ -1,41 +1,17 @@ - - - Dialog - - + + FindDialog + + 0 0 - 476 - 87 + 400 + 300 - + Dialog - - - - - - - Enter the name of a contact: - - - - - - - - - - Find - - - - - - diff --git a/doc/examples/addressbook-sdk/part5/part5.pro b/doc/examples/addressbook-sdk/part5/part5.pro index e4b89545a69..f41e5e85f19 100644 --- a/doc/examples/addressbook-sdk/part5/part5.pro +++ b/doc/examples/addressbook-sdk/part5/part5.pro @@ -4,7 +4,9 @@ TARGET = part5 TEMPLATE = app SOURCES += main.cpp \ - addressbook.cpp -HEADERS += addressbook.h + addressbook.cpp \ + finddialog.cpp +HEADERS += addressbook.h \ + finddialog.h FORMS += addressbook.ui \ finddialog.ui From 75fb2acdb2c966d4c6a15d468c37b8f9b8026063 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 10 Jun 2009 11:31:00 +0200 Subject: [PATCH 08/10] Expand the anonymous namespace and not the enclosing namespace. --- src/libs/cplusplus/LookupContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index a00b45263b4..ff5b188d1b2 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -367,7 +367,7 @@ void LookupContext::expandNamespace(Namespace *ns, Symbol *symbol = ns->memberAt(i); if (Namespace *otherNs = symbol->asNamespace()) { if (! otherNs->name()) { - expand(ns->members(), visibleScopes, expandedScopes); + expand(otherNs->members(), visibleScopes, expandedScopes); } } else if (UsingNamespaceDirective *u = symbol->asUsingNamespaceDirective()) { const QList candidates = resolveNamespace(u->name(), visibleScopes); From 92cdc5bc227ce408dfb481bad6964bb6282d0462 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Wed, 10 Jun 2009 12:12:33 +0200 Subject: [PATCH 09/10] Fixes: Prettify error icon Details: The old one was a bit too dark and did not quite fit into the shiny manhattan style. --- .../projectexplorer/images/compile_error.png | Bin 580 -> 501 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/plugins/projectexplorer/images/compile_error.png b/src/plugins/projectexplorer/images/compile_error.png index 162072e58d8141f18ae716606a7fcf650773b9a1..51a2779fcead2cca0a84d4af77bf0ab290c51e97 100644 GIT binary patch delta 475 zcmX@Y@|AglNGZx^prw85kJYlDyqr82*Fcg1yTpGcYi47I;J!Gca%qgD@k* ztT_@43=Hfgp1!W^H`%zjxcLMQH_v2XU@Y}?aSX9Iy>#+Rx*j}yW z_pREy(TP2+IIZsf9LcmJXMV`f)~E>@_o{FEA`Ddfbwtm&Y zrT6dMjnEhCPI**6>HCTI(sp@kF1M+)Ja|6O=w;Dbw~)0>9FHFsSZ(=Y;n0$`xzob@ zWl~+8mGUgk2|=A%d+jnG_TS8C`IF5bv(zcIaASmw>t+As?+c1V0@q!Y>$n_oPHB4H z4aa(iy*VnL_4aDRvQ?|n52Ofxo}lEw6MaBGbgxIh*Qe)moEoNE{xuc2 fbn2zyUB=E6z0tY#wVxRn7#KWV{an^LB{Ts5?cCZO delta 555 zcmey$e1v6!Na>QWZRN6Vp?J zQWH}u3s0unFfcG)^K@|xskpUd@?I~MK!MitrEbSJ&Xso;WZ`A$<>{$utZn4wsbyd_ zjWE1a7+sbBZ(Uh%oLtD@iT`TpzN z<9$XyUeBpl+U6+d(uz7(ucdgGL(5ks+MW~$FBd++^AQ(u@*JE_oY-!WbAe%Z;7%!V9>F9qWd zGB5kuweEFrsT(w*>%*iayVaB`((+-@r3S$nPa9S$j?B<%@h*}M+hxO^g!u?H3 ztE6U}Tb}C5cH1n`_wM@3pVDVLSY0u0zM*)$Gns?=hUlvu6;rk?iJg5aW5T18Q5Mg# z%)DxuUvHDNm@XwEINzM@k#vEkamVtDKGXazZe9Ipz3R_vOa5?wT&r|{?lk+?;ai#O zq^_IHce6an@+kD1+N3J;&FaS&|G9sEhRTd1>QmbDHgUe{ydn0F(}2Nr;r1)7zcwFc QU|?YIboFyt=akR{0P73-n*aa+ From 649e0acda7143b4d798615621bd3931ba4a41b96 Mon Sep 17 00:00:00 2001 From: Kavindra Devi Palaraja Date: Tue, 9 Jun 2009 12:40:10 +0200 Subject: [PATCH 10/10] Doc - Starting on Part 5 Reviewed-By: TrustMe (cherry-picked from e5fcbba7fcf79dcc85f6221f8c3843554f07a496) --- doc/addressbook-sdk.qdoc | 2 +- .../addressbook-sdk/part5/addressbook.ui | 208 +++++++++--------- 2 files changed, 102 insertions(+), 108 deletions(-) diff --git a/doc/addressbook-sdk.qdoc b/doc/addressbook-sdk.qdoc index e7ceb38b580..cfb72d4ea1b 100644 --- a/doc/addressbook-sdk.qdoc +++ b/doc/addressbook-sdk.qdoc @@ -43,7 +43,7 @@ \page tutorials-addressbook-sdk.html \startpage {index.html}{Qt Reference Documentation} - \nextpage {Designing the User Interface}{Chapter 1} + \nextpage {examples/addressbook-sdk/part1}{Chapter 1} \title Address Book Tutorial \ingroup howto diff --git a/doc/examples/addressbook-sdk/part5/addressbook.ui b/doc/examples/addressbook-sdk/part5/addressbook.ui index 0e29f8fd06b..919a6b66ab5 100644 --- a/doc/examples/addressbook-sdk/part5/addressbook.ui +++ b/doc/examples/addressbook-sdk/part5/addressbook.ui @@ -6,118 +6,112 @@ 0 0 - 600 - 400 + 470 + 253 AddressBook - - - - 20 - 30 - 413 - 275 - - - - - - - Name: - - - - - - - - - - Address: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - - - - - - - - Add - - - - - - - Submit - - - - - - - Cancel - - - - - - - Edit - - - - - - - Remove - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - Previous - - - - - - - Next - - - - - - - + + + + + + + Name: + + + + + + + + + + Address: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + + + + Add + + + + + + + Submit + + + + + + + Cancel + + + + + + + Edit + + + + + + + Remove + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Previous + + + + + + + Next + + + + + + + +