mirror of
https://github.com/ashaduri/gsmartcontrol.git
synced 2026-09-27 06:15:45 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49b3d2b992 | ||
|
|
35c8efa686 | ||
|
|
3788c0f3f3 | ||
|
|
f2f9e6939a | ||
|
|
21bb4cf58a | ||
|
|
b73b813eba | ||
|
|
95db883018 | ||
|
|
08c8026fde | ||
|
|
48bef0f50b | ||
|
|
a459490e8d | ||
|
|
98b0c8a22d | ||
|
|
be8fd896da | ||
|
|
5f4d7883eb | ||
|
|
faa1d1f296 | ||
|
|
61d84eebbe | ||
|
|
bc321ec7eb | ||
|
|
9852b4de81 | ||
|
|
d508db41c3 | ||
|
|
50e8464ecf | ||
|
|
e8494efb5f | ||
|
|
3e5588229b | ||
|
|
4c00270d09 | ||
|
|
b5dc08eee6 | ||
|
|
d6ebc54ab8 | ||
|
|
19ffb580af | ||
|
|
fc90686903 | ||
|
|
3c031b4ee9 | ||
|
|
fdcdba1731 | ||
|
|
12da26e47a | ||
|
|
de2b93d990 | ||
|
|
1cbc491003 | ||
|
|
26a2fd9dde | ||
|
|
7e0a8a2b62 | ||
|
|
ca974f3dfa | ||
|
|
850c18b25b | ||
|
|
2ca024237d | ||
|
|
939914a5ab | ||
|
|
0fedc62c25 | ||
|
|
defdb35655 | ||
|
|
e3ee616acc | ||
|
|
37fb4dc096 | ||
|
|
1637a39577 | ||
|
|
142b458aeb | ||
|
|
7cccb06950 | ||
|
|
bcc2ef5a06 | ||
|
|
40eacbbb90 | ||
|
|
ff4b9abf27 | ||
|
|
e9662d800f | ||
|
|
71273f9021 | ||
|
|
235f79c88f | ||
|
|
b2c0fe2190 | ||
|
|
66822e5900 | ||
|
|
2bb98a4ebe | ||
|
|
8a5b411057 | ||
|
|
0531c20e7d |
@@ -0,0 +1,3 @@
|
||||
|
||||
# Make sure github recognizes header files as C++, not C.
|
||||
*.h linguist-language=C++
|
||||
@@ -0,0 +1,171 @@
|
||||
name: Build - 1.1 Branch (Tier 1 platforms)
|
||||
|
||||
on:
|
||||
# Triggers the workflow on push or pull request events but only for the branch
|
||||
push:
|
||||
branches: [ release/1.1 ]
|
||||
pull_request:
|
||||
branches: [ release/1.1 ]
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
env:
|
||||
SMARTMONTOOLS_INSTALLER: smartmontools-7.2-1.win32-setup.exe
|
||||
SMARTMONTOOLS_URL: https://nav.dl.sourceforge.net/project/smartmontools/smartmontools/7.2/smartmontools-7.2-1.win32-setup.exe
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
linux-ubuntu:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: release/1.1
|
||||
|
||||
- name: Install Dependencies
|
||||
run: sudo apt-get install libpcre3-dev libgtkmm-3.0-dev gettext autoconf automake
|
||||
|
||||
- name: Run Autogen
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/gsmartcontrol
|
||||
run: ./autogen.sh
|
||||
|
||||
- name: Create Build Directory
|
||||
shell: bash
|
||||
run: mkdir -p ${{runner.workspace}}/build
|
||||
|
||||
- name: Configure
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: >
|
||||
$GITHUB_WORKSPACE/configure --prefix=/usr --enable-tests
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: make
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
shell: bash
|
||||
run: make check
|
||||
|
||||
- name: Pack Source
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: make dist
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Source Packages (1.1 Branch)
|
||||
path: ${{runner.workspace}}/build/gsmartcontrol-*.tar.bz2
|
||||
|
||||
|
||||
windows-msys2:
|
||||
# Disable for now, as the configure stage errors out with "The directory name is invalid."
|
||||
if: ${{ false }}
|
||||
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
matrix:
|
||||
include: [
|
||||
{ msystem: MINGW64, arch: x86_64, root: /mingw64 },
|
||||
{ msystem: MINGW32, arch: i686, root: /mingw32 }
|
||||
]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: release/1.1
|
||||
|
||||
- uses: msys2/setup-msys2@v2
|
||||
# p7zip is needed to extract smartmontools
|
||||
# fontconfig owns /etc/fonts
|
||||
with:
|
||||
msystem: ${{ matrix.msystem }}
|
||||
update: true
|
||||
install: >-
|
||||
mingw-w64-${{ matrix.arch }}-gtkmm3
|
||||
mingw-w64-${{ matrix.arch }}-pkg-config
|
||||
autoconf
|
||||
automake
|
||||
mingw-w64-${{ matrix.arch }}-gcc
|
||||
mingw-w64-${{ matrix.arch }}-fontconfig
|
||||
make
|
||||
p7zip
|
||||
|
||||
- name: Run Autogen
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/gsmartcontrol
|
||||
run: ./autogen.sh
|
||||
|
||||
- name: Create Build Directory
|
||||
shell: cmd
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: md build
|
||||
|
||||
- name: Configure
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: ../gsmartcontrol/configure --enable-tests
|
||||
|
||||
- name: Build
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: make
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
shell: msys2 {0}
|
||||
run: make check
|
||||
|
||||
- name: Download Package Requirements
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: |
|
||||
mkdir smartmontools
|
||||
cd smartmontools
|
||||
wget $SMARTMONTOOLS_URL
|
||||
|
||||
- name: Extract Package Requirements (64-bit)
|
||||
if: ${{ matrix.msystem == 'MINGW64' }}
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/build/smartmontools
|
||||
run: >
|
||||
7z -bb1 e $SMARTMONTOOLS_INSTALLER
|
||||
bin64/smartctl.exe
|
||||
bin64/smartctl-nc.exe
|
||||
bin/update-smart-drivedb.exe
|
||||
bin/drivedb.h
|
||||
|
||||
- name: Extract Package Requirements (32-bit)
|
||||
if: ${{ matrix.msystem == 'MINGW32' }}
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/build/smartmontools
|
||||
run: >
|
||||
7z -bb1 e $SMARTMONTOOLS_INSTALLER
|
||||
bin/smartctl.exe
|
||||
bin/smartctl-nc.exe
|
||||
bin/update-smart-drivedb.exe
|
||||
bin/drivedb.h
|
||||
|
||||
- name: Package ZIP
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: make win-zip-dist
|
||||
|
||||
- name: Package NSIS
|
||||
shell: msys2 {0}
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: make win-dist
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Windows Packages (1.1 Branch)
|
||||
path: ${{runner.workspace}}/build/gsmartcontrol-*-win*.*
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
name: Build - 1.1 Branch (Tier 2 platforms)
|
||||
|
||||
on:
|
||||
# Triggers the workflow on push or pull request events but only for the branch
|
||||
push:
|
||||
branches: [ release/1.1 ]
|
||||
pull_request:
|
||||
branches: [ release/1.1 ]
|
||||
# Allows you to run this workflow manually from the Actions tab.
|
||||
# This does not work for non-default branches, that's why we use the push / pull_request triggers above.
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
macos-homebrew:
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: release/1.1
|
||||
|
||||
- name: Install Dependencies
|
||||
run: brew install pkg-config gtkmm3 pcre automake autoconf
|
||||
|
||||
- name: Run Autogen
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/gsmartcontrol
|
||||
run: ./autogen.sh
|
||||
|
||||
- name: Create Build Directory
|
||||
shell: bash
|
||||
run: mkdir -p ${{runner.workspace}}/build
|
||||
|
||||
- name: Configure
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: >
|
||||
$GITHUB_WORKSPACE/configure --prefix=/usr --enable-tests
|
||||
|
||||
- name: Build
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: make
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
shell: bash
|
||||
run: make check
|
||||
|
||||
|
||||
freebsd:
|
||||
# Disable for now, make cannot find file2csource.sh for some reason.
|
||||
if: ${{ false }} # disable for now
|
||||
|
||||
runs-on: macos-10.15
|
||||
# env:
|
||||
# variables to pass to VM
|
||||
# MYTOKEN : ${{ secrets.MYTOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: release/1.1
|
||||
|
||||
- name: Build and test in FreeBSD
|
||||
id: test
|
||||
uses: vmactions/freebsd-vm@v0.1.5
|
||||
with:
|
||||
usesh: true
|
||||
mem: 2048
|
||||
prepare: >
|
||||
pkg install -y pkgconf gtkmm30 gettext pcre libiconv autoconf automake
|
||||
|
||||
run: >
|
||||
./autogen.sh
|
||||
|
||||
mkdir build && cd build
|
||||
|
||||
../configure --prefix=/usr --enable-tests
|
||||
|
||||
make
|
||||
|
||||
make check
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
|
||||
# Builds
|
||||
/0*
|
||||
/doxygen_doc*
|
||||
/win32*
|
||||
/win64*
|
||||
/cmake-build-*
|
||||
|
||||
# Build system artifacts
|
||||
/autom4te.cache
|
||||
/aclocal.m4
|
||||
/ar-lib
|
||||
/compilation_flags
|
||||
/compile
|
||||
/config.guess
|
||||
/config.h
|
||||
/config.h.in
|
||||
/config.log
|
||||
/config.status
|
||||
/config.sub
|
||||
/configure
|
||||
/depcomp
|
||||
/gsmartcontrol.spec
|
||||
/install-sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
/missing
|
||||
/stamp-h1
|
||||
/version.txt
|
||||
*.glade.cpp
|
||||
*.ui.cpp
|
||||
*.txt.cpp
|
||||
/data/gsmartcontrol.appdata.xml
|
||||
/data/gsmartcontrol.desktop
|
||||
/data/gsmartcontrol-root
|
||||
/data/nsis/distribution.txt
|
||||
/data/nsis/gsmartcontrol.nsi
|
||||
/debian.dist/changelog
|
||||
/src/gsc_winres.rc
|
||||
/src/gsmartcontrol.exe.manifest
|
||||
.deps
|
||||
|
||||
|
||||
# Non-project files
|
||||
/TODO
|
||||
|
||||
# Doxygen generated
|
||||
/doxygen_doc
|
||||
|
||||
# OS-generated files
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
Icon?
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
# IDE
|
||||
/.vs
|
||||
/*.pcs
|
||||
/.idea
|
||||
/CMakeLists.txt.user
|
||||
/.kdev4
|
||||
|
||||
# Translations
|
||||
/po/boldquot.sed
|
||||
/po/en@boldquot.header
|
||||
/po/en@quot.header
|
||||
/po/insert-header.sin
|
||||
/po/Makevars.template
|
||||
/po/quot.sed
|
||||
/po/remove-potcdate.sin
|
||||
/po/Rules-quot
|
||||
/po/gsmartcontrol.pot
|
||||
/po/*.gmo
|
||||
|
||||
# Backup files
|
||||
*~
|
||||
@@ -1,18 +0,0 @@
|
||||
0*
|
||||
*.pcs
|
||||
autom4te.cache
|
||||
Makefile.in
|
||||
configure
|
||||
depcomp
|
||||
config.guess
|
||||
config.sub
|
||||
aclocal.m4
|
||||
config.h.in
|
||||
compile
|
||||
ar-lib
|
||||
missing
|
||||
install-sh
|
||||
*.glade.cpp
|
||||
*.ui.cpp
|
||||
*.txt.cpp
|
||||
.kdev4
|
||||
@@ -1 +0,0 @@
|
||||
svn propset svn:ignore -F .svnignore.txt .
|
||||
+99
-55
@@ -71,7 +71,8 @@ win-dist-clean: win-dist-cleanup
|
||||
win-dist-prepare-all: nsis-dist-prepare win-zip-dist-prepare
|
||||
|
||||
|
||||
# All of GTK+
|
||||
# All of GTK+.
|
||||
# This includes both MSYS and OpenSUSE/mingw patterns.
|
||||
GTK_BIN_FILES = gdk-pixbuf-query-loaders.exe \
|
||||
gspawn-win32-helper-console.exe \
|
||||
gspawn-win32-helper.exe \
|
||||
@@ -81,14 +82,18 @@ GTK_BIN_FILES = gdk-pixbuf-query-loaders.exe \
|
||||
gtk-update-icon-cache-3.0.exe \
|
||||
libatk-1.*.dll \
|
||||
libatkmm-1.*.dll \
|
||||
libbrotlidec.dll \
|
||||
libbrotlicommon.dll \
|
||||
libbz2-*.dll \
|
||||
libcairo-*.dll \
|
||||
libcairomm-1*.dll \
|
||||
libdatrie-*.dll \
|
||||
libepoxy-*.dll \
|
||||
libffi-*.dll \
|
||||
libexpat-*.dll \
|
||||
libfontconfig-*.dll \
|
||||
libfreetype-*.dll \
|
||||
libfribidi-*.dll \
|
||||
libgdk-3*.dll \
|
||||
libgdk_pixbuf-2.*.dll \
|
||||
libgdkmm-3.*.dll \
|
||||
@@ -103,7 +108,7 @@ GTK_BIN_FILES = gdk-pixbuf-query-loaders.exe \
|
||||
libgtk-3*.dll \
|
||||
libgtkmm-3*.dll \
|
||||
libharfbuzz*.dll \
|
||||
libiconv*.dll \
|
||||
libiconv-*.dll \
|
||||
libintl*.dll \
|
||||
libjasper*.dll \
|
||||
libjpeg*.dll \
|
||||
@@ -112,11 +117,14 @@ GTK_BIN_FILES = gdk-pixbuf-query-loaders.exe \
|
||||
libpixman*.dll \
|
||||
libpng16-*.dll \
|
||||
libsigc-2.*.dll \
|
||||
libssp-*.dll \
|
||||
libstdc++-*.dll \
|
||||
libthai-*.dll \
|
||||
libtiff-*.dll \
|
||||
libwinpthread-*.dll \
|
||||
libxml2-*.dll \
|
||||
zlib1.dll
|
||||
zlib1.dll \
|
||||
libz.dll
|
||||
|
||||
|
||||
# Don't strip smartctl (it will only change the header), and
|
||||
@@ -130,7 +138,9 @@ win-dist-prepare: all
|
||||
cp $(top_srcdir)/AUTHORS.txt $(top_srcdir)/LICENSE_* $(top_srcdir)/README.txt win-dist/doc/
|
||||
cp $(top_srcdir)/NEWS win-dist/doc/NEWS.txt
|
||||
|
||||
cp src/gsmartcontrol.exe src/gsmartcontrol.exe.manifest win-dist/
|
||||
# The manifest is already embedded in exe
|
||||
# cp src/gsmartcontrol.exe src/gsmartcontrol.exe.manifest win-dist/
|
||||
cp src/gsmartcontrol.exe win-dist/
|
||||
|
||||
unix2dos win-dist/doc/*.txt
|
||||
|
||||
@@ -147,7 +157,12 @@ win-dist-prepare: all
|
||||
$(MKDIR_P) win-dist/etc/gtk-3.0
|
||||
cp -p "@WINDOWS_SYSROOT@"/etc/fonts/fonts.conf win-dist/etc/fonts/
|
||||
# cp -p "@WINDOWS_SYSROOT@"/etc/gtk-3.0/im-multipress.conf win-dist/etc/gtk-3.0/
|
||||
cp -p "@WINDOWS_SYSROOT@"/etc/gtk-3.0/settings.ini win-dist/etc/gtk-3.0/
|
||||
# cp -p "@WINDOWS_SYSROOT@"/etc/gtk-3.0/settings.ini win-dist/etc/gtk-3.0/
|
||||
|
||||
# Without loaders, images and native file dialog do not work.
|
||||
$(MKDIR_P) win-dist/lib
|
||||
$(MKDIR_P) win-dist/lib/gdk-pixbuf-2.0
|
||||
cp -p -r "@WINDOWS_SYSROOT@"/lib/gdk-pixbuf-2.0/2.10.0 win-dist/lib/gdk-pixbuf-2.0
|
||||
|
||||
$(MKDIR_P) win-dist/share
|
||||
cp -p -r "@WINDOWS_SYSROOT@"/share/themes win-dist/share
|
||||
@@ -159,66 +174,93 @@ win-dist-prepare: all
|
||||
# $(MKDIR_P) win-dist/share/icons
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/hicolor win-dist/share/icons
|
||||
|
||||
# needed for window titlebar (if using client-side decorations),
|
||||
# Needed for window titlebar (if using client-side decorations),
|
||||
# tree sorting indicators, GUI icons.
|
||||
# Note that the current Adwaita uses "ui" directory, while win32 theme expects "actions".
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/index.theme win-dist/share/icons/Adwaita
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/16x16/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/16x16/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/status/dialog-information.png win-dist/share/icons/Adwaita/16x16/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/22x22/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/22x22/status/dialog-information.png win-dist/share/icons/Adwaita/22x22/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/16x16/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/devices/drive-harddisk.png win-dist/share/icons/Adwaita/16x16/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/devices/media-optical.png win-dist/share/icons/Adwaita/16x16/devices
|
||||
# $(MKDIR_P) win-dist/share/icons/Adwaita/22x22/status
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/22x22/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/22x22/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/24x24/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/24x24/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/devices/drive-harddisk.png win-dist/share/icons/Adwaita/24x24/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/devices/media-optical.png win-dist/share/icons/Adwaita/24x24/devices
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/24x24/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/status/dialog-information.png win-dist/share/icons/Adwaita/24x24/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/32x32/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/32x32/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/devices/drive-harddisk.png win-dist/share/icons/Adwaita/32x32/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/devices/media-optical.png win-dist/share/icons/Adwaita/32x32/devices
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/32x32/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/status/dialog-information.png win-dist/share/icons/Adwaita/32x32/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/48x48/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/48x48/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/devices/drive-harddisk.png win-dist/share/icons/Adwaita/48x48/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/devices/media-optical.png win-dist/share/icons/Adwaita/48x48/devices
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/48x48/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/status/dialog-information.png win-dist/share/icons/Adwaita/48x48/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/64x64/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
# $(MKDIR_P) win-dist/share/icons/Adwaita/64x64/status
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/status/dialog-information.png win-dist/share/icons/Adwaita/64x64/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions
|
||||
# $(MKDIR_P) win-dist/share/icons/Adwaita/64x64/devices
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/devices/drive-harddisk.png win-dist/share/icons/Adwaita/64x64/devices
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/devices/media-optical.png win-dist/share/icons/Adwaita/64x64/devices
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/64x64/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/96x96/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
# $(MKDIR_P) win-dist/share/icons/Adwaita/96x96/status
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/status/dialog-information.png win-dist/share/icons/Adwaita/96x96/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/256x256/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/status/dialog-information.png win-dist/share/icons/Adwaita/256x256/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions
|
||||
# $(MKDIR_P) win-dist/share/icons/Adwaita/96x96/devices
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/devices/drive-harddisk.png win-dist/share/icons/Adwaita/96x96/devices
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/devices/media-optical.png win-dist/share/icons/Adwaita/96x96/devices
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/96x96/status
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/status
|
||||
# $(MKDIR_P) win-dist/share/icons/Adwaita/256x256/devices
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/devices/drive-harddisk.png win-dist/share/icons/Adwaita/256x256/devices
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/devices/media-optical.png win-dist/share/icons/Adwaita/256x256/devices
|
||||
# $(MKDIR_P) win-dist/share/icons/Adwaita/256x256/status
|
||||
# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/256x256/status
|
||||
$(MKDIR_P) win-dist/share/icons/Adwaita/512x512/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/512x512/devices/drive-harddisk.png win-dist/share/icons/Adwaita/512x512/devices
|
||||
cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/512x512/devices/media-optical.png win-dist/share/icons/Adwaita/512x512/devices
|
||||
|
||||
# other
|
||||
cp -p "@WINDOWS_SYSROOT@"/bin/libgcc_s_*.dll win-dist/
|
||||
@@ -246,7 +288,9 @@ win-zip-dist-prepare: win-dist-prepare
|
||||
cp -a win-dist $(WIN_ZIP_NAME)
|
||||
|
||||
win-zip-dist-nocleanup: win-zip-dist-prepare
|
||||
zip -K -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME)
|
||||
zip -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME)
|
||||
# Only when cross-compiling:
|
||||
# zip -K -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME)
|
||||
|
||||
win-zip-dist-cleanup:
|
||||
rm -rf $(WIN_ZIP_NAME)
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
Version 1.1.4, released on 2022-02-04
|
||||
Fixed a crash when trying to render main window icons which have incomplete
|
||||
data; this fixes a rare crash when scanning devices (#13).
|
||||
Fixed rendering compatibility issues with newer GTK3 versions.
|
||||
Fixed build system conflict with C++20 version header (#14).
|
||||
Fixed "Running command ..." dialog floating above windows of other
|
||||
applications (#17).
|
||||
Fixed a crash when system locale is set to invalid locale.
|
||||
Support Finnish decimal separator (backported from the Debian package)
|
||||
(#23).
|
||||
Set LC_NUMERIC=C for smartctl process to avoid locale-dependent number
|
||||
formatting (#23).
|
||||
Fixed printing all GTK messages as warnings; the messages are sorted by
|
||||
severity now.
|
||||
Add current time to default filename in Save Output dialog.
|
||||
Support macos stat command in file2csource.sh.
|
||||
Fixed a few typos (backported from the Debian package).
|
||||
Windows port now uses Adwaita theme due to issues with win32 theme.
|
||||
Windows port is dpi-aware now.
|
||||
|
||||
Version 1.1.3, released on 2017-11-12
|
||||
Fixed gsmartcontrol-root not launching if GDK_* variables are not set.
|
||||
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ behind such controllers can be manually added to GSmartControl using
|
||||
"Add Device..." functionality or --add-device command-line option.
|
||||
See https://www.smartmontools.org/wiki/Supported_RAID-Controllers .
|
||||
|
||||
https://gsmartcontrol.sourceforge.io/
|
||||
https://gsmartcontrol.shaduri.dev
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ case $type in
|
||||
--enable-optimize-options --enable-tests --host=i686-w64-mingw32" ;;
|
||||
win32-cross-debug)
|
||||
flags="PATH=\"/usr/i686-w64-mingw32/bin:/usr/i686-w64-mingw32/sys-root/mingw/bin:$PATH\" \
|
||||
--with-windows-sysroot=/usr/i686-w64-mingw32/sys-root/mingw \
|
||||
--enable-debug-options --enable-tests --host=i686-w64-mingw32" ;;
|
||||
win64-cross)
|
||||
flags="PATH=\"/usr/x86_64-w64-mingw32/bin:/usr/x86_64-w64-mingw32/sys-root/mingw/bin:$PATH\" \
|
||||
@@ -55,6 +56,7 @@ case $type in
|
||||
--enable-optimize-options --enable-tests --host=x86_64-w64-mingw32" ;;
|
||||
win64-cross-debug)
|
||||
flags="PATH=\"/usr/x86_64-w64-mingw32/bin:/usr/x86_64-w64-mingw32/sys-root/mingw/bin:$PATH\" \
|
||||
--with-windows-sysroot=/usr/x86_64-w64-mingw32/sys-root/mingw \
|
||||
--enable-debug-options --enable-tests --host=x86_64-w64-mingw32" ;;
|
||||
|
||||
win32-msys)
|
||||
@@ -63,6 +65,7 @@ case $type in
|
||||
--enable-optimize-options --enable-tests --host=i686-w64-mingw32" ;;
|
||||
win32-msys-debug)
|
||||
flags="PATH=\"/mingw32/i686-w64-mingw32:/mingw32/bin:$PATH\" \
|
||||
--with-windows-sysroot=/mingw32 \
|
||||
--enable-debug-options --enable-tests --host=i686-w64-mingw32" ;;
|
||||
win64-msys)
|
||||
flags="PATH=\"/mingw64/x86_64-w64-mingw32:/mingw64/bin:$PATH\" \
|
||||
@@ -70,6 +73,7 @@ case $type in
|
||||
--enable-optimize-options --enable-tests --host=x86_64-w64-mingw32" ;;
|
||||
win64-msys-debug)
|
||||
flags="PATH=\"/mingw64/x86_64-w64-mingw32:/mingw64/bin:$PATH\" \
|
||||
--with-windows-sysroot=/mingw64 \
|
||||
--enable-debug-options --enable-tests --host=x86_64-w64-mingw32" ;;
|
||||
esac
|
||||
|
||||
|
||||
+3
-11
@@ -1,5 +1,5 @@
|
||||
|
||||
AC_INIT([GSmartControl],[1.1.3],[],[gsmartcontrol])
|
||||
AC_INIT([GSmartControl],[1.1.4],[],[gsmartcontrol])
|
||||
|
||||
AC_CONFIG_SRCDIR([configure.ac])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
@@ -474,11 +474,7 @@ AC_SUBST(AUTODIRS)
|
||||
# -------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
AC_CONFIG_FILES([ data/gsmartcontrol.desktop data/gsmartcontrol.appdata.xml \
|
||||
data/nsis/distribution.txt data/nsis/gsmartcontrol.nsi \
|
||||
debian.dist/changelog \
|
||||
src/gsc_winres.rc src/gsmartcontrol.exe.manifest \
|
||||
gsmartcontrol.spec version compilation_flags ])
|
||||
AC_CONFIG_FILES([data/gsmartcontrol.desktop data/gsmartcontrol.appdata.xml data/nsis/distribution.txt data/nsis/gsmartcontrol.nsi debian.dist/changelog src/gsc_winres.rc src/gsmartcontrol.exe.manifest gsmartcontrol.spec version.txt compilation_flags])
|
||||
|
||||
|
||||
AC_CONFIG_FILES([data/gsmartcontrol-root], [chmod +x data/gsmartcontrol-root])
|
||||
@@ -486,11 +482,7 @@ AC_CONFIG_FILES([data/gsmartcontrol-root], [chmod +x data/gsmartcontrol-root])
|
||||
|
||||
# these are all the makefiles to generate
|
||||
|
||||
AC_CONFIG_FILES([Makefile src/Makefile src/applib/Makefile src/res/Makefile src/hz/Makefile \
|
||||
src/libdebug/Makefile src/rconfig/Makefile src/rmn/Makefile \
|
||||
data/Makefile data/16/Makefile data/22/Makefile data/24/Makefile data/32/Makefile \
|
||||
data/48/Makefile data/64/Makefile data/128/Makefile data/256/Makefile data/nsis/Makefile \
|
||||
debian.dist/Makefile])
|
||||
AC_CONFIG_FILES([Makefile src/Makefile src/applib/Makefile src/res/Makefile src/hz/Makefile src/libdebug/Makefile src/rconfig/Makefile src/rmn/Makefile data/Makefile data/16/Makefile data/22/Makefile data/24/Makefile data/32/Makefile data/48/Makefile data/64/Makefile data/128/Makefile data/256/Makefile data/nsis/Makefile debian.dist/Makefile])
|
||||
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2017 GSmartControl developers -->
|
||||
<!-- Copyright 2017 - 2022 GSmartControl developers -->
|
||||
<component type="desktop">
|
||||
<id>gsmartcontrol</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
@@ -16,7 +16,7 @@
|
||||
</p>
|
||||
</description>
|
||||
<launchable type="desktop-id">gsmartcontrol.desktop</launchable>
|
||||
<url type="homepage">https://gsmartcontrol.sourceforge.io</url>
|
||||
<url type="homepage">https://gsmartcontrol.shaduri.dev</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>Main window</caption>
|
||||
|
||||
@@ -4,7 +4,7 @@ Version @VERSION@
|
||||
|
||||
The latest version of this distribution, as well as the source code of
|
||||
GSmartControl, can be found at
|
||||
https://gsmartcontrol.sourceforge.io
|
||||
https://gsmartcontrol.shaduri.dev
|
||||
and
|
||||
https://sourceforge.net/projects/gsmartcontrol/files/
|
||||
|
||||
|
||||
@@ -4,11 +4,13 @@
|
||||
; Compatible with NSIS Unicode 2.45.
|
||||
; Public Domain
|
||||
|
||||
Unicode True
|
||||
|
||||
!define PRODUCT_VERSION "@VERSION@"
|
||||
!define PRODUCT_NAME "GSmartControl"
|
||||
!define PRODUCT_NAME_SMALL "gsmartcontrol"
|
||||
!define PRODUCT_PUBLISHER "Alexander Shaduri"
|
||||
!define PRODUCT_WEB_SITE "https://gsmartcontrol.sourceforge.io"
|
||||
!define PRODUCT_WEB_SITE "https://gsmartcontrol.shaduri.dev"
|
||||
|
||||
;!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\AppMainExe.exe"
|
||||
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
||||
@@ -134,7 +136,6 @@ SectionIn 1 RO
|
||||
SetOverwrite On
|
||||
File *.exe
|
||||
File *.dll
|
||||
File gsmartcontrol.exe.manifest
|
||||
File gsmartcontrol.ico
|
||||
File icon_*.png
|
||||
File drivedb.h
|
||||
@@ -145,6 +146,7 @@ SectionIn 1 RO
|
||||
; GTK and stuff
|
||||
File /r etc
|
||||
File /r share
|
||||
File /r lib
|
||||
|
||||
; Add Shortcuts (this inherits the exe's run permissions)
|
||||
CreateShortCut "$SMPROGRAMS\GSmartControl.lnk" "$INSTDIR\gsmartcontrol.exe" "" \
|
||||
@@ -226,7 +228,6 @@ Section Uninstall
|
||||
|
||||
Delete "$INSTDIR\*.exe"
|
||||
Delete "$INSTDIR\*.dll"
|
||||
Delete "$INSTDIR\gsmartcontrol.exe.manifest"
|
||||
Delete "$INSTDIR\gsmartcontrol.ico"
|
||||
Delete "$INSTDIR\icon_*.png"
|
||||
|
||||
@@ -239,6 +240,7 @@ Section Uninstall
|
||||
; GTK and stuff
|
||||
RMDir /r "$INSTDIR\etc"
|
||||
RMDir /r "$INSTDIR\share"
|
||||
RMDir /r "$INSTDIR\lib"
|
||||
|
||||
; clean up generated stuff
|
||||
Delete "$INSTDIR\*stdout.txt"
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
Source: gsmartcontrol
|
||||
Section: utils
|
||||
Priority: extra
|
||||
Homepage: https://gsmartcontrol.sourceforge.io/
|
||||
Homepage: https://gsmartcontrol.shaduri.dev
|
||||
Maintainer: Alexander Shaduri <ashaduriREMOVETHIS@gmail.com>
|
||||
Build-Depends: debhelper (>= 5), autotools-dev,
|
||||
libpcre3-dev, libgtkmm-3.0-dev (>= 3.4.0)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
This package was debianized by Alexander Shaduri <ashaduri 'at' gmail.com> on
|
||||
Sat, 15 Nov 2008 00:12:04 +0400.
|
||||
|
||||
It was downloaded from <https://gsmartcontrol.sourceforge.io/>
|
||||
It was downloaded from <https://gsmartcontrol.shaduri.dev>
|
||||
|
||||
Copyright:
|
||||
|
||||
Copyright (C) 2008 - 2017 Alexander Shaduri <ashaduri 'at' gmail.com>
|
||||
Copyright (C) 2008 - 2022 Alexander Shaduri <ashaduri 'at' gmail.com>
|
||||
|
||||
License:
|
||||
|
||||
@@ -27,6 +27,6 @@ On Debian systems, the complete text of the GNU General
|
||||
Public Licenses can be found in `/usr/share/common-licenses/GPL-2' and
|
||||
`/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
The Debian packaging is (C) 2008 - 2017 Alexander Shaduri <ashaduri 'at' gmail.com> and
|
||||
The Debian packaging is (C) 2008 - 2022 Alexander Shaduri <ashaduri 'at' gmail.com> and
|
||||
is licensed under the GPLv2 and GPLv3, see above.
|
||||
|
||||
|
||||
+6
-1
@@ -24,7 +24,12 @@ fi
|
||||
in_file="$1";
|
||||
out_file="$2";
|
||||
sym_name="$3";
|
||||
size=`stat -c "%s" "$in_file"`
|
||||
size="";
|
||||
if [[ $OSTYPE == 'darwin'* ]]; then
|
||||
size=`stat "-f%z" "$in_file"`
|
||||
else
|
||||
size=`stat -c "%s" "$in_file"`
|
||||
fi
|
||||
|
||||
|
||||
# header. extern means "global" in this context (needed because const
|
||||
|
||||
@@ -6,7 +6,7 @@ Name: gsmartcontrol
|
||||
Version: @VERSION@
|
||||
Release: 0
|
||||
License: GPL-2.0 AND GPL-3.0
|
||||
Url: https://gsmartcontrol.sourceforge.io/
|
||||
Url: https://gsmartcontrol.shaduri.dev
|
||||
Vendor: Alexander Shaduri <ashaduri 'at' gmail.com>
|
||||
# Packager: Alexander Shaduri <ashaduri 'at' gmail.com>
|
||||
Source: http://sourceforge.net/projects/gsmartcontrol/files/%{version}/%{name}-%{version}.tar.bz2
|
||||
|
||||
@@ -131,7 +131,7 @@ bool Cmdex::execute()
|
||||
#endif
|
||||
|
||||
hz::ScopedEnv lang_env("LANG", "C", change_lang);
|
||||
|
||||
hz::ScopedEnv lc_numeric_env("LC_NUMERIC", "C", change_lang);
|
||||
|
||||
debug_out_info("app", DBG_FUNC_MSG << "Executing \"" << cmd << "\".\n");
|
||||
/*
|
||||
@@ -253,8 +253,13 @@ bool Cmdex::execute()
|
||||
bool Cmdex::try_stop(hz::signal_t sig)
|
||||
{
|
||||
DBG_FUNCTION_ENTER_MSG;
|
||||
#ifdef _WIN32
|
||||
if (!this->running_ || this->pid_ == 0)
|
||||
return false;
|
||||
#else
|
||||
if (!this->running_ || this->pid_ <= 0)
|
||||
return false;
|
||||
#endif
|
||||
|
||||
// other variants: SIGHUP(1) (terminal closed), SIGINT(2) (Ctrl-C),
|
||||
// SIGKILL(9) (kill).
|
||||
|
||||
@@ -29,7 +29,7 @@ bool CmdexSyncGui::execute()
|
||||
|
||||
|
||||
#define CMDEX_DIALOG_MESSAGE_TYPE Gtk::MESSAGE_OTHER
|
||||
#define CMDEX_DIALOG_HINT_TYPE Gdk::WINDOW_TYPE_HINT_NOTIFICATION
|
||||
#define CMDEX_DIALOG_HINT_TYPE Gdk::WINDOW_TYPE_HINT_DIALOG
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -345,6 +345,7 @@ std::string SmartctlParser::parse_byte_size(const std::string& str, uint64_t& by
|
||||
to_replace.push_back(",");
|
||||
to_replace.push_back(".");
|
||||
to_replace.push_back(std::string(1, 0xa0));
|
||||
to_replace.push_back(std::string(1, 0xc2));
|
||||
|
||||
#ifdef _WIN32
|
||||
// if current locale is C, then probably we didn't change it at application
|
||||
|
||||
@@ -110,7 +110,7 @@ std::map<char, DriveLetterInfo> win32_get_drive_letter_map()
|
||||
for (char c = 'A'; c <= 'Z'; ++c) {
|
||||
if (drives[c - 'A']) { // drive is present
|
||||
debug_out_dump("app", "Windows drive found: " << c << ".\n");
|
||||
if (GetDriveType((c + string(":\\")).c_str()) == DRIVE_FIXED) {
|
||||
if (GetDriveType((c + std::string(":\\")).c_str()) == DRIVE_FIXED) {
|
||||
debug_out_dump("app", "Windows drive " << c << " is fixed.\n");
|
||||
good_drives.push_back(c);
|
||||
}
|
||||
@@ -120,7 +120,7 @@ std::map<char, DriveLetterInfo> win32_get_drive_letter_map()
|
||||
// Try to open each drive, check its disk extents
|
||||
for (std::size_t i = 0; i < good_drives.size(); ++i) {
|
||||
char drive = good_drives[i];
|
||||
string drive_str = string("\\\\.\\") + drive + ":";
|
||||
std::string drive_str = std::string("\\\\.\\") + drive + ":";
|
||||
HANDLE h = CreateFileA(
|
||||
drive_str.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
|
||||
OPEN_EXISTING, FILE_FLAG_NO_BUFFERING | FILE_FLAG_RANDOM_ACCESS, NULL);
|
||||
|
||||
@@ -815,7 +815,7 @@ std::string StorageDevice::get_save_filename() const
|
||||
{
|
||||
std::string model = this->get_model_name(); // may be empty
|
||||
std::string serial = this->get_serial_number();
|
||||
std::string date = hz::format_date("%Y-%m-%d", false);
|
||||
std::string date = hz::format_date("%Y-%m-%d_%H%M", true);
|
||||
|
||||
std::string filename_format;
|
||||
rconfig::get_data("gui/smartctl_output_filename_format", filename_format);
|
||||
|
||||
@@ -43,7 +43,12 @@ std::string StorageAttribute::format_raw_value() const
|
||||
// If it's fully a number, format it with commas
|
||||
if (hz::number_to_string(raw_value_int) == raw_value) {
|
||||
std::stringstream ss;
|
||||
ss.imbue(std::locale(""));
|
||||
try {
|
||||
ss.imbue(std::locale(""));
|
||||
}
|
||||
catch (const std::runtime_error& e) {
|
||||
// something is wrong with system locale, can't do anything here.
|
||||
}
|
||||
ss << std::fixed << raw_value_int;
|
||||
return ss.str();
|
||||
}
|
||||
@@ -71,7 +76,12 @@ std::string StorageStatistic::format_value() const
|
||||
// If it's fully a number, format it with commas
|
||||
if (hz::number_to_string(value_int) == value) {
|
||||
std::stringstream ss;
|
||||
ss.imbue(std::locale(""));
|
||||
try {
|
||||
ss.imbue(std::locale(""));
|
||||
}
|
||||
catch (const std::runtime_error& e) {
|
||||
// something is wrong with system locale, can't do anything here.
|
||||
}
|
||||
ss << std::fixed << value_int;
|
||||
return ss.str();
|
||||
}
|
||||
@@ -153,7 +163,12 @@ int StorageErrorBlock::get_warning_level_for_error_type(std::string& type)
|
||||
std::string StorageErrorBlock::format_lifetime_hours() const
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss.imbue(std::locale(""));
|
||||
try {
|
||||
ss.imbue(std::locale(""));
|
||||
}
|
||||
catch (const std::runtime_error& e) {
|
||||
// something is wrong with system locale, can't do anything here.
|
||||
}
|
||||
ss << std::fixed << lifetime_hours;
|
||||
return ss.str();
|
||||
}
|
||||
@@ -173,7 +188,12 @@ std::ostream& operator<< (std::ostream& os, const StorageErrorBlock& b)
|
||||
std::string StorageSelftestEntry::format_lifetime_hours() const
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss.imbue(std::locale(""));
|
||||
try {
|
||||
ss.imbue(std::locale(""));
|
||||
}
|
||||
catch (const std::runtime_error& e) {
|
||||
// something is wrong with system locale, can't do anything here.
|
||||
}
|
||||
ss << std::fixed << lifetime_hours;
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
@@ -1677,7 +1677,7 @@ StorageProperty::warning_t storage_property_autoset_warning(StorageProperty& p)
|
||||
|
||||
} else if (name_match(p, "smart_enabled") && !p.value_bool) {
|
||||
w = StorageProperty::warning_notice;
|
||||
reason = "SMART is disabled. You shoud enable it to read any SMART information from this drive. "
|
||||
reason = "SMART is disabled. You should enable it to read any SMART information from this drive. "
|
||||
"Additionally, some drives do not log useful data with SMART disabled, so it's advisable to keep it always enabled.";
|
||||
|
||||
} else if (name_match(p, "info_warning")) {
|
||||
|
||||
@@ -40,7 +40,7 @@ GscAboutDialog::GscAboutDialog(BaseObjectType* gtkcobj, const app_ui_res_ref_t&
|
||||
set_version(VERSION);
|
||||
|
||||
// set these properties here (after setting hooks) to make the links work.
|
||||
set_website("https://gsmartcontrol.sourceforge.io/");
|
||||
set_website("https://gsmartcontrol.shaduri.dev");
|
||||
|
||||
set_license(LicenseTextResData().get_string());
|
||||
|
||||
@@ -50,7 +50,7 @@ GscAboutDialog::GscAboutDialog(BaseObjectType* gtkcobj, const app_ui_res_ref_t&
|
||||
// #endif
|
||||
|
||||
// spammers go away
|
||||
set_copyright("Copyright (C) 2008 - 2017 Alexander Shaduri " "<ashaduri" "" "@" "" "" "gmail.com>");
|
||||
set_copyright("Copyright (C) 2008 - 2022 Alexander Shaduri " "<ashaduri" "" "@" "" "" "gmail.com>");
|
||||
|
||||
|
||||
std::string authors_str = AuthorsTextResData().get_string();
|
||||
|
||||
+36
-5
@@ -127,10 +127,12 @@ namespace {
|
||||
crt->property_cell_background().reset_value();
|
||||
crt->property_foreground().reset_value();
|
||||
}
|
||||
if (p->value_statistic.is_header) {
|
||||
crt->property_weight() = Pango::WEIGHT_BOLD;
|
||||
} else {
|
||||
crt->property_weight().reset_value();
|
||||
if (p->value_type == StorageProperty::value_type_statistic) {
|
||||
if (p->value_statistic.is_header) {
|
||||
crt->property_weight() = Pango::WEIGHT_BOLD;
|
||||
} else {
|
||||
crt->property_weight().reset_value();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1128,8 +1130,12 @@ void GscInfoWindow::fill_ui_with_info(bool scan, bool clear_ui, bool clear_tests
|
||||
if (buffer) {
|
||||
buffer->set_text("\nComplete error log:\n\n" + iter->value_string);
|
||||
|
||||
// set marks so we can scroll to them
|
||||
// Make the text monospace (the 3.16+ glade property does not work anymore for some reason).
|
||||
Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag();
|
||||
tag->property_family() = "Monospace";
|
||||
buffer->apply_tag(tag, buffer->begin(), buffer->end());
|
||||
|
||||
// Set marks so we can scroll to them
|
||||
if (!error_log_row_selected_conn.connected()) { // avoid double-connect
|
||||
error_log_row_selected_conn = treeview->get_selection()->signal_changed().connect(
|
||||
sigc::bind(sigc::bind(sigc::ptr_fun(on_error_log_treeview_row_selected), col_mark_name), this));
|
||||
@@ -1240,6 +1246,11 @@ void GscInfoWindow::fill_ui_with_info(bool scan, bool clear_ui, bool clear_tests
|
||||
if (iter->generic_name == "scttemp_log") {
|
||||
Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer();
|
||||
buffer->set_text("\nComplete SCT temperature log:\n\n" + iter->value_string);
|
||||
|
||||
// Make the text monospace (the 3.16+ glade property does not work anymore for some reason).
|
||||
Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag();
|
||||
tag->property_family() = "Monospace";
|
||||
buffer->apply_tag(tag, buffer->begin(), buffer->end());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1385,6 +1396,11 @@ void GscInfoWindow::fill_ui_with_info(bool scan, bool clear_ui, bool clear_tests
|
||||
if (iter->generic_name == "scterc_log") {
|
||||
Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer();
|
||||
buffer->set_text("\nComplete SCT Error Recovery Control settings:\n\n" + iter->value_string);
|
||||
|
||||
// Make the text monospace (the 3.16+ glade property does not work anymore for some reason).
|
||||
Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag();
|
||||
tag->property_family() = "Monospace";
|
||||
buffer->apply_tag(tag, buffer->begin(), buffer->end());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1418,6 +1434,11 @@ void GscInfoWindow::fill_ui_with_info(bool scan, bool clear_ui, bool clear_tests
|
||||
if (iter->generic_name == "selective_selftest_log") {
|
||||
Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer();
|
||||
buffer->set_text("\nComplete selective self-test log:\n\n" + iter->value_string);
|
||||
|
||||
// Make the text monospace (the 3.16+ glade property does not work anymore for some reason).
|
||||
Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag();
|
||||
tag->property_family() = "Monospace";
|
||||
buffer->apply_tag(tag, buffer->begin(), buffer->end());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1451,6 +1472,11 @@ void GscInfoWindow::fill_ui_with_info(bool scan, bool clear_ui, bool clear_tests
|
||||
if (iter->generic_name == "sataphy_log") {
|
||||
Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer();
|
||||
buffer->set_text("\nComplete phy log:\n\n" + iter->value_string);
|
||||
|
||||
// Make the text monospace (the 3.16+ glade property does not work anymore for some reason).
|
||||
Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag();
|
||||
tag->property_family() = "Monospace";
|
||||
buffer->apply_tag(tag, buffer->begin(), buffer->end());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1484,6 +1510,11 @@ void GscInfoWindow::fill_ui_with_info(bool scan, bool clear_ui, bool clear_tests
|
||||
if (iter->generic_name == "directory_log") {
|
||||
Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer();
|
||||
buffer->set_text("\nComplete directory log:\n\n" + iter->value_string);
|
||||
|
||||
// Make the text monospace (the 3.16+ glade property does not work anymore for some reason).
|
||||
Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag();
|
||||
tag->property_family() = "Monospace";
|
||||
buffer->apply_tag(tag, buffer->begin(), buffer->end());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+26
-4
@@ -192,7 +192,26 @@ extern "C" {
|
||||
const gchar* message, gpointer user_data)
|
||||
{
|
||||
// log_domain is already printed as part of message.
|
||||
debug_print_error("gtk", "%s\n", message);
|
||||
switch(log_level) {
|
||||
case G_LOG_FLAG_RECURSION:
|
||||
case G_LOG_FLAG_FATAL:
|
||||
case G_LOG_LEVEL_ERROR: // fatal
|
||||
case G_LOG_LEVEL_CRITICAL:
|
||||
debug_print_error("gtk", "%s\n", message);
|
||||
break;
|
||||
case G_LOG_LEVEL_WARNING:
|
||||
debug_print_warn("gtk", "%s\n", message);
|
||||
break;
|
||||
case G_LOG_LEVEL_MESSAGE:
|
||||
case G_LOG_LEVEL_INFO:
|
||||
debug_print_info("gtk", "%s\n", message);
|
||||
break;
|
||||
case G_LOG_LEVEL_DEBUG:
|
||||
debug_print_dump("gtk", "%s\n", message);
|
||||
break;
|
||||
case G_LOG_LEVEL_MASK:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -307,7 +326,7 @@ namespace {
|
||||
std::string warningtext = std::string("\nWarning: GSmartControl");
|
||||
warningtext += " comes with ABSOLUTELY NO WARRANTY.\n";
|
||||
warningtext += "See LICENSE_gsmartcontrol.txt file for details.\n";
|
||||
warningtext += "\nCopyright (C) 2008 - 2017 Alexander Shaduri <ashaduri" "" "@" "" "" "gmail.com>\n\n";
|
||||
warningtext += "\nCopyright (C) 2008 - 2022 Alexander Shaduri <ashaduri" "" "@" "" "" "gmail.com>\n\n";
|
||||
|
||||
std::fprintf(stdout, "%s%s", versiontext.c_str(), warningtext.c_str());
|
||||
}
|
||||
@@ -323,8 +342,11 @@ bool app_init_and_loop(int& argc, char**& argv)
|
||||
// Glib::thread_init();
|
||||
|
||||
#ifdef _WIN32
|
||||
// Disable client-side decorations (enable native windows decorations) under Windows.
|
||||
hz::env_set_value("GTK_CSD", "0");
|
||||
std::string csd_value;
|
||||
if (!hz::env_get_value("GTK_CSD", csd_value)) { // if not set
|
||||
// Disable client-side decorations (enable native windows decorations) under Windows.
|
||||
hz::env_set_value("GTK_CSD", "0");
|
||||
}
|
||||
#endif
|
||||
|
||||
// Glib needs the C locale set to system locale for command line args.
|
||||
|
||||
@@ -1203,6 +1203,10 @@ bool GscMainWindow::testing_active() const
|
||||
|
||||
GscInfoWindow* GscMainWindow::show_device_info_window(StorageDeviceRefPtr drive)
|
||||
{
|
||||
if (!drive) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// if a test is being run on it, disallow.
|
||||
if (drive->get_test_is_active()) {
|
||||
gui_show_warn_dialog("Please wait until the test is finished on this drive.", this);
|
||||
|
||||
@@ -69,6 +69,8 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
|
||||
columns.add(col_drive_ptr);
|
||||
|
||||
columns.add(col_populated);
|
||||
|
||||
// create a Tree Model
|
||||
ref_list_model = Gtk::ListStore::create(columns);
|
||||
// ref_list_model->set_sort_column(col_name, Gtk::SORT_ASCENDING);
|
||||
@@ -207,7 +209,14 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
void on_cell_data_render(const Gtk::TreeModel::const_iterator& iter)
|
||||
{
|
||||
Gtk::TreeRow row = *iter;
|
||||
if (!row[col_populated]) { // protect against rendering incomplete model entry
|
||||
return;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gdk::Pixbuf> pixbuf = row[col_pixbuf];
|
||||
if (!pixbuf) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Gtkmm property_surface() doesn't work, so use plain C.
|
||||
// https://bugzilla.gnome.org/show_bug.cgi?id=788513
|
||||
@@ -241,6 +250,8 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
|
||||
this->decorate_entry(row);
|
||||
|
||||
row[col_populated] = true; // triggers rendering
|
||||
|
||||
drive->signal_changed.connect(sigc::mem_fun(this, &GscMainWindowIconView::on_drive_changed));
|
||||
|
||||
if (scroll_to_it) {
|
||||
@@ -279,6 +290,9 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
void decorate_entry(Gtk::TreeModel::Row& row)
|
||||
{
|
||||
StorageDeviceRefPtr drive = row[col_drive_ptr];
|
||||
if (!drive) {
|
||||
return;
|
||||
}
|
||||
|
||||
// it needs this space to be symmetric (why?);
|
||||
std::string name; // = "<big>" + drive->get_device_with_type() + " </big>\n";
|
||||
@@ -473,8 +487,11 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
} else { // enable drives menu, set proper smart toggles
|
||||
Gtk::TreePath model_path = *(this->get_selected_items().begin());
|
||||
Gtk::TreeModel::Row row = *(ref_list_model->get_iter(model_path));
|
||||
StorageDeviceRefPtr drive = row[col_drive_ptr];
|
||||
if (!row[col_populated]) { // protect against using incomplete model entry
|
||||
return;
|
||||
}
|
||||
|
||||
StorageDeviceRefPtr drive = row[col_drive_ptr];
|
||||
main_window->set_drive_menu_status(drive);
|
||||
}
|
||||
}
|
||||
@@ -488,8 +505,11 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
return;
|
||||
|
||||
Gtk::TreeModel::Row row = *(ref_list_model->get_iter(model_path));
|
||||
StorageDeviceRefPtr drive = row[col_drive_ptr];
|
||||
if (!row[col_populated]) { // protect against using incomplete model entry
|
||||
return;
|
||||
}
|
||||
|
||||
StorageDeviceRefPtr drive = row[col_drive_ptr];
|
||||
main_window->show_device_info_window(drive);
|
||||
}
|
||||
|
||||
@@ -536,9 +556,11 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
this->unselect_all(); // unselect on empty area right-click
|
||||
}
|
||||
|
||||
Gtk::Menu* menu = main_window->get_popup_menu(drive);
|
||||
if (menu)
|
||||
menu->popup(event_button->button, event_button->time);
|
||||
if (drive) {
|
||||
Gtk::Menu* menu = main_window->get_popup_menu(drive);
|
||||
if (menu)
|
||||
menu->popup(event_button->button, event_button->time);
|
||||
}
|
||||
|
||||
return true; // stop handling
|
||||
}
|
||||
@@ -568,6 +590,7 @@ class GscMainWindowIconView : public Gtk::IconView {
|
||||
Gtk::TreeModelColumn<Glib::ustring> col_description; ///< Model column
|
||||
Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > col_pixbuf; ///< Model column
|
||||
Gtk::TreeModelColumn<StorageDeviceRefPtr> col_drive_ptr; ///< Model column
|
||||
Gtk::TreeModelColumn<bool> col_populated; ///< Model column, indicates whether the model entry has been fully populated.
|
||||
|
||||
Glib::RefPtr<Gtk::ListStore> ref_list_model; ///< The icon view model
|
||||
unsigned int num_icons; ///< Track the number of icons, because liststore makes it difficult to count them.
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
|
||||
gsmartcontrol ICON "gsmartcontrol.ico"
|
||||
|
||||
// Embed manifest in exe
|
||||
1 24 "gsmartcontrol.exe.manifest"
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION 0,0,0,0
|
||||
PRODUCTVERSION 0,0,0,0
|
||||
@@ -14,7 +17,7 @@ BEGIN
|
||||
VALUE "FileDescription", "GSmartControl - Hard disk drive and SSD health inspection tool"
|
||||
VALUE "FileVersion", "@VERSION@"
|
||||
VALUE "InternalName", "gsmartcontrol.exe"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2008 - 2017 Alexander Shaduri"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2008 - 2022 Alexander Shaduri"
|
||||
VALUE "OriginalFilename", "gsmartcontrol.exe"
|
||||
VALUE "ProductName", "GSmartControl"
|
||||
VALUE "ProductVersion", "@VERSION@"
|
||||
|
||||
@@ -18,10 +18,12 @@
|
||||
</ms_asmv2:security>
|
||||
</ms_asmv2:trustInfo>
|
||||
|
||||
<!-- GTK3 applications aren't quite dpi-aware -->
|
||||
<!-- GTK3 applications aren't quite dpi-aware with win32 theme, among other
|
||||
visual issues.
|
||||
On the other hand, HiDPI Adwaita works (it also looks slightly like win11 theme), so we prefer that. -->
|
||||
<asmv3:application>
|
||||
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
|
||||
<dpiAware>false</dpiAware>
|
||||
<dpiAware>true</dpiAware>
|
||||
</asmv3:windowsSettings>
|
||||
</asmv3:application>
|
||||
|
||||
|
||||
@@ -195,7 +195,7 @@ namespace internal {
|
||||
|
||||
inline int process_signal_send(process_id_t process_handle, signal_t sig)
|
||||
{
|
||||
if (process_handle <= 0) {
|
||||
if (process_handle == 0) {
|
||||
errno = ESRCH; // The pid or process group does not exist.
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
<object class="GtkEntry" id="smartctl_options_entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the progam invokes smartctl. Must be shell-escaped.</property>
|
||||
<property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the program invokes smartctl. Must be shell-escaped.</property>
|
||||
<property name="activates_default">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
@@ -239,7 +239,7 @@
|
||||
<object class="GtkLabel" id="label8">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the progam invokes smartctl. Must be shell-escaped.</property>
|
||||
<property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the program invokes smartctl. Must be shell-escaped.</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Smartctl parameters:</property>
|
||||
<property name="use_underline">True</property>
|
||||
|
||||
Reference in New Issue
Block a user