From: <ibr...@us...> - 2013-12-02 13:26:34
|
Revision: 4959 http://sourceforge.net/p/tora/code/4959 Author: ibre5041 Date: 2013-12-02 13:26:24 +0000 (Mon, 02 Dec 2013) Log Message: ----------- use hideColumn Modified Paths: -------------- trunk/tora/src/connection/tooracletraits.cpp trunk/tora/src/connection/tooracletraits.h trunk/tora/src/core/toresultmodeledit.cpp trunk/tora/src/core/toresultmodeledit.h trunk/tora/src/core/toresulttableview.cpp trunk/tora/src/core/toresulttableview.h trunk/tora/src/core/toresulttableviewedit.cpp trunk/tora/src/core/toresulttableviewedit.h Modified: trunk/tora/src/connection/tooracletraits.cpp =================================================================== --- trunk/tora/src/connection/tooracletraits.cpp 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/connection/tooracletraits.cpp 2013-12-02 13:26:24 UTC (rev 4959) @@ -98,3 +98,11 @@ return name.left(name.length() - 1).right(name.length() - 2); return name.toUpper(); } + +QList<QString> toOracleTraits::primaryKeys(toConnection &, QString const& owner, QString const& table) const +{ + // Column names begging with a space ' ' are considered to be "hidden" See: toResultTableView::slotApplyColumnRules + static const QString ROWID(QString::fromAscii("ROWID")); + static const QString ORA_ROWSCN(QString::fromAscii("ORA_ROWSCN")); + return QList<QString>() << ROWID << ORA_ROWSCN; +} Modified: trunk/tora/src/connection/tooracletraits.h =================================================================== --- trunk/tora/src/connection/tooracletraits.h 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/connection/tooracletraits.h 2013-12-02 13:26:24 UTC (rev 4959) @@ -64,10 +64,5 @@ return true; } - virtual QList<QString> primaryKeys(toConnection &, QString const& owner, QString const& table) const - { - static const QString ROWID(QString::fromAscii("ROWID")); - static const QString ORA_ROWSCN(QString::fromAscii("ORA_ROWSCN")); - return QList<QString>() << ROWID << ORA_ROWSCN; - } + virtual QList<QString> primaryKeys(toConnection &, QString const& owner, QString const& table) const; }; Modified: trunk/tora/src/core/toresultmodeledit.cpp =================================================================== --- trunk/tora/src/core/toresultmodeledit.cpp 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/core/toresultmodeledit.cpp 2013-12-02 13:26:24 UTC (rev 4959) @@ -270,7 +270,7 @@ if (index.column() == 0) return false; // can't change number column - if (index.row() > Rows.size() - 1 || index.column() > Headers.size() - PriKeys.size() - 1) + if (index.row() >= Rows.size() || index.column() >= Headers.size()) return false; toQuery::Row &row = Rows[index.row()]; @@ -282,19 +282,19 @@ rowDesc.status = MODIFIED; Rows[index.row()][0] = toQValue(rowDesc); } - if(PriKeys.size() == 0) + if(PriKeys.empty()) { // If no prikey is used, data is recorded in change list toQuery::Row oldRow = row; // keep old version - row[index.column() + PriKeys.size()] = newValue; + row[index.column()] = newValue; // for writing to the database recordChange(index, newValue, oldRow); } else { - if(!row[index.column() + PriKeys.size()].updateNewValue(newValue)) + if(!row[index.column()].updateNewValue(newValue)) return false; - qDebug() << "Value is changed from " << row[index.column() + PriKeys.size()] << " to " << newValue << "At " << index; + qDebug() << "Value is changed from " << row[index.column()] << " to " << newValue << "At " << index; } // for the view @@ -317,10 +317,10 @@ } toQuery::Row const& row = Rows.at(index.row()); - if (index.column() + PriKeys.size() >= row.size()) + if (index.column() >= row.size()) return defaultFlags; - toQValue const &data = row.at(index.column() + PriKeys.size()); + toQValue const &data = row.at(index.column()); if (data.isComplexType()) { return ( defaultFlags | fl ) & ~Qt::ItemIsEditable; @@ -335,44 +335,6 @@ return fl; } -/** - * Returns the data stored under the given role for the item - * referred to by the index. - */ -QVariant toResultModelEdit::data(const QModelIndex &ind, int role) const -{ - QModelIndex i = createIndex(ind.row(), ind.column() + PriKeys.size(), NULL); - return toResultModel::data(i, role); -} - -/** - * Returns the data for the given role and section in the header - * with the specified orientation. - */ -QVariant toResultModelEdit::headerData(int section, - Qt::Orientation orientation, - int role) const -{ - if (orientation == Qt::Horizontal) - return toResultModel::headerData(section + PriKeys.size(), orientation, role); - else - return toResultModel::headerData(section, orientation, role); -} - -/** - * Returns the number of columns for the children of the given - * parent. When the parent is valid it means that rowCount is - * returning the number of children of parent. - */ -int toResultModelEdit::columnCount(const QModelIndex &parent) const -{ - Q_UNUSED(parent); - if (Headers.empty()) - return 0; - int i = Headers.size() - PriKeys.size(); - return Headers.size() - PriKeys.size(); -} - void toResultModelEdit::commitUpdate(toConnection &conn, const toQuery::Row &row, unsigned int &updated) { QString sql = QString("UPDATE %1.%2 SET ").arg(conn.getTraits().quote(Owner)).arg(conn.getTraits().quote(Table)); Modified: trunk/tora/src/core/toresultmodeledit.h =================================================================== --- trunk/tora/src/core/toresultmodeledit.h 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/core/toresultmodeledit.h 2013-12-02 13:26:24 UTC (rev 4959) @@ -87,27 +87,6 @@ virtual Qt::ItemFlags flags(const QModelIndex &index) const; /** - * Returns the data stored under the given role for the item - * referred to by the index. - */ - virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - - /** - * Returns the data for the given role and section in the header - * with the specified orientation. - */ - QVariant headerData(int section, - Qt::Orientation orientation, - int role = Qt::DisplayRole) const; - - /** - * Returns the number of columns for the children of the given - * parent. When the parent is valid it means that rowCount is - * returning the number of children of parent. - */ - virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; - - /** * Adds a row internally. Emits rowAdded on success. * * This isn't part of any parent api. Qt provides insertRow which Modified: trunk/tora/src/core/toresulttableview.cpp =================================================================== --- trunk/tora/src/core/toresulttableview.cpp 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/core/toresulttableview.cpp 2013-12-02 13:26:24 UTC (rev 4959) @@ -415,6 +415,8 @@ void toResultTableView::slotApplyColumnRules() { + // TODO: call after every model reset + // connect(Model, SIGNAL(modelReset()), this, SLOT(slotApplyColumnRules())); if (!NumberColumn) hideColumn(0); Modified: trunk/tora/src/core/toresulttableview.h =================================================================== --- trunk/tora/src/core/toresulttableview.h 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/core/toresulttableview.h 2013-12-02 13:26:24 UTC (rev 4959) @@ -138,7 +138,7 @@ const QItemSelection &deselected); // apply column rules, numbercolumn, readable columns - void slotApplyColumnRules(void); + virtual void slotApplyColumnRules(void); protected: Modified: trunk/tora/src/core/toresulttableviewedit.cpp =================================================================== --- trunk/tora/src/core/toresulttableviewedit.cpp 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/core/toresulttableviewedit.cpp 2013-12-02 13:26:24 UTC (rev 4959) @@ -124,6 +124,16 @@ // do nothing, when editable toResultTableView was clicked } +void toResultTableViewEdit::slotApplyColumnRules() +{ + Q_ASSERT_X(!model()->headers().empty(), qPrintable(__QHERE__), "Headers were not received yet"); + for (int i = 1; i <= PriKeys.size(); i++) + { + hideColumn(i); + } + toResultTableView::slotApplyColumnRules(); +} + bool toResultTableViewEdit::commitChanges(bool status) { // Check to make sure some changes were actually made Modified: trunk/tora/src/core/toresulttableviewedit.h =================================================================== --- trunk/tora/src/core/toresulttableviewedit.h 2013-12-02 12:26:52 UTC (rev 4958) +++ trunk/tora/src/core/toresulttableviewedit.h 2013-12-02 13:26:24 UTC (rev 4959) @@ -94,6 +94,8 @@ // reimplemented virtual void slotHandleDoubleClick(const QModelIndex &); + virtual void slotApplyColumnRules(void); + private slots: /** * Handle connection toolbar's commit and rollback. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |