summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrius Štikonas <andrius@stikonas.eu>2016-06-21 17:42:48 (GMT)
committerAndrius Štikonas <andrius@stikonas.eu>2016-06-21 17:42:48 (GMT)
commit8cb97c14e7984ea4401d6c055e18e44862f3ced1 (patch)
tree597b38ef82e75912f146dc723ac4181f20a6f9b0
parentec44b760a7a548a3ea4e8e2c95ec9bb0bfd0d832 (diff)
Port KeyServer from KDialog to QDialog.
-rw-r--r--conf_decryption.ui7
-rw-r--r--conf_gpg.ui7
-rw-r--r--keyserver.ui190
-rw-r--r--keyservers.cpp31
-rw-r--r--keyservers.h6
-rw-r--r--searchres.ui63
6 files changed, 151 insertions, 153 deletions
diff --git a/conf_decryption.ui b/conf_decryption.ui
index c9c97d2..d163f03 100644
--- a/conf_decryption.ui
+++ b/conf_decryption.ui
@@ -61,13 +61,6 @@
</item>
</layout>
</widget>
- <customwidgets>
- <customwidget>
- <class>QLineEdit</class>
- <extends>QLineEdit</extends>
- <header>klineedit.h</header>
- </customwidget>
- </customwidgets>
<resources/>
<connections/>
</ui>
diff --git a/conf_gpg.ui b/conf_gpg.ui
index 2706d78..e7f2860 100644
--- a/conf_gpg.ui
+++ b/conf_gpg.ui
@@ -176,13 +176,6 @@
</item>
</layout>
</widget>
- <customwidgets>
- <customwidget>
- <class>QLineEdit</class>
- <extends>QLineEdit</extends>
- <header>klineedit.h</header>
- </customwidget>
- </customwidgets>
<resources/>
<connections/>
</ui>
diff --git a/keyserver.ui b/keyserver.ui
index 33c57ad..b45a4a4 100644
--- a/keyserver.ui
+++ b/keyserver.ui
@@ -1,109 +1,110 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>keyServerWidget</class>
- <widget class="QWidget" name="keyServerWidget" >
- <property name="geometry" >
+ <widget class="QWidget" name="keyServerWidget">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>529</width>
- <height>339</height>
+ <height>371</height>
</rect>
</property>
- <layout class="QGridLayout" >
- <property name="leftMargin" >
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="leftMargin">
<number>0</number>
</property>
- <property name="topMargin" >
+ <property name="topMargin">
<number>0</number>
</property>
- <property name="rightMargin" >
+ <property name="rightMargin">
<number>0</number>
</property>
- <property name="bottomMargin" >
+ <property name="bottomMargin">
<number>0</number>
</property>
- <item row="0" column="0" >
- <widget class="QTabWidget" name="tabWidget2" >
- <property name="currentIndex" >
+ <item>
+ <widget class="QTabWidget" name="tabWidget2">
+ <property name="currentIndex">
<number>0</number>
</property>
- <widget class="QWidget" name="tab_import" >
- <attribute name="title" >
+ <widget class="QWidget" name="tab_import">
+ <attribute name="title">
<string>Import</string>
</attribute>
- <layout class="QVBoxLayout" >
+ <layout class="QVBoxLayout">
<item>
- <widget class="QLabel" name="textLabel1" >
- <property name="whatsThis" >
- <string>&lt;qt>&lt;b>Key Server:&lt;/b>&lt;br /> &lt;p>A Key Server is a centralized repository of PGP/GnuPG keys connected to the Internet which can be conveniently accessed in order to obtain or deposit keys. Select from the drop down list to specify which key server should be used.&lt;/p> &lt;p>Often these keys are held by people whom the user has never met and as such the authenticity is dubious at best. Refer to the GnuPG manual covering "Web-of-Trust" relationships to find out how GnuPG works around the problem of verifying authenticity.&lt;/p> &lt;/qt></string>
+ <widget class="QLabel" name="textLabel1">
+ <property name="whatsThis">
+ <string>&lt;qt&gt;&lt;b&gt;Key Server:&lt;/b&gt;&lt;br /&gt; &lt;p&gt;A Key Server is a centralized repository of PGP/GnuPG keys connected to the Internet which can be conveniently accessed in order to obtain or deposit keys. Select from the drop down list to specify which key server should be used.&lt;/p&gt; &lt;p&gt;Often these keys are held by people whom the user has never met and as such the authenticity is dubious at best. Refer to the GnuPG manual covering &quot;Web-of-Trust&quot; relationships to find out how GnuPG works around the problem of verifying authenticity.&lt;/p&gt; &lt;/qt&gt;</string>
</property>
- <property name="text" >
+ <property name="text">
<string>Key server:</string>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
- <widget class="QComboBox" name="kCBimportks" >
- <property name="whatsThis" >
- <string>&lt;b>Key Server Drop Down Dialog:&lt;/b>
+ <widget class="QComboBox" name="kCBimportks">
+ <property name="whatsThis">
+ <string>&lt;b&gt;Key Server Drop Down Dialog:&lt;/b&gt;
Allows the user to select the Key Server which will be used to import PGP/GnuPG keys into the local keyring.</string>
</property>
</widget>
</item>
<item>
- <widget class="QLabel" name="textLabel2" >
- <property name="whatsThis" >
- <string>&lt;qt>&lt;b>Text to search or ID of the key to import:&lt;/b>&lt;br />
-&lt;p>There are multiple ways to search for a key, you can use a text or partial text search (example: entering Phil or Zimmerman will bring up all keys in which Phil or Zimmerman shows up) or you can search by the ID's of the key. Key ID's are strings of letters and numbers that uniquely identify a key (example: searching for 0xED7585F4 would bring up the key associated with that ID).&lt;/p>&lt;/qt></string>
+ <widget class="QLabel" name="textLabel2">
+ <property name="whatsThis">
+ <string>&lt;qt&gt;&lt;b&gt;Text to search or ID of the key to import:&lt;/b&gt;&lt;br /&gt;
+&lt;p&gt;There are multiple ways to search for a key, you can use a text or partial text search (example: entering Phil or Zimmerman will bring up all keys in which Phil or Zimmerman shows up) or you can search by the ID's of the key. Key ID's are strings of letters and numbers that uniquely identify a key (example: searching for 0xED7585F4 would bring up the key associated with that ID).&lt;/p&gt;&lt;/qt&gt;</string>
</property>
- <property name="frameShape" >
+ <property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
- <property name="frameShadow" >
+ <property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
- <property name="text" >
+ <property name="text">
<string>Text to search or ID of the key to import:</string>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="kLEimportid">
- <property name="clearButtonEnabled" >
+ <property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
- <widget class="QCheckBox" name="cBproxyI" >
- <property name="enabled" >
+ <widget class="QCheckBox" name="cBproxyI">
+ <property name="enabled">
<bool>false</bool>
</property>
- <property name="text" >
+ <property name="text">
<string>Honor HTTP proxy:</string>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="kLEproxyI" >
- <property name="enabled" >
+ <widget class="QLineEdit" name="kLEproxyI">
+ <property name="enabled">
<bool>false</bool>
</property>
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="readOnly" >
+ <property name="readOnly">
<bool>true</bool>
</property>
</widget>
@@ -112,13 +113,13 @@ Allows the user to select the Key Server which will be used to import PGP/GnuPG
</item>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeType" >
+ <property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>477</width>
<height>121</height>
@@ -127,33 +128,33 @@ Allows the user to select the Key Server which will be used to import PGP/GnuPG
</spacer>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
- <widget class="QPushButton" name="Buttonsearch" >
- <property name="text" >
+ <widget class="QPushButton" name="Buttonsearch">
+ <property name="text">
<string>&amp;Search</string>
</property>
- <property name="default" >
+ <property name="default">
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="Buttonimport" >
- <property name="text" >
+ <widget class="QPushButton" name="Buttonimport">
+ <property name="text">
<string>&amp;Import</string>
</property>
</widget>
</item>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeType" >
+ <property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>160</width>
<height>20</height>
@@ -165,75 +166,75 @@ Allows the user to select the Key Server which will be used to import PGP/GnuPG
</item>
</layout>
</widget>
- <widget class="QWidget" name="tab_export" >
- <attribute name="title" >
+ <widget class="QWidget" name="tab_export">
+ <attribute name="title">
<string>Export</string>
</attribute>
- <layout class="QVBoxLayout" >
+ <layout class="QVBoxLayout">
<item>
- <widget class="QLabel" name="textLabel3" >
- <property name="text" >
+ <widget class="QLabel" name="textLabel3">
+ <property name="text">
<string>Key server:</string>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
- <widget class="QComboBox" name="kCBexportks" />
+ <widget class="QComboBox" name="kCBexportks"/>
</item>
<item>
- <widget class="QLabel" name="textLabel4" >
- <property name="whatsThis" >
- <string>&lt;qt>&lt;b>Key to be exported:&lt;/b>&lt;br />
-&lt;p>This allows the user to specify the key from the drop down list that will be exported to the key server selected.&lt;/p>&lt;/qt></string>
+ <widget class="QLabel" name="textLabel4">
+ <property name="whatsThis">
+ <string>&lt;qt&gt;&lt;b&gt;Key to be exported:&lt;/b&gt;&lt;br /&gt;
+&lt;p&gt;This allows the user to specify the key from the drop down list that will be exported to the key server selected.&lt;/p&gt;&lt;/qt&gt;</string>
</property>
- <property name="text" >
+ <property name="text">
<string>Key to be exported:</string>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
- <widget class="QComboBox" name="kCBexportkey" />
+ <widget class="QComboBox" name="kCBexportkey"/>
</item>
<item>
- <widget class="QCheckBox" name="exportAttributes" >
- <property name="text" >
+ <widget class="QCheckBox" name="exportAttributes">
+ <property name="text">
<string>Export attributes (photo id)</string>
</property>
- <property name="checked" >
+ <property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
- <widget class="QCheckBox" name="cBproxyE" >
- <property name="enabled" >
+ <widget class="QCheckBox" name="cBproxyE">
+ <property name="enabled">
<bool>false</bool>
</property>
- <property name="text" >
+ <property name="text">
<string>Honor HTTP proxy:</string>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="kLEproxyE" >
- <property name="enabled" >
+ <widget class="QLineEdit" name="kLEproxyE">
+ <property name="enabled">
<bool>false</bool>
</property>
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="readOnly" >
+ <property name="readOnly">
<bool>true</bool>
</property>
</widget>
@@ -242,13 +243,13 @@ Allows the user to select the Key Server which will be used to import PGP/GnuPG
</item>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeType" >
+ <property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>507</width>
<height>63</height>
@@ -257,27 +258,27 @@ Allows the user to select the Key Server which will be used to import PGP/GnuPG
</spacer>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
- <widget class="QPushButton" name="Buttonexport" >
- <property name="whatsThis" >
- <string>&lt;qt>&lt;b>Export:&lt;/b>&lt;br />
-&lt;p>Pushing this button will export the specified key to the specified server.&lt;/p>&lt;/qt></string>
+ <widget class="QPushButton" name="Buttonexport">
+ <property name="whatsThis">
+ <string>&lt;qt&gt;&lt;b&gt;Export:&lt;/b&gt;&lt;br /&gt;
+&lt;p&gt;Pushing this button will export the specified key to the specified server.&lt;/p&gt;&lt;/qt&gt;</string>
</property>
- <property name="text" >
+ <property name="text">
<string>&amp;Export</string>
</property>
</widget>
</item>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeType" >
+ <property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>250</width>
<height>20</height>
@@ -291,6 +292,13 @@ Allows the user to select the Key Server which will be used to import PGP/GnuPG
</widget>
</widget>
</item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Close</set>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<resources/>
diff --git a/keyservers.cpp b/keyservers.cpp
index 03a3128..abb673f 100644
--- a/keyservers.cpp
+++ b/keyservers.cpp
@@ -31,7 +31,7 @@
#include <QCursor>
KeyServer::KeyServer(QWidget *parent, KGpgItemModel *model, const bool autoclose)
- : KDialog(parent),
+ : QDialog(parent),
m_dialogserver(Q_NULLPTR),
m_searchproc(Q_NULLPTR),
page(new keyServerWidget()),
@@ -40,26 +40,27 @@ KeyServer::KeyServer(QWidget *parent, KGpgItemModel *model, const bool autoclose
m_itemmodel(new KeyListProxyModel(this, KeyListProxyModel::SingleColumnIdFirst))
{
setWindowTitle(i18n("Key Server"));
- setButtons(Close);
- setModal(false);
m_autoclose = autoclose;
m_filtermodel.setSortCaseSensitivity(Qt::CaseInsensitive);
m_filtermodel.setDynamicSortFilter(true);
m_filtermodel.setFilterKeyColumn(0);
- setMainWidget(page);
+ QVBoxLayout *mainLayout = new QVBoxLayout(this);
+ setLayout(mainLayout);
+ mainLayout->addWidget(page);
const QStringList serverlist(getServerList());
page->kCBexportks->addItems(serverlist);
page->kCBimportks->addItems(serverlist);
page->kLEimportid->setFocus();
+ connect(page->buttonBox, SIGNAL(rejected()), this, SLOT(accept()));
connect(page->Buttonimport, SIGNAL(clicked()), SLOT(slotImport()));
connect(page->Buttonsearch, SIGNAL(clicked()), SLOT(slotSearch()));
connect(page->Buttonexport, SIGNAL(clicked()), SLOT(slotPreExport()));
connect(page->kLEimportid, SIGNAL(returnPressed()), SLOT(slotSearch()));
- connect(this, SIGNAL(okClicked()), SLOT(slotOk()));
+ connect(page->buttonBox, SIGNAL(accepted()), this, SLOT(slotOk()));
connect(page->cBproxyI, SIGNAL(toggled(bool)), SLOT(slotEnableProxyI(bool)));
connect(page->cBproxyE, SIGNAL(toggled(bool)), SLOT(slotEnableProxyE(bool)));
connect(page->kLEimportid, SIGNAL(textChanged(QString)), SLOT(slotTextChanged(QString)));
@@ -199,24 +200,24 @@ void KeyServer::slotSearch()
m_filtermodel.setSourceModel(m_resultmodel);
m_filtermodel.setFilterRegExp(QRegExp());
- m_dialogserver = new KDialog(this );
+ m_dialogserver = new QDialog(this );
m_dialogserver->setWindowTitle(i18n("Import Key From Keyserver"));
- m_dialogserver->setButtons( KDialog::Ok | KDialog::Close );
- m_dialogserver->setDefaultButton( KDialog::Ok);
- m_dialogserver->setModal( true );
- m_dialogserver->setButtonText(KDialog::Ok, i18n("&Import"));
- m_dialogserver->enableButtonOk(false);
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ m_dialogserver->setLayout(mainLayout);
+
m_listpop = new searchRes(m_dialogserver);
+ m_listpop->buttonBox->button(QDialogButtonBox::Ok)->setText(i18n("&Import"));
+ m_listpop->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
m_listpop->kLVsearch->setModel(&m_filtermodel);
m_listpop->kLVsearch->setColumnWidth(0, 180);
m_listpop->statusText->setText(i18n("Connecting to the server..."));
connect(m_listpop->filterEdit, SIGNAL(textChanged(QString)), SLOT(slotSetFilterString(QString)));
connect(m_listpop->kLVsearch->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(transferKeyID()));
- connect(m_dialogserver, SIGNAL(okClicked()), this, SLOT(slotPreImport()));
+ connect(m_listpop->buttonBox, SIGNAL(accepted()), this, SLOT(slotPreImport()));
connect(m_listpop->kLVsearch, SIGNAL(activated(QModelIndex)), m_dialogserver, SIGNAL(okClicked()));
- connect(m_dialogserver, SIGNAL(closeClicked()), this, SLOT(handleQuit()));
+ connect(m_listpop->buttonBox, SIGNAL(rejected()), this, SLOT(handleQuit()));
connect(m_listpop->kLEID, SIGNAL(clearButtonClicked()), m_listpop->kLVsearch->selectionModel(), SLOT(clearSelection()));
m_listpop->kLVsearch->setSelectionMode(QAbstractItemView::ExtendedSelection);
@@ -237,7 +238,7 @@ void KeyServer::slotSearch()
m_searchproc->start();
QApplication::setOverrideCursor(QCursor(Qt::BusyCursor));
- m_dialogserver->setMainWidget(m_listpop);
+ mainLayout->addWidget(m_listpop);
m_listpop->setMinimumSize(m_listpop->sizeHint());
m_dialogserver->exec();
}
@@ -256,7 +257,7 @@ void KeyServer::slotSearchResult(int result)
return;
}
- m_dialogserver->enableButtonOk(true);
+ m_listpop->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
const int keys = m_resultmodel->rowCount(QModelIndex());
diff --git a/keyservers.h b/keyservers.h
index afa007b..6a6a5f9 100644
--- a/keyservers.h
+++ b/keyservers.h
@@ -17,7 +17,7 @@
#include <QSortFilterProxyModel>
-#include <KDialog>
+#include <QDialog>
#include "core/kgpgkey.h"
#include "ui_searchres.h"
@@ -48,7 +48,7 @@ public:
}
};
-class KeyServer : public KDialog
+class KeyServer : public QDialog
{
Q_OBJECT
@@ -115,7 +115,7 @@ private slots:
private:
QString m_readmessage;
- KDialog *m_dialogserver;
+ QDialog *m_dialogserver;
KGpgKeyserverSearchTransaction *m_searchproc;
keyServerWidget *page;
diff --git a/searchres.ui b/searchres.ui
index 362a04e..345fb66 100644
--- a/searchres.ui
+++ b/searchres.ui
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>searchRes</class>
- <widget class="QWidget" name="searchRes" >
- <property name="geometry" >
+ <widget class="QWidget" name="searchRes">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@@ -9,77 +10,79 @@
<height>262</height>
</rect>
</property>
- <layout class="QVBoxLayout" >
+ <layout class="QVBoxLayout">
<item>
- <widget class="QLabel" name="statusText" >
- <property name="text" >
+ <widget class="QLabel" name="statusText">
+ <property name="text">
<string/>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
- <widget class="QLabel" name="filterEditLabel" >
- <property name="text" >
+ <widget class="QLabel" name="filterEditLabel">
+ <property name="text">
<string>Search:</string>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>true</bool>
</property>
- </widget>
+ </widget>
</item>
<item>
<widget class="QLineEdit" name="filterEdit">
- <property name="clearButtonEnabled" >
+ <property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
- </item>
+ </item>
</layout>
</item>
<item>
- <widget class="QTreeView" name="kLVsearch" >
- <property name="allColumnsShowFocus" >
+ <widget class="QTreeView" name="kLVsearch">
+ <property name="rootIsDecorated">
<bool>true</bool>
</property>
- <property name="sortingEnabled" >
+ <property name="sortingEnabled">
<bool>true</bool>
</property>
- <property name="rootIsDecorated" >
+ <property name="allColumnsShowFocus">
<bool>true</bool>
</property>
- <column>
- <property name="text" >
- <string>Keys</string>
- </property>
- </column>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
- <widget class="QLabel" name="textLabel1" >
- <property name="text" >
+ <widget class="QLabel" name="textLabel1">
+ <property name="text">
<string>Key to import:</string>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="kLEID" >
- <property name="clearButtonEnabled" >
+ <widget class="QLineEdit" name="kLEID">
+ <property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
- </item>
+ </item>
</layout>
</item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Close|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<tabstops>