mirror of
				https://github.com/YACReader/yacreader
				synced 2025-10-31 08:14:29 -04:00 
			
		
		
		
	Fix Drag&Drop in the comics grid view
This commit is contained in:
		| @ -413,46 +413,6 @@ SplitView { | ||||
|                 grid.contentX = grid.originX | ||||
|             } | ||||
|  | ||||
|             DropArea { | ||||
|                 anchors.fill: parent | ||||
|  | ||||
|                 onEntered: { | ||||
|                     if(drag.hasUrls) | ||||
|                     { | ||||
|                         if(dropManager.canDropUrls(drag.urls, drag.action)) | ||||
|                         { | ||||
|                             drag.accepted = true; | ||||
|                         }else | ||||
|                             drag.accepted = false; | ||||
|                     } | ||||
|                     else if (dropManager.canDropFormats(drag.formats)) { | ||||
|                         drag.accepted = true; | ||||
|                     } else | ||||
|                         drag.accepted = false; | ||||
|                 } | ||||
|  | ||||
|                 onDropped: { | ||||
|                     if(drop.hasUrls && dropManager.canDropUrls(drop.urls, drop.action)) | ||||
|                     { | ||||
|                         dropManager.droppedFiles(drop.urls, drop.action); | ||||
|                     } | ||||
|                     else{ | ||||
|                         if (dropManager.canDropFormats(drop.formats)) | ||||
|                         { | ||||
|                             var destItem = grid.itemAt(drop.x,drop.y + grid.contentY); | ||||
|                             var destLocalX = grid.mapToItem(destItem,drop.x,drop.y + grid.contentY).x | ||||
|                             var realIndex = grid.indexAt(drop.x,drop.y + grid.contentY); | ||||
|  | ||||
|                             if(realIndex === -1) | ||||
|                                 realIndex = grid.count - 1; | ||||
|  | ||||
|                             var destIndex = destLocalX < (grid.cellWidth / 2) ? realIndex : realIndex + 1; | ||||
|                             dropManager.droppedComicsForResortingAt(drop.getDataAsString(), destIndex); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             property Component currentComicView: Component { | ||||
|                 id: currentComicView | ||||
|                 Rectangle { | ||||
| @ -809,6 +769,46 @@ SplitView { | ||||
|                     currentIndexHelper.setCurrentIndex(ci); | ||||
|                     grid.currentIndex = ci; | ||||
|                 } | ||||
|  | ||||
|                 DropArea { | ||||
|                     anchors.fill: parent | ||||
|  | ||||
|                     onEntered: drag => { | ||||
|                                    if(drag.hasUrls) | ||||
|                                    { | ||||
|                                        if(dropManager.canDropUrls(drag.urls, drag.action)) | ||||
|                                        { | ||||
|                                            drag.accepted = true; | ||||
|                                        }else | ||||
|                                        drag.accepted = false; | ||||
|                                    } | ||||
|                                    else if (dropManager.canDropFormats(drag.formats)) { | ||||
|                                        drag.accepted = true; | ||||
|                                    } else | ||||
|                                    drag.accepted = false; | ||||
|                                } | ||||
|  | ||||
|                     onDropped: drop => { | ||||
|                                    if(drop.hasUrls && dropManager.canDropUrls(drop.urls, drop.action)) | ||||
|                                    { | ||||
|                                        dropManager.droppedFiles(drop.urls, drop.action); | ||||
|                                    } | ||||
|                                    else{ | ||||
|                                        if (dropManager.canDropFormats(drop.formats)) | ||||
|                                        { | ||||
|                                            var destItem = grid.itemAt(drop.x,drop.y + grid.contentY); | ||||
|                                            var destLocalX = grid.mapToItem(destItem,drop.x,drop.y + grid.contentY).x | ||||
|                                            var realIndex = grid.indexAt(drop.x,drop.y + grid.contentY); | ||||
|  | ||||
|                                            if(realIndex === -1) | ||||
|                                            realIndex = grid.count - 1; | ||||
|  | ||||
|                                            var destIndex = destLocalX < (grid.cellWidth / 2) ? realIndex : realIndex + 1; | ||||
|                                            dropManager.droppedComicsForResortingAt("", destIndex); | ||||
|                                        } | ||||
|                                    } | ||||
|                                } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -416,46 +416,6 @@ SplitView { | ||||
|                 grid.contentX = grid.originX | ||||
|             } | ||||
|  | ||||
|             DropArea { | ||||
|                 anchors.fill: parent | ||||
|  | ||||
|                 onEntered: { | ||||
|                     if(drag.hasUrls) | ||||
|                     { | ||||
|                         if(dropManager.canDropUrls(drag.urls, drag.action)) | ||||
|                         { | ||||
|                             drag.accepted = true; | ||||
|                         }else | ||||
|                             drag.accepted = false; | ||||
|                     } | ||||
|                     else if (dropManager.canDropFormats(drag.formats)) { | ||||
|                         drag.accepted = true; | ||||
|                     } else | ||||
|                         drag.accepted = false; | ||||
|                 } | ||||
|  | ||||
|                 onDropped: { | ||||
|                     if(drop.hasUrls && dropManager.canDropUrls(drop.urls, drop.action)) | ||||
|                     { | ||||
|                         dropManager.droppedFiles(drop.urls, drop.action); | ||||
|                     } | ||||
|                     else{ | ||||
|                         if (dropManager.canDropFormats(drop.formats)) | ||||
|                         { | ||||
|                             var destItem = grid.itemAt(drop.x,drop.y + grid.contentY); | ||||
|                             var destLocalX = grid.mapToItem(destItem,drop.x,drop.y + grid.contentY).x | ||||
|                             var realIndex = grid.indexAt(drop.x,drop.y + grid.contentY); | ||||
|  | ||||
|                             if(realIndex === -1) | ||||
|                                 realIndex = grid.count - 1; | ||||
|  | ||||
|                             var destIndex = destLocalX < (grid.cellWidth / 2) ? realIndex : realIndex + 1; | ||||
|                             dropManager.droppedComicsForResortingAt(drop.getDataAsString(), destIndex); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             property Component currentComicView: Component { | ||||
|                 id: currentComicView | ||||
|                 Rectangle { | ||||
| @ -816,6 +776,46 @@ SplitView { | ||||
|                     currentIndexHelper.setCurrentIndex(ci); | ||||
|                     grid.currentIndex = ci; | ||||
|                 } | ||||
|  | ||||
|                 DropArea { | ||||
|                     anchors.fill: parent | ||||
|  | ||||
|                     onEntered: drag => { | ||||
|                                    if(drag.hasUrls) | ||||
|                                    { | ||||
|                                        if(dropManager.canDropUrls(drag.urls, drag.action)) | ||||
|                                        { | ||||
|                                            drag.accepted = true; | ||||
|                                        }else | ||||
|                                        drag.accepted = false; | ||||
|                                    } | ||||
|                                    else if (dropManager.canDropFormats(drag.formats)) { | ||||
|                                        drag.accepted = true; | ||||
|                                    } else | ||||
|                                    drag.accepted = false; | ||||
|                                } | ||||
|  | ||||
|                     onDropped: drop => { | ||||
|                                    if(drop.hasUrls && dropManager.canDropUrls(drop.urls, drop.action)) | ||||
|                                    { | ||||
|                                        dropManager.droppedFiles(drop.urls, drop.action); | ||||
|                                    } | ||||
|                                    else{ | ||||
|                                        if (dropManager.canDropFormats(drop.formats)) | ||||
|                                        { | ||||
|                                            var destItem = grid.itemAt(drop.x,drop.y + grid.contentY); | ||||
|                                            var destLocalX = grid.mapToItem(destItem,drop.x,drop.y + grid.contentY).x | ||||
|                                            var realIndex = grid.indexAt(drop.x,drop.y + grid.contentY); | ||||
|  | ||||
|                                            if(realIndex === -1) | ||||
|                                            realIndex = grid.count - 1; | ||||
|  | ||||
|                                            var destIndex = destLocalX < (grid.cellWidth / 2) ? realIndex : realIndex + 1; | ||||
|                                            dropManager.droppedComicsForResortingAt("", destIndex); | ||||
|                                        } | ||||
|                                    } | ||||
|                                } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user