DataSourceView::DataSourceView(const QString &rootPath, QWidget *parent) :
	QTreeView(parent),
	m_path(rootPath)
{
	// boss requirement - icons shoudl have be at least 32px sized
	setStyleSheet("icon-size: 32px;");

	m_proxy = new DataSourceProxyModel(this);

	m_model = new DataSourceModel(this);
	m_proxy->setSourceModel(m_model);

	setModel(m_proxy);
	refreshModel();

	header()->close();

	setContextMenuPolicy(Qt::CustomContextMenu);

	m_signalMapper = new QSignalMapper(this);

	connect(m_signalMapper, SIGNAL(mapped(QString)),
	        this, SLOT(spawnZimaUtilityOnDir(QString)));
	connect(this, SIGNAL(customContextMenuRequested(QPoint)),
	        this, SLOT(showContextMenu(QPoint)));
	connect(this, SIGNAL(clicked(QModelIndex)),
	        this, SLOT(modelClicked(QModelIndex)));
	connect(MetadataCache::get(), SIGNAL(cleared()),
	        this, SLOT(refreshModel()));
}
Ejemplo n.º 2
0
FmDriveQuery::FmDriveQuery( QGraphicsItem *parent ) : FmDialog( parent )
{
    setObjectName( "driveQueryDialog" );
	mContentWidget = new QGraphicsWidget();
	mContentWidget->setObjectName( "driveQueryContentWidget" );
	setContentWidget(mContentWidget);

	QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout();
    vLayout->setOrientation( Qt::Vertical );

    mListView = new HbListView();
    mListView->setObjectName( "driveQueryListView" );
	vLayout->addItem( mListView );

	mListView->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );

	this->setTimeout( NoTimeout );
	mContentWidget->setLayout( vLayout );

	connect( mListView, SIGNAL( activated  ( const QModelIndex& ) ), this, SLOT( activated( const QModelIndex& ) ) );
    this->setDismissPolicy( NoDismiss );

    
    mDriveModel = new FmDriveModel( this, 
            FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume, this );
    mListView->setModel( mDriveModel );
    
    // connect refreshModel signal of viewmanager  for drive insert/remove event.
    connect( FmViewManager::viewManager(), SIGNAL( refreshModel( QString ) ), 
            this, SLOT( refreshModel( QString ) ) );
}
Ejemplo n.º 3
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

{
    ui->setupUi(this);
    ui->orgaSelectWidget_2->model_=&model_;
    ui->orgaEditWidget_1->model_=&model_;
    ui->catEditWidget_1->model_=&model_;

readSettings();




//connect(ui->ongletsCategorie, SIGNAL(currentChanged(int)), ui->stackedWidget, SLOT(setCurrentIndex(int)));

connect(&model_, SIGNAL(refresh()), ui->orgaSelectWidget_2, SLOT(refresh()));
connect(&model_, SIGNAL(refresh()), ui->catEditWidget_1, SLOT(refresh()));
//connect(&model_, SIGNAL(orgaRefresh()), mew, SLOT(Refresh()));
connect(ui->orgaSelectWidget_2, SIGNAL(orgaSelected(Orga_ptr)), ui->orgaEditWidget_1, SLOT(loadInPanel(Orga_ptr)));
connect(ui->orgaSelectWidget_2, SIGNAL(orgaSelected(Orga_ptr)), this, SLOT(showOrgaEditPanel()));
connect(ui->catEditWidget_1, SIGNAL(selected(Categorie_ptr)), ui->orgaEditWidget_1, SLOT(setCategorie(Categorie_ptr)));
connect(ui->actionRecharger,SIGNAL(triggered()),&model_, SLOT(refreshModel()));


}
void QgsBrowserDockWidget::refreshModel( const QModelIndex& index )
{
  QgsDebugMsg( "Entered" );
  if ( index.isValid() )
  {
    QgsDataItem *item = mModel->dataItem( index );
    if ( item )
    {
      QgsDebugMsg( "path = " + item->path() );
    }
    else
    {
      QgsDebugMsg( "invalid item" );
    }
  }

  mModel->refresh( index );

  for ( int i = 0 ; i < mModel->rowCount( index ); i++ )
  {
    QModelIndex idx = mModel->index( i, 0, index );
    if ( mBrowserView->isExpanded( idx ) || !mModel->hasChildren( idx ) )
    {
      refreshModel( idx );
    }
  }
}
Ejemplo n.º 5
0
void ResideRegister::on_btn_change_clicked()
{
    dialog = new ResideRegisterDialog(this,model,false,ui->tableView->currentIndex().row());
   qDebug()<< model->data(ui->tableView->currentIndex()).toString();
    connect(dialog,SIGNAL(accepted()),this,SLOT(refreshModel()));
    dialog->exec();
}
Ejemplo n.º 6
0
void Employee::setFilter(QString filter)
{
    QString sql = QString("select e.* from employee e, statusemployee se where se.idemployee = e.idemployee and %1").arg(filter);

    bd.updateModelQuery("employee", sql);

    refreshModel();
}
Ejemplo n.º 7
0
bool TeacherForm::removeRow(int row, QSqlError &error) {
    auto employeeNumber =
        model()->record(row).value("employee_number").toString();
    auto success = manager().deleteTeacher(employeeNumber, error);
    if (success) {
        refreshModel();
    }
    return success;
}
Ejemplo n.º 8
0
 void OutputController::connect() {
     QObject::connect(view().getUi().btn_add_output, SIGNAL(clicked()), this,
             SLOT(onClickAddOutput()));
     QObject::connect(view().getUi().btn_remove_output, SIGNAL(clicked()), this,
             SLOT(onClickRemoveOutput()));
     QObject::connect(view().getUi().btn_edit_output, SIGNAL(clicked()), this,
             SLOT(onClickEditOutput()));
     refreshModel();
 }
Ejemplo n.º 9
0
bool TeacherForm::updateRecord(int, const QSqlRecord &record,
                               QSqlError &error) {
    auto map = DBManager::recordToVariantMap(record);
    Teacher teacher(map);
    auto success = manager().saveTeacher(teacher, error);
    if (success) {
        refreshModel();
    }
    return success;
}
Ejemplo n.º 10
0
bool TeacherForm::insertRecord(QSqlRecord &record, QSqlError &error) {
    auto map = DBManager::recordToVariantMap(record);
    map.remove("id");
    Teacher teacher(map);
    auto success = manager().saveTeacher(teacher, error);
    if (success) {
        refreshModel();
        record.setValue("id", teacher.id());
    }
    return success;
}
Ejemplo n.º 11
0
void FmViewManager::createBackupView()
{
    FmBackupView *backupView= new FmBackupView();

    mMainWindow->addView( backupView );
    mMainWindow->setCurrentView( backupView );
    connect( this, SIGNAL( driveChanged() ), //emit when need refresh model
             backupView, SLOT( refreshModel() ) );
    connect( this, SIGNAL( refreshBackupDate() ),  //emit when need refresh backup date
             backupView, SLOT( refreshBackupDate() ) );
}
Ejemplo n.º 12
0
void AdviceRecord::on_btn_delete_clicked()
{
    qDebug()<<ui->tableView->currentIndex().row();
    int result = QMessageBox::question(this,tr("警告"),tr("您确认删除此记录吗?"),QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok);
    if(result == QMessageBox::Ok){
        model->removeRow(ui->tableView->currentIndex().row());
        if(model->lastError().isValid())
            qDebug()<<model->lastError();
        refreshModel();
    }
}
Ejemplo n.º 13
0
void TermMgrModel::recData()
{
	json::Value jsonModleData;
	QString sValue;
	DataSource dataSorce;
	dataSorce.query(e_Term_Data, sValue);
	if (sValue.size())
	{
		jsonModleData = json::Deserialize(sValue.toStdString());
	}
	if (json::ArrayVal != jsonModleData.GetType())
	{
		json::Array jArray;
		json::Object jObject;
		jObject["id"] = QUuid::createUuid().toString().mid(1, 36).toStdString();
		jObject["orgid"] = "";
		jObject["merchno"] = "440380310000001";
		jObject["termno"] = "10023496";
		jObject["termkey"] = "1234567890abcdef1234567890abcdef";
		jObject["termkeylen"] = 32;
		jObject["date"] = "2015-12-07";
		jArray.push_back(jObject);

		jObject["id"] = QUuid::createUuid().toString().mid(1, 36).toStdString();
		jObject["orgid"] = "";
		jObject["merchno"] = "440380310000002";
		jObject["termno"] = "10023497";
		jObject["termkey"] = "1234567890abcdef1234567890abcdef";
		jObject["termkeylen"] = 32;
		jObject["date"] = "2015-12-07";
		jArray.push_back(jObject);
		jsonModleData = jArray;
	}
	listData.clear();
	if (json::NULLVal != jsonModleData.GetType() && 0 < jsonModleData.size())
	{
		int i = 0;
		for ( ; i < jsonModleData.size(); i++)
		{
			listData.push_back(TERMDATA());
			if (jsonModleData[i].HasKey("id")) listData[i].sId = QString(jsonModleData[i]["id"].ToString().c_str());
			if (jsonModleData[i].HasKey("orgid")) listData[i].sOrgid = QString(jsonModleData[i]["orgid"].ToString().c_str());
			if (jsonModleData[i].HasKey("merchno")) listData[i].sMerchno = QString(jsonModleData[i]["merchno"].ToString().c_str());
			if (jsonModleData[i].HasKey("termno")) listData[i].sTermno = QString(jsonModleData[i]["termno"].ToString().c_str());
			if (jsonModleData[i].HasKey("termkey")) listData[i].sTermkey = QString(jsonModleData[i]["termkey"].ToString().c_str());
			if (jsonModleData[i].HasKey("termkeylen")) listData[i].nTermkeylen = jsonModleData[i]["termkeylen"].ToInt();
			if (jsonModleData[i].HasKey("date")) listData[i].sDate = QString(jsonModleData[i]["date"].ToString().c_str());
			
		}		
	}
	refreshModel();
}
Ejemplo n.º 14
0
int main(int argc, char *argv[])
{
    QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
    QScopedPointer<QQuickView> view(SailfishApp::createView());

    QQmlContext* context = view->rootContext();

    qmlRegisterUncreatableType<XmlItem>("SomaFM", 1, 0, "XmlItem", "");
    qmlRegisterUncreatableType<Channel>("SomaFM", 1, 0, "Channel", "");
    qmlRegisterUncreatableType<Song>("SomaFM", 1, 0, "Song", "");

    QCoreApplication::setApplicationVersion(APP_VERSION);
    context->setContextProperty("_appVersion", APP_VERSION);

    QScopedPointer<ChannelsModel> channelsModel(new ChannelsModel());
    QScopedPointer<ChannelsProxyModel> channelsProxyModel(new ChannelsProxyModel());
    channelsProxyModel->setSourceModel(channelsModel.data());
    context->setContextProperty("_channelsModel", channelsProxyModel.data());

    QScopedPointer<ChannelsFavoritesManager> favoritesManager(ChannelsFavoritesManager::instance());
    context->setContextProperty("_favoritesManager", favoritesManager.data());

    QScopedPointer<SongsModel> channelSongsModel(new SongsModel());
    QScopedPointer<SongsProxyModel> channelSongsProxyModel(new SongsProxyModel());
    channelSongsProxyModel->setSourceModel(channelSongsModel.data());
    context->setContextProperty("_channelSongsModel", channelSongsProxyModel.data());

    QScopedPointer<SongsBookmarksManager> bookmarksManager(SongsBookmarksManager::instance());
    QScopedPointer<SongsBookmarksProxyModel> songsBookmarkProxyModel(new SongsBookmarksProxyModel());
    songsBookmarkProxyModel->setSourceModel(bookmarksManager.data());
    context->setContextProperty("_bookmarksManager", songsBookmarkProxyModel.data());

    QScopedPointer<NewsModel> newsModel(new NewsModel());
    QScopedPointer<NewsProxyModel> newsProxyModel(new NewsProxyModel());
    newsProxyModel->setSourceModel(newsModel.data());
    context->setContextProperty("_newsModel", newsProxyModel.data());

    QScopedPointer<RefreshModel> refreshModel(RefreshModel::instance());
    context->setContextProperty("_refreshModel", refreshModel.data());

    QScopedPointer<Player> player(new Player());
    context->setContextProperty("_player", player.data());

    QScopedPointer<Settings> settings(new Settings());
    context->setContextProperty("_settings", settings.data());

    view->setSource(SailfishApp::pathTo("qml/harbour-somafm.qml"));
    view->show();

    return app->exec();
}
Ejemplo n.º 15
0
bool Bill::remove(int id)
{
    bool remove = bd.exec("delete from bill where idbill = " + QString::number(id));

    if (remove){
        refreshModel();

        emitCountBills();

        getTotalValue();
    }

    return remove;
}
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    int x = this->mapmodel.width;
    int y = this->mapmodel.height;

    model.setRowCount(x);
    model.setColumnCount(y);

    emit refreshModel();

    //todo: add table din

    ui->tableView->verticalHeader()->setDefaultSectionSize(100);
    ui->tableView->horizontalHeader()->setDefaultSectionSize(100);

    //connect(&timer, SIGNAL(timeout()), this, SLOT(runVisitor()));
    connect(&timer, SIGNAL(timeout()), this, SLOT(refreshModel()));
    timer.start(timeout);
}
Ejemplo n.º 17
0
bool Ordered::remove(QString idOrder)
{
    if (bd.exec("delete from datecloseorder where idorder = '" + idOrder + "'"))
        if (bd.exec("delete from schedule where idOrder = '" + idOrder + "'"))
            if (bd.exec("delete from paymentorder where idOrder = '" + idOrder + "'"))
                if (bd.exec("delete from productitem where idOrder = '" + idOrder + "'"))
                    if (bd.exec("delete from itemorder where idOrder = '" + idOrder + "'"))
                        if (bd.exec("delete from employeeorder where idOrder = '" + idOrder + "'"))
                            if (bd.exec("delete from ordered where idOrder = '" + idOrder + "'")){
                                refreshModel();

                                return true;
                            }

    return false;
}
Ejemplo n.º 18
0
void BackgroundSubtractorLOBSTER_<ParallelUtils::eNonParallel>::initialize(const cv::Mat& oInitImg, const cv::Mat& oROI) {
    lvDbgExceptionWatch;
    // == init
    BackgroundSubtractorLBSP::initialize(oInitImg,oROI);
    m_voBGColorSamples.resize(m_nBGSamples);
    m_voBGDescSamples.resize(m_nBGSamples);
    for(size_t s=0; s<m_nBGSamples; ++s) {
        m_voBGColorSamples[s].create(m_oImgSize,CV_8UC((int)m_nImgChannels));
        m_voBGColorSamples[s] = cv::Scalar_<uchar>::all(0);
        m_voBGDescSamples[s].create(m_oImgSize,CV_16UC((int)m_nImgChannels));
        m_voBGDescSamples[s] = cv::Scalar_<ushort>::all(0);
    }
    m_bInitialized = true;
    refreshModel(1.0f,true);
    m_bModelInitialized = true;
}
Ejemplo n.º 19
0
void TreeRegions::slotSave()
{
	if (m_model->save())
	{
		m_editMode = false;
		emit signalChangeEditMode();
		QMessageBox::information(this, "", "Сохранено", QMessageBox::Ok);
		emit dataChanged();
		refreshModel();
	}
	else
		QMessageBox::critical(this, "", "Не удалось применить изменения", QMessageBox::Ok);
	auto m_index = ui->treeView->selectionModel()->currentIndex();
	ui->treeView->selectionModel()->setCurrentIndex(m_index, QItemSelectionModel::Select |
		QItemSelectionModel::Rows);

}
Ejemplo n.º 20
0
bool Bill::insert()
{
    QList<QString> values;
    values << QString::number(bd.generateID("bill", "idbill"));
    values << name << QString::number(value) << type << status;
    values << tools.convertDate(dateExpiration) << tools.convertDate(datePayment) << note;

    bool insert = bd.insert("bill", values);
    if (insert){
        emitCountBills();

        refreshModel();

        getTotalValue();
    }

    return insert;
}
Ejemplo n.º 21
0
bool Employee::insert(){
    QList<QString> values;

    QString id = QString::number(bd.generateID("employee", "idemployee"));

    values << id << name << phone << phoneMobile << radio << street << number << complement << district << cep << jobRole << QString::number(commission) << cpf << rg << cc << ag << bank << note;

    bool insert = bd.insert("employee", values);

    if (insert){
        bd.exec("insert into statusemployee values(" + id + ", 'Disponível')");

        refreshModel();
    }
    else
        qDebug() << "[EMPLOYEE] [INSERT] Erro na na inserção";

    return insert;
}
Ejemplo n.º 22
0
bool Bill::update(int id)
{
    QList<QString> fields;
    QList<QString> values;

    values << name << QString::number(value) << type << status;
    values << tools.convertDate(dateExpiration) << tools.convertDate(datePayment) << note;

    fields << "name" << "valuebill" << "typebill" << "status" << "dateexpiration" << "datepayment" << "note";

    bool update = bd.update("bill", fields, values, "idbill", QString::number(id));

    if (update){
        refreshModel();
        getTotalValue();
    }


    return update;
}
Ejemplo n.º 23
0
void QgsBrowserDockWidget::refreshModel( const QModelIndex &index )
{
  QgsDataItem *item = mModel->dataItem( index );
  if ( item )
  {
    QgsDebugMsg( "path = " + item->path() );
  }
  else
  {
    QgsDebugMsg( "invalid item" );
  }

  if ( item && ( item->capabilities2() & QgsDataItem::Fertile ) )
  {
    mModel->refresh( index );
  }

  for ( int i = 0 ; i < mModel->rowCount( index ); i++ )
  {
    QModelIndex idx = mModel->index( i, 0, index );
    QModelIndex proxyIdx = mProxyModel->mapFromSource( idx );
    QgsDataItem *child = mModel->dataItem( idx );

    // Check also expanded descendants so that the whole expanded path does not get collapsed if one item is collapsed.
    // Fast items (usually root items) are refreshed so that when collapsed, it is obvious they are if empty (no expand symbol).
    if ( mBrowserView->isExpanded( proxyIdx ) || mBrowserView->hasExpandedDescendant( proxyIdx ) || ( child && child->capabilities2() & QgsDataItem::Fast ) )
    {
      refreshModel( idx );
    }
    else
    {
      if ( child && ( child->capabilities2() & QgsDataItem::Fertile ) )
      {
        child->depopulate();
      }
    }
  }
}
/*!
 Constructs the collection data model.
 */
MpCollectionTBoneListDataModel::MpCollectionTBoneListDataModel( MpMpxCollectionData *collectionData, 
        MpPlaybackData *playbackData, QObject *parent )
    : QAbstractListModel( parent ),
      mCollectionData( collectionData ),
      mPlaybackData( playbackData ),
      mRowCount( 0 ),
      mCurrentSongId( 0 ),
      mPlaybackActive( false ),
      mPlaybackIndicatorEnabled( false )
{
    TX_ENTRY
    connect( mCollectionData, SIGNAL(refreshAlbumSongs()),
             this, SLOT(refreshModel()) );
    connect( mCollectionData, SIGNAL(albumDataChanged()),
             this, SIGNAL(albumDataChanged()) );
    
    if ( mPlaybackData ) {
        connect( mPlaybackData, SIGNAL(fileCorrupted( int )), 
                this, SLOT(fileCorrupted( int )));
    }
    
    TX_EXIT
}
Ejemplo n.º 25
0
void BackgroundSubtractorLOBSTER_<ParallelUtils::eGLSL>::initialize(const cv::Mat& oInitImg, const cv::Mat& oROI) {
    lvDbgExceptionWatch;
    // == init
    BackgroundSubtractorLBSP::initialize(oInitImg,oROI);
    // not considering relevant pixels via LUT: it would ruin shared mem usage
    m_nTMT32ModelSize = size_t(m_oROI.cols*m_oROI.rows);
    m_nSampleStepSize = m_nImgChannels;
    m_nPxModelSize = m_nImgChannels*m_nBGSamples*2;
    m_nPxModelPadding = (m_nPxModelSize%4)?4-m_nPxModelSize%4:0;
    m_nColStepSize = m_nPxModelSize+m_nPxModelPadding;
    m_nRowStepSize = m_nColStepSize*m_oROI.cols;
    m_nBGModelSize = m_nRowStepSize*m_oROI.rows;
    const int nMaxSSBOBlockSize = GLUtils::getIntegerVal<1>(GL_MAX_SHADER_STORAGE_BLOCK_SIZE);
    glAssert(nMaxSSBOBlockSize>(int)(m_nBGModelSize*sizeof(uint)) && nMaxSSBOBlockSize>(int)(m_nTMT32ModelSize*sizeof(RandUtils::TMT32GenParams)));
    m_vnBGModelData.resize(m_nBGModelSize,0);
    RandUtils::initTinyMT32Generators(glm::uvec3(uint(m_oROI.cols),uint(m_oROI.rows),1),m_voTMT32ModelData);
    m_bInitialized = true;
    GLImageProcAlgo::initialize(oInitImg,m_oROI);
    glBindBuffer(GL_SHADER_STORAGE_BUFFER,getSSBOId(BackgroundSubtractorLOBSTER_::eLOBSTERStorageBuffer_TMT32ModelBinding));
    glBufferData(GL_SHADER_STORAGE_BUFFER,m_nTMT32ModelSize*sizeof(RandUtils::TMT32GenParams),m_voTMT32ModelData.data(),GL_STATIC_COPY);
    glBindBufferBase(GL_SHADER_STORAGE_BUFFER,BackgroundSubtractorLOBSTER_::eLOBSTERStorageBuffer_TMT32ModelBinding,getSSBOId(BackgroundSubtractorLOBSTER_::eLOBSTERStorageBuffer_TMT32ModelBinding));
    refreshModel(1.0f,true);
    m_bModelInitialized = true;
}
Ejemplo n.º 26
0
void ResideRegister::on_btn_delete_clicked()
{
    qDebug()<<ui->tableView->currentIndex().row();
    int result = QMessageBox::question(this,tr("警告"),tr("您确认删除此记录吗?"),QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok);
    if(result == QMessageBox::Ok){
        QSqlRecord record = model->record(ui->tableView->currentIndex().row());
        QSqlQuery query(globaldb);
        query.prepare("select elderId from manage_info where cardNo = ?");
        query.addBindValue(record.value("cardNo").toString());
        query.exec();
        int elderId;
        if(query.first())
            elderId = query.value(0).toInt();
        query.finish();
        qDebug()<<elderId;
        query.prepare("update elder_info set resideRegister = 0 where eid = ?");
        query.addBindValue(elderId);
        query.exec();
        if(query.lastError().isValid())
            qDebug()<<query.lastError();       
        query.finish();
        model->removeRow(ui->tableView->currentIndex().row());
        if(model->lastError().isValid())
            qDebug()<<model->lastError();

        query.prepare("update elder_info set birth_date = NULL,device_id = NULL,building_no = NULL,floor_no= NULL,room_no = NULL,bed_no = NULL,mat = NULL,ic = NULL,"
                      "rfID = NULL where eid = ?");
        query.addBindValue(elderId);
        query.exec();
        query.finish();
        smt->sendDelMat(record.value("buildingName").toString(),record.value("regionNo").toString(),record.value("roomNo").toString(),record.value("bedNo").toString());

        this->updateMattressState(false,record.value("buildingName").toString(),record.value("regionNo").toString().toInt(),record.value("roomNo").toString(),record.value("bedNo").toString().toInt());
        refreshModel();
    }
}
void QgsBrowserDockWidget::refresh()
{
  refreshModel( QModelIndex() );
}
void QgsBrowserDockWidget::refresh()
{
  QApplication::setOverrideCursor( Qt::WaitCursor );
  refreshModel( QModelIndex() );
  QApplication::restoreOverrideCursor();
}
Ejemplo n.º 29
0
void ResideRegister::on_btn_add_clicked()
{
    dialog = new ResideRegisterDialog(this,model,true);
    connect(dialog,SIGNAL(accepted()),this,SLOT(refreshModel()));
    dialog->exec();
}
Ejemplo n.º 30
0
void ResideRegister::doubleClickRecord(QModelIndex index){
    dialog = new ResideRegisterDialog(this,model,false,index.row());
    connect(dialog,SIGNAL(accepted()),this,SLOT(refreshModel()));
    dialog->exec();
}