Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix for #1730 and some small updates in attribute table view code. Co…
…ntributed by Vita Cizek.

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@10925 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
wonder committed Jun 14, 2009
1 parent ba5694b commit c4f55e6
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 22 deletions.
5 changes: 3 additions & 2 deletions src/app/attributetable/qgsattributetabledialog.cpp
Expand Up @@ -114,6 +114,7 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *theLayer, QWid

QgsAttributeTableDialog::~QgsAttributeTableDialog()
{
delete mSelectionModel;
}

void QgsAttributeTableDialog::closeEvent( QCloseEvent* event )
Expand Down Expand Up @@ -279,7 +280,7 @@ void QgsAttributeTableDialog::updateRowSelection( int index )
// map index to filter model
//index = mFilterModel->mapFromSource(mModel->index(index, 0)).row();

if ( mView->shiftPressed )
if ( mView->shiftPressed() )
{
QgsDebugMsg( "shift" );
// get the first and last index of the rows to be selected/deselected
Expand Down Expand Up @@ -307,7 +308,7 @@ void QgsAttributeTableDialog::updateRowSelection( int index )

mLastClickedHeaderIndex = last;
}
else if ( mView->ctrlPressed )
else if ( mView->ctrlPressed() )
{
QgsDebugMsg( "ctrl" );
// update the single row selection, without starting a new selection
Expand Down
27 changes: 13 additions & 14 deletions src/app/attributetable/qgsattributetableview.cpp
Expand Up @@ -42,27 +42,26 @@ QgsAttributeTableView::QgsAttributeTableView( QWidget* parent )
setSelectionMode( QAbstractItemView::NoSelection );
setSortingEnabled( true );

shiftPressed = false;
ctrlPressed = false;
mShiftPressed = false;
mCtrlPressed = false;
}

void QgsAttributeTableView::setLayer( QgsVectorLayer* layer )
{
QgsAttributeTableModel *bModel;

if ( layer->dataProvider()->capabilities() & QgsVectorDataProvider::RandomSelectGeometryAtId )
bModel = new QgsAttributeTableModel( layer );
mModel = new QgsAttributeTableModel( layer );
else
bModel = new QgsAttributeTableMemoryModel( layer );

QgsAttributeTableFilterModel* bfModel = new QgsAttributeTableFilterModel( layer );
bfModel->setSourceModel( bModel );
mModel = new QgsAttributeTableMemoryModel( layer );

setModel( bfModel );
mFilterModel = new QgsAttributeTableFilterModel( layer );
mFilterModel->setSourceModel( mModel );
setModel( mFilterModel );
}

QgsAttributeTableView::~QgsAttributeTableView()
{
delete mModel;
delete mFilterModel;
}

void QgsAttributeTableView::closeEvent( QCloseEvent *event )
Expand All @@ -75,9 +74,9 @@ void QgsAttributeTableView::keyPressEvent( QKeyEvent *event )
{
// shift pressed
if ( event->key() == Qt::Key_Shift )// && event->modifiers() & Qt::ShiftModifier)
shiftPressed = true;
mShiftPressed = true;
else if ( event->key() == Qt::Key_Control )
ctrlPressed = true;
mCtrlPressed = true;
else
QTableView::keyPressEvent( event );
}
Expand All @@ -86,9 +85,9 @@ void QgsAttributeTableView::keyReleaseEvent( QKeyEvent *event )
{
// workaround for some Qt bug
if ( event->key() == Qt::Key_Shift || event->key() == -1 )
shiftPressed = false;
mShiftPressed = false;
else if ( event->key() == Qt::Key_Control )
ctrlPressed = false;
mCtrlPressed = false;
else
QTableView::keyReleaseEvent( event );
}
17 changes: 11 additions & 6 deletions src/app/attributetable/qgsattributetableview.h
Expand Up @@ -18,14 +18,14 @@

#include <QTableView>

class QgsAttributeTableModel;
class QgsAttributeTableFilterModel;

class QgsVectorLayer;


class QgsAttributeTableView: public QTableView
{
//private slots:
//void setRows(int rows);

public:
QgsAttributeTableView( QWidget* parent = NULL );
virtual ~QgsAttributeTableView();
Expand All @@ -35,10 +35,15 @@ class QgsAttributeTableView: public QTableView
void closeEvent( QCloseEvent *event );
void keyPressEvent( QKeyEvent *event );
void keyReleaseEvent( QKeyEvent *event );
bool shiftPressed() { return mShiftPressed; }
bool ctrlPressed() { return mCtrlPressed; }

private:
bool mShiftPressed;
bool mCtrlPressed;

//make those private
bool shiftPressed;
bool ctrlPressed;
QgsAttributeTableModel* mModel;
QgsAttributeTableFilterModel* mFilterModel;
};

#endif

0 comments on commit c4f55e6

Please sign in to comment.