mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 17:30:05 +00:00
A few UI changes to location markers part2
This commit is contained in:
parent
3f5a0056e4
commit
a3e9d68dc4
3 changed files with 30 additions and 7 deletions
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue