Qt as well
This commit is contained in:
parent
75f5c75045
commit
d489c099a7
2 changed files with 24 additions and 15 deletions
|
@ -657,7 +657,10 @@ void MainWindow::createMenus()
|
|||
gameSettingsMenu->add(new MenuAction(this, SLOT(cheatsAct()), QT_TR_NOOP("Enable &cheats"), Qt::CTRL + Qt::Key_T))
|
||||
->addEventChecked(&g_Config.bEnableCheats);
|
||||
gameSettingsMenu->addSeparator();
|
||||
gameSettingsMenu->add(new MenuAction(this, SLOT(chatAct()), QT_TR_NOOP("Enable chat"), Qt::CTRL + Qt::Key_C));
|
||||
gameSettingsMenu->add(new MenuAction(this, SLOT(chatAct()), QT_TR_NOOP("Open chat"), Qt::CTRL + Qt::Key_C))
|
||||
->SetEnabledFunc([=]() {
|
||||
return g_Config.bEnableNetworkChat && GetUIState() == UISTATE_INGAME;
|
||||
});
|
||||
|
||||
// Help
|
||||
MenuTree* helpMenu = new MenuTree(this, menuBar(), QT_TR_NOOP("&Help"));
|
||||
|
|
|
@ -185,9 +185,9 @@ private slots:
|
|||
|
||||
// Chat
|
||||
void chatAct() {
|
||||
g_Config.bEnableNetworkChat = true;
|
||||
updateMenus();
|
||||
NativeMessageReceived("chat screen", "");
|
||||
if (GetUIState() == UISTATE_INGAME) {
|
||||
NativeMessageReceived("chat screen", "");
|
||||
}
|
||||
}
|
||||
|
||||
void fullscrAct();
|
||||
|
@ -244,7 +244,7 @@ class MenuAction : public QAction
|
|||
public:
|
||||
// Add to QMenu
|
||||
MenuAction(QWidget* parent, const char *callback, const char *text, QKeySequence key = 0) :
|
||||
QAction(parent), _text(text), _eventCheck(0), _eventUncheck(0), _stateEnable(-1), _stateDisable(-1), _enableStepping(false)
|
||||
QAction(parent), _text(text)
|
||||
{
|
||||
if (key != (QKeySequence)0) {
|
||||
this->setShortcut(key);
|
||||
|
@ -256,7 +256,7 @@ public:
|
|||
}
|
||||
// Add to QActionGroup
|
||||
MenuAction(QWidget* parent, QActionGroup* group, QVariant data, QString text, QKeySequence key = 0) :
|
||||
QAction(parent), _eventCheck(0), _eventUncheck(0), _stateEnable(-1), _stateDisable(-1), _enableStepping(false)
|
||||
QAction(parent)
|
||||
{
|
||||
this->setCheckable(true);
|
||||
this->setData(data);
|
||||
|
@ -284,14 +284,19 @@ public:
|
|||
}
|
||||
// UI State which causes it to be enabled
|
||||
void addEnableState(int state) {
|
||||
_enabledFunc = nullptr;
|
||||
_stateEnable = state;
|
||||
_stateDisable = -1;
|
||||
}
|
||||
void addDisableState(int state) {
|
||||
_enabledFunc = nullptr;
|
||||
_stateEnable = -1;
|
||||
_stateDisable = state;
|
||||
}
|
||||
MenuAction* addEnableStepping() {
|
||||
_enableStepping = true;
|
||||
return this;
|
||||
void SetEnabledFunc(std::function<bool()> func) {
|
||||
_enabledFunc = func;
|
||||
_stateEnable = -1;
|
||||
_stateDisable = -1;
|
||||
}
|
||||
public slots:
|
||||
void retranslate() {
|
||||
|
@ -306,15 +311,16 @@ public slots:
|
|||
setEnabled(GetUIState() == _stateEnable);
|
||||
if (_stateDisable >= 0)
|
||||
setEnabled(GetUIState() != _stateDisable);
|
||||
if (_enableStepping && Core_IsStepping())
|
||||
setEnabled(true);
|
||||
if (_enabledFunc)
|
||||
setEnabled(_enabledFunc());
|
||||
}
|
||||
private:
|
||||
const char *_text;
|
||||
bool *_eventCheck;
|
||||
bool *_eventUncheck;
|
||||
int _stateEnable, _stateDisable;
|
||||
bool _enableStepping;
|
||||
bool *_eventCheck = nullptr;
|
||||
bool *_eventUncheck = nullptr;
|
||||
int _stateEnable = -1;
|
||||
int _stateDisable = -1;
|
||||
std::function<bool()> _enabledFunc;
|
||||
};
|
||||
|
||||
class MenuActionGroup : public QActionGroup
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue