Ref T211, formatting

This commit is contained in:
Klaus Basan
2017-12-19 06:26:24 +01:00
parent fcd4f8cde9
commit aaf4c35f80
5 changed files with 69 additions and 57 deletions

View File

@@ -39,6 +39,7 @@
using namespace BlackMisc; using namespace BlackMisc;
using namespace BlackMisc::Input; using namespace BlackMisc::Input;
using namespace BlackCore;
namespace BlackGui namespace BlackGui
{ {
@@ -47,7 +48,7 @@ namespace BlackGui
CKeySelectionBox::CKeySelectionBox(QWidget *parent) : CKeySelectionBox::CKeySelectionBox(QWidget *parent) :
QComboBox(parent) QComboBox(parent)
{ {
connect(this, static_cast<void(CKeySelectionBox::*)(int)>(&CKeySelectionBox::currentIndexChanged), this, &CKeySelectionBox::ps_updateSelectedIndex); connect(this, static_cast<void(CKeySelectionBox::*)(int)>(&CKeySelectionBox::currentIndexChanged), this, &CKeySelectionBox::updateSelectedIndex);
} }
void CKeySelectionBox::setSelectedIndex(int index) void CKeySelectionBox::setSelectedIndex(int index)
@@ -56,13 +57,13 @@ namespace BlackGui
setCurrentIndex(m_oldIndex); setCurrentIndex(m_oldIndex);
} }
void CKeySelectionBox::ps_updateSelectedIndex(int index) void CKeySelectionBox::updateSelectedIndex(int index)
{ {
emit keySelectionChanged(m_oldIndex, index); emit keySelectionChanged(m_oldIndex, index);
m_oldIndex = index; m_oldIndex = index;
} }
CHotkeyDialog::CHotkeyDialog(const CActionHotkey &actionHotkey, const BlackMisc::CIdentifierList &applications, QWidget *parent) : CHotkeyDialog::CHotkeyDialog(const CActionHotkey &actionHotkey, const CIdentifierList &identifiers, QWidget *parent) :
QDialog(parent), QDialog(parent),
ui(new Ui::CHotkeyDialog), ui(new Ui::CHotkeyDialog),
m_actionHotkey(actionHotkey), m_actionHotkey(actionHotkey),
@@ -74,7 +75,7 @@ namespace BlackGui
ui->qf_Advanced->hide(); ui->qf_Advanced->hide();
ui->tv_Actions->setModel(&m_actionModel); ui->tv_Actions->setModel(&m_actionModel);
ui->pb_AdvancedMode->setIcon(BlackMisc::CIcons::arrowMediumSouth16()); ui->pb_AdvancedMode->setIcon(CIcons::arrowMediumSouth16());
selectAction(); selectAction();
if (!actionHotkey.getCombination().isEmpty()) { ui->pb_SelectedHotkey->setText(actionHotkey.getCombination().toQString()); } if (!actionHotkey.getCombination().isEmpty()) { ui->pb_SelectedHotkey->setText(actionHotkey.getCombination().toQString()); }
@@ -92,13 +93,13 @@ namespace BlackGui
ui->cb_Identifier->setCurrentIndex(index); ui->cb_Identifier->setCurrentIndex(index);
} }
connect(ui->pb_AdvancedMode, &QPushButton::clicked, this, &CHotkeyDialog::ps_advancedModeChanged); connect(ui->pb_AdvancedMode, &QPushButton::clicked, this, &CHotkeyDialog::advancedModeChanged);
connect(ui->pb_SelectedHotkey, &QPushButton::clicked, this, &CHotkeyDialog::ps_selectHotkey); connect(ui->pb_SelectedHotkey, &QPushButton::clicked, this, &CHotkeyDialog::selectHotkey);
connect(ui->pb_Accept, &QPushButton::clicked, this, &CHotkeyDialog::ps_accept); connect(ui->pb_Accept, &QPushButton::clicked, this, &CHotkeyDialog::accept);
connect(ui->pb_Cancel, &QPushButton::clicked, this, &CHotkeyDialog::reject); connect(ui->pb_Cancel, &QPushButton::clicked, this, &CHotkeyDialog::reject);
connect(m_inputManager, &BlackCore::CInputManager::combinationSelectionChanged, this, &CHotkeyDialog::ps_combinationSelectionChanged); connect(m_inputManager, &BlackCore::CInputManager::combinationSelectionChanged, this, &CHotkeyDialog::combinationSelectionChanged);
connect(m_inputManager, &BlackCore::CInputManager::combinationSelectionFinished, this, &CHotkeyDialog::ps_combinationSelectionFinished); connect(m_inputManager, &BlackCore::CInputManager::combinationSelectionFinished, this, &CHotkeyDialog::combinationSelectionFinished);
connect(ui->tv_Actions->selectionModel(), &QItemSelectionModel::selectionChanged, this, &CHotkeyDialog::ps_changeSelectedAction); connect(ui->tv_Actions->selectionModel(), &QItemSelectionModel::selectionChanged, this, &CHotkeyDialog::changeSelectedAction);
connect(ui->cb_Identifier, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CHotkeyDialog::changeApplicableMachine); connect(ui->cb_Identifier, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CHotkeyDialog::changeApplicableMachine);
initStyleSheet(); initStyleSheet();
@@ -118,50 +119,49 @@ namespace BlackGui
setStyleSheet(s); setStyleSheet(s);
} }
CActionHotkey CHotkeyDialog::getActionHotkey(const CActionHotkey &initial, const CIdentifierList &applications, QWidget *parent) CActionHotkey CHotkeyDialog::getActionHotkey(const CActionHotkey &initial, const CIdentifierList &identifiers, QWidget *parent)
{ {
CHotkeyDialog editDialog(initial, applications, parent); CHotkeyDialog editDialog(initial, identifiers, parent);
editDialog.setWindowModality(Qt::WindowModal); editDialog.setWindowModality(Qt::WindowModal);
if (editDialog.exec()) { return editDialog.getSelectedActionHotkey(); } if (editDialog.exec()) { return editDialog.getSelectedActionHotkey(); }
return {}; return {};
} }
void CHotkeyDialog::ps_advancedModeChanged() void CHotkeyDialog::advancedModeChanged()
{ {
if (m_actionHotkey.getCombination().isEmpty()) return; if (m_actionHotkey.getCombination().isEmpty()) return;
if (!ui->qf_Advanced->isVisible()) if (!ui->qf_Advanced->isVisible())
{ {
setupAdvancedFrame(); setupAdvancedFrame();
ui->qf_Advanced->show(); ui->qf_Advanced->show();
ui->pb_AdvancedMode->setIcon(BlackMisc::CIcons::arrowMediumNorth16()); ui->pb_AdvancedMode->setIcon(CIcons::arrowMediumNorth16());
} }
else else
{ {
ui->pb_AdvancedMode->setIcon(BlackMisc::CIcons::arrowMediumSouth16()); ui->pb_AdvancedMode->setIcon(CIcons::arrowMediumSouth16());
ui->qf_Advanced->hide(); ui->qf_Advanced->hide();
ui->gb_Hotkey->resize(0, 0); ui->gb_Hotkey->resize(0, 0);
} }
} }
void CHotkeyDialog::ps_selectHotkey() void CHotkeyDialog::selectHotkey()
{ {
ui->pb_SelectedHotkey->setText("Press any key/button..."); ui->pb_SelectedHotkey->setText("Press any key/button...");
m_inputManager->startCapture(); m_inputManager->startCapture();
} }
void CHotkeyDialog::ps_combinationSelectionChanged(const BlackMisc::Input::CHotkeyCombination &combination) void CHotkeyDialog::combinationSelectionChanged(const CHotkeyCombination &combination)
{ {
ui->pb_SelectedHotkey->setText(combination.toFormattedQString()); ui->pb_SelectedHotkey->setText(combination.toFormattedQString());
} }
void CHotkeyDialog::ps_combinationSelectionFinished(const BlackMisc::Input::CHotkeyCombination &combination) void CHotkeyDialog::combinationSelectionFinished(const CHotkeyCombination &combination)
{ {
m_actionHotkey.setCombination(combination); m_actionHotkey.setCombination(combination);
synchronize(); synchronize();
} }
void CHotkeyDialog::ps_changeSelectedAction(const QItemSelection &selected, const QItemSelection &deselected) void CHotkeyDialog::changeSelectedAction(const QItemSelection &selected, const QItemSelection &deselected)
{ {
Q_UNUSED(deselected); Q_UNUSED(deselected);
if (selected.indexes().isEmpty()) { return; } if (selected.indexes().isEmpty()) { return; }
@@ -172,28 +172,28 @@ namespace BlackGui
void CHotkeyDialog::changeApplicableMachine(int index) void CHotkeyDialog::changeApplicableMachine(int index)
{ {
Q_UNUSED(index); Q_UNUSED(index);
QVariant userData = ui->cb_Identifier->currentData(Qt::UserRole); QVariant userData = ui->cb_Identifier->currentData();
Q_ASSERT(userData.canConvert<CIdentifier>()); Q_ASSERT(userData.canConvert<CIdentifier>());
m_actionHotkey.setApplicableMachine(userData.value<CIdentifier>()); m_actionHotkey.setApplicableMachine(userData.value<CIdentifier>());
} }
void CHotkeyDialog::ps_accept() void CHotkeyDialog::accept()
{ {
if (m_actionHotkey.getApplicableMachine().getMachineName().isEmpty()) if (m_actionHotkey.getApplicableMachine().getMachineName().isEmpty())
{ {
CLogMessage().validationWarning("Missing %1") << ui->gb_Machine->title(); CLogMessage().validationWarning("Missing '%1'") << ui->gb_Machine->title();
return; return;
} }
if (m_actionHotkey.getCombination().isEmpty()) if (m_actionHotkey.getCombination().isEmpty())
{ {
CLogMessage().validationWarning("Missing %1") << ui->gb_Hotkey->title(); CLogMessage().validationWarning("Missing '%1'") << ui->gb_Hotkey->title();
return; return;
} }
if (m_actionHotkey.getAction().isEmpty()) if (m_actionHotkey.getAction().isEmpty())
{ {
CLogMessage().validationWarning("Missing %1") << ui->gb_Action->title(); CLogMessage().validationWarning("Missing '%1'") << ui->gb_Action->title();
return; return;
} }
@@ -279,7 +279,7 @@ namespace BlackGui
for (const auto &token : tokens) for (const auto &token : tokens)
{ {
QModelIndex startIndex = m_actionModel.index(0, 0, parentIndex); const QModelIndex startIndex = m_actionModel.index(0, 0, parentIndex);
const auto indexList = m_actionModel.match(startIndex, Qt::DisplayRole, QVariant::fromValue(token)); const auto indexList = m_actionModel.match(startIndex, Qt::DisplayRole, QVariant::fromValue(token));
if (indexList.isEmpty()) return; if (indexList.isEmpty()) return;
parentIndex = indexList.first(); parentIndex = indexList.first();

View File

@@ -28,7 +28,6 @@ class QWidget;
namespace BlackCore { class CInputManager; } namespace BlackCore { class CInputManager; }
namespace BlackMisc { namespace Input { class CHotkeyCombination; } } namespace BlackMisc { namespace Input { class CHotkeyCombination; } }
namespace Ui { class CHotkeyDialog; } namespace Ui { class CHotkeyDialog; }
namespace BlackGui namespace BlackGui
{ {
namespace Components namespace Components
@@ -51,10 +50,9 @@ namespace BlackGui
//! User has changed the selection //! User has changed the selection
void keySelectionChanged(int oldIndex, int newIndex); void keySelectionChanged(int oldIndex, int newIndex);
private slots:
void ps_updateSelectedIndex(int index);
private: private:
void updateSelectedIndex(int index);
int m_oldIndex; int m_oldIndex;
}; };
@@ -67,7 +65,10 @@ namespace BlackGui
public: public:
//! Constructor //! Constructor
CHotkeyDialog(const BlackMisc::Input::CActionHotkey &actionHotkey, const BlackMisc::CIdentifierList &applications, QWidget *parent = nullptr); CHotkeyDialog(
const BlackMisc::Input::CActionHotkey &actionHotkey,
const BlackMisc::CIdentifierList &identifiers,
QWidget *parent = nullptr);
//! Destructor //! Destructor
virtual ~CHotkeyDialog(); virtual ~CHotkeyDialog();
@@ -78,19 +79,21 @@ namespace BlackGui
//! Init style sheet //! Init style sheet
void initStyleSheet(); void initStyleSheet();
//! \copydoc QDialog::accept
virtual void accept() override;
//! Runs the hotkey dialog and returns the result //! Runs the hotkey dialog and returns the result
static BlackMisc::Input::CActionHotkey getActionHotkey( static BlackMisc::Input::CActionHotkey getActionHotkey(
const BlackMisc::Input::CActionHotkey &initial, const BlackMisc::Input::CActionHotkey &initial,
const BlackMisc::CIdentifierList &applications, const BlackMisc::CIdentifierList &identifiers,
QWidget *parent = nullptr); QWidget *parent = nullptr);
private: private:
void ps_advancedModeChanged(); void advancedModeChanged();
void ps_selectHotkey(); void selectHotkey();
void ps_combinationSelectionChanged(const BlackMisc::Input::CHotkeyCombination &combination); void combinationSelectionChanged(const BlackMisc::Input::CHotkeyCombination &combination);
void ps_combinationSelectionFinished(const BlackMisc::Input::CHotkeyCombination &combination); void combinationSelectionFinished(const BlackMisc::Input::CHotkeyCombination &combination);
void ps_changeSelectedAction(const QItemSelection &selected, const QItemSelection &deselected); void changeSelectedAction(const QItemSelection &selected, const QItemSelection &deselected);
void ps_accept();
void changeApplicableMachine(int index); void changeApplicableMachine(int index);
void synchronize(); void synchronize();

View File

@@ -43,12 +43,13 @@ namespace BlackGui
QFrame(parent), QFrame(parent),
ui(new Ui::CSettingsHotkeyComponent) ui(new Ui::CSettingsHotkeyComponent)
{ {
Q_ASSERT_X(sGui, Q_FUNC_INFO, "Missing sGui");
ui->setupUi(this); ui->setupUi(this);
ui->tv_Hotkeys->setModel(&m_model); ui->tv_Hotkeys->setModel(&m_model);
connect(ui->pb_AddHotkey, &QPushButton::clicked, this, &CSettingsHotkeyComponent::ps_addEntry); connect(ui->pb_AddHotkey, &QPushButton::clicked, this, &CSettingsHotkeyComponent::addEntry);
connect(ui->pb_EditHotkey, &QPushButton::clicked, this, &CSettingsHotkeyComponent::ps_editEntry); connect(ui->pb_EditHotkey, &QPushButton::clicked, this, &CSettingsHotkeyComponent::editEntry);
connect(ui->pb_RemoveHotkey, &QPushButton::clicked, this, &CSettingsHotkeyComponent::ps_removeEntry); connect(ui->pb_RemoveHotkey, &QPushButton::clicked, this, &CSettingsHotkeyComponent::removeEntry);
reloadHotkeysFromSettings(); reloadHotkeysFromSettings();
ui->tv_Hotkeys->selectRow(0); ui->tv_Hotkeys->selectRow(0);
@@ -68,7 +69,7 @@ namespace BlackGui
CInputManager::instance()->registerAction(IContextAudio::pttHotkeyAction(), IContextAudio::pttHotkeyIcon()); CInputManager::instance()->registerAction(IContextAudio::pttHotkeyAction(), IContextAudio::pttHotkeyIcon());
} }
void CSettingsHotkeyComponent::ps_addEntry() void CSettingsHotkeyComponent::addEntry()
{ {
BlackMisc::CIdentifierList registeredApps; BlackMisc::CIdentifierList registeredApps;
if (sGui->getIContextApplication()) registeredApps = sGui->getIContextApplication()->getRegisteredApplications(); if (sGui->getIContextApplication()) registeredApps = sGui->getIContextApplication()->getRegisteredApplications();
@@ -79,14 +80,14 @@ namespace BlackGui
if (selectedActionHotkey.isValid() && checkAndConfirmConflicts(selectedActionHotkey)) if (selectedActionHotkey.isValid() && checkAndConfirmConflicts(selectedActionHotkey))
{ {
addHotkeytoSettings(selectedActionHotkey); addHotkeytoSettings(selectedActionHotkey);
int position = m_model.rowCount(); const int position = m_model.rowCount();
m_model.insertRows(position, 1, QModelIndex()); m_model.insertRows(position, 1, QModelIndex());
QModelIndex index = m_model.index(position, 0, QModelIndex()); const QModelIndex index = m_model.index(position, 0, QModelIndex());
m_model.setData(index, QVariant::fromValue(selectedActionHotkey), CActionHotkeyListModel::ActionHotkeyRole); m_model.setData(index, QVariant::fromValue(selectedActionHotkey), CActionHotkeyListModel::ActionHotkeyRole);
} }
} }
void CSettingsHotkeyComponent::ps_editEntry() void CSettingsHotkeyComponent::editEntry()
{ {
const auto index = ui->tv_Hotkeys->selectionModel()->currentIndex(); const auto index = ui->tv_Hotkeys->selectionModel()->currentIndex();
if (!index.isValid()) return; if (!index.isValid()) return;
@@ -109,7 +110,7 @@ namespace BlackGui
} }
} }
void CSettingsHotkeyComponent::ps_removeEntry() void CSettingsHotkeyComponent::removeEntry()
{ {
const QModelIndexList indexes = ui->tv_Hotkeys->selectionModel()->selectedRows(); const QModelIndexList indexes = ui->tv_Hotkeys->selectionModel()->selectedRows();
for (const auto &index : indexes) for (const auto &index : indexes)
@@ -178,7 +179,17 @@ namespace BlackGui
} }
} }
void CSettingsHotkeyComponent::ps_hotkeySlot(bool keyDown) CIdentifierList CSettingsHotkeyComponent::getAllIdentifiers() const
{
CIdentifierList identifiers;
if (sGui->getIContextApplication()) { identifiers = sGui->getIContextApplication()->getRegisteredApplications(); }
// add local application
identifiers.push_back(CIdentifier("local identifer for hotkeys"));
return identifiers;
}
void CSettingsHotkeyComponent::hotkeySlot(bool keyDown)
{ {
if (keyDown) { QMessageBox::information(this, "Test", "Hotkey test"); } if (keyDown) { QMessageBox::information(this, "Test", "Hotkey test"); }
} }

View File

@@ -12,10 +12,10 @@
#ifndef BLACKGUI_COMPONENTS_SETTINGSHOTKEYCOMPONENT_H #ifndef BLACKGUI_COMPONENTS_SETTINGSHOTKEYCOMPONENT_H
#define BLACKGUI_COMPONENTS_SETTINGSHOTKEYCOMPONENT_H #define BLACKGUI_COMPONENTS_SETTINGSHOTKEYCOMPONENT_H
#include "blackcore/actionbind.h"
#include "blackcore/application/applicationsettings.h"
#include "blackgui/blackguiexport.h" #include "blackgui/blackguiexport.h"
#include "blackgui/models/actionhotkeylistmodel.h" #include "blackgui/models/actionhotkeylistmodel.h"
#include "blackcore/actionbind.h"
#include "blackcore/application/applicationsettings.h"
#include "blackmisc/settingscache.h" #include "blackmisc/settingscache.h"
#include "blackmisc/icons.h" #include "blackmisc/icons.h"
@@ -50,13 +50,11 @@ namespace BlackGui
//! Create dummy/emtpy Ptt entry for wizard //! Create dummy/emtpy Ptt entry for wizard
void registerDummyPttEntry(); void registerDummyPttEntry();
private slots:
void ps_addEntry();
void ps_editEntry();
void ps_removeEntry();
void ps_hotkeySlot(bool keyDown);
private: private:
void addEntry();
void editEntry();
void removeEntry();
void hotkeySlot(bool keyDown);
void addHotkeytoSettings(const BlackMisc::Input::CActionHotkey &actionHotkey); void addHotkeytoSettings(const BlackMisc::Input::CActionHotkey &actionHotkey);
void updateHotkeyInSettings(const BlackMisc::Input::CActionHotkey &oldValue, const BlackMisc::Input::CActionHotkey &newValue); void updateHotkeyInSettings(const BlackMisc::Input::CActionHotkey &oldValue, const BlackMisc::Input::CActionHotkey &newValue);
void removeHotkeyFromSettings(const BlackMisc::Input::CActionHotkey &actionHotkey); void removeHotkeyFromSettings(const BlackMisc::Input::CActionHotkey &actionHotkey);
@@ -66,7 +64,7 @@ namespace BlackGui
QScopedPointer<Ui::CSettingsHotkeyComponent> ui; QScopedPointer<Ui::CSettingsHotkeyComponent> ui;
BlackGui::Models::CActionHotkeyListModel m_model; BlackGui::Models::CActionHotkeyListModel m_model;
BlackMisc::CSetting<BlackCore::Application::TActionHotkeys> m_actionHotkeys { this }; BlackMisc::CSetting<BlackCore::Application::TActionHotkeys> m_actionHotkeys { this };
BlackCore::CActionBind m_action { "/Test/Message", BlackMisc::CIcons::wrench16(), this, &CSettingsHotkeyComponent::ps_hotkeySlot }; BlackCore::CActionBind m_action { "/Test/Message", BlackMisc::CIcons::wrench16(), this, &CSettingsHotkeyComponent::hotkeySlot };
}; };
/** /**

View File

@@ -38,7 +38,7 @@ namespace BlackMisc
//! Properties by index //! Properties by index
enum ColumnIndex enum ColumnIndex
{ {
IndexName = BlackMisc::CPropertyIndex::GlobalIndexCIdentifier, IndexName = CPropertyIndex::GlobalIndexCIdentifier,
IndexMachineId, IndexMachineId,
IndexMachineIdBase64, IndexMachineIdBase64,
IndexMachineName, IndexMachineName,