Compare commits
2 Commits
53167e7bb5
...
33344ce413
| Author | SHA1 | Date | |
|---|---|---|---|
| 33344ce413 | |||
| 0a11289f34 |
@@ -134,8 +134,12 @@ if(UNIX AND NOT APPLE)
|
|||||||
install(SCRIPT install.cmake)
|
install(SCRIPT install.cmake)
|
||||||
else()
|
else()
|
||||||
install(FILES space.nouspiro.tenmon.desktop DESTINATION "${CMAKE_INSTALL_DATADIR}/applications")
|
install(FILES space.nouspiro.tenmon.desktop DESTINATION "${CMAKE_INSTALL_DATADIR}/applications")
|
||||||
install(FILES resources/space.nouspiro.tenmon.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/64x64/apps")
|
install(FILES resources/space.nouspiro.tenmon_16.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/16x16/apps" RENAME space.nouspiro.tenmon.png)
|
||||||
|
install(FILES resources/space.nouspiro.tenmon_32.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/32x32/apps" RENAME space.nouspiro.tenmon.png)
|
||||||
|
install(FILES resources/space.nouspiro.tenmon_64.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/64x64/apps" RENAME space.nouspiro.tenmon.png)
|
||||||
install(FILES resources/space.nouspiro.tenmon_128.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps" RENAME space.nouspiro.tenmon.png)
|
install(FILES resources/space.nouspiro.tenmon_128.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps" RENAME space.nouspiro.tenmon.png)
|
||||||
|
install(FILES resources/space.nouspiro.tenmon_256.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/256x256/apps" RENAME space.nouspiro.tenmon.png)
|
||||||
|
install(FILES resources/space.nouspiro.tenmon_512.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/512x512/apps" RENAME space.nouspiro.tenmon.png)
|
||||||
install(FILES space.nouspiro.tenmon.xisf.xml DESTINATION "${CMAKE_INSTALL_DATADIR}/mime/packages")
|
install(FILES space.nouspiro.tenmon.xisf.xml DESTINATION "${CMAKE_INSTALL_DATADIR}/mime/packages")
|
||||||
endif()
|
endif()
|
||||||
install(FILES space.nouspiro.tenmon.metainfo.xml DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo")
|
install(FILES space.nouspiro.tenmon.metainfo.xml DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo")
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<table><tr>
|
<table><tr>
|
||||||
<td style="padding-right:10px"><img src=":/space.nouspiro.tenmon.png"></td>
|
<td style="padding-right:10px"><img src=":/space.nouspiro.tenmon_64.png"></td>
|
||||||
<td><h3>Tenmon</h3>
|
<td><h3>Tenmon</h3>
|
||||||
Tenmon is FITS/XISF image viewer and converter. It also index FITS keywords.<br>
|
Tenmon is FITS/XISF image viewer and converter. It also index FITS keywords.<br>
|
||||||
v@GITVERSION@ Copyright © 2026 Dušan Poizl<br><br>
|
v@GITVERSION@ Copyright © 2026 Dušan Poizl<br><br>
|
||||||
|
|||||||
@@ -2,6 +2,10 @@ find_program(XDG-DESKTOP-MENU_EXECUTABLE xdg-desktop-menu)
|
|||||||
find_program(XDG-ICON-RESOURCE_EXECUTABLE xdg-icon-resource)
|
find_program(XDG-ICON-RESOURCE_EXECUTABLE xdg-icon-resource)
|
||||||
find_program(XDG-MIME xdg-mime)
|
find_program(XDG-MIME xdg-mime)
|
||||||
execute_process(COMMAND ${XDG-DESKTOP-MENU_EXECUTABLE} install --novendor space.nouspiro.tenmon.desktop WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
execute_process(COMMAND ${XDG-DESKTOP-MENU_EXECUTABLE} install --novendor space.nouspiro.tenmon.desktop WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 64 resources/space.nouspiro.tenmon.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 16 resources/space.nouspiro.tenmon_16.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 32 resources/space.nouspiro.tenmon_32.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 64 resources/space.nouspiro.tenmon_64.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 128 resources/space.nouspiro.tenmon_128.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 128 resources/space.nouspiro.tenmon_128.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 256 resources/space.nouspiro.tenmon_256.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --novendor --size 512 resources/space.nouspiro.tenmon_512.png space.nouspiro.tenmon WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
execute_process(COMMAND ${XDG-MIME} install --novendor space.nouspiro.tenmon.xisf.xml WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
execute_process(COMMAND ${XDG-MIME} install --novendor space.nouspiro.tenmon.xisf.xml WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 1.4 MiB |
@@ -15,7 +15,7 @@
|
|||||||
<file>bggr.png</file>
|
<file>bggr.png</file>
|
||||||
<file>grbg.png</file>
|
<file>grbg.png</file>
|
||||||
<file>gbrg.png</file>
|
<file>gbrg.png</file>
|
||||||
<file>space.nouspiro.tenmon.png</file>
|
<file>space.nouspiro.tenmon_64.png</file>
|
||||||
<file>../translations/tenmon_pt_BR.qm</file>
|
<file>../translations/tenmon_pt_BR.qm</file>
|
||||||
<file alias="help">../about/help_en</file>
|
<file alias="help">../about/help_en</file>
|
||||||
<file>colormap.png</file>
|
<file>colormap.png</file>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 247 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
@@ -405,6 +405,14 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
|||||||
if(_plateSolving)_plateSolving->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
|
if(_plateSolving)_plateSolving->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
|
||||||
m_stretchPanel->setFloatable(false);
|
m_stretchPanel->setFloatable(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(settings.value("settings/checkupdate", false).toBool())
|
||||||
|
{
|
||||||
|
QDateTime lastcheck = settings.value("settings/lastcheck").toDateTime();
|
||||||
|
QDateTime weekago = QDateTime::currentDateTimeUtc().addDays(-7);
|
||||||
|
if(!lastcheck.isValid() || lastcheck < weekago)
|
||||||
|
checkNewVersion(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
@@ -823,21 +831,27 @@ void MainWindow::exportCSV()
|
|||||||
m_databaseView->exportCSV(file);
|
m_databaseView->exportCSV(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::checkNewVersion()
|
void MainWindow::checkNewVersion(bool autocheck)
|
||||||
{
|
{
|
||||||
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
|
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
|
||||||
QNetworkRequest request(QUrl("https://gitea.nouspiro.space/api/v1/repos/nou/tenmon/releases/latest"));
|
QNetworkRequest request(QUrl("https://gitea.nouspiro.space/api/v1/repos/nou/tenmon/releases/latest"));
|
||||||
request.setRawHeader("accept", "application/json");
|
request.setRawHeader("accept", "application/json");
|
||||||
QNetworkReply *reply = manager->get(request);
|
QNetworkReply *reply = manager->get(request);
|
||||||
connect(reply, &QNetworkReply::finished, [this, manager, reply](){
|
connect(reply, &QNetworkReply::finished, [this, manager, reply, autocheck](){
|
||||||
QJsonParseError error;
|
QJsonParseError error;
|
||||||
QJsonDocument json = QJsonDocument::fromJson(reply->readAll(), &error);
|
QJsonDocument json = QJsonDocument::fromJson(reply->readAll(), &error);
|
||||||
if(json.isObject() && json.object().contains("tag_name"))
|
if(json.isObject() && json.object().contains("tag_name"))
|
||||||
{
|
{
|
||||||
|
QSettings settings;
|
||||||
|
settings.setValue("settings/lastcheck", QDateTime::currentDateTimeUtc());
|
||||||
|
|
||||||
QString tag = json.object().value("tag_name").toString();
|
QString tag = json.object().value("tag_name").toString();
|
||||||
QString version = getVersion();
|
QString version = getVersion();
|
||||||
if(version >= tag)
|
if(version >= tag)
|
||||||
QMessageBox::information(this, tr("Update check"), tr("You have newest version"));
|
{
|
||||||
|
if(!autocheck)
|
||||||
|
QMessageBox::information(this, tr("Update check"), tr("You have newest version"));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(QMessageBox::question(this, tr("Update check"), tr("New version %1 is available. Do you want to download it now?").arg(tag)) == QMessageBox::Yes)
|
if(QMessageBox::question(this, tr("Update check"), tr("New version %1 is available. Do you want to download it now?").arg(tag)) == QMessageBox::Yes)
|
||||||
@@ -851,7 +865,8 @@ void MainWindow::checkNewVersion()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Update check"), tr("Failed to check version"));
|
if(!autocheck)
|
||||||
|
QMessageBox::warning(this, tr("Update check"), tr("Failed to check version"));
|
||||||
}
|
}
|
||||||
|
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public slots:
|
|||||||
void showMarkFilesDialog();
|
void showMarkFilesDialog();
|
||||||
void showSettingsDialog();
|
void showSettingsDialog();
|
||||||
void exportCSV();
|
void exportCSV();
|
||||||
void checkNewVersion();
|
void checkNewVersion(bool autocheck = false);
|
||||||
void openFileManager();
|
void openFileManager();
|
||||||
void runScript(const QString &script, const QString &outdir, const QStringList &paths, const QString &arg, bool exit);
|
void runScript(const QString &script, const QString &outdir, const QStringList &paths, const QString &arg, bool exit);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -147,6 +147,10 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
|
|||||||
else if(lang == "sk")m_lang->setCurrentIndex(2);
|
else if(lang == "sk")m_lang->setCurrentIndex(2);
|
||||||
else if(lang == "pt_BR")m_lang->setCurrentIndex(3);
|
else if(lang == "pt_BR")m_lang->setCurrentIndex(3);
|
||||||
|
|
||||||
|
m_checkUpdate = new QCheckBox(tr("Check for new version"), this);
|
||||||
|
m_checkUpdate->setToolTip(tr("Check for new version every week"));
|
||||||
|
m_checkUpdate->setChecked(settings.value("settings/checkupdate", false).toBool());
|
||||||
|
|
||||||
layout->addRow(tr("Image preload count"), m_preloadImages);
|
layout->addRow(tr("Image preload count"), m_preloadImages);
|
||||||
layout->addRow(tr("Thumbnails size"), m_thumSize);
|
layout->addRow(tr("Thumbnails size"), m_thumSize);
|
||||||
layout->addRow(tr("Saturation"), m_saturation);
|
layout->addRow(tr("Saturation"), m_saturation);
|
||||||
@@ -156,6 +160,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
|
|||||||
layout->addRow(m_qualityThumbnail);
|
layout->addRow(m_qualityThumbnail);
|
||||||
layout->addRow(m_useNativeDialog);
|
layout->addRow(m_useNativeDialog);
|
||||||
layout->addRow(m_bestFit);
|
layout->addRow(m_bestFit);
|
||||||
|
layout->addRow(m_checkUpdate);
|
||||||
layout->addRow(new QLabel(tr("FITS header highlight"), this));
|
layout->addRow(new QLabel(tr("FITS header highlight"), this));
|
||||||
layout->addRow(m_headerHighlight);
|
layout->addRow(m_headerHighlight);
|
||||||
layout->addRow(m_keyword, color);
|
layout->addRow(m_keyword, color);
|
||||||
@@ -265,4 +270,5 @@ void SettingsDialog::saveSettings()
|
|||||||
case 3: lang = "pt_BR"; break;
|
case 3: lang = "pt_BR"; break;
|
||||||
}
|
}
|
||||||
settings.setValue("settings/lang", lang);
|
settings.setValue("settings/lang", lang);
|
||||||
|
settings.setValue("settings/checkupdate", m_checkUpdate->isChecked());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ private:
|
|||||||
QColor m_color = Qt::yellow;
|
QColor m_color = Qt::yellow;
|
||||||
QLineEdit *m_keyword;
|
QLineEdit *m_keyword;
|
||||||
QComboBox *m_lang;
|
QComboBox *m_lang;
|
||||||
|
QCheckBox *m_checkUpdate;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SETTINGSDIALOG_H
|
#endif // SETTINGSDIALOG_H
|
||||||
|
|||||||