11af6e530e
gui: sandbox: Add 'error' to vow_promises to avoid getting killed on ioctl() with TIOCSTI
2022-06-04 17:09:26 +02:00
1108a138f4
gui: mainwindow: Also resize mtime column to fit content
2022-06-04 17:09:26 +02:00
aeafa9560e
mainwindow: Disable page switcher while generation is running
...
This prevents 'spam'. User may have scrolled 10 pages forward, while
we are still generating old pages. Then the user wonders why
they arrive so late.
So disable switching pages while the generation is still running
It is unlikely that a user will have to quickly go through search
results like that.
2022-05-29 11:20:28 +02:00
a82818dc43
gui: init previewProcessBar with 0 on start
2022-05-29 11:20:28 +02:00
c867652b6f
gui: IPCPreviewWorker(): Don't allocate mapfunctor on heap
2022-05-29 11:20:28 +02:00
f8fe21d50b
gui: Add label showing total number of preview pages
2022-05-29 11:20:28 +02:00
1e97f8dd26
gui: mainwindow: Fix preview page number calculation
...
The paging now works on the actual pages to be rendered.
2022-05-29 11:20:28 +02:00
ad0fc74439
ipc: Place socket in /tmp/.looqs/, remove ipc path settings
2022-05-29 11:20:28 +02:00
e44fb1a942
gui: main: Enable exile.h for IPC preview generation
2022-05-29 11:20:28 +02:00
472661bff6
gui: Begin simple IPC error reporting
2022-05-29 11:20:28 +02:00
4aa6d43674
gui: Open files/previews directly without IPC again
...
Since the main GUI process is not sandboxed again
2022-05-29 11:20:28 +02:00
2591a4ccba
gui: ipc: Support cancellation of preview generation
2022-05-29 11:20:28 +02:00
d66e395fda
gui: main: Kill IPCServer process on exit
2022-05-29 11:20:28 +02:00
0d6fb1d482
gui: mainwindow: Use new IPCPreviewClient
2022-05-29 11:20:28 +02:00
8f2e77b152
gui: Introduce IPCPreviewClient
2022-05-29 10:44:19 +02:00
3bdcb76d8e
gui: PreviewResult: Add serialization() methods for IPC
2022-05-27 09:29:28 +02:00
ee18142e36
gui: PreviewGenerator*: Wrap PreviewResult in QSharedPointer
2022-05-27 09:28:21 +02:00
3e03fed1a2
gui: IpcServer: Use IPCPreviewWorker
2022-05-27 09:26:37 +02:00
6439adffc6
gui: Begin IPCPreviewWorker
2022-05-27 09:26:03 +02:00
02642a147a
gui: Retire IPCClient and PreviewWorker
2022-05-27 09:24:42 +02:00
fe29641d0a
IpcServer: Remove docOpen(), fileOpen(). MainWindow will do it
...
As it is no longer subject to sandboxing as a whole, it is not
restricted and thus, should call these functions itself
2022-05-17 19:23:03 +02:00
830226ae59
RenderConfig: Add serialization, basically for IPC
2022-05-17 19:20:06 +02:00
6a5cb69e27
gui: Add RenderTarget struct, an IPC helper class
2022-05-17 19:19:02 +02:00
b137dec434
gui: indexer tab: Show filepicker dialog when corresponding button clicked
2022-05-03 16:20:06 +02:00
f67a37bc21
GUI: Disable general sandbox due to inpracticability
...
Qt is usually built with Accessibility and D-Bus. If D-Bus
connections work, a bypass should be considered trivial.
If we block D-Bus, we experience quite some slowdowns in
certain contexts. That's because Qt makes D-Bus connections
for accessibility features etc. They appear to run into timeouts,
but this slows down things. Sandboxing also makes things
like showing (native) file picker dialogs harder.
Sandboxing efforts will focus on the critical paths such as
the existing Indexer sandbox and the to be implemented sandboxing
for preview generation.
We keep no_new_privs for now as chances are that this shouldn't hurt.
2022-05-03 15:56:08 +02:00
9d160ed7a0
gui: Add icon
...
Not the best on dark themes, better than nothing for now.
2022-04-28 09:13:34 +02:00
a132485924
gui: enableSandbox: Don't unshare network due to slowdowns
...
The indexer is quite slow with unshared network namespaces. It appears something in
Qt needs it as IPC or whatever. Seeing also dbus-related errors:
Issue: #33
So disable it for now.
2022-04-24 19:40:43 +02:00
d2d576e617
gui: Call enableSandboxing() after ensureConfigured() so all paths are guaranteed to exist
2022-04-24 19:40:43 +02:00
08da6b4349
gui: main: Remove vows from exile policy
...
SandboxedProcessor is not launched via IPCServer at this point.
The vow set is already very big and SandboxedProcessor
would require exec too.
So use exile default policy and add some path permisisons.
Once SandboxedProcessor is handled by IPC and preview generation
is also exiled separately, it has to be reevaluated whether
it makes sense for vows to return.
2022-04-24 19:40:43 +02:00
629c1efba5
IpcServer: Add addFile()
2022-04-24 15:52:20 +02:00
d73674937d
gui: Begin support to also preview results in plain text files
2022-04-24 15:52:20 +02:00
59aa02f0cd
gui: MainWindow: handleSearchResults: Use PreviewGenerator::get
2022-04-24 15:52:20 +02:00
1536781bda
gui: PreviewGeneratorMapFunctor: Use PreviewGenerator::get()
2022-04-24 15:52:20 +02:00
57bb5c48c8
gui: PreviewGenerator: Add get()
2022-04-24 15:52:20 +02:00
4d0d9ba9c6
main: sandbox: Add clone vow, Use exile_vows_from_str()
...
Fresh ubuntu 22.04 uses clone3(). thread vow is not enough anymore.
Maybe Qt uses it now, who knows, let's just allow it for the time being.
2022-04-24 15:52:20 +02:00
2a024a9b40
gui: Improve conditions where progressbar visible, minor useability improvemnets
2022-04-24 15:52:20 +02:00
0503325c47
gui: Indexer tab: Save/Restore paths to/from settings
2022-04-24 15:52:20 +02:00
62d3eac498
gui: Properly restore other widgets after index has finished
2022-04-24 15:52:20 +02:00
45de97d8fb
gui: Begin cancellation of Indexer
2022-04-24 15:52:20 +02:00
622916db04
gui: Implement 'Delete' button in Indexer tab
2022-04-15 21:06:56 +02:00
ef3f7bc72a
gui: Check whether path exists before adding
2022-04-15 21:06:56 +02:00
0af7d4a3dc
GUI: Begin new 'Indexer' tab
2022-04-15 21:06:56 +02:00
56414ee5e2
shared: Begin basic ConcurrentQueue
2022-04-15 21:06:56 +02:00
2e3b008207
gui: main: Add --no-sandbox
2022-01-04 23:44:37 +01:00
ea1d027621
gui: main: Enable sandbox post call to Common::setupAppInfo()
...
Move sandboxing code to own function
2022-01-04 23:27:45 +01:00
b10c2edf05
MainWindow: Avoid potential double path searches
2022-01-04 11:24:37 +01:00
404ce22ce6
Generalize previews: Mainwindow: Do necessary renames
2022-01-04 11:24:37 +01:00
0cbd0dd9eb
Generalize previews: Retire PdfWorker, Add PreviewWorker
2022-01-03 23:14:55 +01:00
d816603a1c
Generalize previews: Add PreviewGenerator*
2022-01-03 23:14:55 +01:00
95b3d1fce2
Generalize previews: Add PreviewResult,PreviewResultPdf, remove PdfPreview
2022-01-03 23:14:55 +01:00
32286cae4b
Add RenderConfig, combining common parameters
2022-01-03 23:14:55 +01:00
c51487c4b2
gui: Call setupAppinfo() also for the IPC server
2022-01-03 23:14:55 +01:00
407ee1210c
gui: Perform content search and path search by default
...
Search for content and paths. Merge lone words for content search.
This behaviour is much more natural than typing "c:()".
2022-01-03 23:14:55 +01:00
bb5a793300
gui: Add vow_promises to exile policy
2022-01-03 23:14:55 +01:00
ba636bf0fc
IpcServer: Fix off-by-one
2022-01-01 17:58:52 +01:00
88ee2383f7
Switch to exile.h
2022-01-01 17:58:52 +01:00
890925929a
GUI: Begin IPC mechanism to open files despite sandboxing
2022-01-01 17:58:52 +01:00
530ad9c334
pdfworker: Remove dead code
2022-01-01 17:58:52 +01:00
ebea074fcb
gui: Begin basic sandboxing
2022-01-01 17:58:52 +01:00
95d4a12005
MainWindow: Fix Qt deprication
2021-06-12 23:01:14 +02:00
aac027fa16
gui.pro: Change target to looqs-gui
2021-06-12 15:06:41 +02:00
e97551be97
Rename all symbols to new project name
2021-06-12 14:59:58 +02:00
576b884574
mainwindow: warn if deleted files in search results
2021-03-27 18:18:19 +01:00
9ced0ec742
mainwindow: add right click menu to preview labels
2021-03-27 17:58:38 +01:00
e225fdad21
gui: pdfworker: Explicitly unlock mutex, don't wait for destructor
2021-03-07 22:27:27 +01:00
d3fe08b64b
clicklabel: Add right button click signal
2021-03-07 22:26:59 +01:00
3fd4e47196
mainwindow: set window title
2021-03-07 21:09:38 +01:00
09aaf1da04
mainwindow: pdfPreviewReceived(): Don't capture whole preview object in lambda
2021-03-05 21:24:49 +01:00
9990ad7895
gui: Clarify what 'Results' means in statusbar
2020-08-24 22:08:31 +02:00
ef78e74cdd
Detect first run and initialize database and config
...
Relates to #1
2020-08-24 21:36:45 +02:00
8b298fb85b
gui: move page switcher next to scale
2020-06-06 23:35:00 +02:00
a46ecf9bff
gui: disable searchbar when search is running
...
avoids waiting in the gui thread. does not try to cancel
the QFuture that actually cannot be cancelled anyway.
sidesteps a strange bug which rethrows already caught exception.
2020-06-06 23:18:33 +02:00
8de07b703c
Add Common::databasePath which also allows overriding it
2020-05-24 15:36:27 +02:00
13fb901044
added Common namespace. cli: use settings instead of env for db path
2020-05-23 22:52:42 +02:00
de04264eb5
pdfworker: don't use deprecated search overload
2019-08-26 09:41:03 +02:00
a979eb1f51
remove max previewimage memory usage
2019-08-26 09:35:39 +02:00
fa8e351859
paging for pdfpreviews
2019-08-26 09:20:21 +02:00
014a31fa3c
gui: fix passing args to pdfviewer (paths with spaces work now)
2019-08-19 20:02:28 +02:00
bdf235f21b
pdf preview: proper highlighting for quoted (inside ") queries
2019-08-19 19:43:05 +02:00
22bcc888b9
new future: highlight searched words in pdf preview
2019-08-18 23:23:11 +02:00
cff481a57e
Refactor search queries: Introduced QSSQuery
...
Purpose is to seperate certain logic from SQLite and generalize it more.
Even though we only have Sqlite atm, in general the database layers
must be stupid as possible, while QSSQuery should do most of the hard work.
Fixes in Tokenizer logic.
Switched to C++17.
2019-08-18 00:25:21 +02:00
05a5bac22f
mainwindow: show size of files
2019-08-18 00:23:42 +02:00
5e983049f5
mainwindow: wait till search is completed before launching new one
2019-08-12 22:59:05 +02:00
0528e9067a
pdfworker: Renderer copy constructor missed max mem field
2019-08-12 10:26:16 +02:00
55da974558
gui: executable name set to qss-gui instead of qss
2019-04-30 14:15:50 +02:00
330a9e5870
gui: stop generating preview images after a memory limit has been reached.
2019-04-30 14:13:10 +02:00
5deb64cd28
ClickLabel: rename clicked to leftClicked and only fire when left mouse button clicked
2019-04-30 12:40:28 +02:00
88a6152b52
pdf previews: set tooltip showing documents path
2019-04-30 12:30:29 +02:00
b319edea15
gui: mainwindow: remove dead code and unused members
2019-04-29 23:09:23 +02:00
09804a83cc
gui: handle search exception (again after refactoring)
2019-04-29 23:05:51 +02:00
500fc13070
PdfWorker: generatePreviews: take const ref to container with search results
2019-04-29 23:01:11 +02:00
78fb075739
Add destructor for pdfworker renderer
2019-04-29 22:44:39 +02:00
4c8d201f81
pdf preview generation: Use QtConcurrent::mapped + QFutureWatcher instead of own single-thread solution
2019-04-29 20:50:52 +02:00
2cf26a17e1
gui: remove searchworker
2019-04-27 21:24:53 +02:00
098cd96dd2
searchworker: emit searchError on exception
2019-04-26 21:48:07 +02:00
8c027566e3
search: Avoid redundant results by placing pages into vector instead of returning searchresult for each page
2019-04-26 15:31:42 +02:00
569d8c4138
Begin sort: statement implementation, use bindvalues in all search filters, gui: save current scale
2019-04-25 10:27:54 +02:00
326c12ca80
move more files to shared project ; searchresultt.h: use filedata.h
2019-04-22 21:07:41 +02:00
6b94b8f619
Begin 'shared' project to share code between cli and gui
2019-04-20 23:31:14 +02:00
b717587d26
rename gui/qss.pro to gui/gui.pro
2019-04-06 17:28:27 +02:00