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’ll 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 Warning about existed bundle name #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
@Richard-HM
Copy link
Contributor

Proposal for "Options" button style

style

@winston-de
Copy link
Contributor

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

@crashmit
Copy link

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

@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.

@yaira2
Copy link
Member

yaira2 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

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 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 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 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 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 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

Choose a reason for hiding this comment

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

There is a crash when importing wrong .json file.

@d2dyno1 d2dyno1 requested a review from tsvietOK January 21, 2021 07:41
@d2dyno1
Copy link
Member Author

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

@d2dyno1 There is no icon of shortcut file.
image

@d2dyno1
Copy link
Member Author

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

Can you add reveal effect for the bundle menu button?

@d2dyno1
Copy link
Member Author

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 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)

@yaira2
Copy link
Member

yaira2 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 commented Jan 21, 2021

😕 bruh, I liked the reveal

Copy link
Contributor

@tsvietOK tsvietOK left a comment

Choose a reason for hiding this comment

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

LGTM

@yaira2 yaira2 added ready to merge Pull requests that are approved and ready to merge and removed needs - code review labels Jan 21, 2021
@yaira2 yaira2 merged commit a22ec97 into files-community:main Jan 21, 2021
@d2dyno1
Copy link
Member Author

d2dyno1 commented Jan 21, 2021

🎉 🎊

@tsvietOK
Copy link
Contributor

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

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 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
ready to merge Pull requests that are approved and ready to merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Containers for Pinned Items on the Home Page
10 participants