mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Copy dive description to clipboard
Upon "Copy dive", store a text description of the items on the system clipboard. Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
parent
fe4a230245
commit
07b0df215f
1 changed files with 45 additions and 0 deletions
|
@ -10,6 +10,7 @@
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QToolTip>
|
#include <QToolTip>
|
||||||
|
#include <QClipboard>
|
||||||
|
|
||||||
#include "core/file.h"
|
#include "core/file.h"
|
||||||
#include "desktop-widgets/mainwindow.h"
|
#include "desktop-widgets/mainwindow.h"
|
||||||
|
@ -490,6 +491,50 @@ void DiveComponentSelection::buttonClicked(QAbstractButton *button)
|
||||||
COMPONENT_FROM_UI(cylinders);
|
COMPONENT_FROM_UI(cylinders);
|
||||||
COMPONENT_FROM_UI(weights);
|
COMPONENT_FROM_UI(weights);
|
||||||
selective_copy_dive(&displayed_dive, targetDive, *what, true);
|
selective_copy_dive(&displayed_dive, targetDive, *what, true);
|
||||||
|
QClipboard *clipboard = QApplication::clipboard();
|
||||||
|
QTextStream text;
|
||||||
|
QString cliptext;
|
||||||
|
text.setString(&cliptext);
|
||||||
|
if (what->divesite)
|
||||||
|
text << tr("Dive site: ") << displayed_dive.dive_site->name << "\n";
|
||||||
|
if (what->divemaster)
|
||||||
|
text << tr("Dive master: ") << displayed_dive.divemaster << "\n";
|
||||||
|
if (what->buddy)
|
||||||
|
text << tr("Buddy: ") << displayed_dive.buddy << "\n";
|
||||||
|
if (what->rating)
|
||||||
|
text << tr("Rating: ") + QString("*").repeated(displayed_dive.rating) << "\n";
|
||||||
|
if (what->visibility)
|
||||||
|
text << tr("Visibility: ") + QString("*").repeated(displayed_dive.visibility) << "\n";
|
||||||
|
if (what->notes)
|
||||||
|
text << tr("Notes:\n") << displayed_dive.notes << "\n";
|
||||||
|
if (what->suit)
|
||||||
|
text << tr("Suit: ") << displayed_dive.suit << "\n";
|
||||||
|
if (what-> tags) {
|
||||||
|
text << tr("Tags: ");
|
||||||
|
tag_entry *entry = displayed_dive.tag_list;
|
||||||
|
while (entry) {
|
||||||
|
text << entry->tag->name << " ";
|
||||||
|
entry = entry->next;
|
||||||
|
}
|
||||||
|
text << "\n";
|
||||||
|
}
|
||||||
|
if (what->cylinders) {
|
||||||
|
int cyl;
|
||||||
|
text << tr("Cylinders:\n");
|
||||||
|
for (cyl = 0; cyl < MAX_CYLINDERS; cyl++) {
|
||||||
|
if (is_cylinder_used(&displayed_dive, cyl))
|
||||||
|
text << displayed_dive.cylinder[cyl].type.description << " " << gasname(displayed_dive.cylinder[cyl].gasmix) << "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (what->weights) {
|
||||||
|
int w;
|
||||||
|
text << tr("Weights:\n");
|
||||||
|
for (w = 0; w < MAX_WEIGHTSYSTEMS; w++) {
|
||||||
|
if (displayed_dive.weightsystem[w].weight.grams)
|
||||||
|
text << displayed_dive.weightsystem[w].description << displayed_dive.weightsystem[w].weight.grams / 1000 << "kg\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clipboard->setText(cliptext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue