mirror of
git://git.savannah.nongnu.org/eliot.git
synced 2024-12-25 21:59:30 +01:00
HintsDialog: display the cost of each hint (optional)
This commit is contained in:
parent
4f817bfa24
commit
b6715c6c05
3 changed files with 21 additions and 8 deletions
|
@ -49,12 +49,16 @@ struct CostComparator : public binary_function<const AbstractHint*, const Abstra
|
|||
};
|
||||
|
||||
|
||||
HintWidget::HintWidget(const AbstractHint &iHint, QWidget *parent)
|
||||
HintWidget::HintWidget(const AbstractHint &iHint,
|
||||
bool iShowCosts, QWidget *parent)
|
||||
: QWidget(parent), m_hint(iHint)
|
||||
{
|
||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||
|
||||
QLabel *label = new QLabel(qfl(m_hint.getName()));
|
||||
QString labelText = qfl(m_hint.getName());
|
||||
if (iShowCosts)
|
||||
labelText += " (" + _q("cost: %1").arg(m_hint.getCost()) + ")";
|
||||
QLabel *label = new QLabel(labelText);
|
||||
label->setToolTip(qfl(m_hint.getDescription()));
|
||||
layout->addWidget(label);
|
||||
|
||||
|
@ -77,15 +81,21 @@ void HintWidget::buttonClicked()
|
|||
|
||||
|
||||
|
||||
HintsDialog::HintsDialog(QWidget *parent)
|
||||
: QDialog(parent), m_move(NULL)
|
||||
HintsDialog::HintsDialog(QWidget *parent, bool iShowCosts)
|
||||
: QDialog(parent), m_move(NULL), m_showCosts(iShowCosts)
|
||||
{
|
||||
initializeHints();
|
||||
|
||||
QVBoxLayout *vLayout = new QVBoxLayout(this);
|
||||
if (m_showCosts)
|
||||
{
|
||||
QLabel *label = new QLabel(_q("Each hint has a corresponding cost, seen as a time penalty."));
|
||||
label->setWordWrap(true);
|
||||
vLayout->addWidget(label);
|
||||
}
|
||||
Q_FOREACH(const AbstractHint *hint, m_allHints)
|
||||
{
|
||||
HintWidget *hintWidget = new HintWidget(*hint);
|
||||
HintWidget *hintWidget = new HintWidget(*hint, m_showCosts);
|
||||
QObject::connect(hintWidget, SIGNAL(hintRequested(const AbstractHint&)),
|
||||
this, SLOT(showHint(const AbstractHint&)));
|
||||
vLayout->addWidget(hintWidget);
|
||||
|
|
|
@ -43,7 +43,9 @@ class HintWidget: public QWidget
|
|||
DEFINE_LOGGER();
|
||||
|
||||
public:
|
||||
explicit HintWidget(const AbstractHint &iHint, QWidget *parent = 0);
|
||||
explicit HintWidget(const AbstractHint &iHint,
|
||||
bool iShowCosts,
|
||||
QWidget *parent = 0);
|
||||
|
||||
const AbstractHint & getHint() const { return m_hint; }
|
||||
|
||||
|
@ -68,7 +70,7 @@ class HintsDialog: public QDialog
|
|||
DEFINE_LOGGER();
|
||||
|
||||
public:
|
||||
explicit HintsDialog(QWidget *parent = 0);
|
||||
explicit HintsDialog(QWidget *parent = 0, bool iShowCosts = false);
|
||||
~HintsDialog();
|
||||
|
||||
public slots:
|
||||
|
@ -84,6 +86,7 @@ private slots:
|
|||
private:
|
||||
const Move *m_move;
|
||||
vector<const AbstractHint *> m_allHints;
|
||||
bool m_showCosts;
|
||||
|
||||
/// Initialize the m_allHints vector
|
||||
void initializeHints();
|
||||
|
|
|
@ -48,7 +48,7 @@ ToppingWidget::ToppingWidget(QWidget *parent, PlayModel &iPlayModel, PublicGame
|
|||
{
|
||||
setupUi(this);
|
||||
|
||||
m_hintsDialog = new HintsDialog(this);
|
||||
m_hintsDialog = new HintsDialog(this, true);
|
||||
QObject::connect(m_hintsDialog, SIGNAL(hintUsed(const AbstractHint&)),
|
||||
this, SLOT(hintUsed(const AbstractHint&)));
|
||||
|
||||
|
|
Loading…
Reference in a new issue