mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +08:00
Ref T211, hotkey dialog fixes
* add identifier of current hotkey if any * utility function getAllIdentifiers * setWindowFlags to hide "?"
This commit is contained in:
@@ -69,6 +69,7 @@ namespace BlackGui
|
||||
m_actionHotkey(actionHotkey),
|
||||
m_actionModel(this)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
m_inputManager = BlackCore::CInputManager::instance();
|
||||
|
||||
ui->setupUi(this);
|
||||
@@ -80,15 +81,22 @@ namespace BlackGui
|
||||
|
||||
if (!actionHotkey.getCombination().isEmpty()) { ui->pb_SelectedHotkey->setText(actionHotkey.getCombination().toQString()); }
|
||||
|
||||
CIdentifierList machineIdentifiers(identifiers);
|
||||
if (actionHotkey.isValid()) { machineIdentifiers.push_back(actionHotkey.getApplicableMachine()); }
|
||||
int index = -1;
|
||||
const CIdentifierList machinesUnique = applications.getMachinesUnique();
|
||||
for (const auto &app : machinesUnique)
|
||||
const CIdentifierList machineIdentifiersUnique = machineIdentifiers.getMachinesUnique();
|
||||
for (const auto &app : machineIdentifiersUnique)
|
||||
{
|
||||
ui->cb_Identifier->addItem(app.getMachineName(), QVariant::fromValue(app));
|
||||
if (m_actionHotkey.getApplicableMachine().isFromSameMachine(app)) { index = ui->cb_Identifier->count() - 1; }
|
||||
}
|
||||
|
||||
if (index != ui->cb_Identifier->currentIndex())
|
||||
if (index < 0 && ui->cb_Identifier->count() > 0)
|
||||
{
|
||||
// if nothing was found
|
||||
ui->cb_Identifier->setCurrentIndex(0);
|
||||
}
|
||||
else if (index != ui->cb_Identifier->currentIndex())
|
||||
{
|
||||
ui->cb_Identifier->setCurrentIndex(index);
|
||||
}
|
||||
|
||||
@@ -71,12 +71,7 @@ namespace BlackGui
|
||||
|
||||
void CSettingsHotkeyComponent::addEntry()
|
||||
{
|
||||
BlackMisc::CIdentifierList registeredApps;
|
||||
if (sGui->getIContextApplication()) registeredApps = sGui->getIContextApplication()->getRegisteredApplications();
|
||||
|
||||
// add local application
|
||||
registeredApps.push_back(CIdentifier());
|
||||
const auto selectedActionHotkey = CHotkeyDialog::getActionHotkey(CActionHotkey(), registeredApps, this);
|
||||
const CActionHotkey selectedActionHotkey = CHotkeyDialog::getActionHotkey(CActionHotkey(), getAllIdentifiers(), this);
|
||||
if (selectedActionHotkey.isValid() && checkAndConfirmConflicts(selectedActionHotkey))
|
||||
{
|
||||
addHotkeytoSettings(selectedActionHotkey);
|
||||
@@ -96,13 +91,8 @@ namespace BlackGui
|
||||
const QModelIndex indexHotkey = model->index(index.row(), 0, QModelIndex());
|
||||
Q_ASSERT_X(indexHotkey.data(CActionHotkeyListModel::ActionHotkeyRole).canConvert<CActionHotkey>(), Q_FUNC_INFO, "No action hotkey");
|
||||
CActionHotkey actionHotkey = indexHotkey.data(CActionHotkeyListModel::ActionHotkeyRole).value<CActionHotkey>();
|
||||
BlackMisc::CIdentifierList registeredApps;
|
||||
Q_ASSERT_X(sGui, Q_FUNC_INFO, "Missing sGui");
|
||||
if (sGui->getIContextApplication()) registeredApps = sGui->getIContextApplication()->getRegisteredApplications();
|
||||
|
||||
// add local application
|
||||
registeredApps.push_back(CIdentifier());
|
||||
const auto selectedActionHotkey = CHotkeyDialog::getActionHotkey(actionHotkey, registeredApps, this);
|
||||
const CActionHotkey selectedActionHotkey = CHotkeyDialog::getActionHotkey(actionHotkey, getAllIdentifiers(), this);
|
||||
if (selectedActionHotkey.isValid() && checkAndConfirmConflicts(selectedActionHotkey, { actionHotkey }))
|
||||
{
|
||||
updateHotkeyInSettings(actionHotkey, selectedActionHotkey);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "blackgui/models/actionhotkeylistmodel.h"
|
||||
#include "blackcore/actionbind.h"
|
||||
#include "blackcore/application/applicationsettings.h"
|
||||
#include "blackmisc/identifierlist.h"
|
||||
#include "blackmisc/settingscache.h"
|
||||
#include "blackmisc/icons.h"
|
||||
|
||||
@@ -60,6 +61,7 @@ namespace BlackGui
|
||||
void removeHotkeyFromSettings(const BlackMisc::Input::CActionHotkey &actionHotkey);
|
||||
bool checkAndConfirmConflicts(const BlackMisc::Input::CActionHotkey &actionHotkey, const BlackMisc::Input::CActionHotkeyList &ignore = {});
|
||||
void reloadHotkeysFromSettings();
|
||||
BlackMisc::CIdentifierList getAllIdentifiers() const;
|
||||
|
||||
QScopedPointer<Ui::CSettingsHotkeyComponent> ui;
|
||||
BlackGui::Models::CActionHotkeyListModel m_model;
|
||||
|
||||
Reference in New Issue
Block a user