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

Revert "Added 'Select a range of files using shift+click'" #324

Merged
merged 1 commit into from
Feb 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Revert "Added 'Select a range of files using shift+click'"
  • Loading branch information
ganeshrvel committed Feb 8, 2023
commit d8cfb20beaf4191f0f32510efc46461930b9667b
45 changes: 22 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,29 +64,28 @@ Do checkout the Go package which I've written to build Kalam Kernel: [github.com

### Keyboard Shortcuts

| Command | Keyboard Shortcut |
| ------------------------------------------------- | ---------------------------------------------------- |
| Delete | <kbd>backspace</kbd> |
| New Folder | <kbd>command (⌘)</kbd>+<kbd>n</kbd> |
| Copy | <kbd>command (⌘)</kbd>+<kbd>c</kbd> |
| Copy to Queue | <kbd>command (⌘)</kbd>+<kbd>shift</kbd>+<kbd>c</kbd> |
| Paste | <kbd>command (⌘)</kbd>+<kbd>v</kbd> |
| Refresh | <kbd>command (⌘)</kbd> +<kbd>r</kbd> |
| Folder Up | <kbd>command (⌘)</kbd>+<kbd>b</kbd> |
| Select All | <kbd>command (⌘)</kbd>+<kbd>a</kbd> |
| Rename | <kbd>command (⌘)</kbd>+<kbd>d</kbd> |
| Switch Tab | <kbd>command(⌘)</kbd>+<kbd>1</kbd> |
| Open | <kbd>enter</kbd> |
| Navigate Left | <kbd>left</kbd> |
| Navigate Right | <kbd>right</kbd> |
| Navigate Up | <kbd>up</kbd> |
| Navigate Down | <kbd>down</kbd> |
| Select Multiple Files Forward **(in Grid View)** | <kbd>shift</kbd>+<kbd>left</kbd> |
| Select Multiple Files Backward **(in Grid View)** | <kbd>shift</kbd>+<kbd>right</kbd> |
| Select Multiple Files Forward **(in List View)** | <kbd>shift</kbd>+<kbd>up</kbd> |
| Select Multiple Files Backward **(in List View)** | <kbd>shift</kbd>+<kbd>down</kbd> |
| Select Range of Files **(using mouse)** | <kbd>shift</kbd>+<kbd>click</kbd> |
| Select Multiple Files **(using mouse)** | <kbd>command (⌘)</kbd>+<kbd>click</kbd> |
| Command | Keyboard Shortcut |
| ------------------------------------------------- | ---------------------------------------------------------------------------- |
| Delete | <kbd>backspace</kbd> |
| New Folder | <kbd>command (⌘)</kbd>+<kbd>n</kbd> |
| Copy | <kbd>command (⌘)</kbd>+<kbd>c</kbd> |
| Copy to Queue | <kbd>command (⌘)</kbd>+<kbd>shift</kbd>+<kbd>c</kbd> |
| Paste | <kbd>command (⌘)</kbd>+<kbd>v</kbd> |
| Refresh | <kbd>command (⌘)</kbd> +<kbd>r</kbd> |
| Folder Up | <kbd>command (⌘)</kbd>+<kbd>b</kbd> |
| Select All | <kbd>command (⌘)</kbd>+<kbd>a</kbd> |
| Rename | <kbd>command (⌘)</kbd>+<kbd>d</kbd> |
| Switch Tab | <kbd>command(⌘)</kbd>+<kbd>1</kbd> |
| Open | <kbd>enter</kbd> |
| Navigate Left | <kbd>left</kbd> |
| Navigate Right | <kbd>right</kbd> |
| Navigate Up | <kbd>up</kbd> |
| Navigate Down | <kbd>down</kbd> |
| Select Multiple Items Forward **(in Grid View)** | <kbd>shift</kbd>+<kbd>left</kbd> |
| Select Multiple Items Backward **(in Grid View)** | <kbd>shift</kbd>+<kbd>right</kbd> |
| Select Multiple Items Forward **(in List View)** | <kbd>shift</kbd>+<kbd>up</kbd> |
| Select Multiple Items Backward **(in List View)** | <kbd>shift</kbd>+<kbd>down</kbd> |
| Select Multiple Items **(with mouse)** | <kbd>command (⌘)</kbd>+<kbd>click</kbd> or <kbd>shift</kbd>+<kbd>click</kbd> |

## Building from Source

Expand Down
16 changes: 6 additions & 10 deletions app/constants/keymaps.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,27 +63,23 @@ export const fileExplorerKeymaps = {
keys: ['down'],
},
multipleSelectLeft: {
label: `Select Multiple Files Forward (for Grid view)`,
label: `Select Multiple Items Forward (for Grid view)`,
keys: ['shift+left'],
},
multipleSelectRight: {
label: `Select Multiple Files Backward (for Grid view)`,
label: `Select Multiple Items Backward (for Grid view)`,
keys: ['shift+right'],
},
multipleSelectUp: {
label: `Select Multiple Files Forward (for List view)`,
label: `Select Multiple Items Forward (for List view)`,
keys: ['shift+up'],
},
multipleSelectDown: {
label: `Select Multiple Files Backward (for List view)`,
label: `Select Multiple Items Backward (for List view)`,
keys: ['shift+down'],
},
multipleRangeSelectClick: {
label: `Select Range of Files (using mouse)`,
keys: ['shift+click'],
},
multipleSelectClick: {
label: `Select Multiple Files (using mouse)`,
keys: ['command+click'],
label: `Select Multiple Items (using mouse)`,
keys: ['command+click', 'shift+click'],
},
};
131 changes: 27 additions & 104 deletions app/containers/HomePage/components/FileExplorer.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,6 @@ class FileExplorer extends Component {

this.keyedAcceleratorList = {
shift: false,
meta: false,
};

this.usbHotplug = {
Expand Down Expand Up @@ -512,25 +511,18 @@ class FileExplorer extends Component {
return;
}

if (event.type === 'keydown') {
if (['shift'].includes(event.key.toLowerCase())) {
switch (event.key) {
case 'Shift':
case 'shift':
case 'Meta':
case 'meta':
this.keyedAcceleratorList = {
...this.keyedAcceleratorList,
shift: true,
shift: pressed,
};
}

if (['meta'].includes(event.key.toLowerCase())) {
this.keyedAcceleratorList = {
...this.keyedAcceleratorList,
meta: true,
};
}
} else {
this.keyedAcceleratorList = {
shift: false,
meta: false,
};
break;
default:
break;
}
};

Expand Down Expand Up @@ -583,13 +575,13 @@ class FileExplorer extends Component {
item: [],
};

for (const [index, item] of nodes.entries()) {
nodes.filter((item, index) => {
if (
undefinedOrNull(selected) ||
!isArray(selected) ||
selected.length < 1
) {
return _return;
return null;
}

for (let i = 0; i < selected.length; i += 1) {
Expand All @@ -608,12 +600,12 @@ class FileExplorer extends Component {
index,
item,
};

return _return;
}
}
}
}

return _return;
});

return _return;
};
Expand Down Expand Up @@ -1861,98 +1853,29 @@ class FileExplorer extends Component {

const { directoryLists, actionCreateTableClick } = this.props;
const { selected } = directoryLists[deviceType].queue;
const { nodes, order, orderBy } = directoryLists[deviceType];
const selectedIndex = selected.indexOf(path);
let _dontAppend = dontAppend;
let newSelected = [];

if (
shiftKeyAcceleratorEnable &&
(this.keyedAcceleratorList.shift || this.keyedAcceleratorList.meta)
) {
if (shiftKeyAcceleratorEnable && this.keyedAcceleratorList.shift) {
_dontAppend = false;
}

const selectionToggle = () => {
const itemIndexInPreviousSelectedList = selected.indexOf(path);
let _newSelected = [];

// if the file path was already selected we fetch it's `selectedIndex` and then try to unselect it
if (itemIndexInPreviousSelectedList === -1) {
_newSelected = _newSelected.concat(selected, path);
} else if (itemIndexInPreviousSelectedList === 0) {
_newSelected = _newSelected.concat(selected.slice(1));
} else if (itemIndexInPreviousSelectedList === selected.length - 1) {
_newSelected = _newSelected.concat(selected.slice(0, -1));
} else if (itemIndexInPreviousSelectedList > 0) {
_newSelected = _newSelected.concat(
selected.slice(0, itemIndexInPreviousSelectedList),
selected.slice(itemIndexInPreviousSelectedList + 1)
);
}

return _newSelected;
};

if (_dontAppend) {
newSelected = [path];
} else {
// eslint-disable-next-line no-lonely-if
if (this.keyedAcceleratorList.shift) {
let selectedItemIndexInNodes = 0;

const tableSortedNodes = this.tableSort({
nodes,
order,
orderBy,
});

const _lastSelectedNodeOfTableSort = this.lastSelectedNodeOfTableSort(
tableSortedNodes,
selected
);

for (const [index, node] of tableSortedNodes.entries()) {
if (node.path === path) {
selectedItemIndexInNodes = index;

break;
}
}

let nodesBetweenLastSelectedNodeAndCurrentSelection = [];

if (selectedItemIndexInNodes === _lastSelectedNodeOfTableSort.index) {
newSelected = selectionToggle();
} else {
if (selectedItemIndexInNodes > _lastSelectedNodeOfTableSort.index) {
nodesBetweenLastSelectedNodeAndCurrentSelection =
tableSortedNodes.slice(
_lastSelectedNodeOfTableSort.index + 1,
selectedItemIndexInNodes + 1
);
} else if (
selectedItemIndexInNodes < _lastSelectedNodeOfTableSort.index
) {
nodesBetweenLastSelectedNodeAndCurrentSelection =
tableSortedNodes.slice(
selectedItemIndexInNodes,
_lastSelectedNodeOfTableSort.index + 1
);
}

newSelected = selected.concat(
...nodesBetweenLastSelectedNodeAndCurrentSelection.map(
(a) => a.path
)
);
}
} else {
newSelected = selectionToggle();
}
} else if (selectedIndex === -1) {
newSelected = newSelected.concat(selected, path);
} else if (selectedIndex === 0) {
newSelected = newSelected.concat(selected.slice(1));
} else if (selectedIndex === selected.length - 1) {
newSelected = newSelected.concat(selected.slice(0, -1));
} else if (selectedIndex > 0) {
newSelected = newSelected.concat(
selected.slice(0, selectedIndex),
selected.slice(selectedIndex + 1)
);
}

newSelected = [...new Set(newSelected)];

actionCreateTableClick({ selected: newSelected }, deviceType);
};

Expand Down
8 changes: 0 additions & 8 deletions app/containers/Onboarding/components/WhatsNew.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import ListItem from '@material-ui/core/ListItem';
import ListItemIcon from '@material-ui/core/ListItemIcon';
import ListItemText from '@material-ui/core/ListItemText';
import BuildIcon from '@material-ui/icons/Build';
import KeyboardIcon from '@material-ui/icons/Keyboard';
import SmartphoneIcon from '@material-ui/icons/Smartphone';
import CameraRollIcon from '@material-ui/icons/CameraRoll';
import MemoryIcon from '@material-ui/icons/Memory';
Expand Down Expand Up @@ -67,13 +66,6 @@ class WhatsNew extends PureComponent {
<ListItemText primary={`Fujifilm device support`} />
</ListItem>

<ListItem>
<ListItemIcon>
<KeyboardIcon />
</ListItemIcon>
<ListItemText primary="Shortcut improvements: Select a range of files using shift+click" />
</ListItem>

<ListItem>
<ListItemIcon>
<BuildIcon />
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "openmtp",
"productName": "OpenMTP",
"version": "3.2.11",
"version": "3.2.10",
"description": "OpenMTP | Android File Transfer for macOS",
"scripts": {
"build": "yarn lint && concurrently \"yarn build-main\" \"yarn build-renderer\"",
Expand Down