Compare commits

...

5 Commits

Author SHA1 Message Date
nou 1ac5a4e42a Update metainfo 2026-02-16 22:52:28 +01:00
nou 83d212aa91 Enable sorting of FITS header 2026-02-16 22:29:25 +01:00
nou bd24fba407 Update README 2026-02-11 21:26:33 +01:00
nou 3448f62f31 Try to fix crash in ImageRingList 2026-01-19 20:57:13 +01:00
nou 567e66acb5 Update libXISF 2025-11-02 23:17:10 +01:00
6 changed files with 45 additions and 26 deletions
+5 -1
View File
@@ -2,7 +2,7 @@ FITS/XISF image viewer with multithreaded image loading
To get all dependencies install these packages To get all dependencies install these packages
sudo apt install qt6-base-dev qt6-declarative-dev libqt6opengl6-dev libraw-dev libexif-dev libcfitsio-dev wcslib-dev cmake libzstd-dev libqt6sql6-sqlite sudo apt install qt6-base-dev qt6-declarative-dev qt6-charts-dev libqt6opengl6-dev libraw-dev libexif-dev libcfitsio-dev wcslib-dev cmake libzstd-dev libqt6sql6-sqlite
on OpenSUSE on OpenSUSE
@@ -26,6 +26,10 @@ Then to build run standard cmake sequence
cmake --build build cmake --build build
./build/tenmon ./build/tenmon
To install it to system run this command as root
cmake --install build
For working plate solving you must have compiled and installed StellarSolver https://github.com/rlancaste/stellarsolver For working plate solving you must have compiled and installed StellarSolver https://github.com/rlancaste/stellarsolver
It is important that you compile StellarSolver with Qt6. By default it use Qt5 but when linked with Qt6 program it will It is important that you compile StellarSolver with Qt6. By default it use Qt5 but when linked with Qt6 program it will
crash. crash.
+1 -1
Submodule libXISF updated: 2e74d94641...7b70b6a081
+9
View File
@@ -47,6 +47,7 @@
</keywords> </keywords>
<url type="homepage">https://nouspiro.space/?page_id=206</url> <url type="homepage">https://nouspiro.space/?page_id=206</url>
<url type="bugtracker">https://github.com/flathub/space.nouspiro.tenmon/issues</url> <url type="bugtracker">https://github.com/flathub/space.nouspiro.tenmon/issues</url>
<url type="vcs-browser">https://gitea.nouspiro.space/nou/tenmon</url>
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
<caption>Main window with image</caption> <caption>Main window with image</caption>
@@ -59,6 +60,14 @@
</screenshots> </screenshots>
<content_rating type="oars-1.1"/> <content_rating type="oars-1.1"/>
<releases> <releases>
<release version="20260217" date="2026-02-17">
<description>
<ul>
<li>Fix potentional crash</li>
<li>Enable sorting of FITS info</li>
</ul>
</description>
</release>
<release version="20251101" date="2025-11-01"> <release version="20251101" date="2025-11-01">
<description> <description>
<ul> <ul>
+2
View File
@@ -11,6 +11,8 @@ ImageInfo::ImageInfo(QWidget *parent) : QTreeWidget(parent)
setIndentation(5); setIndentation(5);
QSettings settings; QSettings settings;
header()->restoreState(settings.value("imageinfo/headerstate").toByteArray()); header()->restoreState(settings.value("imageinfo/headerstate").toByteArray());
setSortingEnabled(true);
header()->setSortIndicatorClearable(true);
} }
ImageInfo::~ImageInfo() ImageInfo::~ImageInfo()
+9 -5
View File
@@ -111,7 +111,7 @@ void Image::thumbnailLoadFinish(std::shared_ptr<RawImage> rawImage)
emit thumbnailLoaded(this); emit thumbnailLoaded(this);
} }
ImageRingList::ImageRingList(Database *database, const QStringList &nameFilter, QObject *parent) : QAbstractItemModel(parent) ImageRingList::ImageRingList(Database *database, const QStringList &nameFilter, QObject *parent) : QAbstractListModel(parent)
, m_liveMode(false) , m_liveMode(false)
, m_analyzeLevel(None) , m_analyzeLevel(None)
, m_database(database) , m_database(database)
@@ -412,7 +412,7 @@ void ImageRingList::clearThumbnails()
img->clearThumbnail(); img->clearThumbnail();
} }
QModelIndex ImageRingList::index(int row, int column, const QModelIndex &parent) const /*QModelIndex ImageRingList::index(int row, int column, const QModelIndex &parent) const
{ {
Q_UNUSED(parent); Q_UNUSED(parent);
return createIndex(row, column, m_images.at(row).get()); return createIndex(row, column, m_images.at(row).get());
@@ -422,7 +422,7 @@ QModelIndex ImageRingList::parent(const QModelIndex &child) const
{ {
Q_UNUSED(child); Q_UNUSED(child);
return QModelIndex(); return QModelIndex();
} }*/
int ImageRingList::rowCount(const QModelIndex &parent) const int ImageRingList::rowCount(const QModelIndex &parent) const
{ {
@@ -432,14 +432,16 @@ int ImageRingList::rowCount(const QModelIndex &parent) const
return 0; return 0;
} }
int ImageRingList::columnCount(const QModelIndex &parent) const /*int ImageRingList::columnCount(const QModelIndex &parent) const
{ {
Q_UNUSED(parent); Q_UNUSED(parent);
return 1; return 1;
} }*/
QVariant ImageRingList::data(const QModelIndex &index, int role) const QVariant ImageRingList::data(const QModelIndex &index, int role) const
{ {
if(index.isValid() && index.row() >= 0 && index.row() < m_images.size())
{
switch(role) switch(role)
{ {
case Qt::DisplayRole: case Qt::DisplayRole:
@@ -457,6 +459,8 @@ QVariant ImageRingList::data(const QModelIndex &index, int role) const
default: default:
return QVariant(); return QVariant();
} }
}
return QVariant();
} }
QVariant ImageRingList::headerData(int section, Qt::Orientation orientation, int role) const QVariant ImageRingList::headerData(int section, Qt::Orientation orientation, int role) const
+4 -4
View File
@@ -51,7 +51,7 @@ typedef std::shared_ptr<Image> ImagePtr;
class Database; class Database;
class ImageRingList : public QAbstractItemModel class ImageRingList : public QAbstractListModel
{ {
Q_OBJECT Q_OBJECT
int m_width; int m_width;
@@ -93,10 +93,10 @@ public:
void updateMark(); void updateMark();
void clearThumbnails(); void clearThumbnails();
QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; //QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override;
QModelIndex parent(const QModelIndex &child) const override; //QModelIndex parent(const QModelIndex &child) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override; //int columnCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
public slots: public slots: