Commit Graph

201 Commits

Author SHA1 Message Date
antifallobst dd3c765ea2
Refactor(Commands): Moved high level command execution function out of app struct.
This refactor was done to prevent borrow checker issues, with the lua bindings
2023-07-13 23:40:17 +02:00
antifallobst 529b869e80
Feat(Commands): Started actual implementation of commands
List of added commands:
  - Exit
  - CommandLineShow
  - CommandLineHide
  - CyclePlanes
  - CyclePlanesRev
  - RoomMessageSend
2023-07-13 23:17:35 +02:00
antifallobst 33948164c4
Merge: command-backend -> master 2023-07-13 18:41:08 +02:00
Benedikt Peetz 327450c64b
Feat(command_interface): Add basic lua support 2023-07-12 21:48:51 +02:00
Benedikt Peetz ef5afcda02
Refactor(events): Split up event handling into multiple files 2023-07-12 21:35:46 +02:00
antifallobst 05d4b4d097
Docs(Commands): Documented the command system 2023-07-10 23:36:54 +02:00
antifallobst b0c09f9c65
Feat(CommandBackend): Implemented the basic structure of the command handling backend 2023-07-10 22:58:07 +02:00
antifallobst a30229b763
Fix(treewide): Replaced needless expect statements 2023-07-10 22:10:54 +02:00
antifallobst ce59c504bd
Fix(UI): Removed unneeded mut statements 2023-07-10 21:28:37 +02:00
Benedikt Peetz 20be391b9e
Style(treewide): Remove unneeded imports 2023-07-10 21:02:01 +02:00
antifallobst 200b9143b3
feature (ui): added a cli panel to contoll the UI similar to what you have when hitting colon in vim 2023-07-10 00:10:51 +02:00
antifallobst 8d6e7c976e
feature (ui): implemented reverse plane cycling using <Shift>+<Tab> as requested in #5 2023-07-09 23:04:59 +02:00
antifallobst 7347d0c4f1
refactor (events): switched back from tui_textarea input events to raw crossterm events 2023-07-09 22:51:57 +02:00
antifallobst 1fa35adae7
fix (ui): fixed rooms scroll out of bounds error and added more detail to 'not supported message like event' view in timeline 2023-07-09 22:05:48 +02:00
antifallobst 3920a3e600 merge (pr): accepted rustfmt pr 2023-07-09 14:47:50 +00:00
Benedikt Peetz 1c43626fad
Build(Cargo): Update `Cargo.lock` and upgrade `Cargo.toml` 2023-07-09 10:09:53 +02:00
Benedikt Peetz a9f72e34e6
Build(cargo): Remove wildcard version specification in `Cargo.toml`
Wildcard version is comparable to selecting a version depending on
the result of a dice roll. What I mean with this is, that the version
will be selected based on what the specific user already has in their
cargo registry. This means that the same codebase will compile
wonderfully on one machine but will fail with weird errors like:
`the trait 'From<crossterm::event::Event>' is not implemented for 'Input'`
on an other one.

Additionally crates.io does not accept crates with a bare wildcard
version requirement for aforementioned reasons.

Lastly using direct versions requirement allows to use `cargo upgrade`
to automatically update these requirements to their highest possible
value, as determined by SemVer. This works especially well, when adding
new dependencies with `cargo add`, as this also adds a direct version
requirement.
2023-07-09 10:09:52 +02:00
Benedikt Peetz 35225a14db
Style(treewide): Format all files with rustfmt 2023-07-09 10:09:50 +02:00
antifallobst 196641959e Add nix flake (#6)
merge (nix): Add nix flake (#6)
2023-07-09 06:30:41 +00:00
Benedikt Peetz 74be1c2506
Build(flake): Also add the openssl dependencies to the devShell 2023-07-09 07:53:15 +02:00
Benedikt Peetz cc602b25ce
Build(flake): Enable direnv integration
[Direnv](1) in combination with some sort of [Nix integration](2)
— in this case [Nix-direnv](3) — allows for reproducible development
environments (and allows uncluttering the default PATH, as cargo and
other development tools are no longer needed in it).

Setting it up is rather easy, just see [Nix-direnv's install
instructions](4).

[1]: https://github.com/direnv/direnv
[2]: https://github.com/direnv/direnv/wiki/Nix
[3]: https://github.com/nix-community/nix-direnv
[4]: https://github.com/nix-community/nix-direnv#installation
2023-07-09 07:28:40 +02:00
Benedikt Peetz f768d214da
Build(flake): Initialize the flake
A nix flake is a reproducible way to describe the building process
to [nix](1).
See [the nix download page](1), on how to install nix. Afterwards
running `nix build` in the repository will result in a successful build.

Flakes and nix-commands are still experimental so they must be enabled
as described in [the corresponding wiki entry](2)

[1]: https://nixos.org/download.html#nix
[2]: https://nixos.wiki/wiki/Flakes#Enable_flakes.
2023-07-09 07:28:19 +02:00
antifallobst 5611d8e385 feature (ui - room info): added basic infos (name & encryption status) to the main ui's 'room info' panel 2023-07-08 23:37:10 +02:00
antifallobst 98f7e806de feature: (room timeline): Changed timeline view to a scrollable list / Made single messages/events selectable / Implemented Message sending 2023-07-08 23:09:53 +02:00
antifallobst 658f05b8d3 feature (ui - rooms / events): implemented a rooms list area in the UI and live timeline updates on room timeline sync events 2023-07-08 14:45:08 +02:00
antifallobst f8bf6ee07d feature (status - rooms): Implemented a timeline event caching layer 2023-07-07 00:52:16 +02:00
antifallobst 1eb04dd23a feature (UI - main): started work on timeline view implementation 2023-07-06 20:47:06 +02:00
antifallobst a7e11c6ac0 fix (status): updating status from 'app.init_account()' 2023-07-06 17:34:55 +02:00
antifallobst b1c0007098 feature (events): added a matrix event listener that writes to the global event stream 2023-07-06 15:13:41 +02:00
antifallobst dfc87ff937 refactor (architecture): implemented an event based architecture 2023-07-04 18:32:57 +02:00
antifallobst 6ba8d3dbf0 docs (architecture): Added codebase architecture diagram 2023-07-01 22:54:20 +02:00
antifallobst 9fbf112baa refactor (logger): switched to cli_log 2023-07-01 12:44:11 +02:00
antifallobst 7bd1990eb3 feature (logging): added a logging backend and spreaded a few info log calls over the codebase 2023-06-29 20:17:54 +02:00
antifallobst 7a3bb91ba4 feature (UI - main): built a simple not yet very efficient rendering infrastructure that is capable of cycling through the planes 2023-06-29 16:33:40 +02:00
antifallobst af7c79ac75 feature (UI): made message compose in main ui a TextArea 2023-06-29 15:13:11 +02:00
antifallobst 82bd751ac8 fix (UI): fixed a bug that caused a panic when cancelling a login process. 2023-06-29 13:30:45 +02:00
antifallobst aee5b77722 feature (UI): added sample text to homeserver input field in login screen 2023-06-29 13:29:18 +02:00
antifallobst 124406e475 feature (UI): hiding password in login screen 2023-06-29 13:20:38 +02:00
antifallobst 2c894e895e feature (UI): implemented a login screen 2023-06-29 12:36:16 +02:00
antifallobst 3a88ca38a0 feature (UI): implemented status block 2023-06-23 16:07:18 +02:00
antifallobst 5afb82a7b4 fix (app): fixed something, that somehow didn't merge right 2023-06-23 06:06:49 +02:00
antifallobst e17a96d34d Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/app/mod.rs
#	src/main.rs
2023-06-23 06:00:22 +02:00
antifallobst 6e31c3e7c4 feature (UI): implemented the main UI 2023-06-23 05:41:26 +02:00
antifallobst c5742e66f4 fix (accounts): caching clients to fix the 'Session IDs were already set' bug 2023-06-18 12:47:15 +02:00
antifallobst a3cb8b8e20 feature (accounts): implemented an account manager 2023-06-16 00:15:07 +02:00
antifallobst 30e1f4cd6b feature (accounts): implemented session restoring 2023-06-15 21:57:43 +02:00
antifallobst e776d8a631 feature (accounts): implemented login with username and password 2023-06-15 19:19:24 +02:00
antifallobst 4b9d06651b fix (logo): made logo 1:1 2023-06-15 12:16:36 +02:00
antifallobst 9f16e8ebf0 feature (logo): designed a placeholder logo 2023-06-15 01:10:30 +02:00
antifallobst 9253966139 docs: added initial docs (README, LICENSE, commit message style) 2023-06-15 00:10:05 +02:00