Freeciv21
Develop your civilization from humble roots to a global empire
req_vec_fix Class Reference

Widget for solving requirement vector problems for a ruleset item. More...

#include <req_vec_fix.h>

+ Inheritance diagram for req_vec_fix:
+ Collaboration diagram for req_vec_fix:

Signals

void rec_vec_may_have_changed (const requirement_vector *vec)
 A requirement vector may have been changed. More...
 

Public Member Functions

 req_vec_fix (ruledit_gui *ui_in, req_vec_fix_item *item_info)
 Set up a widget for displaying and fixing requirement vector problems for a specific ruleset entity item. More...
 
 ~req_vec_fix () override
 Destructor for req_vec_fix. More...
 
const void * item ()
 Returns the item this dialog is trying to fix. More...
 
bool refresh ()
 Find the next requirement vector problem and its suggested solutions. More...
 

Private Slots

void apply_solution (int selected_solution)
 Apply the selected solution to the current requirement vector problem. More...
 
void accept_applied_solutions ()
 Do all the accepted solutions for real. More...
 
void reject_applied_solutions ()
 Undo all accepted solutions. More...
 
void incoming_rec_vec_change (const requirement_vector *vec)
 A requirement vector may have been changed. More...
 

Private Attributes

struct req_vec_problemcurrent_problem
 
req_vec_fix_itemitem_info
 
bool did_apply_a_solution
 
ruledit_guiui
 
req_vec_fix_problemcurrent_problem_viewer
 
QStackedLayout * current_problem_area
 
QPushButton * apply_changes
 
QPushButton * abort
 
QPushButton * close
 

Detailed Description

Widget for solving requirement vector problems for a ruleset item.

Definition at line 146 of file req_vec_fix.h.

Constructor & Destructor Documentation

◆ req_vec_fix()

req_vec_fix::req_vec_fix ( ruledit_gui ui_in,
req_vec_fix_item item_info 
)
explicit

Set up a widget for displaying and fixing requirement vector problems for a specific ruleset entity item.

Parameters
ui_inruledit instance this is for.
item_inforuleset entity item specific helpers. req_vec_fix's destructor calls close() on it.

Definition at line 139 of file req_vec_fix.cpp.

◆ ~req_vec_fix()

req_vec_fix::~req_vec_fix ( )
override

Destructor for req_vec_fix.

Definition at line 199 of file req_vec_fix.cpp.

Member Function Documentation

◆ accept_applied_solutions

void req_vec_fix::accept_applied_solutions ( )
privateslot

Do all the accepted solutions for real.

Definition at line 293 of file req_vec_fix.cpp.

Referenced by req_vec_fix().

◆ apply_solution

void req_vec_fix::apply_solution ( int  selected_solution)
privateslot

Apply the selected solution to the current requirement vector problem.

Parameters
selected_solutionthe selected solution

Definition at line 257 of file req_vec_fix.cpp.

Referenced by refresh().

◆ incoming_rec_vec_change

void req_vec_fix::incoming_rec_vec_change ( const requirement_vector *  vec)
privateslot

A requirement vector may have been changed.

Parameters
vecthe requirement vector that may have been changed.

Definition at line 329 of file req_vec_fix.cpp.

Referenced by req_vec_fix().

◆ item()

const void * req_vec_fix::item ( )

Returns the item this dialog is trying to fix.

Returns
the item this dialog is trying to fix.

Definition at line 214 of file req_vec_fix.cpp.

◆ rec_vec_may_have_changed

void req_vec_fix::rec_vec_may_have_changed ( const requirement_vector *  vec)
signal

A requirement vector may have been changed.

Parameters
vecthe requirement vector that was changed.

Referenced by accept_applied_solutions(), and ruledit_gui::open_req_vec_fix().

◆ refresh()

bool req_vec_fix::refresh ( )

Find the next requirement vector problem and its suggested solutions.

Returns
true iff a new problem was found.

Definition at line 220 of file req_vec_fix.cpp.

Referenced by accept_applied_solutions(), apply_solution(), ruledit_gui::open_req_vec_fix(), and reject_applied_solutions().

◆ reject_applied_solutions

void req_vec_fix::reject_applied_solutions ( )
privateslot

Undo all accepted solutions.

Definition at line 314 of file req_vec_fix.cpp.

Referenced by incoming_rec_vec_change(), and req_vec_fix().

Member Data Documentation

◆ abort

QPushButton * req_vec_fix::abort
private

Definition at line 173 of file req_vec_fix.h.

Referenced by refresh(), and req_vec_fix().

◆ apply_changes

QPushButton* req_vec_fix::apply_changes
private

Definition at line 173 of file req_vec_fix.h.

Referenced by refresh(), and req_vec_fix().

◆ close

QPushButton * req_vec_fix::close
private

Definition at line 173 of file req_vec_fix.h.

Referenced by refresh(), and req_vec_fix().

◆ current_problem

struct req_vec_problem* req_vec_fix::current_problem
private

Definition at line 165 of file req_vec_fix.h.

Referenced by apply_solution(), refresh(), req_vec_fix(), and ~req_vec_fix().

◆ current_problem_area

QStackedLayout* req_vec_fix::current_problem_area
private

Definition at line 172 of file req_vec_fix.h.

Referenced by refresh(), and req_vec_fix().

◆ current_problem_viewer

req_vec_fix_problem* req_vec_fix::current_problem_viewer
private

Definition at line 171 of file req_vec_fix.h.

Referenced by refresh(), and req_vec_fix().

◆ did_apply_a_solution

bool req_vec_fix::did_apply_a_solution
private

◆ item_info

◆ ui

ruledit_gui* req_vec_fix::ui
private

Definition at line 169 of file req_vec_fix.h.

Referenced by req_vec_fix(), and ~req_vec_fix().