Web+ console: Add "Copy" button
Adding a "Copy" button makes the feature discoverable. If nothing is selected, copy all items. Change-Id: I2004ceb621628e01018cc90ec80033b3797c4c02 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6212 Tested-by: Automation <automation@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
This commit is contained in:
parent
7ee7b33be6
commit
c757102870
@ -45,14 +45,20 @@ ConsoleWindow::ConsoleWindow(BRect frame)
|
|||||||
|
|
||||||
fMessagesListView = new BListView("Console messages",
|
fMessagesListView = new BListView("Console messages",
|
||||||
B_MULTIPLE_SELECTION_LIST);
|
B_MULTIPLE_SELECTION_LIST);
|
||||||
|
|
||||||
fClearMessagesButton = new BButton(B_TRANSLATE("Clear"),
|
fClearMessagesButton = new BButton(B_TRANSLATE("Clear"),
|
||||||
new BMessage(CLEAR_CONSOLE_MESSAGES));
|
new BMessage(CLEAR_CONSOLE_MESSAGES));
|
||||||
|
fCopyMessagesButton = new BButton(B_TRANSLATE("Copy"),
|
||||||
|
new BMessage(B_COPY));
|
||||||
|
|
||||||
AddChild(BGroupLayoutBuilder(B_VERTICAL, 0.0)
|
AddChild(BGroupLayoutBuilder(B_VERTICAL, 0.0)
|
||||||
.Add(new BScrollView("Console messages scroll",
|
.Add(new BScrollView("Console messages scroll",
|
||||||
fMessagesListView, 0, true, true))
|
fMessagesListView, 0, true, true))
|
||||||
.Add(BGroupLayoutBuilder(B_HORIZONTAL, B_USE_SMALL_SPACING)
|
.Add(BGroupLayoutBuilder(B_HORIZONTAL, B_USE_SMALL_SPACING)
|
||||||
|
.AddGlue()
|
||||||
.Add(fClearMessagesButton)
|
.Add(fClearMessagesButton)
|
||||||
|
.Add(fCopyMessagesButton)
|
||||||
|
.AddGlue()
|
||||||
.SetInsets(0, B_USE_SMALL_SPACING, 0, 0))
|
.SetInsets(0, B_USE_SMALL_SPACING, 0, 0))
|
||||||
.SetInsets(B_USE_SMALL_SPACING, B_USE_SMALL_SPACING,
|
.SetInsets(B_USE_SMALL_SPACING, B_USE_SMALL_SPACING,
|
||||||
B_USE_SMALL_SPACING, B_USE_SMALL_SPACING)
|
B_USE_SMALL_SPACING, B_USE_SMALL_SPACING)
|
||||||
@ -110,15 +116,18 @@ ConsoleWindow::QuitRequested()
|
|||||||
void
|
void
|
||||||
ConsoleWindow::_CopyToClipboard()
|
ConsoleWindow::_CopyToClipboard()
|
||||||
{
|
{
|
||||||
if (fMessagesListView->CurrentSelection() == -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
BString text;
|
BString text;
|
||||||
int32 index;
|
int32 index;
|
||||||
for (int32 i = 0; (index = fMessagesListView->CurrentSelection(i)) >= 0;
|
if (fMessagesListView->CurrentSelection() == -1) {
|
||||||
i++) {
|
for (int32 i = 0; i < fMessagesListView->CountItems(); i++) {
|
||||||
BStringItem* item = (BStringItem*)fMessagesListView->ItemAt(index);
|
BStringItem* item = (BStringItem*)fMessagesListView->ItemAt(i);
|
||||||
text << item->Text();
|
text << item->Text();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int32 i = 0; (index = fMessagesListView->CurrentSelection(i)) >= 0; i++) {
|
||||||
|
BStringItem* item = (BStringItem*)fMessagesListView->ItemAt(index);
|
||||||
|
text << item->Text();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t textLen = text.Length();
|
ssize_t textLen = text.Length();
|
||||||
|
@ -30,6 +30,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
BListView* fMessagesListView;
|
BListView* fMessagesListView;
|
||||||
BButton* fClearMessagesButton;
|
BButton* fClearMessagesButton;
|
||||||
|
BButton* fCopyMessagesButton;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user