A few UI changes to location markers part2

This commit is contained in:
AdenKoperczak 2025-01-17 11:01:02 -05:00
parent 3f5a0056e4
commit a3e9d68dc4
3 changed files with 30 additions and 7 deletions

View file

@ -23,6 +23,9 @@ namespace scwx::qt::ui
static const std::string logPrefix_ = "scwx::qt::ui::edit_marker_dialog"; static const std::string logPrefix_ = "scwx::qt::ui::edit_marker_dialog";
static const auto logger_ = scwx::util::Logger::Create(logPrefix_); static const auto logger_ = scwx::util::Logger::Create(logPrefix_);
static const QString addingTitle_ = QObject::tr("Add Location Marker");
static const QString editingTitle_ = QObject::tr("Edit Location Marker");
class EditMarkerDialog::Impl class EditMarkerDialog::Impl
{ {
public: public:
@ -32,6 +35,7 @@ public:
void show_icon_file_dialog(); void show_icon_file_dialog();
void set_icon_color(const std::string& color); void set_icon_color(const std::string& color);
void set_adding(bool adding);
void connect_signals(); void connect_signals();
@ -58,6 +62,24 @@ QIcon EditMarkerDialog::Impl::get_colored_icon(
QColor(QString::fromStdString(color))); QColor(QString::fromStdString(color)));
} }
void EditMarkerDialog::Impl::set_adding(bool adding)
{
if (adding == adding_)
{
return;
}
if (adding)
{
self_->setWindowTitle(addingTitle_);
}
else
{
self_->setWindowTitle(editingTitle_);
}
adding_ = adding;
}
EditMarkerDialog::EditMarkerDialog(QWidget* parent) : EditMarkerDialog::EditMarkerDialog(QWidget* parent) :
QDialog(parent), QDialog(parent),
p {std::make_unique<Impl>(this)}, p {std::make_unique<Impl>(this)},
@ -84,7 +106,7 @@ EditMarkerDialog::~EditMarkerDialog()
void EditMarkerDialog::setup() void EditMarkerDialog::setup()
{ {
setup(0, 0); setup(0.0, 0.0);
} }
void EditMarkerDialog::setup(double latitude, double longitude) void EditMarkerDialog::setup(double latitude, double longitude)
@ -102,11 +124,10 @@ void EditMarkerDialog::setup(double latitude, double longitude)
static_cast<uint8_t>(color.blue()), static_cast<uint8_t>(color.blue()),
static_cast<uint8_t>(color.alpha())})); static_cast<uint8_t>(color.alpha())}));
setup(p->editId_); setup(p->editId_, true);
p->adding_ = true;
} }
void EditMarkerDialog::setup(types::MarkerId id) void EditMarkerDialog::setup(types::MarkerId id, bool adding)
{ {
std::optional<types::MarkerInfo> marker = p->markerManager_->get_marker(id); std::optional<types::MarkerInfo> marker = p->markerManager_->get_marker(id);
if (!marker) if (!marker)
@ -115,7 +136,7 @@ void EditMarkerDialog::setup(types::MarkerId id)
} }
p->editId_ = id; p->editId_ = id;
p->adding_ = false; p->set_adding(adding);
const std::string iconColorStr = const std::string iconColorStr =
util::color::ToArgbString(marker->iconColor); util::color::ToArgbString(marker->iconColor);
@ -300,6 +321,8 @@ void EditMarkerDialog::Impl::set_icon_color(const std::string& color)
void EditMarkerDialog::Impl::handle_accepted() void EditMarkerDialog::Impl::handle_accepted()
{ {
// switch to editing to that canceling after applying does not delete it
set_adding(false);
markerManager_->set_marker(editId_, self_->get_marker_info()); markerManager_->set_marker(editId_, self_->get_marker_info());
} }

View file

@ -21,7 +21,7 @@ public:
void setup(); void setup();
void setup(double latitude, double longitude); void setup(double latitude, double longitude);
void setup(types::MarkerId id); void setup(types::MarkerId id, bool adding = false);
[[nodiscard]] types::MarkerInfo get_marker_info() const; [[nodiscard]] types::MarkerInfo get_marker_info() const;

View file

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Marker Manager</string> <string>Location Marker Manager</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>