@@ -625,10 +625,10 @@ void mbServerUi::menuSlotDeviceNew()
625625
626626void mbServerUi::menuSlotDeviceEdit ()
627627{
628- mbServerDevice *d = m_deviceManager-> activeDevice ();
629- if (!d )
628+ mbServerDeviceUi *deviceUi = this -> activeDeviceUi ();
629+ if (!deviceUi )
630630 return ;
631- editDevice (d );
631+ editDevice (deviceUi-> device () );
632632}
633633
634634void mbServerUi::menuSlotDeviceDelete ()
@@ -638,9 +638,10 @@ void mbServerUi::menuSlotDeviceDelete()
638638 mbServerProject *project = core ()->project ();
639639 if (!project)
640640 return ;
641- mbServerDevice *device = m_deviceManager-> activeDevice ();
642- if (!device )
641+ mbServerDeviceUi *deviceUi = this -> activeDeviceUi ();
642+ if (!deviceUi )
643643 return ;
644+ mbServerDevice *device = deviceUi->device ();
644645 QMessageBox::StandardButton res = QMessageBox::question (this ,
645646 QStringLiteral (" Delete Device" ),
646647 QString (" Are you sure you want to delete '%1'?" ).arg (device->name ()),
@@ -677,9 +678,10 @@ void mbServerUi::menuSlotDeviceImport()
677678void mbServerUi::menuSlotDeviceExport ()
678679{
679680 mbServerProject *project = core ()->project ();
680- if (project && m_deviceManager->activeDevice ())
681+ mbServerDeviceUi *deviceUi = this ->activeDeviceUi ();
682+ if (project && deviceUi)
681683 {
682- mbServerDevice *current = m_deviceManager-> activeDevice ();
684+ mbServerDevice *current = deviceUi-> device ();
683685 QString file = m_dialogs->getSaveFileName (this ,
684686 QString (" Export Device '%1'" ).arg (current->name ()),
685687 QString (),
@@ -691,7 +693,7 @@ void mbServerUi::menuSlotDeviceExport()
691693
692694void mbServerUi::menuSlotDeviceMemoryZerro ()
693695{
694- if (mbServerDeviceUi *deviceUi = m_deviceManager ->activeDeviceUi ())
696+ if (mbServerDeviceUi *deviceUi = this ->activeDeviceUi ())
695697 {
696698 deviceUi->slotMemoryZerro ();
697699 m_project->setModifiedFlag (true );
@@ -700,7 +702,7 @@ void mbServerUi::menuSlotDeviceMemoryZerro()
700702
701703void mbServerUi::menuSlotDeviceMemoryZerroAll ()
702704{
703- if (mbServerDeviceUi *deviceUi = m_deviceManager ->activeDeviceUi ())
705+ if (mbServerDeviceUi *deviceUi = this ->activeDeviceUi ())
704706 {
705707 deviceUi->slotMemoryZerroAll ();
706708 m_project->setModifiedFlag (true );
@@ -709,7 +711,7 @@ void mbServerUi::menuSlotDeviceMemoryZerroAll()
709711
710712void mbServerUi::menuSlotDeviceMemoryImport ()
711713{
712- if (mbServerDeviceUi *deviceUi = m_deviceManager ->activeDeviceUi ())
714+ if (mbServerDeviceUi *deviceUi = this ->activeDeviceUi ())
713715 {
714716 QString file = dialogs ()->getOpenFileName (this ,
715717 QStringLiteral (" Import memory values ..." ),
@@ -739,7 +741,7 @@ void mbServerUi::menuSlotDeviceMemoryImport()
739741void mbServerUi::menuSlotDeviceMemoryExport ()
740742{
741743 const int columnCount = 10 ;
742- if (mbServerDeviceUi *deviceUi = m_deviceManager ->activeDeviceUi ())
744+ if (mbServerDeviceUi *deviceUi = this ->activeDeviceUi ())
743745 {
744746 QString file = dialogs ()->getSaveFileName (this ,
745747 QStringLiteral (" Export memory values ..." ),
@@ -764,23 +766,23 @@ void mbServerUi::menuSlotDeviceMemoryExport()
764766
765767void mbServerUi::menuSlotDeviceScriptInit ()
766768{
767- mbServerDevice *device = m_deviceManager-> activeDevice ();
768- if (device )
769- windowManager ()->showDeviceScript (device, mbServerDevice::Script_Init);
769+ mbServerDeviceUi *deviceUi = this -> activeDeviceUi ();
770+ if (deviceUi )
771+ windowManager ()->showDeviceScript (deviceUi-> device () , mbServerDevice::Script_Init);
770772}
771773
772774void mbServerUi::menuSlotDeviceScriptLoop ()
773775{
774- mbServerDevice *device = m_deviceManager-> activeDevice ();
775- if (device )
776- windowManager ()->showDeviceScript (device, mbServerDevice::Script_Loop);
776+ mbServerDeviceUi *deviceUi = this -> activeDeviceUi ();
777+ if (deviceUi )
778+ windowManager ()->showDeviceScript (deviceUi-> device () , mbServerDevice::Script_Loop);
777779}
778780
779781void mbServerUi::menuSlotDeviceScriptFinal ()
780782{
781- mbServerDevice *device = m_deviceManager-> activeDevice ();
782- if (device )
783- windowManager ()->showDeviceScript (device, mbServerDevice::Script_Final);
783+ mbServerDeviceUi *deviceUi = this -> activeDeviceUi ();
784+ if (deviceUi )
785+ windowManager ()->showDeviceScript (deviceUi-> device () , mbServerDevice::Script_Final);
784786}
785787
786788void mbServerUi::menuSlotSimActionNew ()
@@ -1234,3 +1236,12 @@ void mbServerUi::saveProjectInner()
12341236 device->setScript (se->scriptType (), se->toPlainText ());
12351237 }
12361238}
1239+
1240+ mbServerDeviceUi *mbServerUi::activeDeviceUi () const
1241+ {
1242+ mbServerProjectUi *project = projectUi ();
1243+ QWidget* focusWidget = QApplication::focusWidget ();
1244+ if (focusWidget && (project == focusWidget || project->isAncestorOf (focusWidget)))
1245+ return m_deviceManager->deviceUi (project->currentDevice ());
1246+ return m_deviceManager->activeDeviceUi ();
1247+ }
0 commit comments