mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
* Allow reordering the attribute table columns * Allow adding a new column to trigger an action to the attribute table
99 lines
3.0 KiB
Plaintext
99 lines
3.0 KiB
Plaintext
class QgsAttributeTableView : QTableView
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsattributetableview.h>
|
|
%End
|
|
|
|
public:
|
|
QgsAttributeTableView( QWidget* parent /TransferThis/ = 0 );
|
|
virtual ~QgsAttributeTableView();
|
|
|
|
virtual void setModel( QgsAttributeTableFilterModel* filterModel );
|
|
|
|
/**
|
|
* @brief setFeatureSelectionManager
|
|
* @param featureSelectionManager We will take ownership
|
|
*/
|
|
void setFeatureSelectionManager( QgsIFeatureSelectionManager* featureSelectionManager );
|
|
|
|
/**
|
|
* This event filter is installed on the verticalHeader to intercept mouse press and release
|
|
* events. These are used to disable / enable live synchronisation with the map canvas selection
|
|
* which can be slow due to recurring canvas repaints.
|
|
*
|
|
* @param object The object which is the target of the event.
|
|
* @param event The intercepted event
|
|
*
|
|
* @return Returns always false, so the event gets processed
|
|
*/
|
|
virtual bool eventFilter( QObject* object, QEvent* event );
|
|
|
|
protected:
|
|
/**
|
|
* Called for mouse press events on a table cell.
|
|
* Disables selection change for these events.
|
|
*
|
|
* @param event The mouse event
|
|
*/
|
|
void mousePressEvent( QMouseEvent *event );
|
|
|
|
/**
|
|
* Called for mouse release events on a table cell.
|
|
* Disables selection change for these events.
|
|
*
|
|
* @param event The mouse event
|
|
*/
|
|
void mouseReleaseEvent( QMouseEvent *event );
|
|
|
|
/**
|
|
* Called for mouse move events on a table cell.
|
|
* Disables selection change for these events.
|
|
*
|
|
* @param event The mouse event
|
|
*/
|
|
void mouseMoveEvent( QMouseEvent *event );
|
|
|
|
/**
|
|
* Called for key press events
|
|
* Disables selection change by only pressing an arrow key
|
|
*
|
|
* @param event The mouse event
|
|
*/
|
|
void keyPressEvent( QKeyEvent *event );
|
|
|
|
/**
|
|
* @brief
|
|
* Is called when the context menu will be shown. Emits a @link willShowContextMenu @endlink signal,
|
|
* so the menu can be populated by other parts of the application.
|
|
*
|
|
* @param event The associated event object.
|
|
*/
|
|
void contextMenuEvent( QContextMenuEvent* event );
|
|
|
|
/**
|
|
* Saves geometry to the settings on close
|
|
* @param event not used
|
|
*/
|
|
void closeEvent( QCloseEvent *event );
|
|
|
|
signals:
|
|
/**
|
|
* @brief
|
|
* Is emitted, in order to provide a hook to add aditional menu entries to the context menu.
|
|
*
|
|
* @param menu If additional QMenuItems are added, they will show up in the context menu.
|
|
* @param atIndex The QModelIndex, to which the context menu belongs. Relative to the source model.
|
|
* In most cases, this will be a @link QgsAttributeTableFilterModel @endlink
|
|
*/
|
|
void willShowContextMenu( QMenu* menu, const QModelIndex& atIndex );
|
|
|
|
void finished();
|
|
|
|
public slots:
|
|
void repaintRequested( const QModelIndexList& indexes );
|
|
void repaintRequested();
|
|
virtual void selectAll();
|
|
virtual void selectRow( int row );
|
|
virtual void _q_selectRow( int row );
|
|
};
|