title: QTableView doesn't seem to react on dataChanged signal
body: <p>Shown below is the my custom table model. I am trying to use that tablemodel together with a QTableView. If the method append of the table model is called I would expect the table view to update its contents. But it doesn't and I don't know why. If however I use that same table model together with a QListView, everything works fine, i.e. the list view does update its contents, when append of the table model gets called. Is there anything special I need to do in case of the QTableView?</p>
  
  <pre><code>class MyModel : public QAbstractTableModel
  {
  public:
  
      MyModel(QObject* parent=NULL) : QAbstractTableModel(parent) {}
  
      int rowCount(const QModelIndex &amp;parent = QModelIndex()) const {
          return mData.size();
      }
  
      int columnCount(const QModelIndex &amp;parent = QModelIndex()) const {
          return 2;
      }
  
      QVariant data(const QModelIndex &amp;index, int role = Qt::DisplayRole) const {
          if (!index.isValid()) {
              return QVariant();
          }
  
          if (role == Qt::DisplayRole) {
              if (index.column()==0) {
                  return QVariant(QString::fromStdString(getFirst(index.row())));
              }
              if (index.column()==1) {
                  return QVariant(QString::fromStdString(getSecond(index.row())));
              }
          }
  
          return QVariant();
      }
  
      void append(std::string const&amp; first, std::string const&amp; second) {
          mData.push_back(std::make_pair(first, second));
  
          emit dataChanged(index(mData.size()-1, 0), index(mData.size()-1, 1));
      }
  
      std::string const&amp; getFirst(int i) const {
          return mData[i].first;
      }
  
      std::string const&amp; getSecond(int i) const {
          return mData[i].second;
      }
  
  protected:
  
      std::vector&lt;std::pair&lt;std::string, std::string&gt; &gt; mData;
  };
  </code></pre>