fix: Implement drag-and-drop functionality with QWebChannel integration
This commit is contained in:
parent
b2681a9cbd
commit
f701247fab
4 changed files with 165 additions and 59 deletions
|
|
@ -163,13 +163,13 @@
|
|||
<div class="drag-item" draggable="true" id="dragItem1">
|
||||
<div class="icon">🖼️</div>
|
||||
<h3>Sample Image</h3>
|
||||
<p id="path1">Z:\samples\image.psd</p>
|
||||
<p id="path1">Z:\data\test-image.jpg</p>
|
||||
</div>
|
||||
|
||||
<div class="drag-item" draggable="true" id="dragItem2">
|
||||
<div class="icon">📄</div>
|
||||
<h3>Sample Document</h3>
|
||||
<p id="path2">Z:\samples\document.indd</p>
|
||||
<p id="path2">Z:\data\API_DOCUMENTATION.pdf</p>
|
||||
</div>
|
||||
|
||||
<div class="drag-item" draggable="true" id="dragItem3">
|
||||
|
|
@ -193,57 +193,5 @@
|
|||
<p>WebDrop Bridge v1.0.0 | Built with Qt and PySide6</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const items = document.querySelectorAll('.drag-item');
|
||||
const statusMessage = document.getElementById('statusMessage');
|
||||
|
||||
items.forEach(item => {
|
||||
item.addEventListener('dragstart', (e) => {
|
||||
const pathElement = item.querySelector('p');
|
||||
const path = pathElement.textContent.trim();
|
||||
|
||||
e.dataTransfer.effectAllowed = 'copy';
|
||||
e.dataTransfer.setData('text/plain', path);
|
||||
|
||||
statusMessage.textContent = `Dragging: ${path}`;
|
||||
statusMessage.className = 'status-message info';
|
||||
|
||||
console.log('🚀 Drag started:', path);
|
||||
console.log('📋 DataTransfer types:', e.dataTransfer.types);
|
||||
});
|
||||
|
||||
item.addEventListener('dragend', (e) => {
|
||||
const pathElement = item.querySelector('p');
|
||||
const path = pathElement.textContent.trim();
|
||||
|
||||
if (e.dataTransfer.dropEffect === 'none') {
|
||||
statusMessage.textContent = `❌ Drop failed or cancelled`;
|
||||
statusMessage.className = 'status-message info';
|
||||
} else {
|
||||
statusMessage.textContent = `✅ Drop completed: ${e.dataTransfer.dropEffect}`;
|
||||
statusMessage.className = 'status-message success';
|
||||
}
|
||||
|
||||
console.log('🏁 Drag ended:', e.dataTransfer.dropEffect);
|
||||
});
|
||||
|
||||
// Visual feedback
|
||||
item.addEventListener('dragstart', () => {
|
||||
item.style.opacity = '0.5';
|
||||
item.style.transform = 'scale(0.95)';
|
||||
});
|
||||
|
||||
item.addEventListener('dragend', () => {
|
||||
item.style.opacity = '1';
|
||||
item.style.transform = 'scale(1)';
|
||||
});
|
||||
});
|
||||
|
||||
// Application info
|
||||
console.log('%cWebDrop Bridge', 'font-size: 18px; font-weight: bold; color: #667eea;');
|
||||
console.log('Ready for testing. Drag items to other applications.');
|
||||
console.log('Check the path values in the drag items above.');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue