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.canMPR= view->checkMPRAble() ? view->getReconPlane() : -1;
|
||||
state.canFusion=mManager->checkViewFusion(view);
|
||||
emit imageViewStateChanged(state);
|
||||
state.none = false;
|
||||
}
|
||||
else{
|
||||
state.none = true;
|
||||
}
|
||||
emit imageViewStateChanged(state);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ struct ViewFunctionState{
|
||||
int canSync;
|
||||
int canMPR;
|
||||
bool canFusion;
|
||||
bool none;
|
||||
};
|
||||
|
||||
class ImageViewStateCheckWorker: public QObject {
|
||||
|
||||
@@ -91,30 +91,63 @@ void DefaultToolBar::initToolBarButtons() {
|
||||
addButton(mBtnFile, "file");
|
||||
addButton(mBtnImport, "import");
|
||||
addButton(mBtnSave, "save");
|
||||
mBtnSave->setEnabled(false);
|
||||
|
||||
addSeparator();
|
||||
|
||||
addButton(mBtnGrid, "grid");
|
||||
mBtnGrid->setEnabled(false);
|
||||
|
||||
addButton(mBtnSync, "sync");
|
||||
mBtnSync->setEnabled(false);
|
||||
|
||||
addButton(mBtnAnonymize, "anonymize");
|
||||
mBtnAnonymize->setEnabled(false);
|
||||
|
||||
|
||||
addSeparator();
|
||||
|
||||
QButtonGroup *modeGroup = new QButtonGroup(this);
|
||||
addGroupedButton(mBtnSlice, "slice", modeGroup);
|
||||
mBtnSlice->setEnabled(false);
|
||||
|
||||
addGroupedButton(mBtnWindow, "window", modeGroup);
|
||||
mBtnWindow->setEnabled(false);
|
||||
|
||||
addGroupedButton(mBtnPan, "pan", modeGroup);
|
||||
mBtnPan->setEnabled(false);
|
||||
|
||||
addGroupedButton(mBtnZoom, "zoom", modeGroup);
|
||||
mBtnZoom->setEnabled(false);
|
||||
|
||||
addGroupedButton(mBtnMeasure, "measure", modeGroup);
|
||||
mBtnMeasure->setEnabled(false);
|
||||
|
||||
addButton(mBtnClear, "clear");
|
||||
mBtnClear->setEnabled(false);
|
||||
|
||||
addSeparator();
|
||||
|
||||
|
||||
addButton(mBtnFlip, "flip");
|
||||
mBtnFlip->setEnabled(false);
|
||||
|
||||
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(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);
|
||||
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
@@ -465,6 +498,37 @@ void DefaultToolBar::resetNeedCheckFunctionButtons(){
|
||||
|
||||
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);
|
||||
mBtnVR->setEnabled(state.canMPR!=-1);
|
||||
if (state.canMPR!=-1){
|
||||
@@ -479,6 +543,7 @@ void DefaultToolBar::updateNeedCheckFunctionButtons(ViewFunctionState state)
|
||||
mMPRActions[state.canMPR]->setChecked(true);
|
||||
}
|
||||
mBtnFusion->setEnabled(state.canFusion);
|
||||
}
|
||||
// SyncHelper::setSyncState((SyncState)state.canSync);
|
||||
// syncStateChanged();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user