Nicer error message if the user tries to import data while the content server is running

This commit is contained in:
Kovid Goyal 2016-12-01 12:04:27 +05:30
parent 0f77ec7467
commit 4bbad155a3
2 changed files with 11 additions and 2 deletions

View File

@ -183,6 +183,7 @@ class ConnectShareAction(InterfaceAction):
popup_type = QToolButton.InstantPopup popup_type = QToolButton.InstantPopup
def genesis(self): def genesis(self):
self.content_server_is_running = False
self.share_conn_menu = ShareConnMenu(self.gui) self.share_conn_menu = ShareConnMenu(self.gui)
self.share_conn_menu.aboutToShow.connect(self.set_smartdevice_action_state) self.share_conn_menu.aboutToShow.connect(self.set_smartdevice_action_state)
self.share_conn_menu.toggle_server.connect(self.toggle_content_server) self.share_conn_menu.toggle_server.connect(self.toggle_content_server)
@ -208,8 +209,10 @@ class ConnectShareAction(InterfaceAction):
def content_server_state_changed(self, running): def content_server_state_changed(self, running):
self.share_conn_menu.server_state_changed(running) self.share_conn_menu.server_state_changed(running)
if running: if running:
self.content_server_is_running = True
self.qaction.setIcon(QIcon(I('connect_share_on.png'))) self.qaction.setIcon(QIcon(I('connect_share_on.png')))
else: else:
self.content_server_is_running = False
self.qaction.setIcon(QIcon(I('connect_share.png'))) self.qaction.setIcon(QIcon(I('connect_share.png')))
def toggle_content_server(self): def toggle_content_server(self):
@ -285,5 +288,3 @@ class ConnectShareAction(InterfaceAction):
ac = self.share_conn_menu.control_smartdevice_action ac = self.share_conn_menu.control_smartdevice_action
ac.setIcon(QIcon(I('dot_%s.png'%icon))) ac.setIcon(QIcon(I('dot_%s.png'%icon)))
ac.setText(text) ac.setText(text)

View File

@ -277,6 +277,14 @@ class EximDialog(Dialog):
l.addStretch() l.addStretch()
def validate_import(self): def validate_import(self):
from calibre.gui2.ui import get_gui
g = get_gui()
if g is not None:
if g.iactions['Connect Share'].content_server_is_running:
error_dialog(self, _('Content Server running'), _(
'Cannot import while the content server is running, shut it down first by clicking the'
' Connect/share button on the calibre toolbar'), show=True)
return False
if self.import_panel.stack.currentIndex() == 0: if self.import_panel.stack.currentIndex() == 0:
error_dialog(self, _('No folder selected'), _( error_dialog(self, _('No folder selected'), _(
'You must select a folder containing the previously exported data that you wish to import'), show=True) 'You must select a folder containing the previously exported data that you wish to import'), show=True)