Qt: try to fix drag and drop issues

This commit is contained in:
Megamouse 2026-01-05 19:14:07 +01:00
parent 113679ead8
commit 8f26c01ae5
8 changed files with 25 additions and 36 deletions

View File

@ -146,6 +146,7 @@ void cg_disasm_window::dropEvent(QDropEvent* ev)
{ {
if (IsValidFile(*ev->mimeData(), true)) if (IsValidFile(*ev->mimeData(), true))
{ {
ev->acceptProposedAction();
ShowDisasm(); ShowDisasm();
} }
} }
@ -154,7 +155,7 @@ void cg_disasm_window::dragEnterEvent(QDragEnterEvent* ev)
{ {
if (IsValidFile(*ev->mimeData())) if (IsValidFile(*ev->mimeData()))
{ {
ev->accept(); ev->acceptProposedAction();
} }
} }
@ -162,11 +163,6 @@ void cg_disasm_window::dragMoveEvent(QDragMoveEvent* ev)
{ {
if (IsValidFile(*ev->mimeData())) if (IsValidFile(*ev->mimeData()))
{ {
ev->accept(); ev->acceptProposedAction();
} }
} }
void cg_disasm_window::dragLeaveEvent(QDragLeaveEvent* ev)
{
ev->accept();
}

View File

@ -36,5 +36,4 @@ protected:
void dropEvent(QDropEvent* ev) override; void dropEvent(QDropEvent* ev) override;
void dragEnterEvent(QDragEnterEvent* ev) override; void dragEnterEvent(QDragEnterEvent* ev) override;
void dragMoveEvent(QDragMoveEvent* ev) override; void dragMoveEvent(QDragMoveEvent* ev) override;
void dragLeaveEvent(QDragLeaveEvent* ev) override;
}; };

View File

@ -446,6 +446,7 @@ void log_viewer::dropEvent(QDropEvent* ev)
{ {
if (is_valid_file(*ev->mimeData(), true)) if (is_valid_file(*ev->mimeData(), true))
{ {
ev->acceptProposedAction();
show_log(); show_log();
} }
} }
@ -454,7 +455,7 @@ void log_viewer::dragEnterEvent(QDragEnterEvent* ev)
{ {
if (is_valid_file(*ev->mimeData())) if (is_valid_file(*ev->mimeData()))
{ {
ev->accept(); ev->acceptProposedAction();
} }
} }
@ -462,15 +463,10 @@ void log_viewer::dragMoveEvent(QDragMoveEvent* ev)
{ {
if (is_valid_file(*ev->mimeData())) if (is_valid_file(*ev->mimeData()))
{ {
ev->accept(); ev->acceptProposedAction();
} }
} }
void log_viewer::dragLeaveEvent(QDragLeaveEvent* ev)
{
ev->accept();
}
bool log_viewer::eventFilter(QObject* object, QEvent* event) bool log_viewer::eventFilter(QObject* object, QEvent* event)
{ {
if (object != m_log_text) if (object != m_log_text)

View File

@ -43,6 +43,5 @@ protected:
void dropEvent(QDropEvent* ev) override; void dropEvent(QDropEvent* ev) override;
void dragEnterEvent(QDragEnterEvent* ev) override; void dragEnterEvent(QDragEnterEvent* ev) override;
void dragMoveEvent(QDragMoveEvent* ev) override; void dragMoveEvent(QDragMoveEvent* ev) override;
void dragLeaveEvent(QDragLeaveEvent* ev) override;
bool eventFilter(QObject* object, QEvent* event) override; bool eventFilter(QObject* object, QEvent* event) override;
}; };

View File

@ -4077,15 +4077,18 @@ main_window::drop_type main_window::IsValidFile(const QMimeData& md, QStringList
void main_window::dropEvent(QDropEvent* event) void main_window::dropEvent(QDropEvent* event)
{ {
event->accept();
QStringList drop_paths; QStringList drop_paths;
const drop_type type = IsValidFile(*event->mimeData(), &drop_paths);
switch (IsValidFile(*event->mimeData(), &drop_paths)) // get valid file paths and drop type if (type != drop_type::drop_error)
{
event->acceptProposedAction();
}
switch (type) // get valid file paths and drop type
{ {
case drop_type::drop_error: case drop_type::drop_error:
{ {
event->ignore();
break; break;
} }
case drop_type::drop_rap_edat_pkg: // install the packages case drop_type::drop_rap_edat_pkg: // install the packages
@ -4167,15 +4170,16 @@ void main_window::dropEvent(QDropEvent* event)
void main_window::dragEnterEvent(QDragEnterEvent* event) void main_window::dragEnterEvent(QDragEnterEvent* event)
{ {
event->setAccepted(IsValidFile(*event->mimeData()) != drop_type::drop_error); if (IsValidFile(*event->mimeData()) != drop_type::drop_error)
{
event->acceptProposedAction();
}
} }
void main_window::dragMoveEvent(QDragMoveEvent* event) void main_window::dragMoveEvent(QDragMoveEvent* event)
{ {
event->setAccepted(IsValidFile(*event->mimeData()) != drop_type::drop_error); if (IsValidFile(*event->mimeData()) != drop_type::drop_error)
} {
event->acceptProposedAction();
void main_window::dragLeaveEvent(QDragLeaveEvent* event) }
{
event->accept();
} }

View File

@ -131,7 +131,6 @@ protected:
void dropEvent(QDropEvent* event) override; void dropEvent(QDropEvent* event) override;
void dragEnterEvent(QDragEnterEvent* event) override; void dragEnterEvent(QDragEnterEvent* event) override;
void dragMoveEvent(QDragMoveEvent* event) override; void dragMoveEvent(QDragMoveEvent* event) override;
void dragLeaveEvent(QDragLeaveEvent* event) override;
private: private:
void ConfigureGuiFromSettings(); void ConfigureGuiFromSettings();

View File

@ -1020,6 +1020,8 @@ void patch_manager_dialog::dropEvent(QDropEvent* event)
return; return;
} }
event->acceptProposedAction();
QMessageBox box(QMessageBox::Icon::Question, tr("Patch Manager"), tr("What do you want to do with the patch file?"), QMessageBox::StandardButton::Cancel, this); QMessageBox box(QMessageBox::Icon::Question, tr("Patch Manager"), tr("What do you want to do with the patch file?"), QMessageBox::StandardButton::Cancel, this);
QPushButton* button_yes = box.addButton(tr("Import"), QMessageBox::YesRole); QPushButton* button_yes = box.addButton(tr("Import"), QMessageBox::YesRole);
QPushButton* button_no = box.addButton(tr("Validate"), QMessageBox::NoRole); QPushButton* button_no = box.addButton(tr("Validate"), QMessageBox::NoRole);
@ -1123,7 +1125,7 @@ void patch_manager_dialog::dragEnterEvent(QDragEnterEvent* event)
{ {
if (is_valid_file(*event->mimeData())) if (is_valid_file(*event->mimeData()))
{ {
event->accept(); event->acceptProposedAction();
} }
} }
@ -1131,15 +1133,10 @@ void patch_manager_dialog::dragMoveEvent(QDragMoveEvent* event)
{ {
if (is_valid_file(*event->mimeData())) if (is_valid_file(*event->mimeData()))
{ {
event->accept(); event->acceptProposedAction();
} }
} }
void patch_manager_dialog::dragLeaveEvent(QDragLeaveEvent* event)
{
event->accept();
}
void patch_manager_dialog::download_update(bool automatic, bool auto_accept) void patch_manager_dialog::download_update(bool automatic, bool auto_accept)
{ {
patch_log.notice("Patch download triggered (automatic=%d, auto_accept=%d)", automatic, auto_accept); patch_log.notice("Patch download triggered (automatic=%d, auto_accept=%d)", automatic, auto_accept);

View File

@ -83,6 +83,5 @@ protected:
void dropEvent(QDropEvent* event) override; void dropEvent(QDropEvent* event) override;
void dragEnterEvent(QDragEnterEvent* event) override; void dragEnterEvent(QDragEnterEvent* event) override;
void dragMoveEvent(QDragMoveEvent* event) override; void dragMoveEvent(QDragMoveEvent* event) override;
void dragLeaveEvent(QDragLeaveEvent* event) override;
void closeEvent(QCloseEvent* event) override; void closeEvent(QCloseEvent* event) override;
}; };