else:
self._child.disable()
+ @property
+ def child(self):
+ return self._child
+
def enable(self):
self._isEnabled = True
if self._child is not None:
def __init__(self, parent, app):
qwrappers.WindowWrapper.__init__(self, parent, app)
self._window.setWindowTitle("%s" % constants.__pretty_app_name__)
- self._freezer = qwrappers.AutoFreezeWindowFeature(self._app, self._window)
+ #self._freezer = qwrappers.AutoFreezeWindowFeature(self._app, self._window)
self._errorLog = self._app.errorLog
self._session = session.Session(self._errorLog, constants._data_path_)
return self._defaultCredentials
def walk_children(self):
- return ()
+ if self._smsEntryDialog is not None:
+ return (self._smsEntryDialog, )
+ else:
+ return ()
def start(self):
qwrappers.WindowWrapper.start(self)
def close(self):
for diag in (
self._credentialsDialog,
- self._smsEntryDialog,
self._accountDialog,
):
if diag is not None:
diag.close()
- qwrappers.WindowWrapper.close(self)
+ for child in self.walk_children():
+ child.window.destroyed.disconnect(self._on_child_close)
+ child.window.closed.disconnect(self._on_child_close)
+ child.close()
+ self._window.close()
def destroy(self):
qwrappers.WindowWrapper.destroy(self)
self._tabWidget.setTabPosition(QtGui.QTabWidget.South)
else:
self._tabWidget.setTabPosition(QtGui.QTabWidget.West)
- for child in (self._smsEntryDialog, ):
- if child is not None:
- child.set_orientation(isPortrait)
def _initialize_tab(self, index):
assert index < self.MAX_TABS, "Invalid tab"
if self._credentialsDialog is None:
import dialogs
self._credentialsDialog = dialogs.CredentialsDialog(self._app)
- username, password = self._credentialsDialog.run(
+ credentials = self._credentialsDialog.run(
self._defaultCredentials[0], self._defaultCredentials[1], self.window
)
+ if credentials is None:
+ return
+ username, password = credentials
self._curentCredentials = username, password
self._session.login(username, password)
if response == QtGui.QDialog.Accepted:
if self._accountDialog.doClear:
self._session.logout_and_clear()
+ self._defaultCredentials = "", ""
+ self._curentCredentials = "", ""
+ for tab in self._tabsContents:
+ tab.disable()
else:
callbackNumber = self._accountDialog.selectedCallback
self._session.set_callback_number(callbackNumber)
self._app.notifyOnMissed = self._accountDialog.notifyOnMissed
self._app.notifyOnVoicemail = self._accountDialog.notifyOnVoicemail
self._app.notifyOnSms = self._accountDialog.notifyOnSms
+ self._app.save_settings()
elif response == QtGui.QDialog.Rejected:
_moduleLogger.info("Cancelled")
else:
if self._smsEntryDialog is None:
import dialogs
self._smsEntryDialog = dialogs.SMSEntryWindow(self.window, self._app, self._session, self._errorLog)
+ self._smsEntryDialog.window.destroyed.connect(self._on_child_close)
+ self._smsEntryDialog.window.closed.connect(self._on_child_close)
+ self._smsEntryDialog.window.show()
+
+ @misc_utils.log_exception(_moduleLogger)
+ def _on_child_close(self, obj = None):
+ self._smsEntryDialog = None
@QtCore.pyqtSlot()
@QtCore.pyqtSlot(bool)
def _on_import(self, checked = True):
with qui_utils.notify_error(self._errorLog):
csvName = QtGui.QFileDialog.getOpenFileName(self._window, caption="Import", filter="CSV Files (*.csv)")
+ csvName = unicode(csvName)
if not csvName:
return
import shutil
shutil.copy2(csvName, self._app.fsContactsPath)
- self._tabsContents[self.CONTACTS_TAB].update_addressbooks()
+ if self._tabsContents[self.CONTACTS_TAB].has_child:
+ self._tabsContents[self.CONTACTS_TAB].child.update_addressbooks()
@QtCore.pyqtSlot()
@QtCore.pyqtSlot(bool)