#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SUIT_MessageBox.h>
+#include <SUIT_OverrideCursor.h>
#include <LightApp_Application.h>
#include <LightApp_SelectionMgr.h>
enum { MOVE_ELEMS_BUTTON = 0, COPY_ELEMS_BUTTON, MAKE_MESH_BUTTON }; //!< action type
+/*!
+ \class BusyLocker
+ \brief Simple 'busy state' flag locker.
+ \internal
+*/
+
+class BusyLocker
+{
+public:
+ //! Constructor. Sets passed boolean flag to \c true.
+ BusyLocker( bool& busy ) : myBusy( busy ) { myBusy = true; }
+ //! Destructor. Clear external boolean flag passed as parameter to the constructor to \c false.
+ ~BusyLocker() { myBusy = false; }
+private:
+ bool& myBusy; //! External 'busy state' boolean flag
+};
+
#define SPACING 6
#define MARGIN 11
GroupButtonsLayout->setSpacing(SPACING);
GroupButtonsLayout->setMargin(MARGIN);
- buttonOk = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons);
+ buttonOk = new QPushButton(tr("SMESH_BUT_APPLY_AND_CLOSE"), GroupButtons);
buttonOk->setAutoDefault(true);
buttonOk->setDefault(true);
buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons);
int actionButton = ActionGroup->checkedId();
bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() );
try {
+ SUIT_OverrideCursor aWaitCursor;
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
- QApplication::setOverrideCursor(Qt::WaitCursor);
switch ( actionButton ) {
case MOVE_ELEMS_BUTTON:
aMeshEditor->Translate(anElementsId, aVector, false);
aMeshEditor->TranslateMakeMesh(anElementsId, aVector, makeGroups,
LineEditNewMesh->text().toLatin1().data());
}
- QApplication::restoreOverrideCursor();
} catch (...) {
}
QLineEdit* send = (QLineEdit*)sender();
if (myBusy) return;
- myBusy = true;
+ BusyLocker lock( myBusy );
if (send == LineEditElements)
myNbOkElements = 0;
buttonOk->setEnabled(true);
buttonApply->setEnabled(true);
}
-
- myBusy = false;
}
//=================================================================================
void SMESHGUI_TranslationDlg::SelectionIntoArgument()
{
if (myBusy) return;
-
+ BusyLocker lock( myBusy );
// clear
myActor = 0;
QString aString = "";
- myBusy = true;
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
LineEditElements->setText(aString);
myNbOkElements = 0;
buttonOk->setEnabled(false);
buttonApply->setEnabled(false);
}
- myBusy = false;
if (!GroupButtons->isEnabled()) // inactive
return;
}
}
- myBusy = true;
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
+ LineEditElements->setEnabled(true);
LineEditElements->setText(aString);
+ LineEditElements->repaint();
+ LineEditElements->setEnabled(false);
setNewMeshName();
}
- myBusy = false;
// OK
if (myNbOkElements) {