Qt desktop: add manage (edit/delete) and tag autocomplete
Brings the Qt uploader to parity with the web /manage page and the Android
app. Adds a stacked Manage page (reached from the post page) that lists
posts via GET /api/photos with thumbnails from GET /api/thumb/<slug>, edits
caption/date/tags in a QDialog via POST /api/edit, and deletes to trash via
POST /api/delete with a QMessageBox confirm. As a non-browser client it sends
no Origin and so passes the server's same-origin CSRF check.
Tag autocomplete now backs every tags field (post cards and the edit dialog)
via a per-token TagCompleter (QCompleter subclass, MatchContains) fed from
the unguarded GET /api/tags.json.
New files: managepostwidget.{h,cpp}, tagcompleter.{h,cpp}; network methods
and a RemotePhoto struct added to uploadclient. Built and linked clean; not
yet runtime-tested on a real display.
This commit is contained in:
1 parent
bb8c7109fa
commit
504b96ed31
12 files changed
+677
-2
No files matched your search
@@ -7,6 +7,7 @@ class QDateEdit;
|
||||
class QLabel;
|
||||
class QLineEdit;
|
||||
class QPushButton;
|
||||
class TagCompleter;
|
||||
|
||||
// One photo in the batch: thumbnail, caption, date, and its own upload status.
|
||||
// A single-photo post is just a batch of one, so the window runs one code path.
|
||||
@@ -26,6 +27,9 @@ public:
|
||||
|
||||
void setStatus(Status status, const QString &message = {}, const QString &url = {});
|
||||
|
||||
// Fills the tags field's autocomplete with the known tag names.
|
||||
void setTagSuggestions(const QStringList &tags);
|
||||
|
||||
signals:
|
||||
void removeRequested(PhotoItemWidget *self);
|
||||
|
||||
@@ -39,4 +43,5 @@ private:
|
||||
QLineEdit *m_tags = nullptr;
|
||||
QLabel *m_statusLabel = nullptr;
|
||||
QPushButton *m_remove = nullptr;
|
||||
TagCompleter *m_tagCompleter = nullptr;
|
||||
};
|
||||
Reference in new issue
Block a user