Transfer conflicts: how to handle the pesky combo breakers~

hi it's me again

i just wanted to say something about two of the requests that i am agreeing with, the conflicts box and the sticky tabs.

1.) conflicts box. i know that this has been proposed several times, but i just wanted to add to the suggestion. one of the major selling points of opus is that it can do many threads such that a lister can still be used while some other job is being
taken care of. i think that this can be applied to a conflicts box. it has been requested that a list popup or is shown
after the end of a copy/move/delete, or in some cases before it. i think this is a good idea, but i think that what i would like is a conflicts box that updates dynamically, perhaps in the background.

the end user would have some preference that would say, defer a instance as 'conflict' after x seconds. let's say you are trying to move a great many things. in the middle of the transfer a box would appear asking you what to do. if you are at your computer at the time, you can simply say what you want done and that is all. if you are away, however, you don't have that luxury. the x seconds timer would count say, 10 seconds, and that window would be open asking for what to do (rather than automatically defer just in case you are brb and not afk) and if the end user doesn't say what to do, mark it as conflict and move on until the next conflict.

now, in the x seconds 'timeout' box (i think the timeout is one really important thing) one can put a '0' which would tell opus to not wait at all and automatically defer as conflict, don't even bother to ask the user. this mode could be very useful and it would be nice to have a separate timer for: network transfers, local transfers, ftp, removable drives, etc. the timer would tell the box to wait for 0, 10, 15, or what ever the user specifies in the box.

the real thing that i would like to suggest is that the conflicts NOT be some list. i don't think it should be a simple list of conflicts that have to be taken care of; i think that it should be a dynamic, ever updating list of conflicts. this way there is no matter of 'do i display it at the end of the transfer or the beginning or in the middle.' as soon as there is one conflict there is a list. no conflict, no list. no timeout, no conflict.

should there actually be a 'conflicts box'? i dunno. i was thinking there could be a separate box JUST for conflicts that the user can address in an order picking one here and there until empty. it could just be a button 'show conflicts' on a regular copy dialogue. i was thinking though, that the conflicts box would best be a tab in the output window that updates in the background, or if the user specifies that pops up on first conflict. whether or not the conflicts output tab/box/whatever pops up would be up to the user, but one thing that would always happen is this: the regular transfer bar is normally green, perhaps orange when prompting the user for input, finally red if there is at least one conflict. also, if there is at least one conflict, the transfer window will stay open so the user can see the red progress bar. when the user sees this, he or she can perhaps double click the red conflict progress bar and have the output window open automatically to the conflicts tab.

what happens next? well, since conflicts would appear in the output window as they happen, they can be dynamically address EVEN while the parent transfer is occuring, or a selection could be made and the handling of the conflict can be queued to the end of the current job (good for ftp i think). since this is not a simple list of things that couldn't finish, there would be more information in the conflicts tab/box. this information should(?) include things like when the conflict happened, what was the destination, what was the source folder, but most importantly WHY it conflicted. oh, note that i am using conflict for any event that had to be deferred for any reason. the reason why i say WHY it conflicted is important is this. perhaps there could be an implementation of automatic handling of the major causes of a need for deferment. one could have it automatically rename if it's 'something already in that folder with that name' is the reason, or automatic overwrite if is same name, but the new file is larger, or any ruleset that can be applied automatically OR by input from the user as he or she browses the conflicts in the window. there needn't be any reason to have to handle the conflicts in the order in which they happened this way. in fact, they could even be numbered by opus itself such that new opus commands could be made like: Conflict REASON ALREADYEXIST DELETE or Conflict NUMBER 1 MOVE.

The conflicts could be saved for opus itself as an xml file dynamically written as they occur, displayed for the user when the conflicts tab is opened and exported as a batch file later on. also, one can just double click a conflict one by one, in any order to get a standard rename/copy/whatever box come up since the actual file transfer was skipped (if that's the last file in a folder, delete folder could be a checkbox, too).

if the user fails to clear conflicts before starting another copy/move/rename/whatever process related or unrelated to the current requested job, then opus can notify the user with a sound or flash WHILE still allowing the current job to continue. or the progress bar could be red from the start signifying that conflicts still need to be addressed. also, one can opt to 'ignore' a conflict to have it removed from the conflicts tab/box/window so that it being there will not affect the color of another transfer job bar at all if he or she whishes.

i feel that since opus is about flexibility, this would be a so-so implementation of something that i know at least i would like. this way would provide a meaningful, convenient way of handling conflicts in one's own time in one's own way in one's own order without being bogged down by a hardcoded lists, or chunks of untransfered files stranded behind one that didn't know where to go.

in short:
[] the user can set a timer. as soon as the 'what do you want me to do' window that we are all familair with appear, the timer starts. this timer needn't be visible to the end user, opus uses it. while this timer counts down, the progress bar halts and turns orange. once this timer counts to zero, the bar turns red, the conflict is skipped and deferred to, perhaps, a new tab in the output window called 'conflicts'

[] since the conflict has been deferred, not really 'skipped' since the user can, at any moment of whim simply go to the conflicts tab and address it EVEN while current job is running (if it's ftp, the user's request can be queued if need be). there is no 'list' that appears at the end of a job, just a dynamic running list of conflicts, addressable in any order the user sees fit.

[] since the conflicts would be datestamped, the user could leave them as conflict for as long as he or she wants and still come back later to address the issue (most prolly won't wait, but to know one COULD is nice).

[] to aid the user in seeing that conflicts exist and are being tallied in the background, the progress bar turns red. at any time the progress bar, or some button, or the system tray icon, can be double clicked to bring up the conflicts tab. if conflicts are not address before the end of a job, the progress bar remains open, perhaps pulsating red to get the users attention.

[] conflicts can be ignoreed and removed from list as user wants.

[] conflicts in list can be sorted by reason, time, date, locations.

[] a event can be tethered to a conflict reason to automatically, if the user pleases, handle the conflicts on its own. these events can be set by user, or come predefined. such as 'if conflict is reason: already exist AND smaller, automatically overwrite (or in the case of ftp) or resume

[] i forgot some other things

2.) sticky tabs. i lvoe this idea so much. i was thinking, if you see my thread about other stuff i would like, that the sticky tabs can be put together with 'favorites groups.'

the favorites groups is an idea that i think i came up with that combines many different already exist opus features into one in a way that i feel would be quite useful, not at first to many, but eventually. like if you wanted a certain wallpaper to be in all folders in the 'Beatles' favorites group, it would be done. but read that thread for more, verbose ; ; , about this.

back to sticky tabs. even if the 'favorites groups' idea never happened, i agree with all who suggested before me that it's a great idea. i also think it would be nice to have a small mini icon overlay (think the little arrow thing on shortcuts) that appears in a sticky tab's icon. this overlay could be a 'do not' sign (the O with the / in it) or a sticky goo or w/e. the tab overlay icon could be one color, say grey or blue, if a tab is 'loose sticky' meaning you can browse in it, but if you leave that tab it will go back to the folder that was stickied. another color, say red, if a tab is 'super sticky' such taht any attempt to use this tab to browse will automatically spawn a new tab populated by the desired, clicked folder.

these states could be toggled by perhaps right clicking on the tab's icon (if you hold right, you could get the current tab menu, or you could just right click any nontabbed area of the tabbar).

that's my take for now, i hope i haven't typed too much, thanks for reading! hope to see you all again~


hi everyone~

i just wanted to give some more ideas that i had regarding handling of conflicts.

i touched earlier upon the idea of 'conflict (error) codes' or something simliar. like how windows displays weird 0x000002 or w/e codes when it bsod, it would be nice if opus had simliar codes. no, not for when opus bsod lol
these codes would be 'conflict codes' and opus could use them to automatically figure out what to do in certain situations. of course they could be opus1243 or w/e, but opus could display them perhaps as: 'target exist and larger' or 'target exist and newer' or 'destination disk space exceeded'. here's something that happen to me last night.

i was trying to move many file from one folder to another in vista. mp3 file. suddenly i see pop up 'move file: there is already a file with the same name in this location' and there were the standard options, 'move and replace,' 'don't move,' and 'move, but keep both files.' then there is checkbox at bottom that says 'do this for the next 917[!] conflicts.' this is bad for me. i could sit there and choose between the three options one by one 917 times OR i could give up and tick box 'do this everytime' and then risk overwriting junk many times or leaving duplications many times, or having many oddly renamed files many times. of course, i could make some complex filters in opus, which is prolly what i will do, but it really made me wish that there were a such thing as an opus 'conflict queue' output window tab. here's why.

making complex filters for some would be easy (i've never tried) but perhaps it could get a little tedious? the thing about most conflict prompt windows that i see now, and they've all come a loooong way, is that it's usually replace, leave, rename, skip, or all. the first three options are often not well suiting for an 'all' execution and 'skip' means that at least one file is going to need to be address by hand later on. this is ok i guess, but i feel that if opus had a modified conflicts prompt combined with a conflicts queue and conflict error codes, things could be very more streamline.

in my previous example of the 917 conflicts, i was quite frustrated, but i didn't have to be. let's say that i did the transfer in an opus with conflict modifications. it would present to me the standard conflicts prompt with the replace and all and skip, but there would be something new. since opus can now recognize some common conflict errors as conflict codes, opus and i can work together to automate or process of conflict handling. in addition to 'all,' there could now be a dropdown box or something that says something like 'all conflict matches.' so let's say opus displayed to me that the reason why this particular mp3 require my attention via a prompt box was because 'target exists and smaller.' what this tells me is that the file i'm moving is in conflict with another mp3 that is smaller, but has the same name. of course, i could just select the regular and common 'overwrite all' or something simliar, but that would overwrite all files and one day a file will come up that is larger than the one replacing it, and i would've given permission to overwrite the larger file with the smaller one! but if could select 'all conflict matches' then opus would overwrite all ONLY ONLY ONLY for files that match this particular conflict rule, in the fist case: 'target exists and smaller.' all the common causes of conflicts could have rules built in, and ofcourse a customizable means to edit rules and make new ones.

if one wanted to take it even farther, opus could have a conflicts tab for extensions in the 'File Types...' window. this way, you could tell opus to automatically overwrite or whatever for certain causes of conflict for EACH mp3 (defaulted to 'ask'^^;). let's say that opus saw i was transfering mp3s and since i have ticked 'overwrite all conflict match: exist and smaller' i can rest assured that opus will only and always overwrite smaller files with the ones i'm transferring for mp3 ONLY and ask for everything else (the ask is where the conflict prompt timer would come into play; timer time out, conflict is deferred to conflict tab in output window).

let's say that i am late for class and i start moving many files over from a folder on my harddrive... and downloading a linux iso. when i get back, i am greeted with a window telling me that although there was enough space on the harddrive when i started, the linux iso ate that up, so there was no way to transfer over the last files. i must skip them all ; ; if opus had the conflict codes it could automatically defer all files whose cause of conflict is 'harddrive space empty' since there is no reason to even bother with rename or overwrite since there is no space. if you choose skip, then well... that's not a good idea since you lose the chance to address that issue. if all conflicts are automatically deferred when opus realizes the issue is harddrive space, that means that once you address that issue with your space left, you can go to the conflicts tab in output window (or whereever) and then start one conflict (in any order) or all of them over again.

also, if opus did use the conflict codes, it would also be a good idea be able to sort be conflict reason. so you could see a reason 'harddrive full' or 'target exists and smaller and newer' as a parent, with all the conflicts as child nodes. then you could click on the conflict type and take care of all of them... in one click.

what if opus had an away mode? why does opus need an away mode? well, you could tell opus, in a toggle box of course, to go into away mode if say 'all listers are closed' what away mode would do is make it such that if you start some big file transfer, you can put opus into away mode and leave your computer. away mode would automatically defer all conflicts (or perform preset actions for a range of conflict causes) to the conflicts tab in the output window without asking or disturbing you at all. so you can watch your movies full screen or play a game without being bothered by questions on what to do! also, away mode could make it such that transfer windows could somehow minimize to tray, further reducing boxes and taskbar clutter, while providing the user with a means to see progress. how?

the minimized transfer window could be two bars overlayed by a percent complete for total job. one bar is for total job progress, the other is for current file progress. nice and easy to see, but still out of way. of course, once a conflict occurs, the progress bars turn red to let the user know, upon sight, that a conflict exists and has been deferred.

another wordy post from me~
thanks for reading guys!

Woah. I might not have time to read all of this until my sabbatical from work* kicks in. :slight_smile:

(*Work = non-Opus day job.)

haha i didnt even realize i type so much until i click submit^^;