Files
create/src/Mod/PartDesign/Gui/DlgActiveBody.h
Ajinkya Dahale 28d8d808a8 PartDesign: Add new need active body dialog with option to choose body (#4949)
* [PD] Add new need active body dialog

Intended for use wherever an active body is needed but none exists. The dialog
contains a list with the bodies present in the document, with an extra option to
make a new body. Custom text can be provided if needed.

This commit also replaces the warnings used by "new sketch" and "primitive"
command with this new dialog.

Addresses issue #4288.
2021-09-16 12:27:46 -05:00

60 lines
2.5 KiB
C++

/**************************************************************************
* Copyright (c) 2021 FreeCAD Developers *
* Author: Ajinkya Dahale *
* Based on src/Gui/DlgAddProperty.h *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef PARTDESIGNGUI_DLGACTIVEBODY_H
#define PARTDESIGNGUI_DLGACTIVEBODY_H
#include <App/Document.h>
#include <Mod/PartDesign/App/Body.h>
// TODO: Apparently this header can be avoided. See ./Command.cpp:74.
#include "ui_DlgActiveBody.h"
namespace PartDesignGui {
/** Dialog box to ask user to pick a Part Design body to make active
* or make a new one
*/
class PartDesignGuiExport DlgActiveBody : public QDialog
{
Q_OBJECT
public:
DlgActiveBody(QWidget* parent, App::Document*& doc,
const QString& infoText=QString());
void accept() override;
PartDesign::Body* getActiveBody() { return activeBody; };
private:
std::unique_ptr<Ui_DlgActiveBody> ui;
App::Document* _doc;
PartDesign::Body* activeBody;
};
} // namespace PartDesignGui
#endif // PARTDESIGNGUI_DLGACTIVEBODY_H