history_location_manager.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #include "history/history_location_manager.h"
  8. #include "mainwidget.h"
  9. #include "core/file_utilities.h"
  10. #include "lang/lang_keys.h"
  11. #include "ui/image/image.h"
  12. #include "data/data_file_origin.h"
  13. #include "platform/platform_specific.h"
  14. QString LocationClickHandler::copyToClipboardText() const {
  15. return _text;
  16. }
  17. QString LocationClickHandler::copyToClipboardContextItemText() const {
  18. return tr::lng_context_copy_link(tr::now);
  19. }
  20. void LocationClickHandler::onClick(ClickContext context) const {
  21. if (!psLaunchMaps(_point)) {
  22. File::OpenUrl(_text);
  23. }
  24. }
  25. void LocationClickHandler::setup() {
  26. _text = Url(_point);
  27. }
  28. QString LocationClickHandler::Url(const Data::LocationPoint &point) {
  29. const auto latlon = point.latAsString() + ',' + point.lonAsString();
  30. return u"https://maps.google.com/maps?q="_q
  31. + latlon
  32. + u"&ll="_q
  33. + latlon
  34. + u"&z=16"_q;
  35. }