diff --git a/Makefile b/Makefile
index 7a9c535..21263cf 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,6 @@ DEPENDS = /bin/cmake
PREFIX ?= /usr/local
PKGNAME = $(MAKEFILE_DIR)
FILE_VER = source/${PKGNAME}.h
-PKGIDENT = $(subst /,-,$(subst /usr,,${PREFIX}))
default_target: all
@@ -22,8 +21,13 @@ all: init build
init:
@echo "Initialize ..."; \
- if [ -d ".git" ]; then \
+ if [[ -d ".git" ]]; then \
LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \
+ if [[ -z "$${LATEST_TAG}" ]]; \
+ then \
+ LATEST_TAG=$$"0.0"; \
+ echo "$${LATEST_TAG} is empty"; \
+ fi; \
else \
LATEST_TAG="Development"; \
fi; \
@@ -33,7 +37,7 @@ init:
depend:
@echo "Check depends ..."
@for FILE_DEPEND in $(DEPENDS); do \
- if [ ! -f $${FILE_DEPEND} ]; then \
+ if [[ ! -f "$${FILE_DEPEND}" ]]; then \
echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
exit 1; \
fi; \
@@ -43,21 +47,21 @@ depend:
debug:
@echo "Debug ..."
- if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
+ if [[ ! -d "${CMAKE_BUILD_DIR}" ]]; then \
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
fi; \
echo "Debug: OK"
prepare:
@echo "Prepare ..."; \
- if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
+ if [[ ! -d "${CMAKE_BUILD_DIR}" ]]; then \
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
fi; \
echo "Prepare: OK"
check:
@echo "Check ..."; \
- if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \
+ if [[ -f "${CMAKE_BUILD_DIR}/${PKGNAME}" ]]; then \
echo "Check: OK"; \
else \
echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \
@@ -72,10 +76,9 @@ build: depend prepare
uninstall:
@echo "Uninstall ..."
- @for FILE_PO in $(wildcard *.po); do \
- LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
- FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
- PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
+ @for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \
+# PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
+ PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
$(RM) "$${PATH_FILE_MO}"; \
done
@for SIZE in 16x16 32x32 48x48 scalable; do \
@@ -87,60 +90,64 @@ uninstall:
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
done; \
done
+ @for FILE_ICON in $(wildcard icons/*/*.svg); do \
+ SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \
+ $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/$${SUB_NAME}/$${FILE_ICON}"; \
+ done
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
- @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
- @$(RM) "${DESTDIR}/usr/share/${PKGNAME}/csv/resolutions.csv"
- @$(RM) "${DESTDIR}/usr/share/${PKGNAME}/csv/video-drivers.csv"
- @$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
- @$(RM) -rdf "${DESTDIR}${PREFIX}/share/${PKGNAME}"
- @if [ -z ${DESTDIR} ]; then \
- [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
+ @if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \
+ $(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"; \
+ else \
+# $(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
+ $(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
+ fi
+ @if [[ -z "${DESTDIR}" ]]; then \
+ [[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ]] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \
- [ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
+ [[ -d "${DESTDIR}${PREFIX}/share/applications" ]] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
fi
@echo "Uninstall: OK"
install: check uninstall
@echo "Install ..."
- @for FILE_PO in $(wildcard *.po); do \
- LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
- install -dm755 "${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES"; \
- FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
- PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
- echo "$${FILE_PO}"; \
- msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \
+ @for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \
+ install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
+# PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
+ PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
+ PKGNAME_PO="./locale/${PKGNAME}_$${LANG}.po"; [[ -f "$${PKGNAME_PO}" ]] || PKGNAME_PO= ; \
+ msgfmt --verbose --use-fuzzy --output-file "$${PATH_FILE_MO}" - < <(msgcat --use-first --no-wrap $${PKGNAME_PO} ./locale/*_$${LANG}.po); \
done
@for SIZE in 16 32 48; do \
- install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
- rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
+ install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
+ rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "icons/apps/com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
+ done
+ @for FILE_ICON in $(wildcard icons/*/*.svg); do \
+ SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \
+ install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/$${SUB_NAME}" $${FILE_ICON}; \
done
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/devices/" "com.ublinux.${PKGNAME}.display.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/devices/" "com.ublinux.${PKGNAME}.video-card.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.nvidia-logo.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.intel-logo.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.amd-logo.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.vmware-logo.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
- @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "resolutions.csv"
- @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "video-drivers.csv"
- @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
- @install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
- @sed -e '\|annotate key=|s|/usr/bin|${PREFIX}/bin|' -e '/action id=/s/\.run/${PKGIDENT}\.run/' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy
- @if [ -z ${DESTDIR} ]; then \
- [ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
+ @if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \
+ install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"; \
+ else \
+# install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
+ install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
+# sed -e "s+/usr/bin+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
+ sed -e "s+/usr/bin+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
+ fi
+ @if [[ -z "${DESTDIR}" ]]; then \
+ ldconfig -n ${DESTDIR}${PREFIX}/lib; \
+ [[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ]] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \
- [ -d "${DESTDIR}/usr/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
+ [[ -d "${DESTDIR}${PREFIX}/share/applications" ]] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
fi
@echo "Install: OK"
clean:
@echo "Clean ..."
@$(RM) -rd ${CMAKE_BUILD_DIR}
- @if [ -d ${CMAKE_BUILD_DIR} ]; then \
+ @if [[ -d "${CMAKE_BUILD_DIR}" ]]; then \
echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
else \
echo "Clean: OK"; \
@@ -152,7 +159,7 @@ help:
echo "... init"; \
echo "... debug"; \
echo "... prepare"; \
- echo "... build"; \
+ echo "... compile"; \
echo "... install"; \
echo "... uninstall"; \
echo "... clean"
\ No newline at end of file
diff --git a/com.ublinux.ubl-settings-video.checked.svg b/com.ublinux.ubl-settings-video.checked.svg
deleted file mode 100644
index e3cab42..0000000
--- a/com.ublinux.ubl-settings-video.checked.svg
+++ /dev/null
@@ -1,327 +0,0 @@
-
-
diff --git a/com.ublinux.ubl-settings-video.warning.svg b/com.ublinux.ubl-settings-video.warning.svg
deleted file mode 100644
index 9a90dba..0000000
--- a/com.ublinux.ubl-settings-video.warning.svg
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
diff --git a/gresource.xml b/gresource.xml
index 19bc681..78ff5f5 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -9,7 +9,4 @@
ubl-settings-video.css
-
- ubl-settings-video-banner.png
-
\ No newline at end of file
diff --git a/com.ublinux.ubl-settings-video.svg b/icons/apps/com.ublinux.ubl-settings-video.svg
similarity index 100%
rename from com.ublinux.ubl-settings-video.svg
rename to icons/apps/com.ublinux.ubl-settings-video.svg
diff --git a/com.ublinux.ubl-settings-video.amd-logo.svg b/icons/emblems/com.ublinux.ubl-settings-video.amd-logo.svg
similarity index 100%
rename from com.ublinux.ubl-settings-video.amd-logo.svg
rename to icons/emblems/com.ublinux.ubl-settings-video.amd-logo.svg
diff --git a/com.ublinux.ubl-settings-video.display.svg b/icons/emblems/com.ublinux.ubl-settings-video.display.svg
similarity index 100%
rename from com.ublinux.ubl-settings-video.display.svg
rename to icons/emblems/com.ublinux.ubl-settings-video.display.svg
diff --git a/com.ublinux.ubl-settings-video.intel-logo.svg b/icons/emblems/com.ublinux.ubl-settings-video.intel-logo.svg
similarity index 100%
rename from com.ublinux.ubl-settings-video.intel-logo.svg
rename to icons/emblems/com.ublinux.ubl-settings-video.intel-logo.svg
diff --git a/com.ublinux.ubl-settings-video.nvidia-logo.svg b/icons/emblems/com.ublinux.ubl-settings-video.nvidia-logo.svg
similarity index 100%
rename from com.ublinux.ubl-settings-video.nvidia-logo.svg
rename to icons/emblems/com.ublinux.ubl-settings-video.nvidia-logo.svg
diff --git a/com.ublinux.ubl-settings-video.video-card.svg b/icons/emblems/com.ublinux.ubl-settings-video.video-card.svg
similarity index 100%
rename from com.ublinux.ubl-settings-video.video-card.svg
rename to icons/emblems/com.ublinux.ubl-settings-video.video-card.svg
diff --git a/com.ublinux.ubl-settings-video.vmware-logo.svg b/icons/emblems/com.ublinux.ubl-settings-video.vmware-logo.svg
similarity index 100%
rename from com.ublinux.ubl-settings-video.vmware-logo.svg
rename to icons/emblems/com.ublinux.ubl-settings-video.vmware-logo.svg
diff --git a/ubl-settings-video.pot b/locale/ubl-settings-video.pot
similarity index 100%
rename from ubl-settings-video.pot
rename to locale/ubl-settings-video.pot
diff --git a/ubl-settings-video_ru.po b/locale/ubl-settings-video_ru.po
similarity index 100%
rename from ubl-settings-video_ru.po
rename to locale/ubl-settings-video_ru.po
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 165cf28..7569c83 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -41,7 +41,6 @@ set(DEPENDFILES
../ubl-settings-video-monitor.glade
../ubl-settings-video-configuration.glade
../gresource.xml
- ../ubl-settings-video-banner.png
../ubl-settings-video.css
)
diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c
index 90d331a..02dfb51 100644
--- a/source/ubl-settings-video.c
+++ b/source/ubl-settings-video.c
@@ -77,8 +77,8 @@ gboolean on_terminal_check_progress(main_window *widgets){
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel), percentage / 100);
g_free(last_match);
}
- g_free(text);
- g_match_info_unref(match);
+ if (text) g_free(text);
+ if (match) g_match_info_unref(match);
g_mutex_lock(&main_config.progress_mutex);
if (percentage>99||!main_config.progress_active){
@@ -90,6 +90,13 @@ gboolean on_terminal_check_progress(main_window *widgets){
return G_SOURCE_CONTINUE;
}
+void on_command_cancel(GtkWidget *,main_window *widgets){
+ g_mutex_lock(&main_config.progress_mutex);
+ main_config.progress_active=0;
+ g_mutex_unlock(&main_config.progress_mutex);
+ on_terminal_done(NULL,0,widgets);
+}
+
void yon_terminal_start(main_window *widgets, char *usr_command){
char **command=new_arr(char*,2);
gchar **envp = g_get_environ();
@@ -103,12 +110,14 @@ void yon_terminal_start(main_window *widgets, char *usr_command){
widgets->TerminalBox = yon_gtk_builder_get_widget(builder, "TerminalBox");
widgets->TerminalRevealer = yon_gtk_builder_get_widget(builder, "TerminalRevealer");
widgets->TerminalMoreRevieler = yon_gtk_builder_get_widget(builder, "TerminalMoreRevieler");
+ widgets->TerminalCancelButton = yon_gtk_builder_get_widget(builder, "TerminalCancelButton");
widgets->TerminalMoreButton = yon_gtk_builder_get_widget(builder, "TerminalMoreButton");
widgets->TerminalScroll = yon_gtk_builder_get_widget(builder, "TerminalScroll");
widgets->TerminalInfoLabel = yon_gtk_builder_get_widget(builder, "TerminalInfoLabel");
widgets->terminal = yon_gtk_builder_get_widget(builder, "TerminalTerminal");
g_signal_connect(G_OBJECT(widgets->terminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
+ g_signal_connect(G_OBJECT(widgets->TerminalCancelButton),"clicked",G_CALLBACK(on_command_cancel),widgets);
gtk_button_set_label(GTK_BUTTON(widgets->TerminalMoreButton),MORE_LABEL);
vte_terminal_set_size(VTE_TERMINAL(widgets->terminal),10,15);
diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h
index f815c83..ecf0041 100644
--- a/source/ubl-settings-video.h
+++ b/source/ubl-settings-video.h
@@ -196,6 +196,7 @@ typedef struct
GtkWidget *TerminalRevealer;
GtkWidget *TerminalInfoLabel;
GtkWidget *TerminalMoreButton;
+ GtkWidget *TerminalCancelButton;
GtkWidget *TerminalScroll;
GtkWidget *TerminalMoreRevieler;
GtkWidget *DriversLoadingOverlay;
@@ -398,4 +399,6 @@ gboolean yon_proprietary_disconnect(main_window *widgets);
gboolean yon_proprietary_connect(main_window *widgets);
void on_app_chooser_open(GtkWidget *self, main_window *widgets);
gpointer yon_driver_info_launch(void *command);
+void on_command_cancel(GtkWidget *,main_window *widgets);
+
#endif
\ No newline at end of file
diff --git a/ubl-settings-video-banner.png b/ubl-settings-video-banner.png
deleted file mode 100644
index 8eb67cb..0000000
Binary files a/ubl-settings-video-banner.png and /dev/null differ
diff --git a/ubl-settings-video-terminal.glade b/ubl-settings-video-terminal.glade
index d76c8b6..a4f479f 100644
--- a/ubl-settings-video-terminal.glade
+++ b/ubl-settings-video-terminal.glade
@@ -4,6 +4,11 @@
+
@@ -155,9 +173,4 @@
-
- 300
- 1
- 10
-