-
Notifications
You must be signed in to change notification settings - Fork 669
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Windows] File Explorer - Integrate a Cloud Storage Provider: Drop down sub paths #5295
Comments
How much effort would that be? |
I would really like to see this moving forward. Having this not solved makes owncloud feel like a second class citizen on Windows 10 systems, as everybody (Dropbox, Onedrive, etc.) has full integration, but owncloud does not. I am willing to hack this in. The MSDN article makes the needed registry handling pretty clear. Could you point me to the respective source files where I could add the integration? |
The challenging part however is that we pre-build those DLLs on developer machines, which means that we can't put any icon or brand name (like ownCloud) in the code unless we build the whole client with MSVC (#2717). Another option is to pass all branding-related resources through the SocketAPI like we currently do with the Share menu title, but this would mean passing icons on the socket every single time an application opens an explorer window (even if not navigating to the ownCloud folder), so not sure if users will like this. Maybe this is only done by registry hacks though, in that case there might be an easier solution as this could be done by the client itself and not the extension. |
I've been looking at implementing this but the fact that we support multiple accounts and folders makes this difficult to implement while making sure that:
OneDriver and Dropbox, for example, only seem to support a single sync folder and account, so it's pretty straightforward. But in our case this makes things quite complicated. I've thought of the following solutions: Add a namespace icon at the root of the explorer tree for every folder connection
Only add the first folder connection as a namespaceThis would make it easier and would be fine for most users but would be an incomplete solution and still not trivial to implement and maintain. Implement a custom Shell Namespace Extensions to show a tree of accounts/folders registeredThis could be a nice solution if it's possible to create a shell extension to handle only the root folder, allowing us to delegate to regular Shell Instance Objects for each sync root. The problem is that we'd probably put this in the same DLLs as the overlay icons and context menu extensions, and this means that the only way to fetch the list of root folder would be through the SocketAPI (since it's the same binary for every branding). This means that the root folder would be empty when the client is not running, unlike Dropbox or OneDrive namespaces which still work perfectly fine when their sync client isn't running. Just keep using Quick Access folders like we already doThis is what I'm currently going for in #2446. This works well, we can have one icon for every sync root and the users can edit them as they wish. So unless you see other benefits than having an icon to adding ownCloud to the root level of the Navigation Pane, I think we should stick with favorite links. Another advantage of favorites is that the correct path appears in the address bar, while a Navigation Pane namespace creates hides the path on disk and shows itself as a logical root. |
Sorry for the long silence. Unfortunately, I cannot allocate time to help out on this one. A proper integration needs two things:
All of this is done through the registry, and requires updates only when sync roots change or the client is uninstalled. Sync root providerWindows needs one sync root provider per account. This marks the directory where the account is synced to and associates it with ownCloud. Basically, it allows Windows to query who is responsible for this directory. Required information for the registry are:
Navigation Pane integrationThis one is harder. Information needed:
|
Humm I think a sync root by definition is something that has a different root folder on the local disk. This is what we call "Folder Sync Connection" in the client is. By default we only have one, but we do support having multiple for each account. Personally I don't think it's just a matter of implementing it, my impression is that we take more from the user than what we give them by implementing this feature because:
Both issues essentially because we need to continue supporting multiple accounts and folders. Meanwhile, I believe the navigation pane integration doesn't give much over our current use of Quick Access bookmarks. So we shouldn't just implement this blindly, we should first look at what this would give the user vs. Quick Access bookmarks, and evaluate if the cost is worth the benefit. @pmaier1 should probably be involved in this decision. That Dropbox and OneDrive support it is not a good argument by itself since they don't need to support multiple accounts and therefore didn't face the same issues. |
With Dropbox, you can connect multiple accounts on the server-side. It looks like only one account on the device is needed: OneDrive can have multiple accounts on one device. Each account has an own integration, and each account has it's own settings window: Could creation be an option in the wizard for each account/folderpair ? |
@michaelstingl It could be an idea of the wizard, yes. If users choose what to put in explorer, enabling them to add/remove each folder integration through the UI this would make the "Add a namespace icon at the root of the explorer tree for every folder connection" option above a good way to go (the user can control the explorer clutter). And what do you see as an advantage to implement all this? What is the user getting in exchange? |
@jturcotte Users would get their ownCloud data back. In Win 10, it's very difficult to find your ownCloud data. Here is an example when you try open a file with text editor (no ownCloud, but OneDrive everywhere): Accessing ownCloud data from Word 2016 on Win 10, is nearly impossible: This is the feedback I've got from an ownCloud admin:
As an 🍎-fanboy, I wasn't aware about this issue, but in the last time I've heard this feedback more often. 00008190 |
I now agree with @michaelstingl and think this is quite important to have. Else it's hard to use the client on Windows.
Wizard won't work for EXISTING sync folder (connections)
This sidebar explorer stuff should be the default, no setting in client or installer please.
So there is no favorites in quick access anymore in win 10 anymore? :-(
As a first step, this might not be so bad, we can change this later by having the shell extension read the config or (probably better?) cache the sync folders somewhere. (Hmmmm having testpilotcloud and owncloud installed at same time but only one explorer DLL hmm) |
@michaelstingl OK I thought that our favorite code was still working with the Quick Access, I must have pinned mine manually (which users can still do). But I can see this as a better solution since MS doesn't seem to expose any official API to modify the Quick Access pins. |
Hi, I think I was the admin that Michael mentioned:
In this regard, our largest institution is asking for a timeline. I understand from the above that the development is rather difficult and at a very early stage, but could you make any prediction? |
@jturcotte @guruz How to proceed? I really would like to improve here… |
@michaelstingl It's currently being worked on for 2.5, it semi-works :-) |
This is only the navigation pane, the SyncRootManager entries aren't handled yet. This follows the instructions from: https://msdn.microsoft.com/en-us/library/windows/desktop/dn889934%28v=vs.85%29.aspx Issue #5295
As mentioned in #6113, this will fix the "File Explorer namespace" part of the MS documentation link above, but the "sync root provider" is still missing. I'm still not sure what the sync root provider is supposed to do, I couldn't find a way to test this, but I suspect this is what allows Word to display the account in @michaelstingl's screenshot at #5295 (comment). Somebody with access to Office could have a look. Here are my notes for manual testing, in case this could give some inspiration to @SamuAlfageme:
|
This is only the navigation pane, the SyncRootManager entries aren't handled yet. This follows the instructions from: https://msdn.microsoft.com/en-us/library/windows/desktop/dn889934%28v=vs.85%29.aspx Issue #5295
@jturcotte amazing work 💯
Will do asap:
Agreed, that's the schema I was looking for in #6100 |
@gidhap thanks for sharing this. so current nightly is only the first step to the solution :) |
@DanielHilpoltsteiner The problem could be if it is a 32 bit application? See client/src/common/utility_win.cpp Line 153 in 7860876
Maybe you can verify this in task manager? |
thanks @guruz , you're completely right.. :) does the installer decide itself which version gets installed (32 bit vs 64 bit)? |
I opened a new issue for the MS Office 2016 integration: #6394 |
Can be closed as the File Explorer integration is working as expected for both NSIS and MSI installers (64bit only for the latter, discussion on 32bit is meant to happen on #6565 - @DanielHilpoltsteiner we could use your input on the issue) |
@jnweiger Overlay icons, right click menus and the sidebar are 3 different implementations :-) |
WIll be nice have owncloud client be integrated in file explorer like Dropbox and one Drive, having the shortcut in the left side underneath quick Access. with the option to click in the > and see the folder inside owncloud. see pics
More info can be found at: https://msdn.microsoft.com/en-us/library/windows/desktop/dn889934%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
The text was updated successfully, but these errors were encountered: