mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 06:05:49 -06:00
Copy screenshot context help press 's'.fix asserts.
Копирование окна контекстной помощи в буфер обмена по нажатию 's'.
This commit is contained in:
parent
e54809faf2
commit
2989801a84
4 changed files with 47 additions and 2 deletions
|
|
@ -79,6 +79,15 @@ file(GLOB_RECURSE SOURCES
|
|||
##########################################################
|
||||
|
||||
add_executable(${PROJECT_NAME} )
|
||||
# После сборки — разделить символы и приложение
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Extracting debug symbols..."
|
||||
COMMAND objcopy --only-keep-debug ${PROJECT_NAME} ${PROJECT_NAME}.debug
|
||||
COMMAND objcopy --strip-debug ${PROJECT_NAME}
|
||||
COMMAND objcopy --add-gnu-debuglink=${PROJECT_NAME}.debug ${PROJECT_NAME}
|
||||
COMMENT "Split debug symbols into separate .debug file"
|
||||
VERBATIM
|
||||
)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:_DEBUG>)
|
||||
target_sources(${PROJECT_NAME} PUBLIC pgAdmin3.cpp ${SOURCES})
|
||||
if(CROSS_COMPILE STREQUAL "Windows")
|
||||
|
|
|
|||
|
|
@ -522,7 +522,7 @@ int ctlSQLGrid::CopyTableToHtml(wxString htmlquery) {
|
|||
if (isRowsArray) rowPos = rows.Item(i);
|
||||
if (GetRowSize(rowPos) == 0) continue;
|
||||
htm += "<tr>\n";
|
||||
htm += wxString::Format("<td id=\"cn\"><pre>%d</pre></td>", rowPos + 1);
|
||||
htm += wxString::Format("<td id=\"cn\"><pre>%ld</pre></td>", rowPos + 1);
|
||||
for (int c = 0; c < cols.Count(); c++) {
|
||||
wxString text = GetCellValue(rowPos, cols[c]);
|
||||
htm += wxString::Format("<td id=\"c%d\"><pre>%s</pre></td>", c, escapeHtml(text, true));
|
||||
|
|
|
|||
|
|
@ -192,6 +192,42 @@ public:
|
|||
if (event.GetKeyCode() == WXK_UP) htmlWindow->ScrollLines(-1);
|
||||
if (event.GetKeyCode() == WXK_HOME) htmlWindow->ScrollPages(-1000);
|
||||
if (event.GetKeyCode() == WXK_END) htmlWindow->ScrollPages(1000);
|
||||
//std::cout << "key code " << event.GetKeyCode() << " " << std::endl;
|
||||
if (event.GetKeyCode() == 'S') {
|
||||
wxSize clientSize = this->GetClientSize();
|
||||
// Создаём битмап того же размера
|
||||
wxBitmap bitmap(clientSize.x, clientSize.y, -1); // -1 — лучший формат для экрана
|
||||
|
||||
// Создаём DC для рисования в битмап
|
||||
wxMemoryDC memDC;
|
||||
memDC.SelectObject(bitmap);
|
||||
|
||||
// Очищаем фон (опционально, если окно не полностью перерисовано)
|
||||
memDC.SetBackground(*wxWHITE_BRUSH);
|
||||
memDC.Clear();
|
||||
|
||||
// Используем wxClientDC для чтения содержимого окна
|
||||
wxClientDC clientDC(this);
|
||||
// Переносим данные с clientDC в memDC (копируем прямоугольник)
|
||||
// Важно: координаты — относительно окна!
|
||||
memDC.Blit(0, 0, clientSize.x, clientSize.y, &clientDC, 0, 0);
|
||||
|
||||
// Освобождаем DC
|
||||
memDC.SelectObject(wxNullBitmap);
|
||||
// Открываем буфер обмена
|
||||
if (wxTheClipboard->Open())
|
||||
{
|
||||
// Добавляем данные (можно добавить несколько форматов, если нужно)
|
||||
wxDataObjectComposite* dataobj = new wxDataObjectComposite();
|
||||
dataobj->Add(new wxBitmapDataObject(bitmap));
|
||||
wxTheClipboard->SetData(dataobj);
|
||||
wxTheClipboard->Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
wxLogError("No open clipboard.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -429,7 +429,7 @@ bool pgAdmin3::OnInit()
|
|||
dialogTestMode = true;
|
||||
|
||||
// Setup the image handlers and appearance factory before we do any GUI or config stuff
|
||||
::wxInitAllImageHandlers();
|
||||
//::wxInitAllImageHandlers();
|
||||
|
||||
appearanceFactory = new pgAppearanceFactory();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue