Files
OmaPhoto/src/UI/NewCanvasSheet.h
T
雷电芽衣andClaude c864304695
Release / deb (push) Canceled after 0s
Release / rpm (push) Canceled after 0s
Release / arch (push) Canceled after 0s
Release / publish (push) Canceled after 0s
OmaPhoto 1.0.0: the Linux port of Compositor
A layered image editor for Linux and Omarchy, ported from Compositor
(github.com/robbietilton/Compositor), whose Swift source is its
specification. It reads and writes Compositor's .comp projects.

Packages for Ubuntu, Fedora and Arch come from the release workflow;
scripts/install/ holds one install script per distribution family,
and flake.nix serves NixOS.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-26 00:44:52 -04:00

35 lines
954 B
C++

#pragma once
#include "Document/EditorSession.h"
#include <QLabel>
#include <QLineEdit>
#include <QMimeData>
#include <QPushButton>
#include <QWidget>
#include <functional>
// The welcome: a new canvas, a project or an image.
class NewCanvasSheet : public QWidget {
Q_OBJECT
public:
NewCanvasSheet(EditorSession &session, std::function<void(int, int)> onCreate, std::function<void()> onOpen, QWidget *parent = nullptr);
// A copied picture's size, read from its header alone.
static std::optional<QSize> clipboardDimensions(const QMimeData *clipboard);
protected:
void showEvent(QShowEvent *event) override;
private:
void synchronize();
void validate();
void create();
EditorSession &m_session;
const std::function<void(int, int)> m_onCreate;
QLineEdit *const m_width;
QLineEdit *const m_height;
QLabel *const m_note;
QPushButton *const m_create;
bool m_suggestedClipboardSize = false;
};