feat: add Button enable and disable logic

This commit is contained in:
kradchen
2025-05-12 09:56:57 +08:00
parent 2c4d70a166
commit 1762d36523
3 changed files with 73 additions and 3 deletions

View File

@@ -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);
emit imageViewStateChanged(state); state.none = false;
} }
else{
state.none = true;
}
emit imageViewStateChanged(state);
} }

View File

@@ -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 {

View File

@@ -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();
} }