diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/pyfm b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/pyfm new file mode 100755 index 0000000..6f0e2eb --- /dev/null +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/pyfm @@ -0,0 +1,18 @@ +#!/bin/bash + +# . CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + SCRIPTPATH="$( cd "$(dirname "")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + source "/home/abaddon/Portable_Apps/py-venvs/flask-apps-venv/venv/bin/activate" + python . +} +main "$@"; diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/#Main_Window.glade# b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/#Main_Window.glade# index 17d0a5e..0a41cde 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/#Main_Window.glade# +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/#Main_Window.glade# @@ -429,7 +429,11 @@ True - + + True + True + 6 + diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py index 8b94abe..a8a4200 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py @@ -36,6 +36,9 @@ class Signals(PaneMixin, WindowMixin): self.window3 = self.builder.get_object("window3") self.window4 = self.builder.get_object("window4") self.notebooks = [self.window1, self.window2, self.window3, self.window4] + self.selected_files = [] + self.to_copy_files = [] + self.to_cut_files = [] self.single_click_open = False self.is_pane1_hidden = False @@ -122,9 +125,13 @@ class Signals(PaneMixin, WindowMixin): if self.ctrlDown and keyname == "h": self.show_hide_hidden_files() if self.ctrlDown and keyname == "c": - self.copy_file() + self.to_cut_files.clear() + self.copy_files() + if self.ctrlDown and keyname == "x": + self.to_copy_files.clear() + self.cut_files() if self.ctrlDown and keyname == "v": - print("[paste] stub...") + self.paste_files() def tear_down(self, widget=None, eve=None): diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/TabMixin.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/TabMixin.py index 02f8650..f26fbf9 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/TabMixin.py +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/TabMixin.py @@ -44,6 +44,7 @@ class TabMixin(WidgetMixin): self.set_window_title() def on_tab_switch_update(self, notebook, content=None, index=None): + self.selected_files.clear() wid, tid = content.get_children()[0].get_name().split("|") self.window_controller.set_active_data(wid, tid) self.set_path_text(wid, tid) @@ -111,17 +112,6 @@ class TabMixin(WidgetMixin): self.builder.get_object("refresh_view").released() - def get_uris(self, store, treePaths=None): - uris = [] - - for path in treePaths: - itr = store.get_iter(path) - file = store.get(itr, 1)[0] - fpath = f"file://{dir}/{file}" - uris.append(fpath) - - return uris - def create_file(self): pass @@ -142,28 +132,22 @@ class TabMixin(WidgetMixin): def menu_bar_copy(self, widget, eve): self.copy_file() - def copy_file(self): + def copy_files(self): wid, tid = self.window_controller.get_active_data() - print(wid) - print(tid) - notebook = self.builder.get_object(f"window_{wid}") - iconview = self.get_tab_iconview_from_notebook(notebook) - print(iconview) + iconview = self.builder.get_object(f"{wid}|{tid}|iconview") store = iconview.get_model() - treePaths = iconview.get_selected_items() + uris = self.format_to_uris(store, wid, tid, self.selected_files) + self.to_copy_files = uris - print(len(treePaths)) - for path in treePaths: - itr = store.get_iter(path) - file = store.get(itr, 1)[0] - print(file) + def cut_files(self): + wid, tid = self.window_controller.get_active_data() + iconview = self.builder.get_object(f"{wid}|{tid}|iconview") + store = iconview.get_model() + uris = self.format_to_uris(store, wid, tid, self.selected_files) + self.to_cut_files = uris - # uris = self.get_uris(store, treePaths) - # print(uris) - - - def cut_file(self): - pass - - def paste_file(self): - pass + def paste_files(self): + if len(self.to_copy_files): + pass + else: + pass diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetMixin.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetMixin.py index 8c0f0ac..c3eb597 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetMixin.py +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetMixin.py @@ -126,6 +126,7 @@ class WidgetMixin: grid.connect("button_release_event", self.grid_icon_single_left_click) grid.connect("item-activated", self.grid_icon_double_left_click) + grid.connect("selection-changed", self.grid_set_selected_items) grid.connect("drag-data-get", self.grid_on_drag_set) grid.connect("drag-data-received", self.grid_on_drag_data_received) grid.connect("drag-motion", self.grid_on_drag_motion) @@ -140,6 +141,7 @@ class WidgetMixin: grid.show_all() scroll.add(grid) grid.set_name(f"{wid}|{view.id}") + self.builder.expose_object(f"{wid}|{view.id}|iconview", grid) self.builder.expose_object(f"{wid}|{view.id}", scroll) return scroll, store diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WindowMixin.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WindowMixin.py index 3331f5f..a1f88e4 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WindowMixin.py +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WindowMixin.py @@ -20,6 +20,19 @@ class WindowMixin(TabMixin): def get_fm_window(self, wid): return self.window_controller.get_window_by_nickname(f"window_{wid}") + def format_to_uris(self, store, wid, tid, treePaths): + view = self.get_fm_window(wid).get_view_by_id(tid) + dir = view.get_current_directory() + uris = [] + + for path in treePaths: + itr = store.get_iter(path) + file = store.get(itr, 1)[0] + fpath = f"file://{dir}/{file}" + uris.append(fpath) + + return uris + def set_window_title(self): wid, tid = self.window_controller.get_active_data() view = self.get_fm_window(wid).get_view_by_id(tid) @@ -31,6 +44,9 @@ class WindowMixin(TabMixin): view = self.get_fm_window(wid).get_view_by_id(tid) path_entry.set_text(view.get_current_directory()) + def grid_set_selected_items(self, iconview): + self.selected_files = iconview.get_selected_items() + def grid_icon_single_left_click(self, iconview, eve): try: wid, tid = iconview.get_name().split("|") @@ -105,18 +121,10 @@ class WindowMixin(TabMixin): def grid_on_drag_set(self, iconview, drag_context, data, info, time): action = iconview.get_name() + wid, tid = action.split("|") store = iconview.get_model() treePaths = iconview.get_selected_items() - wid, tid = action.split("|") - view = self.get_fm_window(wid).get_view_by_id(tid) - dir = view.get_current_directory() - uris = [] - - for path in treePaths: - itr = store.get_iter(path) - file = store.get(itr, 1)[0] - fpath = f"file://{dir}/{file}" - uris.append(fpath) + uris = self.format_to_uris(store, wid, tid, treePaths) data.set_uris(uris) event_system.push_gui_event(["refresh_tab", None, action])