Commit Graph

104 Commits

Author SHA1 Message Date
Evan Simkowitz
ec4f6c01de
Create workspace will always create a saved workspace (#1509)
Also moves icon and color definitions to the backend and makes it so the
new workspaces get created with a different icon color for each index.

If an ephemeral window has more than one tab, always create a new window
when switching workspaces

Also fixes workspace accelerators on macOS
2024-12-12 17:21:09 -08:00
Evan Simkowitz
9ce0093751
Fix errors in loading of help view (#1501)
When clicking on one of the cards from the home page of the docsite and
when initially loading the home page of the docsite, the webviewTag was
emitting a `did-frame-navigate` event, which we weren't tracking. This
meant that we were not properly recording that a navigation had
occurred. This caused three separate issues:

- We were never setting the meta url for the block, which meant that
when you navigated to a different tab or reloaded the app, you'd lose
what page you were last on.
- The site would reload after we fixed a broken docsite url, but we
wouldn't remove the error text that blocks the broken site.
- Clicking on the "open in external browser" button wouldn't do
anything.
2024-12-11 16:09:47 -08:00
Evan Simkowitz
1d74e56c26
Add license identifiers to my changes (#1475) 2024-12-10 15:18:14 -08:00
Evan Simkowitz
6a3f72830b
Was accidentally bootstrapping new layout twice (#1441) 2024-12-09 15:11:02 -08:00
Mike Sawka
878a7285ab
implement tab:preset, and increase active tab opacity (#1439) 2024-12-09 14:48:16 -08:00
Evan Simkowitz
c5501a5335
Move wlayout to wcore, create new tab layout for all new tabs (#1437)
Moves the wlayout package contents to wcore to prevent import cycles.
Moves the layout calls to other wcore functions instead of being handled
by the services. Removes redundant CreateTab in EnsureInitialData and
adds a isInitialLaunch flag to the CreateTab and CreateWorkspace
functions to ensure that the initial tab is pinned and does not have the
initial tab layout (since the starter layout gets applied later)
2024-12-09 14:24:02 -08:00
Evan Simkowitz
72ea58267d
Workspace app menu (#1423)
Adds a new app menu for creating a new workspace or switching to an
existing one. This required adding a new WPS event any time a workspace
gets updated, since the Electron app menus are static.

This also fixes a bug where closing a workspace could delete it if it
didn't have both a pinned and an unpinned tab.
2024-12-06 15:33:00 -08:00
Mike Sawka
00e3c4ec75
fix bcstart -- don't allow two controllers to start simultaneously (#1418) 2024-12-06 11:08:51 -08:00
Evan Simkowitz
aa77b2c259
Pinned tabs (#1375)
![image](https://github.com/user-attachments/assets/a4072368-b204-4eed-bb65-8e3884687f9a)

This functions very similarly to VSCode's pinned tab feature. To pin a
tab, you can right-click on it and select "Pin tab" from the context
menu. Once pinned, a tab will be fixed to the left-most edge of the tab
bar, in order of pinning. Pinned tabs can be dragged around like any
others. If you drag an unpinned tab into the pinned tabs section (any
index less than the highest-index pinned tab), it will be pinned. If you
drag a pinned tab out of the pinned tab section, it will be unpinned.
Pinned tabs' close button is replaced with a persistent pin button,
which can be clicked to unpin them. This adds an extra barrier to
accidentally closing a pinned tab. They can still be closed from the
context menu.
2024-12-04 13:34:22 -08:00
Evan Simkowitz
a72d3e5c7a
Add recursive flag to prevent unwanted deletion of parents while they're already being deleted (#1378)
When a tab was being deleted, for instance, the last block that got
deleted would cascade to delete its parent tab, even though the
`DeleteTab` function was already going to do this. This would produce DB
collisions that would put the app into a bad state. Now we pass a
`recursive` flag that is used to determine whether to perform the
recursive close of the parents.

Also updates `DeleteWorkspace` so that named workspaces will always be
deleted if they're empty, even if `force` is false
2024-12-03 18:39:06 -08:00
Evan Simkowitz
90e31dfa48
Delete a tab when it's out of blocks, cascade to window (#1374)
Updates `DeleteBlock` to close its parent tab if the tab has no more
blocks. This will also cascade to close the workspace if it no longer
has any tabs, same for window.

I had to move some block-related functionality around on the backend.
2024-12-03 09:38:46 -08:00
Evan Simkowitz
04c4f0a203
Create and rename files and dirs in dirpreview (#1156)
New context menu options are available in the directory preview to
create and rename files and directories

It's missing three pieces of functionality, none of which are a
regression:
- Editing or creating an entry does not update the focused index. Focus
index right now is pretty dumb, it doesn't factor in the column sorting
so if you change that, the selected item will change to whatever is now
at that index. We should update this so we use the actual file name to
determine which element to focus and let the table determine which index
to then highlight given the current sorting algo
- Open in native preview should not be an option on remote connections
with the exception of WSL, where it should resolve the file in the
Windows filesystem, rather than the WSL one
- We should catch CRUD errors in the dir preview and display a popup
2024-12-02 22:23:44 -08:00
Evan Simkowitz
0ec60f5a7b
Fix switch workspace (#1370) 2024-12-02 14:52:34 -08:00
Evan Simkowitz
f368a61c70
Fix close active tab behavior (#1367)
This fixes a bug where closing the active tab would clean up the closed
tab view before switching to an un-closed tab view, putting the window
into an unrecoverable state. This also moves around some of the CloseTab
logic so that it's more standardized and reduces unnecessary
frontend-backend comms and DB writes
2024-12-02 12:59:03 -08:00
Evan Simkowitz
82f53dc1fb
Workspaces are back! (#1282) 2024-12-02 10:56:56 -08:00
Mike Sawka
360964d4ba
panic handlers everywhere (#1327) 2024-11-20 18:05:13 -08:00
Mike Sawka
701d93884d
vdom 4 (#1110) 2024-10-23 22:47:29 -07:00
Sylvie Crowe
8248637e00
WSL Integration (#1031)
Adds support for connecting to local WSL installations on Windows.

(also adds wshrpcmmultiproxy / connserver router)
2024-10-23 22:43:17 -07:00
Mike Sawka
fa160313ea
resize terminal on restoring state (#1100) 2024-10-22 12:50:44 -07:00
Mike Sawka
c1c90bb4f8
browser view (#1005) 2024-10-17 14:34:02 -07:00
Mike Sawka
3d2d68bc73
fix initial size of windows (#1011) 2024-10-10 16:12:56 -07:00
Evan Simkowitz
df57896e2b
Dispose of the window DB entry when no tabs are left (#866)
Fixes issue where closing the last tab in the last window would cause
app to show a blank window the next time it opens. Instead, we should
dispose of the window so that it can be created from scratch the next
time the app launches.

Also fixes a potential DB resource leak from dead windows cluttering up
the DB
2024-09-26 12:48:40 -07:00
sawka
91a85e06c8 make no-telemetry request async 2024-09-23 20:47:39 -07:00
Mike Sawka
62cc9d8a6b
telemetry fix, log no-telemetry (#802) 2024-09-23 13:33:39 -07:00
Evan Simkowitz
4bfb96b001
Add a new terminal to the default tab in a new window (#368) 2024-09-11 17:39:08 -07:00
sawka
05306e36d1 fix default settings (telemetry), and stop block controllers in a background thread. 2024-09-05 16:36:24 -07:00
Mike Sawka
8ad84fd78a
update all gopkg imports (#330) 2024-09-05 14:25:45 -07:00
Mike Sawka
3e0ca6b41e
connection handling / block controller handling (#326) 2024-09-05 00:21:08 -07:00
Sylvie Crowe
226bc4ee6f
Connect With Non-Terminal Widgets (#304)
- Adds connection buttons for previews
- Makes it possible for graphs and previews to connect on backend
(without a terminal open to connection)
- Changes the wsh install message
2024-09-02 12:34:49 -07:00
Evan Simkowitz
fb65ec1e23
Explicitly set focus on insert (#285)
Adds a flag to the insert layout action to explicitly set the focus of a
newly inserted node. This also adds a flag in the starter layout to
focus on the terminal block.
2024-08-27 23:16:07 -07:00
Mike Sawka
8630e23239
new config system (#283) 2024-08-27 18:49:49 -07:00
Evan Simkowitz
c9c555452a
Establish wlayout for coordinating backend layout actions (#282) 2024-08-27 18:38:57 -07:00
Mike Sawka
f28bdccb5d
move CreateX functions to wcore (#275) 2024-08-26 15:17:37 -07:00
Sylvie Crowe
636d71e652
Change Connection UI (#269)
This allows the user to select different connections from the terminal
block. Some features include:
- a status bar at the top of the term block that shows your current
connection
- an icon next to the status bar that shows whether the connection is
currently connected
- the ability to click the status bar and type in a new connection in
order to change the current connection

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-08-23 18:12:40 -07:00
Mike Sawka
037497e7f1
wsh edit working (#252) 2024-08-20 14:56:48 -07:00
Mike Sawka
8651659c02
get remote preview working (#246)
almost all there -- just need to fix streamfile for web urls.
2024-08-19 11:02:40 -07:00
Mike Sawka
a451743937
POC showing how statfile can call the conn wshclient to get file info (#242) 2024-08-16 18:45:45 -07:00
Mike Sawka
c4a0e85d32
update wsh code for easier creation of client servers (for readfile/readdir/fileinfo) (#218) 2024-08-12 10:58:39 -07:00
sawka
49a365e10b remove video, make initial window larger to fill the screen 2024-08-01 00:52:15 -07:00
Sylvie Crowe
c5707de2fd
Fixes For the Demo (#190) 2024-07-31 23:50:38 -07:00
Evan Simkowitz
74e86ef0cc
Bootstrap layout on first launch (#186) 2024-07-31 21:27:46 -07:00
sawka
d7712da862 fix deletewindow 2024-07-31 18:02:36 -07:00
Red J Adaya
3ff03f7b34
setting of active tab improvements (#166) 2024-07-31 12:49:20 -07:00
Mike Sawka
cfc875bc21
metadata updates (frontend typing) (#174) 2024-07-30 12:33:28 -07:00
Red J Adaya
9233b3dbd7
modals component and model and TOS modal (#164)
Co-authored-by: Sylvia Crowe <software@oneirocosm.com>
Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-30 11:44:19 -07:00
Sylvie Crowe
923850313f
AI Fixes (#173)
Fixing a few AI-related bugs
2024-07-29 22:35:21 -07:00
Red J Adaya
2fea8e0a68
directory preview fixes (#130)
- Set all cols of navigation row(first row) to - except the first col
- Fixed the issue where it scrolls right on load or when you click back
from the file preview
- Use OverlayScrollbars
2024-07-25 21:14:21 -07:00
Evan Simkowitz
21e5e94db4
Remove unnecessary var declaration in WindowService (#133) 2024-07-22 16:43:18 -07:00
Evan Simkowitz
b2ee164b85
Close a window automatically when the last tab is closed (#131) 2024-07-22 16:39:45 -07:00
Evan Simkowitz
c47e17903d
Add auto updater configuration (#122)
Adds a new set of configurations for managing whether the app will
automatically check for updates. Ports over the auto update code from
the old app. In this version, the main difference is that updates can be
manually checked for using a menu bar item, even if auto updates are
disabled.
2024-07-18 16:55:04 -07:00