summaryrefslogtreecommitdiffstats
path: root/kexi/plugins/scripting/scripts/copycenter/CopyCenter.py
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2023-01-21 21:52:20 +0100
committerSlávek Banko <slavek.banko@axis.cz>2023-01-22 01:58:18 +0100
commit135d005014a1e85295af4e379f026a361537ae5f (patch)
treec70f25a5248237a5c4676c928fd400b10aa7a641 /kexi/plugins/scripting/scripts/copycenter/CopyCenter.py
parent596d0f7b9ed99de0814acfb835cc8945cee37405 (diff)
downloadkoffice-135d005014a1e85295af4e379f026a361537ae5f.tar.gz
koffice-135d005014a1e85295af4e379f026a361537ae5f.zip
Update python scripts for PyTQt.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'kexi/plugins/scripting/scripts/copycenter/CopyCenter.py')
-rw-r--r--kexi/plugins/scripting/scripts/copycenter/CopyCenter.py212
1 files changed, 106 insertions, 106 deletions
diff --git a/kexi/plugins/scripting/scripts/copycenter/CopyCenter.py b/kexi/plugins/scripting/scripts/copycenter/CopyCenter.py
index f244ae39e..edcc2891b 100644
--- a/kexi/plugins/scripting/scripts/copycenter/CopyCenter.py
+++ b/kexi/plugins/scripting/scripts/copycenter/CopyCenter.py
@@ -83,38 +83,38 @@ class Copierer:
def writeFailed(self,record): pass
def runGuiApp(copycenter, name):
- import qt
+ from TQt import qt
import sys
#--------------------------------------------------------------------
- class ListViewDialog(qt.QDialog):
+ class ListViewDialog(qt.TQDialog):
def __init__(self, parent, caption):
- qt.QDialog.__init__(self, parent, "ProgressDialog", 1)
+ qt.TQDialog.__init__(self, parent, "ProgressDialog", 1)
self.parent = parent
self.setCaption(caption)
- layout = qt.QVBoxLayout(self)
- box = qt.QVBox(self)
+ layout = qt.TQVBoxLayout(self)
+ box = qt.TQVBox(self)
box.setMargin(2)
layout.addWidget(box)
- self.listview = qt.QListView(box)
+ self.listview = qt.TQListView(box)
self.listview.setAllColumnsShowFocus(True)
self.listview.header().setStretchEnabled(True,0)
- btnbox = qt.QHBox(box)
+ btnbox = qt.TQHBox(box)
btnbox.setMargin(6)
btnbox.setSpacing(6)
- self.okbtn = qt.QPushButton(btnbox)
+ self.okbtn = qt.TQPushButton(btnbox)
self.okbtn.setText("Ok")
- #qt.QObject.connect(okbtn, qt.SIGNAL("clicked()"), self.okClicked)
- self.cancelbtn = qt.QPushButton(btnbox)
+ #qt.TQObject.connect(okbtn, qt.SIGNAL("clicked()"), self.okClicked)
+ self.cancelbtn = qt.TQPushButton(btnbox)
self.cancelbtn.setText("Cancel")
- qt.QObject.connect(self.cancelbtn, qt.SIGNAL("clicked()"), self.close)
- box.setMinimumSize(qt.QSize(460,380))
+ qt.TQObject.connect(self.cancelbtn, qt.SIGNAL("clicked()"), self.close)
+ box.setMinimumSize(qt.TQSize(460,380))
def addItem(self,valuelist,afteritem = None):
if afteritem == None:
- item = qt.QListViewItem(self.listview)
+ item = qt.TQListViewItem(self.listview)
else:
- item = qt.QListViewItem(self.listview,afteritem)
+ item = qt.TQListViewItem(self.listview,afteritem)
i = 0
for value in valuelist:
item.setText(i,value)
@@ -123,20 +123,20 @@ def runGuiApp(copycenter, name):
#--------------------------------------------------------------------
- class CopyJobWidget(qt.QVBox):
+ class CopyJobWidget(qt.TQVBox):
def __init__(self,dialog,parent):
self.dialog = dialog
- qt.QVBox.__init__(self,parent)
+ qt.TQVBox.__init__(self,parent)
self.setSpacing(6)
- typebox = qt.QHBox(self)
+ typebox = qt.TQHBox(self)
typebox.setSpacing(6)
- label = qt.QLabel("Job File:",typebox)
- self.jobfilecombobox = qt.QComboBox(typebox)
+ label = qt.TQLabel("Job File:",typebox)
+ self.jobfilecombobox = qt.TQComboBox(typebox)
typebox.setStretchFactor(self.jobfilecombobox,1)
self.jobfilecombobox.setEditable(True)
self.jobfilecombobox.insertItem("")
label.setBuddy(self.jobfilecombobox)
- qt.QObject.connect(self.jobfilecombobox, qt.SIGNAL("textChanged(const QString&)"), self.jobfilecomboboxChanged)
+ qt.TQObject.connect(self.jobfilecombobox, qt.SIGNAL("textChanged(const QString&)"), self.jobfilecomboboxChanged)
import os
import re
@@ -145,22 +145,22 @@ def runGuiApp(copycenter, name):
if os.path.isfile(file) and re.search(".+\\.copycenterjob.xml$",f):
self.jobfilecombobox.insertItem(file)
- loadbtn = qt.QPushButton(typebox)
+ loadbtn = qt.TQPushButton(typebox)
loadbtn.setText("Open...")
- qt.QObject.connect(loadbtn, qt.SIGNAL("clicked()"), self.openClicked)
- savebtn = qt.QPushButton(typebox)
+ qt.TQObject.connect(loadbtn, qt.SIGNAL("clicked()"), self.openClicked)
+ savebtn = qt.TQPushButton(typebox)
savebtn.setText("Save...")
- qt.QObject.connect(savebtn, qt.SIGNAL("clicked()"), self.saveClicked)
+ qt.TQObject.connect(savebtn, qt.SIGNAL("clicked()"), self.saveClicked)
- self.listview = qt.QListView(self)
+ self.listview = qt.TQListView(self)
self.listview.setAllColumnsShowFocus(True)
self.listview.setSorting(-1)
- self.listview.setDefaultRenameAction(qt.QListView.Reject)
+ self.listview.setDefaultRenameAction(qt.TQListView.Reject)
self.listview.header().setClickEnabled(False)
self.listview.addColumn("Name")
self.listview.addColumn("Value")
- qt.QObject.connect(self.listview, qt.SIGNAL("doubleClicked(QListViewItem*, const QPoint&, int)"), self.doubleClicked)
- #qt.QObject.connect(self.listview, qt.SIGNAL("itemRenamed(QListViewItem*, int, const QString&)"), self.itemRenamed)
+ qt.TQObject.connect(self.listview, qt.SIGNAL("doubleClicked(QListViewItem*, const QPoint&, int)"), self.doubleClicked)
+ #qt.TQObject.connect(self.listview, qt.SIGNAL("itemRenamed(QListViewItem*, int, const QString&)"), self.itemRenamed)
def doubleClicked(self, **args):
print "CopyJobWidget.doubleClicked"
@@ -188,14 +188,14 @@ def runGuiApp(copycenter, name):
destinationnode = elements.getElementsByTagName("Destination")[0]
except:
raise "The XML-file \"%s\" does not contain a valid copy-job." % filename
-
+
sourcepluginname = str(sourcenode.getAttribute('plugin'))
- if not self.dialog.sourcedata.combobox.listBox().findItem(sourcepluginname,qt.Qt.ExactMatch):
+ if not self.dialog.sourcedata.combobox.listBox().findItem(sourcepluginname,qt.TQt.ExactMatch):
raise "There exists no plugin with the name \"%s\"." % sourcepluginname
self.dialog.sourcedata.combobox.setCurrentText(sourcepluginname)
destinationpluginname = str(destinationnode.getAttribute('plugin'))
- if not self.dialog.destinationdata.combobox.listBox().findItem(destinationpluginname,qt.Qt.ExactMatch):
+ if not self.dialog.destinationdata.combobox.listBox().findItem(destinationpluginname,qt.TQt.ExactMatch):
raise "There exists no plugin with the name \"%s\"." % destinationpluginname
self.dialog.destinationdata.combobox.setCurrentText(destinationpluginname)
@@ -206,7 +206,7 @@ def runGuiApp(copycenter, name):
def openClicked(self):
text = str(self.jobfilecombobox.currentText())
if text == "": text = self.dialog.copycenter.homepath
- filename = str(qt.QFileDialog.getOpenFileName(text,"*.copycenterjob.xml;;*",self.dialog))
+ filename = str(qt.TQFileDialog.getOpenFileName(text,"*.copycenterjob.xml;;*",self.dialog))
if filename != "": self.jobfilecombobox.setCurrentText(filename)
def escape(self,s):
@@ -225,7 +225,7 @@ def runGuiApp(copycenter, name):
if text == "":
import os
text = os.path.join(self.dialog.copycenter.homepath,"default.copycenterjob.xml")
- filename = str(qt.QFileDialog.getSaveFileName(text,"*.copycenterjob.xml;;*",self.dialog))
+ filename = str(qt.TQFileDialog.getSaveFileName(text,"*.copycenterjob.xml;;*",self.dialog))
if str(filename) == "": return
f = open(filename, "w")
f.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
@@ -240,40 +240,40 @@ def runGuiApp(copycenter, name):
def addItem(self, pluginimpl, afteritem = None, parentitem = None):
#print "CopyJobWidget.addItem"
- class ListViewItem(qt.QListViewItem):
+ class ListViewItem(qt.TQListViewItem):
def __init__(self, pluginimpl, listview, parentitem = None, afteritem = None):
self.pluginimpl = pluginimpl
if parentitem == None:
- qt.QListViewItem.__init__(self,listview)
+ qt.TQListViewItem.__init__(self,listview)
self.setOpen(True)
else:
if afteritem == None:
- qt.QListViewItem.__init__(self,parentitem)
+ qt.TQListViewItem.__init__(self,parentitem)
else:
- qt.QListViewItem.__init__(self,parentitem,afteritem)
+ qt.TQListViewItem.__init__(self,parentitem,afteritem)
self.setRenameEnabled(1,True)
def startRename(self, columnindex):
- qt.QListViewItem.startRename(self,columnindex)
+ qt.TQListViewItem.startRename(self,columnindex)
#lineedit = self.listView().viewport().child("qt_renamebox")
#if lineedit:
- # regexp = qt.QRegExp("^[_A-Z]+[_A-Z0-9]*$", False)
- # v = qt.QRegExpValidator(regexp, self.listView());
+ # regexp = qt.TQRegExp("^[_A-Z]+[_A-Z0-9]*$", False)
+ # v = qt.TQRegExpValidator(regexp, self.listView());
# lineedit.setValidator(v)
def okRename(self, columnindex):
if columnindex == 1:
n = str(self.text(0))
if not self.pluginimpl.options.has_key(n):
raise "No such option \"%s\"" % n
- qt.QListViewItem.okRename(self,columnindex)
- v = str(qt.QListViewItem.text(self,1))
+ qt.TQListViewItem.okRename(self,columnindex)
+ v = str(qt.TQListViewItem.text(self,1))
print "Option \"%s\" has value \"%s\" now." % (n,v)
self.pluginimpl.options[n] = v
def text(self, columnindex):
if columnindex == 1:
- if qt.QListViewItem.text(self,0).contains("password"):
- return "*" * len(str(qt.QListViewItem.text(self,1)))
- return qt.QListViewItem.text(self,columnindex)
+ if qt.TQListViewItem.text(self,0).contains("password"):
+ return "*" * len(str(qt.TQListViewItem.text(self,1)))
+ return qt.TQListViewItem.text(self,columnindex)
return ListViewItem(pluginimpl, self.listview, parentitem, afteritem)
def updateItem(self,pluginname,pluginimpl):
@@ -289,7 +289,7 @@ def runGuiApp(copycenter, name):
afteritem.setText(1,str(pluginimpl.options[i]))
print "CopyJobWidget.updateItem Added item with name \"%s\" and value \"%s\"" % (str(i),str(pluginimpl.options[i]))
pass
-
+
def maybeUpdate(self):
print "CopyJobWidget.maybeUpdate"
self.listview.clear()
@@ -303,47 +303,47 @@ def runGuiApp(copycenter, name):
#--------------------------------------------------------------------
- class ProgressDialog(qt.QDialog):
+ class ProgressDialog(qt.TQDialog):
def __init__(self, dialog):
self.dialog = dialog
self.starttime = None
- qt.QDialog.__init__(self, dialog, "ProgressDialog", 1)
+ qt.TQDialog.__init__(self, dialog, "ProgressDialog", 1)
self.setCaption("Copying...")
- layout = qt.QVBoxLayout(self)
- box = qt.QVBox(self)
+ layout = qt.TQVBoxLayout(self)
+ box = qt.TQVBox(self)
box.setSpacing(6)
box.setMargin(6)
layout.addWidget(box)
- self.textbrowser = qt.QTextBrowser(box)
- self.textbrowser.setWordWrap(qt.QTextEdit.WidgetWidth)
- self.textbrowser.setTextFormat(qt.Qt.RichText)
- statusbox = qt.QFrame(box)
- layout = qt.QGridLayout(statusbox,4,2,0,2)
- layout.addWidget(qt.QLabel("Number of records done:",statusbox),0,0)
+ self.textbrowser = qt.TQTextBrowser(box)
+ self.textbrowser.setWordWrap(qt.TQTextEdit.WidgetWidth)
+ self.textbrowser.setTextFormat(qt.TQt.RichText)
+ statusbox = qt.TQFrame(box)
+ layout = qt.TQGridLayout(statusbox,4,2,0,2)
+ layout.addWidget(qt.TQLabel("Number of records done:",statusbox),0,0)
self.donecounter = 0
- self.donelabel = qt.QLabel("-",statusbox)
+ self.donelabel = qt.TQLabel("-",statusbox)
layout.addWidget(self.donelabel,0,1)
- layout.addWidget(qt.QLabel("Successfully copied records:",statusbox),1,0)
+ layout.addWidget(qt.TQLabel("Successfully copied records:",statusbox),1,0)
self.successcounter = 0
- self.successlabel = qt.QLabel("-",statusbox)
+ self.successlabel = qt.TQLabel("-",statusbox)
layout.addWidget(self.successlabel,1,1)
- layout.addWidget(qt.QLabel("Failed to copy records:",statusbox),2,0)
+ layout.addWidget(qt.TQLabel("Failed to copy records:",statusbox),2,0)
self.failedcounter = 0
- self.failedlabel = qt.QLabel("-",statusbox)
+ self.failedlabel = qt.TQLabel("-",statusbox)
layout.addWidget(self.failedlabel,2,1)
- layout.addWidget(qt.QLabel("Elapsed time in seconds:",statusbox),3,0)
- self.elapsedlabel = qt.QLabel("-",statusbox)
+ layout.addWidget(qt.TQLabel("Elapsed time in seconds:",statusbox),3,0)
+ self.elapsedlabel = qt.TQLabel("-",statusbox)
layout.addWidget(self.elapsedlabel,3,1)
- btnbox = qt.QHBox(box)
+ btnbox = qt.TQHBox(box)
btnbox.setSpacing(6)
- self.donebtn = qt.QPushButton(btnbox)
+ self.donebtn = qt.TQPushButton(btnbox)
self.donebtn.setText("Done")
self.donebtn.setEnabled(False)
- qt.QObject.connect(self.donebtn,qt.SIGNAL("clicked()"),self.close)
- self.cancelbtn = qt.QPushButton(btnbox)
+ qt.TQObject.connect(self.donebtn,qt.SIGNAL("clicked()"),self.close)
+ self.cancelbtn = qt.TQPushButton(btnbox)
self.cancelbtn.setText("Cancel")
- qt.QObject.connect(self.cancelbtn,qt.SIGNAL("clicked()"),self.close)
- box.setMinimumSize( qt.QSize(500,380) )
+ qt.TQObject.connect(self.cancelbtn,qt.SIGNAL("clicked()"),self.close)
+ box.setMinimumSize( qt.TQSize(500,380) )
def updateStates(self):
if self.starttime != None:
@@ -373,9 +373,9 @@ def runGuiApp(copycenter, name):
copierer.writeSuccess = self.writeSuccess
copierer.writeFailed = self.writeFailed
- self.starttime = qt.QTime()
- self.updatetimer = qt.QTimer(self)
- qt.QObject.connect(self.updatetimer,qt.SIGNAL("timeout()"),self.updateStates)
+ self.starttime = qt.TQTime()
+ self.updatetimer = qt.TQTimer(self)
+ qt.TQObject.connect(self.updatetimer,qt.SIGNAL("timeout()"),self.updateStates)
# Initialize the source
sourcename = self.dialog.getSourcePluginName()
@@ -426,13 +426,13 @@ def runGuiApp(copycenter, name):
self.starttime = None
def show(self):
- qt.QDialog.show(self)
- qt.QTimer.singleShot(10,self.startCopy)
+ qt.TQDialog.show(self)
+ qt.TQTimer.singleShot(10,self.startCopy)
qt.tqApp.processEvents()
def closeEvent(self, closeevent):
if not self.dialog.getSourcePluginImpl().isFinished():
- if qt.QMessageBox.warning(self,"Abort?","Abort the copy?",qt.QMessageBox.Yes,qt.QMessageBox.No) != qt.QMessageBox.Yes:
+ if qt.TQMessageBox.warning(self,"Abort?","Abort the copy?",qt.TQMessageBox.Yes,qt.TQMessageBox.No) != qt.TQMessageBox.Yes:
closeevent.ignore()
return
self.dialog.getSourcePluginImpl().finish()
@@ -441,35 +441,35 @@ def runGuiApp(copycenter, name):
#--------------------------------------------------------------------
- class DataSelector(qt.QVGroupBox):
+ class DataSelector(qt.TQVGroupBox):
def __init__(self, plugintype, title, caption, parent, dialog, items):
self.plugintype = plugintype
self.pluginimpl = None
self.dialog = dialog
self.mainbox = None
- qt.QVGroupBox.__init__(self,title,parent)
+ qt.TQVGroupBox.__init__(self,title,parent)
self.setInsideMargin(6)
self.setInsideSpacing(0)
- typebox = qt.QHBox(self)
- label = qt.QLabel(caption,typebox)
- self.combobox = qt.QComboBox(typebox)
+ typebox = qt.TQHBox(self)
+ label = qt.TQLabel(caption,typebox)
+ self.combobox = qt.TQComboBox(typebox)
for item in items:
self.combobox.insertItem(str(item))
label.setBuddy(self.combobox)
typebox.setStretchFactor(self.combobox,1)
- self.scrollview = qt.QScrollView(self)
+ self.scrollview = qt.TQScrollView(self)
try:
- self.scrollview.setResizePolicy(qt.QScrollView.AutoOne)
- self.scrollview.setFrameStyle(qt.QFrame.NoFrame);
- self.scrollview.setResizePolicy(qt.QScrollView.AutoOneFit);
+ self.scrollview.setResizePolicy(qt.TQScrollView.AutoOne)
+ self.scrollview.setFrameStyle(qt.TQFrame.NoFrame);
+ self.scrollview.setResizePolicy(qt.TQScrollView.AutoOneFit);
self.scrollview.viewport().setPaletteBackgroundColor(self.paletteBackgroundColor())
except:
import traceback
print "".join( traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) )
- qt.QObject.connect(self.combobox, qt.SIGNAL("activated(int)"), self.activated)
+ qt.TQObject.connect(self.combobox, qt.SIGNAL("activated(int)"), self.activated)
def updatePlugin(self):
print "DataSelector.updatePlugin"
@@ -490,7 +490,7 @@ def runGuiApp(copycenter, name):
def updateMainBox(self):
print "DataSelector.updateMainBox"
self.removeMainBox()
- self.mainbox = qt.QVBox( self.scrollview.viewport() )
+ self.mainbox = qt.TQVBox( self.scrollview.viewport() )
self.mainbox.setSpacing(2)
if self.pluginimpl != None:
try:
@@ -498,7 +498,7 @@ def runGuiApp(copycenter, name):
except:
import traceback
print "".join( traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) )
- self.mainbox.setStretchFactor(qt.QWidget(self.mainbox), 1)
+ self.mainbox.setStretchFactor(qt.TQWidget(self.mainbox), 1)
self.mainbox.show()
self.scrollview.addChild(self.mainbox)
@@ -509,7 +509,7 @@ def runGuiApp(copycenter, name):
def maybeUpdate(self):
print "DataSelector.maybeUpdate"
self.removeMainBox()
- qt.QTimer.singleShot(50, self.activated)
+ qt.TQTimer.singleShot(50, self.activated)
def maybeDone(self):
print "DataSelector.maybeDone"
@@ -519,30 +519,30 @@ def runGuiApp(copycenter, name):
#--------------------------------------------------------------------
- class Dialog(qt.QDialog):
+ class Dialog(qt.TQDialog):
def __init__(self, copycenter, parent):
self.copycenter = copycenter
- import qt
+ from TQt import qt
import os
import sys
self.ListViewDialog = ListViewDialog
- qt.QDialog.__init__(self, parent, "Dialog", 1, qt.Qt.WDestructiveClose)
+ qt.TQDialog.__init__(self, parent, "Dialog", 1, qt.TQt.WDestructiveClose)
self.setCaption("Copy Center")
- layout = qt.QVBoxLayout(self)
- box = qt.QVBox(self)
+ layout = qt.TQVBoxLayout(self)
+ box = qt.TQVBox(self)
box.setMargin(6)
box.setSpacing(6)
layout.addWidget(box)
- self.tab = qt.QTabWidget(box)
+ self.tab = qt.TQTabWidget(box)
self.tab.setMargin(6)
box.setStretchFactor(self.tab,1)
self.jobsbox = CopyJobWidget(self,self.tab)
self.tab.addTab(self.jobsbox,"Jobs")
- self.splitter = qt.QSplitter(self.tab)
+ self.splitter = qt.TQSplitter(self.tab)
sourceplugins = []
destinationplugins = []
@@ -565,27 +565,27 @@ def runGuiApp(copycenter, name):
"Destination:", # caption
self.splitter, self, destinationplugins)
- btnbox = qt.QHBox(box)
+ btnbox = qt.TQHBox(box)
btnbox.setSpacing(6)
- okbtn = qt.QPushButton(btnbox)
+ okbtn = qt.TQPushButton(btnbox)
okbtn.setText("Start Copy")
okbtn.setDefault(True)
- qt.QObject.connect(okbtn,qt.SIGNAL("clicked()"),self.startCopy)
- cancelbtn = qt.QPushButton(btnbox)
+ qt.TQObject.connect(okbtn,qt.SIGNAL("clicked()"),self.startCopy)
+ cancelbtn = qt.TQPushButton(btnbox)
cancelbtn.setText("Cancel")
- qt.QObject.connect(cancelbtn,qt.SIGNAL("clicked()"),self.close)
+ qt.TQObject.connect(cancelbtn,qt.SIGNAL("clicked()"),self.close)
self.tab.addTab(self.splitter,"Copy")
self.tab.setCurrentPage(1)
- self.helpbrowser = qt.QTextBrowser(self.tab)
+ self.helpbrowser = qt.TQTextBrowser(self.tab)
self.helpbrowser.setLinkUnderline(False)
self.helpbrowser.setUndoRedoEnabled(False)
self.tab.addTab(self.helpbrowser,"Help")
- qt.QObject.connect(self.tab,qt.SIGNAL("currentChanged(QWidget*)"),self.currentTabChanged)
+ qt.TQObject.connect(self.tab,qt.SIGNAL("currentChanged(QWidget*)"),self.currentTabChanged)
+
+ box.setMinimumSize( qt.TQSize(760,500) )
- box.setMinimumSize( qt.QSize(760,500) )
-
defaultfile = os.path.join(self.copycenter.homepath,"default.copycenterjob.xml")
if os.path.isfile(defaultfile):
print "Reading default copy job file: %s" % defaultfile
@@ -619,7 +619,7 @@ def runGuiApp(copycenter, name):
fh = open(file,'r')
self.helpbrowser.setText( fh.read() )
fh.close()
-
+
def startCopy(self):
dlg = ProgressDialog(self)
dlg.show()
@@ -627,7 +627,7 @@ def runGuiApp(copycenter, name):
#--------------------------------------------------------------------
if name == "__main__":
- qtapp = qt.QApplication(sys.argv)
+ qtapp = qt.TQApplication(sys.argv)
else:
qtapp = qt.tqApp
dialog = Dialog(copycenter, qtapp.mainWidget())