diff --git a/qad_sql_table/sql_table_widget.cpp b/qad_sql_table/sql_table_widget.cpp index 2e8e31a..09944ab 100644 --- a/qad_sql_table/sql_table_widget.cpp +++ b/qad_sql_table/sql_table_widget.cpp @@ -460,6 +460,11 @@ void SQLTableWidget::setTableName(const QString & t) { QStringList wrl = wr.split(";"); addRelation(wrl[0], wrl[1], wrl[2], wrl[3]); } + QMapIterator cnit(col_vis); + while (cnit.hasNext()) { + cnit.next(); + setColumnVisible(cnit.key(), cnit.value()); + } } @@ -855,6 +860,14 @@ void SQLTableWidget::addFixedColumnTranslation(const QString & col_name, const Q } +void SQLTableWidget::setAdditionalActions(QList a) { + foreach (QAction * i, add_actions) + popup_menu.removeAction(i); + add_actions = a; + popup_menu.addActions(a); +} + + void SQLTableWidget::setCustomQuery(const QString & q) { custom_query = q; updateTable(); diff --git a/qad_sql_table/sql_table_widget.h b/qad_sql_table/sql_table_widget.h index 2cb0fe1..89ba083 100644 --- a/qad_sql_table/sql_table_widget.h +++ b/qad_sql_table/sql_table_widget.h @@ -226,9 +226,9 @@ public: bool isColumnHidden(int ind) {if (!columnExists(ind)) return true; return !column_props[ind].visible;} bool isColumnHidden(const QString & name) {if (!columnExists(name)) return true; return !column_props[columnByName(name)].visible;} void setColumnVisible(int ind, bool visible); - void setColumnVisible(const QString & name, bool visible) {setColumnVisible(columnByName(name), visible);} + void setColumnVisible(const QString & name, bool visible) {col_vis[name] = visible; setColumnVisible(columnByName(name), visible);} void setColumnHidden(int ind, bool hidden) {setColumnVisible(ind, !hidden);} - void setColumnHidden(const QString & name, bool hidden) {setColumnVisible(columnByName(name), !hidden);} + void setColumnHidden(const QString & name, bool hidden) {col_vis[name] = !hidden; setColumnVisible(columnByName(name), !hidden);} bool lineNewVisible() const; bool lineFilterVisible() const; @@ -237,6 +237,8 @@ public: void addFixedColumnTranslation(const QString & col_name, const QString & col_tr, const QString & col_tt = QString()); void fetchMore() {if (model) model->fetchMore();} void fetchAll() {if (model) while (model->canFetchMore()) model->fetchMore();} + + void setAdditionalActions(QList a); QSqlRecord headerRecord() const {if (model) return model->record(); return QSqlRecord();} QSqlRecord currentRecord() const; @@ -288,7 +290,9 @@ private: QMenu popup_menu, popup_col, popup_filter; QTime tm; QActionGroup filters_group; + QList add_actions; QMap > translates, fixed_translates; + QMap col_vis; int timer; bool filters_active, table_opened, read_only, first_update; static QString _dir;