text: //=========================================================================
  //  Copyright (c) Kitware, Inc.
  //  All rights reserved.
  //  See LICENSE.txt for details.
  //
  //  This software is distributed WITHOUT ANY WARRANTY; without even
  //  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  //  PURPOSE.  See the above copyright notice for more information.
  //=========================================================================
  // .NAME qtCMBTableWidget - a CMB Tree widget.
  // .SECTION Description
  //  A convenience QTableWidget with extra features:
  //  1.  Automatic size hints based on contents
  //  2.  A check box added in a header if items have check boxes
  //  3.  Navigation through columns of top level items on Tab.
  //  4.  Signal emitted when user navigates beyond end of the table giving an
  //      opportunity to the lister to grow the table.
  //  5.  Customized Drag-n-Drop
  // .SECTION Caveats
  
  #ifndef _qtCMBTableWidget_h
  #define _qtCMBTableWidget_h
  
  #include "cmbAppCommonExport.h"
  #include "cmbSystemConfig.h"
  #include <QTableWidget>
  
  class QKeyEvent;
  
  class CMBAPPCOMMON_EXPORT qtCMBTableWidget : public QTableWidget
  {
    typedef QTableWidget Superclass;
    Q_OBJECT
  
  public:
    qtCMBTableWidget(QWidget* p = NULL);
    ~qtCMBTableWidget() override;
  
    QModelIndexList getSelectedIndexes() const { return this->selectedIndexes(); }
  public slots:
  
  signals:
    void keyPressed(QKeyEvent*);
  
  protected slots:
    void keyPressEvent(QKeyEvent*) override;
  };
  
  #endif // !_qtCMBTableWidget_h
  