Skip to content
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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bundles!! #2881

Merged
merged 105 commits into from Jan 21, 2021
Merged

Bundles!! #2881

merged 105 commits into from Jan 21, 2021

Conversation

d2dyno1
Copy link
Member

@d2dyno1 d2dyno1 commented Jan 7, 2021

This PR brings Bundles Widget - Grouped containers of files/folders for quick access from the home page.

Example usage

  • Group your useful programs or games with a little help from bundles.
  • Access your workload files quickly without browsing a single folder!

Features of this PR

  • MVVM Ready
  • IDisposable Ready
  • Flexible BaseJsonSettingsViewModel for serialization!
  • DynamicDialog for dynamic dialogs - any dialog could be created off of it! (MVVM Ready)
  • Overhauled Interaction.OpenSelectedItems -> Interaction.OpenPath
  • Minor Improvements
  • Bundles UI

Things yet to do

  • Improve UI
  • Setting for disabling/enabling Bundles
  • Add "Add Bundle" UI
  • Remove, Rename Bundles
  • Remove items from Bundles
  • Folder Icons
  • Icons don't show bruh
  • Right click option to open folders in new tab
  • View does not update when performing actions with bundles
  • Drag and Drop does not cover entire Bundle area
  • Show big add button when there are no Bundles
  • Big Add Bundle button is not being hidden
  • Replace Interaction.OpenSelectedItems() with Interaction.OpenPath() [Help wanted]
  • Add Translation strings [Help wanted]
  • Add option to export bundles configuration file
  • Add option to import bundles
  • Fix columns plz @yaichenbaum
  • Remove the reveal border from bundles [Help wanted]
  • Remove the reveal border for items in bundles [Help wanted]
  • Fix code style 馃く

Screenshots (constantly updated)
image
image

Future Bundles PR #3637

  • Option to rearrange Bundle items by dragging
  • Select items upon OpenPath navigation
  • Ability to rearrange Bundles
  • TBD: Support for adding shourtcut files
  • Display warning when creating a Bundle if the name already exists #3449

Closes #1465

Files/ViewModels/SettingsViewModel.cs Outdated Show resolved Hide resolved
Files/ViewModels/CurrentInstanceViewModel.cs Outdated Show resolved Hide resolved
Files/UserControls/Widgets/Bundles.xaml Outdated Show resolved Hide resolved
@Rick-HM
Copy link
Contributor

@Rick-HM Rick-HM commented Jan 7, 2021

Proposal for "Options" button style

style

@winston-de
Copy link
Contributor

@winston-de winston-de commented Jan 7, 2021

This looks awesome.
Is there a way to collapse them?

@crashmit
Copy link

@crashmit crashmit commented Jan 7, 2021

I really like it! Just a few cosmetic things:
image

The padding on the left is not the same as inside the drive widgets. On the right side, I'd reduce the container width to the width of the drive widgets. This would create a clean and organized layout. The right edge of the right row is already nearly in the right spot for that (one pixel too far left), only the container needs to be a bit narrower. Otherwise, great stuff, can't wait to get my hands on it.

@lukeblevins
Copy link
Contributor

@lukeblevins lukeblevins commented Jan 7, 2021

@d2dyno1 This looks great! Nice work.

@yaichenbaum We should look towards making the recent items list and new Bundles section arranged horizontally, so they can be side by side. Most likely we'll only make them horizontal when both are enabled.

Thoughts are welcome.

@yaichenbaum
Copy link
Member

@yaichenbaum yaichenbaum commented Jan 7, 2021

@yaichenbaum We should look towards making the recent items list and new Bundles section arranged horizontally, so they can be side by side. Most likely we'll only make them horizontal when both are enabled.

Thoughts are welcome.

@duke7553 That level of customization will likely be part of a larger effort to give users more customization for the widgets on the home page. Ideally users should be able to choose between different widgets sizes and choose where on the home page to display them.

/// <param name="itemType"></param>
/// <param name="openSilent">Determines whether history of opened item is saved (... to Recent Items/Windows Timeline)</param>
public async Task<bool> OpenPath(string path, FilesystemItemType? itemType = null, bool openSilent = false)
// TODO: This Function is not ready yet! It is not fully merged from OpenSelectedItems() because of ListedItem restriction, halp needed plz
Copy link
Contributor

@lukeblevins lukeblevins Jan 7, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate on the restriction you need help with here?

Copy link
Member Author

@d2dyno1 d2dyno1 Jan 7, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I originally tried to convert path to ListedItem, since there is no function for getting ListedItem from path, I had to rewrite the entire OpenSelectedItems() to navigate by provided path; There are some checks in this function that determine whether an item is an hiddenItem, shortcutItem etc. they are not present in OpenPath function though - since these checks are bound to ListedItem - that's what I need help with

@mdtauk
Copy link

@mdtauk mdtauk commented Jan 7, 2021

Not sure having two items per column will work, especially for longer folder names.

Perhaps a vertical list of items?

I would suggest no backing plate to give a cleaner look.

If the bundle was really large, maybe there should be a flyout button to pop out a list, a UI for re-arranging the list - and long lists should have at the bottom some text like
23 other folders

@crashmit
Copy link

@crashmit crashmit commented Jan 7, 2021

I would suggest no backing plate to give a cleaner look.

I think the backing plate makes it easier to distinguish between 2 bundles and also fits to the design of the other widgets

@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 7, 2021

If the bundle was really large, maybe there should be a flyout button to pop out a list, a UI for re-arranging the list - and long lists should have at the bottom some text like
23 other folders

Current Bundle limit is 8 items

@mdtauk
Copy link

@mdtauk mdtauk commented Jan 7, 2021

Bundles sounds like a group of folders. Do they all open when the bundle is clicked - or is it just a list of folders you can click individually?

There will probably need to be UI to re-arrange bundle items, add and removing etc. ContentDialog?

I would say, better to have each item clickable to open as a new tab, and also a Right Click menu to Open all as tabs, or Open all in a new window

@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 7, 2021

Bundles sounds like a group of folders. Do they all open when the bundle is clicked - or is it just a list of folders you can click individually?

I would say, better to have each item clickable to open as a new tab, and also a Right Click menu to Open all as tabs, or Open all in a new window

Clicked items open individually. You can add both folders and files

Copy link
Contributor

@tsvietOK tsvietOK left a comment

There is a crash when importing wrong .json file.

@d2dyno1 d2dyno1 requested a review from tsvietOK Jan 21, 2021
@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 21, 2021

@tsvietOK everything seems to work now. Anything more left on your list?

@d2dyno1 d2dyno1 mentioned this pull request Jan 21, 2021
20 tasks
@tsvietOK
Copy link
Contributor

@tsvietOK tsvietOK commented Jan 21, 2021

@d2dyno1 There is no icon of shortcut file.
image

@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 21, 2021

@tsvietOK I've removed the option for adding shortcut files. I've put it in the "Future Bundles PR" list.

@tsvietOK
Copy link
Contributor

@tsvietOK tsvietOK commented Jan 21, 2021

Can you add reveal effect for the bundle menu button?

@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 21, 2021

Can you add reveal effect for the bundle menu button?

I'm not sure if it would fit the design here, since it is within an UI element.
I've added reveal for Bundles Options though:
image
image

@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 21, 2021

@tsvietOK This is how it would look like:
image
image

But I still prefer it without the reveal.
(Too much reveal effects isn't good)

@yaichenbaum
Copy link
Member

@yaichenbaum yaichenbaum commented Jan 21, 2021

@tsvietOK @d2dyno1 Reveal is going to be removed from the Fluent guidelines, I don't think it makes sense to use it here given that it's going to be removed in the near future.

@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 21, 2021

馃槙 bruh, I liked the reveal

Copy link
Contributor

@tsvietOK tsvietOK left a comment

LGTM

@yaichenbaum yaichenbaum merged commit a22ec97 into files-community:main Jan 21, 2021
2 checks passed
@d2dyno1
Copy link
Member Author

@d2dyno1 d2dyno1 commented Jan 21, 2021

馃帀 馃帄

@tsvietOK
Copy link
Contributor

@tsvietOK tsvietOK commented Jan 24, 2021

@d2dyno1 Looks like there is no BundlesWidgetAddBundleConfirm UID in controls (Bundles.xaml), but exists in translation files.

@Nirvanatin
Copy link

@Nirvanatin Nirvanatin commented Feb 23, 2022

It would be nice if we can display bundles at the first row. Is there a way to customize or remove Folders on the home page?

@gave92
Copy link
Member

@gave92 gave92 commented Feb 23, 2022

You can hide the folders widget from the button in top right.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants