Skip to content

Commit

Permalink
Normalize SIGNALS/SLOTS for performance.
Browse files Browse the repository at this point in the history
  • Loading branch information
finetjul committed Sep 1, 2011
1 parent a155a33 commit 1dfadce
Show file tree
Hide file tree
Showing 49 changed files with 220 additions and 220 deletions.
2 changes: 1 addition & 1 deletion Applications/ctkExampleHost/ctkHostAppExampleWidget.cpp
Expand Up @@ -45,7 +45,7 @@ ctkHostAppExampleWidget::ctkHostAppExampleWidget(QWidget *parent) :
connect(&this->Host->getAppProcess(),SIGNAL(error(QProcess::ProcessError)),SLOT(appProcessError(QProcess::ProcessError)));
connect(&this->Host->getAppProcess(),SIGNAL(stateChanged(QProcess::ProcessState)),SLOT(appProcessStateChanged(QProcess::ProcessState)));
connect(ui->placeholderFrame,SIGNAL(resized()),SLOT(placeholderResized()));
connect(this->Host,SIGNAL( stateChangedReceived(ctkDicomAppHosting::State)),SLOT(appStateChanged(ctkDicomAppHosting::State)));
connect(this->Host,SIGNAL(stateChangedReceived(ctkDicomAppHosting::State)),SLOT(appStateChanged(ctkDicomAppHosting::State)));

}

Expand Down
46 changes: 23 additions & 23 deletions Libs/Core/Testing/Cpp/ctkWorkflowTest2.cpp
Expand Up @@ -145,45 +145,45 @@ int ctkWorkflowTest2(int argc, char * argv [] )
ctkExampleWorkflowStepUsingSignalsAndSlots* qObject4 = new ctkExampleWorkflowStepUsingSignalsAndSlots(step4);

// use the qObjects for validation
QObject::connect(step1->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(const QString&)),
qObject1, SLOT(validate(const QString&)));
QObject::connect(step2->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(const QString&)),
qObject2, SLOT(validate(const QString&)));
QObject::connect(step1->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(QString)),
qObject1, SLOT(validate(QString)));
QObject::connect(step2->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(QString)),
qObject2, SLOT(validate(QString)));
// step 3's validation will always fail
QObject::connect(step3->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(const QString&)),
QObject::connect(step3->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(QString)),
qObject3, SLOT(validateFails()));

QObject::connect(step4->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(const QString&)),
qObject4, SLOT(validate(const QString&)));
QObject::connect(step4->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(QString)),
qObject4, SLOT(validate(QString)));

// use the qObjects for entry processing
QObject::connect(
step1->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject1, SLOT(onEntry(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step1->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject1, SLOT(onEntry(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
QObject::connect(
step2->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject2, SLOT(onEntry(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step2->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject2, SLOT(onEntry(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
QObject::connect(
step3->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject3, SLOT(onEntry(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step3->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject3, SLOT(onEntry(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
QObject::connect(
step4->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject4, SLOT(onEntry(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step4->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject4, SLOT(onEntry(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));


// use the qObjects for exit processing
QObject::connect(
step1->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject1, SLOT(onExit(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step1->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject1, SLOT(onExit(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
QObject::connect(
step2->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject2, SLOT(onExit(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step2->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject2, SLOT(onExit(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
QObject::connect(
step3->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject3, SLOT(onExit(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step3->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject3, SLOT(onExit(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
QObject::connect(
step4->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject4, SLOT(onExit(const ctkWorkflowStep*, const ctkWorkflowInterstepTransition::InterstepTransitionType)));
step4->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)),
qObject4, SLOT(onExit(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));

step1->setHasValidateCommand(1);
step2->setHasValidateCommand(1);
Expand Down
40 changes: 20 additions & 20 deletions Libs/Core/ctkCheckableModelHelper.cpp
Expand Up @@ -308,36 +308,36 @@ void ctkCheckableModelHelper::setModel(QAbstractItemModel *newModel)
if(current)
{
this->disconnect(
current, SIGNAL(headerDataChanged(Qt::Orientation, int, int)),
this, SLOT(onHeaderDataChanged(Qt::Orientation, int, int)));
current, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
this, SLOT(onHeaderDataChanged(Qt::Orientation,int,int)));
this->disconnect(
current, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)));
current, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(onDataChanged(QModelIndex,QModelIndex)));
this->disconnect(
current, SIGNAL(columnsInserted(const QModelIndex &, int, int)),
this, SLOT(onColumnsInserted(const QModelIndex &, int, int)));
current, SIGNAL(columnsInserted(QModelIndex,int,int)),
this, SLOT(onColumnsInserted(QModelIndex,int,int)));
this->disconnect(
current, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
this, SLOT(onRowsInserted(const QModelIndex &, int, int)));
current, SIGNAL(rowsInserted(QModelIndex,int,int)),
this, SLOT(onRowsInserted(QModelIndex,int,int)));
}
d->Model = newModel;
if(newModel)
{
this->connect(
newModel, SIGNAL(headerDataChanged(Qt::Orientation, int, int)),
this, SLOT(onHeaderDataChanged(Qt::Orientation, int, int)));
newModel, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
this, SLOT(onHeaderDataChanged(Qt::Orientation,int,int)));
if (d->PropagateDepth != 0)
{
this->connect(
newModel, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)));
newModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(onDataChanged(QModelIndex,QModelIndex)));
}
this->connect(
newModel, SIGNAL(columnsInserted(const QModelIndex &, int, int)),
this, SLOT(onColumnsInserted(const QModelIndex &, int, int)));
newModel, SIGNAL(columnsInserted(QModelIndex,int,int)),
this, SLOT(onColumnsInserted(QModelIndex,int,int)));
this->connect(
newModel, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
this, SLOT(onRowsInserted(const QModelIndex &, int, int)));
newModel, SIGNAL(rowsInserted(QModelIndex,int,int)),
this, SLOT(onRowsInserted(QModelIndex,int,int)));

if (d->ForceCheckability)
{
Expand Down Expand Up @@ -385,15 +385,15 @@ void ctkCheckableModelHelper::setPropagateDepth(int depth)
if (depth != 0)
{
this->connect(
this->model(), SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)), Qt::UniqueConnection);
this->model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(onDataChanged(QModelIndex,QModelIndex)), Qt::UniqueConnection);
this->updateHeadersFromItems();
}
else
{
this->disconnect(
this->model(), SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)));
this->model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(onDataChanged(QModelIndex,QModelIndex)));
}
}

Expand Down
4 changes: 2 additions & 2 deletions Libs/Core/ctkErrorLogFDMessageHandler.cpp
Expand Up @@ -54,8 +54,8 @@ ctkFDHandler::ctkFDHandler(ctkErrorLogFDMessageHandler* messageHandler,
+ QDir::separator () + "ctkFDHandler-%1.XXXXXX.txt";
this->OutputFile.setFileTemplate(outputFileTemplateName.arg(this->FDNumber));

connect(&this->OutputFileWatcher, SIGNAL(fileChanged(const QString&)),
SLOT(outputFileChanged(const QString&)));
connect(&this->OutputFileWatcher, SIGNAL(fileChanged(QString)),
SLOT(outputFileChanged(QString)));
}

// --------------------------------------------------------------------------
Expand Down
36 changes: 18 additions & 18 deletions Libs/Core/ctkModelTester.cpp
Expand Up @@ -102,30 +102,30 @@ void ctkModelTester::setModel(QAbstractItemModel *_model)
}
if (_model)
{
connect(_model, SIGNAL(columnsAboutToBeInserted(const QModelIndex &, int, int)),
this, SLOT(onColumnsAboutToBeInserted(const QModelIndex& , int, int)));
connect(_model, SIGNAL(columnsAboutToBeRemoved(const QModelIndex &, int, int)),
this, SLOT(onColumnsAboutToBeRemoved(const QModelIndex& , int, int)));
connect(_model, SIGNAL(columnsInserted(const QModelIndex &, int, int)),
this, SLOT(onColumnsInserted(const QModelIndex& , int, int)));
connect(_model, SIGNAL(columnsRemoved(const QModelIndex &, int, int)),
this, SLOT(onColumnsRemoved(const QModelIndex& , int, int)));
connect(_model, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
this, SLOT(onDataChanged(const QModelIndex& , const QModelIndex &)));
connect(_model, SIGNAL(columnsAboutToBeInserted(QModelIndex,int,int)),
this, SLOT(onColumnsAboutToBeInserted(QModelIndex,int,int)));
connect(_model, SIGNAL(columnsAboutToBeRemoved(QModelIndex,int,int)),
this, SLOT(onColumnsAboutToBeRemoved(QModelIndex,int,int)));
connect(_model, SIGNAL(columnsInserted(QModelIndex,int,int)),
this, SLOT(onColumnsInserted(QModelIndex,int,int)));
connect(_model, SIGNAL(columnsRemoved(QModelIndex,int,int)),
this, SLOT(onColumnsRemoved(QModelIndex,int,int)));
connect(_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
this, SLOT(onDataChanged(QModelIndex,QModelIndex)));
connect(_model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
this, SLOT(onHeaderDataChanged(Qt::Orientation,int,int)));
connect(_model, SIGNAL(layoutAboutToBeChanged()), this, SLOT(onLayoutAboutToBeChanged()));
connect(_model, SIGNAL(layoutChanged()), this, SLOT(onLayoutChanged()));
connect(_model, SIGNAL(modelAboutToBeReset()), this, SLOT(onModelAboutToBeReset()));
connect(_model, SIGNAL(modelReset()), this, SLOT(onModelReset()));
connect(_model, SIGNAL(rowsAboutToBeInserted(const QModelIndex &, int, int)),
this, SLOT(onRowsAboutToBeInserted(const QModelIndex& , int, int)));
connect(_model, SIGNAL(rowsAboutToBeRemoved(const QModelIndex &, int, int)),
this, SLOT(onRowsAboutToBeRemoved(const QModelIndex& , int, int)));
connect(_model, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
this, SLOT(onRowsInserted(const QModelIndex& , int, int)));
connect(_model, SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
this, SLOT(onRowsRemoved(const QModelIndex& , int, int)));
connect(_model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
this, SLOT(onRowsAboutToBeInserted(QModelIndex,int,int)));
connect(_model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
this, SLOT(onRowsAboutToBeRemoved(QModelIndex,int,int)));
connect(_model, SIGNAL(rowsInserted(QModelIndex,int,int)),
this, SLOT(onRowsInserted(QModelIndex,int,int)));
connect(_model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
this, SLOT(onRowsRemoved(QModelIndex,int,int)));
}
d->Model = _model;
this->testModel();
Expand Down
4 changes: 2 additions & 2 deletions Libs/Core/ctkWorkflow.cpp
Expand Up @@ -90,8 +90,8 @@ void ctkWorkflowPrivate::addStep(ctkWorkflowStep* step)
// Setup the signal/slot that triggers the evaluation of the validation results
// after validate(const QString&) is called
this->connect(
step->ctkWorkflowStepQObject(), SIGNAL(validationComplete(bool, const QString&)),
q, SLOT(evaluateValidationResults(bool, const QString&)));
step->ctkWorkflowStepQObject(), SIGNAL(validationComplete(bool,QString)),
q, SLOT(evaluateValidationResults(bool,QString)));

this->connect(
step->ctkWorkflowStepQObject(), SIGNAL(onEntryComplete()),
Expand Down
2 changes: 1 addition & 1 deletion Libs/DICOM/Core/ctkDICOMDatabase.cpp
Expand Up @@ -143,7 +143,7 @@ void ctkDICOMDatabase::openDatabase(const QString databaseFile, const QString& c
if (!isInMemory())
{
QFileSystemWatcher* watcher = new QFileSystemWatcher(QStringList(databaseFile),this);
connect(watcher, SIGNAL( fileChanged(const QString&)),this, SIGNAL ( databaseChanged() ) );
connect(watcher, SIGNAL(fileChanged(QString)),this, SIGNAL (databaseChanged()) );
}
}

Expand Down
16 changes: 8 additions & 8 deletions Libs/DICOM/Widgets/ctkDICOMAppWidget.cpp
Expand Up @@ -148,7 +148,7 @@ ctkDICOMAppWidget::ctkDICOMAppWidget(QWidget* _parent):Superclass(_parent),
this->setDatabaseDirectory(databaseDirectory);
d->DirectoryButton->setDirectory(databaseDirectory);

connect(d->DirectoryButton, SIGNAL(directoryChanged(const QString&)), this, SLOT(setDatabaseDirectory(const QString&)));
connect(d->DirectoryButton, SIGNAL(directoryChanged(QString)), this, SLOT(setDatabaseDirectory(QString)));

//Initialize import widget
d->ImportDialog = new ctkFileDialog();
Expand All @@ -160,19 +160,19 @@ ctkDICOMAppWidget::ctkDICOMAppWidget(QWidget* _parent):Superclass(_parent),
d->ImportDialog->setWindowModality(Qt::ApplicationModal);

//connect signal and slots
connect(d->TreeView, SIGNAL(clicked(const QModelIndex&)), d->ThumbnailsWidget, SLOT(onModelSelected(const QModelIndex &)));
connect(d->TreeView, SIGNAL(clicked(const QModelIndex&)), d->ImagePreview, SLOT(onModelSelected(const QModelIndex &)));
connect(d->TreeView, SIGNAL(clicked(const QModelIndex&)), this, SLOT(onModelSelected(const QModelIndex &)));
connect(d->TreeView, SIGNAL(clicked(QModelIndex)), d->ThumbnailsWidget, SLOT(onModelSelected(QModelIndex)));
connect(d->TreeView, SIGNAL(clicked(QModelIndex)), d->ImagePreview, SLOT(onModelSelected(QModelIndex)));
connect(d->TreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(onModelSelected(QModelIndex)));

connect(d->ThumbnailsWidget, SIGNAL(selected(const ctkThumbnailWidget&)), this, SLOT(onThumbnailSelected(const ctkThumbnailWidget&)));
connect(d->ThumbnailsWidget, SIGNAL(doubleClicked(const ctkThumbnailWidget&)), this, SLOT(onThumbnailDoubleClicked(const ctkThumbnailWidget&)));
connect(d->ThumbnailsWidget, SIGNAL(selected(ctkThumbnailWidget)), this, SLOT(onThumbnailSelected(ctkThumbnailWidget)));
connect(d->ThumbnailsWidget, SIGNAL(doubleClicked(ctkThumbnailWidget)), this, SLOT(onThumbnailDoubleClicked(ctkThumbnailWidget)));
connect(d->ImportDialog, SIGNAL(fileSelected(QString)),this,SLOT(onImportDirectory(QString)));

connect(d->QueryRetrieveWidget, SIGNAL( canceled() ), d->QueryRetrieveWidget, SLOT( hide() ) );
connect(d->QueryRetrieveWidget, SIGNAL(canceled()), d->QueryRetrieveWidget, SLOT(hide()) );

connect(d->ImagePreview, SIGNAL(requestNextImage()), this, SLOT(onNextImage()));
connect(d->ImagePreview, SIGNAL(requestPreviousImage()), this, SLOT(onPreviousImage()));
connect(d->ImagePreview, SIGNAL(imageDisplayed(int, int)), this, SLOT(onImagePreviewDisplayed(int,int)));
connect(d->ImagePreview, SIGNAL(imageDisplayed(int,int)), this, SLOT(onImagePreviewDisplayed(int,int)));

connect(d->SearchOption, SIGNAL(parameterChanged()), this, SLOT(onSearchParameterChanged()));

Expand Down
2 changes: 1 addition & 1 deletion Libs/DICOM/Widgets/ctkDICOMDirectoryListWidget.cpp
Expand Up @@ -130,7 +130,7 @@ void ctkDICOMDirectoryListWidget::setDICOMDatabase(ctkDICOMDatabase* dicomDataba
d->directoryListView->setModel(d->directoryListModel);

connect ( d->directoryListView->selectionModel(),
SIGNAL(selectionChanged(const QItemSelection&,const QItemSelection&)),
SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this,
SLOT(directorySelectionChanged(const QItemSelection & ,
const QItemSelection & )));
Expand Down
4 changes: 2 additions & 2 deletions Libs/DICOM/Widgets/ctkDICOMImportWidget.cpp
Expand Up @@ -65,8 +65,8 @@ ctkDICOMImportWidget::ctkDICOMImportWidget(QWidget* parentWidget)
d->directoryList->setModel(d->FileSystemModel);

//connect signals and slots
connect(d->DirectoryWidget, SIGNAL(directoryChanged(const QString&)),
this, SLOT(onTopDirectoryChanged(const QString&)));
connect(d->DirectoryWidget, SIGNAL(directoryChanged(QString)),
this, SLOT(onTopDirectoryChanged(QString)));
this->onTopDirectoryChanged(d->DirectoryWidget->directory());
}

Expand Down
8 changes: 4 additions & 4 deletions Libs/DICOM/Widgets/ctkDICOMServerNodeWidget.cpp
Expand Up @@ -73,11 +73,11 @@ ctkDICOMServerNodeWidget::ctkDICOMServerNodeWidget(QWidget* parentWidget)

this->readSettings();

connect(d->CallingAETitle, SIGNAL(textChanged(const QString&)),
connect(d->CallingAETitle, SIGNAL(textChanged(QString)),
this, SLOT(saveSettings()));
connect(d->StorageAETitle, SIGNAL(textChanged(const QString&)),
connect(d->StorageAETitle, SIGNAL(textChanged(QString)),
this, SLOT(saveSettings()));
connect(d->StoragePort, SIGNAL(textChanged(const QString&)),
connect(d->StoragePort, SIGNAL(textChanged(QString)),
this, SLOT(saveSettings()));

connect(d->AddButton, SIGNAL(clicked()),
Expand All @@ -87,7 +87,7 @@ ctkDICOMServerNodeWidget::ctkDICOMServerNodeWidget(QWidget* parentWidget)

connect(d->NodeTable, SIGNAL(cellChanged(int,int)),
this, SLOT(saveSettings()));
connect(d->NodeTable, SIGNAL(currentItemChanged(QTableWidgetItem*, QTableWidgetItem*)),
connect(d->NodeTable, SIGNAL(currentItemChanged(QTableWidgetItem*,QTableWidgetItem*)),
this, SLOT(updateRemoveButtonEnableState()));
}

Expand Down

0 comments on commit 1dfadce

Please sign in to comment.