lyx_mirror/src/frontends/qt/Action.cpp
Jean-Marc Lasgouttes fff28c5756 Always qualify calls to std::move()
This quashes a new warning in clang++ 15, when std::move() (the
one-parameter version) is used as simply move(). There is a strong
recommendation from WG21 to avoid that.

Details here: https://reviews.llvm.org/D119670

It might be that we should not use that many move()s. I am not
competent to decide on that.

I also used this occasion to get rid of a spacial casing for C++11
that does not seem necessary after all.
2022-10-21 14:11:36 +02:00

99 lines
2.0 KiB
C++

/**
* \file Action.cpp
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Abdelrazak Younes
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "Action.h"
#include "GuiApplication.h"
// DispatchResult.h is needed by the windows compiler because lyx::dispatch
// returns a DispatchResult const reference. Gcc does not complain. Weird...
#include "DispatchResult.h"
#include "FuncRequest.h"
#include "FuncStatus.h"
#include "LyX.h"
#include "qt_helpers.h"
#include "support/debug.h"
#include "support/lstrings.h"
using namespace std;
namespace lyx {
namespace frontend {
Action::Action(FuncRequest func, QIcon const & icon, QString const & text,
QString const & tooltip, QObject * parent)
: QAction(parent), func_(make_shared<FuncRequest>(std::move(func))), icon_(icon)
{
init(text, tooltip);
}
Action::Action(shared_ptr<FuncRequest const> func,
QIcon const & icon, QString const & text,
QString const & tooltip, QObject * parent)
: QAction(parent), func_(func), icon_(icon)
{
init(text, tooltip);
}
void Action::init(QString const & text, QString const & tooltip)
{
// only Qt/Mac handles that
setMenuRole(NoRole);
setText(text);
setToolTip(tooltip);
setStatusTip(tooltip);
connect(this, SIGNAL(triggered()), this, SLOT(action()));
update();
}
void Action::update()
{
FuncStatus const status = getStatus(*func_);
if (status.onOff(true)) {
setCheckable(true);
setChecked(true);
} else if (status.onOff(false)) {
setCheckable(true);
setChecked(false);
} else {
setCheckable(false);
}
if (rtlIcon_.isNull() || !guiApp->rtlContext())
setIcon(icon_);
else
setIcon(rtlIcon_);
setEnabled(status.enabled());
}
void Action::action()
{
//LYXERR(Debug::ACTION, "calling lyx::dispatch: func_: ");
lyx::dispatch(*func_);
triggered(this);
}
} // namespace frontend
} // namespace lyx
#include "moc_Action.cpp"