full rework of the output order
This commit is contained in:
		@@ -2,48 +2,6 @@
 | 
			
		||||
 | 
			
		||||
OutputOptions::OutputOptions() {}
 | 
			
		||||
 | 
			
		||||
void OutputOptions::add_or_update_column(Column &column) {
 | 
			
		||||
    if (column_exist(column.type)) {
 | 
			
		||||
        update_column(column, find_column(column.type));
 | 
			
		||||
    } else {
 | 
			
		||||
        this->order.push_back(column);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OutputOptions::update_column(Column &column, unsigned short index) {
 | 
			
		||||
    this->order[index] = column;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OutputOptions::remove_column(unsigned short index) {
 | 
			
		||||
    this->order.erase(this->order.begin() + index);
 | 
			
		||||
}
 | 
			
		||||
void OutputOptions::remove_column(ColumnType t) {
 | 
			
		||||
    this->order.erase(this->order.begin() + find_column(t));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned short OutputOptions::find_column(ColumnType t) {
 | 
			
		||||
    for (unsigned short i = 0; i < this->order.size(); i++) {
 | 
			
		||||
        if (this->order[i].type == t)
 | 
			
		||||
            return i;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool OutputOptions::column_exist(ColumnType t) {
 | 
			
		||||
    for (unsigned short i = 0; i < this->order.size(); i++) {
 | 
			
		||||
        if (this->order[i].type == t)
 | 
			
		||||
            return true;
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Column &OutputOptions::get_column(ColumnType t) {
 | 
			
		||||
    return this->order[find_column(t)];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::vector<Column> &OutputOptions::get_columns() { return this->order; }
 | 
			
		||||
 | 
			
		||||
void OutputOptions::set_print_header(bool value) { this->print_header = value; }
 | 
			
		||||
bool OutputOptions::get_print_header() { return this->print_header; }
 | 
			
		||||
 | 
			
		||||
@@ -52,3 +10,4 @@ bool OutputOptions::get_print_total() { return this->print_total; }
 | 
			
		||||
 | 
			
		||||
void OutputOptions::set_path(std::string path) { this->path = path; }
 | 
			
		||||
std::string &OutputOptions::get_path() { return this->path; }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
#include "../net/net.h"
 | 
			
		||||
#include "../settings/settings.h"
 | 
			
		||||
 | 
			
		||||
enum class ColumnType {
 | 
			
		||||
enum ColumnType {
 | 
			
		||||
    date,
 | 
			
		||||
    goods_name,
 | 
			
		||||
    goods_price_per_unit,
 | 
			
		||||
@@ -23,32 +23,26 @@ enum class ColumnType {
 | 
			
		||||
    goods_total
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct Column {         // Example:
 | 
			
		||||
    ColumnType type;      // goods_name
 | 
			
		||||
    std::string name;     // "Товар"
 | 
			
		||||
    unsigned int position; // "0" <-- 0 = "A", 1 = "B", etc.. column letter in
 | 
			
		||||
        // table processor (i.e. excel or libreoffice)
 | 
			
		||||
} typedef Column;
 | 
			
		||||
// Q_DECLARE_METATYPE(ColumnType);
 | 
			
		||||
 | 
			
		||||
// struct Column {         // Example:
 | 
			
		||||
//     ColumnType type;      // goods_name
 | 
			
		||||
//     std::string name;     // "Товар"
 | 
			
		||||
//     unsigned int position; // "0" <-- 0 = "A", 1 = "B", etc.. column letter in
 | 
			
		||||
//         // table processor (i.e. excel or libreoffice)
 | 
			
		||||
// } typedef Column;
 | 
			
		||||
 | 
			
		||||
class OutputOptions {
 | 
			
		||||
 | 
			
		||||
    std::vector<Column> order;
 | 
			
		||||
    bool print_header;
 | 
			
		||||
    bool print_total;
 | 
			
		||||
    std::string path;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    OutputOptions();
 | 
			
		||||
 | 
			
		||||
    void add_or_update_column(Column &);
 | 
			
		||||
    void update_column(Column&, unsigned short);
 | 
			
		||||
    void remove_column(unsigned short);
 | 
			
		||||
    void remove_column(ColumnType);
 | 
			
		||||
    unsigned short find_column(ColumnType);
 | 
			
		||||
    bool column_exist(ColumnType);
 | 
			
		||||
    Column& get_column(ColumnType);
 | 
			
		||||
    std::vector<Column>& get_columns();
 | 
			
		||||
 | 
			
		||||
    void set_print_header(bool);
 | 
			
		||||
    bool get_print_header();
 | 
			
		||||
 | 
			
		||||
@@ -60,3 +54,5 @@ public:
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // OUTPUT_OPTIONS_H
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user