feat: add Button enable and disable logic
This commit is contained in:
@@ -20,6 +20,10 @@ void ImageViewStateCheckWorker::checkImageViewState(DicomImageView *view) {
|
|||||||
state.canSync=mManager->checkSyncAbility(view);
|
state.canSync=mManager->checkSyncAbility(view);
|
||||||
state.canMPR= view->checkMPRAble() ? view->getReconPlane() : -1;
|
state.canMPR= view->checkMPRAble() ? view->getReconPlane() : -1;
|
||||||
state.canFusion=mManager->checkViewFusion(view);
|
state.canFusion=mManager->checkViewFusion(view);
|
||||||
|
state.none = false;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
state.none = true;
|
||||||
|
}
|
||||||
emit imageViewStateChanged(state);
|
emit imageViewStateChanged(state);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ struct ViewFunctionState{
|
|||||||
int canSync;
|
int canSync;
|
||||||
int canMPR;
|
int canMPR;
|
||||||
bool canFusion;
|
bool canFusion;
|
||||||
|
bool none;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ImageViewStateCheckWorker: public QObject {
|
class ImageViewStateCheckWorker: public QObject {
|
||||||
|
|||||||
@@ -91,30 +91,63 @@ void DefaultToolBar::initToolBarButtons() {
|
|||||||
addButton(mBtnFile, "file");
|
addButton(mBtnFile, "file");
|
||||||
addButton(mBtnImport, "import");
|
addButton(mBtnImport, "import");
|
||||||
addButton(mBtnSave, "save");
|
addButton(mBtnSave, "save");
|
||||||
|
mBtnSave->setEnabled(false);
|
||||||
|
|
||||||
addSeparator();
|
addSeparator();
|
||||||
|
|
||||||
addButton(mBtnGrid, "grid");
|
addButton(mBtnGrid, "grid");
|
||||||
|
mBtnGrid->setEnabled(false);
|
||||||
|
|
||||||
addButton(mBtnSync, "sync");
|
addButton(mBtnSync, "sync");
|
||||||
|
mBtnSync->setEnabled(false);
|
||||||
|
|
||||||
addButton(mBtnAnonymize, "anonymize");
|
addButton(mBtnAnonymize, "anonymize");
|
||||||
|
mBtnAnonymize->setEnabled(false);
|
||||||
|
|
||||||
|
|
||||||
addSeparator();
|
addSeparator();
|
||||||
|
|
||||||
QButtonGroup *modeGroup = new QButtonGroup(this);
|
QButtonGroup *modeGroup = new QButtonGroup(this);
|
||||||
addGroupedButton(mBtnSlice, "slice", modeGroup);
|
addGroupedButton(mBtnSlice, "slice", modeGroup);
|
||||||
|
mBtnSlice->setEnabled(false);
|
||||||
|
|
||||||
addGroupedButton(mBtnWindow, "window", modeGroup);
|
addGroupedButton(mBtnWindow, "window", modeGroup);
|
||||||
|
mBtnWindow->setEnabled(false);
|
||||||
|
|
||||||
addGroupedButton(mBtnPan, "pan", modeGroup);
|
addGroupedButton(mBtnPan, "pan", modeGroup);
|
||||||
|
mBtnPan->setEnabled(false);
|
||||||
|
|
||||||
addGroupedButton(mBtnZoom, "zoom", modeGroup);
|
addGroupedButton(mBtnZoom, "zoom", modeGroup);
|
||||||
|
mBtnZoom->setEnabled(false);
|
||||||
|
|
||||||
addGroupedButton(mBtnMeasure, "measure", modeGroup);
|
addGroupedButton(mBtnMeasure, "measure", modeGroup);
|
||||||
|
mBtnMeasure->setEnabled(false);
|
||||||
|
|
||||||
addButton(mBtnClear, "clear");
|
addButton(mBtnClear, "clear");
|
||||||
|
mBtnClear->setEnabled(false);
|
||||||
|
|
||||||
addSeparator();
|
addSeparator();
|
||||||
|
|
||||||
|
|
||||||
addButton(mBtnFlip, "flip");
|
addButton(mBtnFlip, "flip");
|
||||||
|
mBtnFlip->setEnabled(false);
|
||||||
|
|
||||||
addButton(mBtnCine, "cine");
|
addButton(mBtnCine, "cine");
|
||||||
addButton(mBtnFusion, "fusion");
|
mBtnCine->setEnabled(false);
|
||||||
|
|
||||||
|
//hide for this version
|
||||||
|
auto actionFusion = addButton(mBtnFusion, "fusion");
|
||||||
|
mBtnFusion->setEnabled(false);
|
||||||
|
actionFusion->setVisible(false);
|
||||||
|
|
||||||
addButton(mBtnMPR, "MPR");
|
addButton(mBtnMPR, "MPR");
|
||||||
addButton(mBtnVR, "VR");
|
mBtnMPR->setEnabled(false);
|
||||||
|
|
||||||
|
//hide for this version
|
||||||
|
auto actionVR = addButton(mBtnVR, "VR");
|
||||||
|
mBtnVR->setEnabled(false);
|
||||||
|
actionVR->setVisible(false);
|
||||||
|
|
||||||
|
|
||||||
QWidget *spacer = new QWidget(this);
|
QWidget *spacer = new QWidget(this);
|
||||||
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||||
@@ -465,6 +498,37 @@ void DefaultToolBar::resetNeedCheckFunctionButtons(){
|
|||||||
|
|
||||||
void DefaultToolBar::updateNeedCheckFunctionButtons(ViewFunctionState state)
|
void DefaultToolBar::updateNeedCheckFunctionButtons(ViewFunctionState state)
|
||||||
{
|
{
|
||||||
|
if (state.none)
|
||||||
|
{
|
||||||
|
mBtnSave->setEnabled(false);
|
||||||
|
mBtnGrid->setEnabled(false);
|
||||||
|
mBtnSync->setEnabled(false);
|
||||||
|
mBtnAnonymize->setEnabled(false);
|
||||||
|
mBtnSlice->setEnabled(false);
|
||||||
|
mBtnWindow->setEnabled(false);
|
||||||
|
mBtnPan->setEnabled(false);
|
||||||
|
mBtnZoom->setEnabled(false);
|
||||||
|
mBtnMeasure->setEnabled(false);
|
||||||
|
mBtnClear->setEnabled(false);
|
||||||
|
mBtnFlip->setEnabled(false);
|
||||||
|
mBtnCine->setEnabled(false);
|
||||||
|
mBtnFusion->setEnabled(false);
|
||||||
|
mBtnMPR->setEnabled(false);
|
||||||
|
mBtnVR->setEnabled(false);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
mBtnSave->setEnabled(true);
|
||||||
|
mBtnGrid->setEnabled(true);
|
||||||
|
mBtnSync->setEnabled(true);
|
||||||
|
mBtnAnonymize->setEnabled(true);
|
||||||
|
mBtnSlice->setEnabled(true);
|
||||||
|
mBtnWindow->setEnabled(true);
|
||||||
|
mBtnPan->setEnabled(true);
|
||||||
|
mBtnZoom->setEnabled(true);
|
||||||
|
mBtnMeasure->setEnabled(true);
|
||||||
|
mBtnClear->setEnabled(true);
|
||||||
|
mBtnFlip->setEnabled(true);
|
||||||
|
mBtnCine->setEnabled(true);
|
||||||
mBtnMPR->setEnabled(state.canMPR!=-1);
|
mBtnMPR->setEnabled(state.canMPR!=-1);
|
||||||
mBtnVR->setEnabled(state.canMPR!=-1);
|
mBtnVR->setEnabled(state.canMPR!=-1);
|
||||||
if (state.canMPR!=-1){
|
if (state.canMPR!=-1){
|
||||||
@@ -479,6 +543,7 @@ void DefaultToolBar::updateNeedCheckFunctionButtons(ViewFunctionState state)
|
|||||||
mMPRActions[state.canMPR]->setChecked(true);
|
mMPRActions[state.canMPR]->setChecked(true);
|
||||||
}
|
}
|
||||||
mBtnFusion->setEnabled(state.canFusion);
|
mBtnFusion->setEnabled(state.canFusion);
|
||||||
|
}
|
||||||
// SyncHelper::setSyncState((SyncState)state.canSync);
|
// SyncHelper::setSyncState((SyncState)state.canSync);
|
||||||
// syncStateChanged();
|
// syncStateChanged();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user