Skip to content

Commit

Permalink
Updated GUIDialog_ChooserAbstract. Refs eclipse-sumo#6916
Browse files Browse the repository at this point in the history
  • Loading branch information
palvarezlopez committed Oct 16, 2020
1 parent 0916840 commit dcd115f
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 53 deletions.
1 change: 1 addition & 0 deletions src/gui/GUISUMOViewParent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
#include <guisim/GUITransportableControl.h>
#include <microsim/MSJunction.h>
#include <microsim/MSGlobals.h>

#include "GUIGlobals.h"
#include "GUIViewTraffic.h"
#include "GUIApplicationWindow.h"
Expand Down
2 changes: 1 addition & 1 deletion src/netedit/dialogs/GNEDialogACChooser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
// ===========================================================================

GNEDialogACChooser::GNEDialogACChooser(GNEViewParent* viewParent, FXIcon* icon, const std::string& title, const std::vector<GNEAttributeCarrier*>& ACs):
GUIDialog_ChooserAbstract(nullptr, viewParent, icon, title.c_str(), std::vector<GUIGlID>(), GUIGlObjectStorage::gIDStorage),
GUIDialog_ChooserAbstract(viewParent, icon, title.c_str(), std::vector<GUIGlID>(), GUIGlObjectStorage::gIDStorage),
myACs(ACs),
myFilteredACs(ACs),
myViewParent(viewParent),
Expand Down
50 changes: 14 additions & 36 deletions src/utils/gui/windows/GUIDialog_ChooserAbstract.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,10 @@ FXIMPLEMENT(GUIDialog_ChooserAbstract, FXMainWindow, GUIDialog_ChooserAbstractMa
// ===========================================================================
// method definitions
// ===========================================================================
GUIDialog_ChooserAbstract::GUIDialog_ChooserAbstract(GUISUMOViewParent* SUMOViewParent, GNEViewParent* viewParent,
GUIDialog_ChooserAbstract::GUIDialog_ChooserAbstract(GUIGlChildWindow* windowsParent,
FXIcon* icon, const FXString& title, const std::vector<GUIGlID>& ids, GUIGlObjectStorage& /*glStorage*/) :
FXMainWindow(SUMOViewParent? SUMOViewParent->getApp() : viewParent->getApp(), title, icon, nullptr, GUIDesignChooserDialog),
mySUMOViewParent(SUMOViewParent),
myGNEViewParent(viewParent),
FXMainWindow(windowsParent->getApp(), title, icon, nullptr, GUIDesignChooserDialog),
myWindowsParent(windowsParent),
myLocateByName(false),
myHaveFilteredSubstring(false) {
FXHorizontalFrame* hbox = new FXHorizontalFrame(this, GUIDesignAuxiliarFrame);
Expand All @@ -91,19 +90,17 @@ GUIDialog_ChooserAbstract::GUIDialog_ChooserAbstract(GUISUMOViewParent* SUMOView
new FXButton(layoutRight, "By &Name\tLocate item by name\t", nullptr, this, MID_CHOOSEN_NAME, GUIDesignChooserButtons);
new FXHorizontalSeparator(layoutRight, GUIDesignHorizontalSeparator);
new FXButton(layoutRight, "&Close\t\t", GUIIconSubSys::getIcon(GUIIcon::NO), this, MID_CANCEL, GUIDesignChooserButtons);
// add child ind viewNet
SUMOViewParent? SUMOViewParent->getParent()->addChild(this) : viewParent->getParent()->addChild(this);
// add child in windowsParent
myWindowsParent->getParent()->addChild(this);
// create and show dialog
create();
show();
}


GUIDialog_ChooserAbstract::~GUIDialog_ChooserAbstract() {
if (mySUMOViewParent) {
//mySUMOViewParent->eraseGLObjChooser(this);
mySUMOViewParent->getParent()->removeChild(this);
}
// remove child from windowsParent
myWindowsParent->getParent()->removeChild(this);
}


Expand All @@ -124,11 +121,8 @@ long
GUIDialog_ChooserAbstract::onCmdCenter(FXObject*, FXSelector, void*) {
int selected = myList->getCurrentItem();
if (selected >= 0) {
if (mySUMOViewParent) {
mySUMOViewParent->getView()->stopTrack();
} else {
myGNEViewParent->getView()->stopTrack();
}
myWindowsParent->getView()->stopTrack();
myWindowsParent->setView(*static_cast<GUIGlID*>(myList->getItemData(selected)));
}
return 1;
}
Expand All @@ -138,19 +132,11 @@ long
GUIDialog_ChooserAbstract::onCmdTrack(FXObject*, FXSelector, void*) {
int selected = myList->getCurrentItem();
if (selected >= 0) {
if (mySUMOViewParent) {
mySUMOViewParent->setView(*static_cast<GUIGlID*>(myList->getItemData(selected)));
} else {
myGNEViewParent->setView(*static_cast<GUIGlID*>(myList->getItemData(selected)));
}
myWindowsParent->setView(*static_cast<GUIGlID*>(myList->getItemData(selected)));
GUIGlID id = *static_cast<GUIGlID*>(myList->getItemData(selected));
GUIGlObject* o = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
if (o->getType() == GLO_VEHICLE) {
if (mySUMOViewParent) {
mySUMOViewParent->getView()->startTrack(o->getGlID());
} else {
myGNEViewParent->getView()->startTrack(o->getGlID());
}
myWindowsParent->getView()->startTrack(o->getGlID());
}
GUIGlObjectStorage::gIDStorage.unblockObject(id);
}
Expand Down Expand Up @@ -203,11 +189,7 @@ long
GUIDialog_ChooserAbstract::onCmdText(FXObject*, FXSelector, void*) {
int current = myList->getCurrentItem();
if (current >= 0 && myList->isItemSelected(current)) {
if (mySUMOViewParent) {
mySUMOViewParent->setView(*static_cast<GUIGlID*>(myList->getItemData(current)));
} else {
myGNEViewParent->setView(*static_cast<GUIGlID*>(myList->getItemData(current)));
}
myWindowsParent->setView(*static_cast<GUIGlID*>(myList->getItemData(current)));
}
return 1;
}
Expand Down Expand Up @@ -282,7 +264,7 @@ GUIDialog_ChooserAbstract::refreshList(const std::vector<GUIGlID>& ids) {
continue;
}
const std::string& name = getObjectName(o);
bool selected = mySUMOViewParent? mySUMOViewParent->isSelected(o) : myGNEViewParent->isSelected(o);
bool selected = myWindowsParent->isSelected(o);
FXIcon* icon = selected ? GUIIconSubSys::getIcon(GUIIcon::FLAG) : nullptr;
myIDs.insert(o->getGlID());
myList->appendItem(name.c_str(), icon, (void*) & (*myIDs.find(o->getGlID())));
Expand All @@ -305,11 +287,7 @@ GUIDialog_ChooserAbstract::onCmdToggleSelection(FXObject*, FXSelector, void*) {
}
}
myList->update();
if (mySUMOViewParent) {
mySUMOViewParent->getView()->update();
} else {
myGNEViewParent->getView()->update();
}
myWindowsParent->getView()->update();
return 1;
}

Expand Down
15 changes: 6 additions & 9 deletions src/utils/gui/windows/GUIDialog_ChooserAbstract.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ class GUIDialog_ChooserAbstract : public FXMainWindow {

public:
/** @brief Constructor
* @param[in] SUMOViewParent The calling view (SUMO-GUI)
* @param[in] windowsParent The calling view
* @param[in] viewParent The calling view (NETEDIT)
* @param[in] icon The icon to use
* @param[in] title The title to use
* @param[in] glStorage The storage to retrieve ids from
*/
GUIDialog_ChooserAbstract(GUISUMOViewParent* SUMOViewParent, GNEViewParent* viewParent,
FXIcon* icon, const FXString& title, const std::vector<GUIGlID>& ids,
GUIGlObjectStorage& glStorage);
GUIDialog_ChooserAbstract(GUIGlChildWindow* windowsParent,
FXIcon* icon, const FXString& title, const std::vector<GUIGlID>& ids,
GUIGlObjectStorage& glStorage);

/// @brief Destructor
virtual ~GUIDialog_ChooserAbstract();
Expand Down Expand Up @@ -126,11 +126,8 @@ class GUIDialog_ChooserAbstract : public FXMainWindow {
virtual std::string getObjectName(GUIGlObject* o) const;

private:
/// @brief SUMO-GUI View parent
GUISUMOViewParent* mySUMOViewParent;

/// @brief GNE view parent
GNEViewParent* myGNEViewParent;
/// @brief window parent
GUIGlChildWindow* myWindowsParent;

/// @brief The list that holds the ids
FXList* myList;
Expand Down
10 changes: 3 additions & 7 deletions src/utils/gui/windows/GUIDialog_GLObjChooser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,13 @@
// ===========================================================================
GUIDialog_GLObjChooser::GUIDialog_GLObjChooser(GUISUMOViewParent* SUMOViewParent,
FXIcon* icon, const FXString& title, const std::vector<GUIGlID>& ids, GUIGlObjectStorage& glStorage) :
GUIDialog_ChooserAbstract(SUMOViewParent, nullptr, icon, title,ids, glStorage) {
GUIDialog_ChooserAbstract(SUMOViewParent, icon, title,ids, glStorage),
mySUMOViewParent(SUMOViewParent) {
}


GUIDialog_GLObjChooser::~GUIDialog_GLObjChooser() {
/*
if (mySUMOViewParent) {
//mySUMOViewParent->eraseGLObjChooser(this);
mySUMOViewParent->getParent()->removeChild(this);
}
*/
mySUMOViewParent->eraseGLObjChooser(this);
}

/****************************************************************************/
4 changes: 4 additions & 0 deletions src/utils/gui/windows/GUIDialog_GLObjChooser.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,8 @@ class GUIDialog_GLObjChooser : public GUIDialog_ChooserAbstract {

/// @brief Destructor
virtual ~GUIDialog_GLObjChooser();

private:
/// @brief SUMO-GUI View parent
GUISUMOViewParent* mySUMOViewParent;
};

0 comments on commit dcd115f

Please sign in to comment.