From 1f5099bec8a52f7fff3ad7cdd6ee9bd344bcaebd Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 13 Feb 2021 02:28:36 +0530 Subject: [PATCH 1/9] Create codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 67 +++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..91cb269 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,67 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ master ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ master ] + schedule: + - cron: '26 1 * * 4' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + language: [ 'cpp' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] + # Learn more: + # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # ℹī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 From 81685cf2af1fc101d2634ea63246150cdff08bee Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 13 Feb 2021 02:35:24 +0530 Subject: [PATCH 2/9] Update codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 91cb269..f46ce6e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -36,6 +36,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v2 + + - name: Install dependencies + run: | + sudo apt install -y libgtk-3-dev build-essential cmake gcc g++ pkg-config make hostapd # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL From 3a9f0bd40cb09f52f81fe3087a1aacfbc3b36334 Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 20 Feb 2021 08:21:54 +0530 Subject: [PATCH 3/9] Update Licence --- LICENSE | 2 +- src/scripts/LICENSE | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 23ce4df..38492d4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020, lakinduaksh +Copyright (c) 2021, lakinduaksh All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/src/scripts/LICENSE b/src/scripts/LICENSE index 2e153be..06bb45c 100644 --- a/src/scripts/LICENSE +++ b/src/scripts/LICENSE @@ -24,7 +24,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *All modification to this software is under following licence -Copyright (c) 2019, lakinduaksh +Copyright (c) 2021, lakinduaksh All rights reserved. Redistribution and use in source and binary forms, with or without From 554d8451fea576a05ce0c7dfa8a06175e90442ca Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 20 Feb 2021 08:23:10 +0530 Subject: [PATCH 4/9] Update icons --- src/Makefile | 20 ++++++++++++------ src/desktop/icons/hotspot.svg | 1 + src/desktop/icons/hotspot@256.png | Bin 0 -> 12547 bytes src/desktop/icons/hotspot@48.png | Bin 0 -> 2337 bytes .../{hotspot.png => icons/hotspot@512.png} | Bin src/desktop/icons/hotspot@64.png | Bin 0 -> 6216 bytes 6 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 src/desktop/icons/hotspot.svg create mode 100644 src/desktop/icons/hotspot@256.png create mode 100644 src/desktop/icons/hotspot@48.png rename src/desktop/{hotspot.png => icons/hotspot@512.png} (100%) create mode 100644 src/desktop/icons/hotspot@64.png diff --git a/src/Makefile b/src/Makefile index 3724a2b..2e88c25 100644 --- a/src/Makefile +++ b/src/Makefile @@ -16,7 +16,7 @@ GLIB_COMPILE_RESOURCES = $(shell $(PKGCONFIG) --variable=glib_compile_resources BUILT_SRC = resources.c -_OBJ = main.o ui.o h_prop.o util.o read_config.o $(BUILT_SRC:.c=.o) +_OBJ = main.o ui.o h_prop.o util.o read_config.o about_ui.o $(BUILT_SRC:.c=.o) OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ)) # Determine this makefile's path. @@ -41,22 +41,30 @@ wihotspot-gui: $(OBJ) $(CC) -o $(ODIR)/$@ $^ $(CFLAGS) $(LIBS) install: $(ODIR)/wihotspot-gui - install -Dm644 desktop/hotspot.png $(DESTDIR)$(PREFIX)/share/pixmaps/wihotspot.png + install -Dm644 desktop/icons/hotspot@64.png $(DESTDIR)$(PREFIX)/share/pixmaps/wihotspot.png + install -Dm644 desktop/icons/hotspot@48.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/wihotspot.png + install -Dm644 desktop/icons/hotspot@64.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps/wihotspot.png + install -Dm644 desktop/icons/hotspot@256.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/wihotspot.png + install -Dm644 desktop/icons/hotspot@512.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/512x512/apps/wihotspot.png + install -Dm644 desktop/icons/hotspot.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/wihotspot.svg install -Dm644 desktop/wifihotspot.desktop $(DESTDIR)$(PREFIX)/share/applications/$(APP_NAME).desktop install -Dm755 $(ODIR)/wihotspot-gui $(DESTDIR)$(BINDIR)/$(APP_GUI_BINARY) cd scripts && $(MAKE) install uninstall: + rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/wihotspot.xpm rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/wihotspot.png + rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/wihotspot.png + rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps/wihotspot.png + rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/256x256/apps/wihotspot.png + rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/512x512/apps/wihotspot.png + rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/wihotspot.svg rm -f $(DESTDIR)$(PREFIX)/share/applications/$(APP_NAME).desktop rm -f $(DESTDIR)$(BINDIR)/$(APP_GUI_BINARY) cd scripts && $(MAKE) uninstall clean-old: - rm -rf $(DESTDIR)/usr/share/wihotspot_gui - rm -rf $(DESTDIR)/usr/share/wihotspot - rm -f $(DESTDIR)/usr/bin/wihotspot_gui - rm -f $(DESTDIR)/usr/bin/wihotspot + rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/wihotspot.png clean: rm -f $(ODIR)/*.o diff --git a/src/desktop/icons/hotspot.svg b/src/desktop/icons/hotspot.svg new file mode 100644 index 0000000..336f1ee --- /dev/null +++ b/src/desktop/icons/hotspot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/desktop/icons/hotspot@256.png b/src/desktop/icons/hotspot@256.png new file mode 100644 index 0000000000000000000000000000000000000000..5eed70934ed2a04aad7a02b77b6aec548aa9ae26 GIT binary patch literal 12547 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 K$y7+0h5R4!Y09Yp literal 0 HcmV?d00001 diff --git a/src/desktop/icons/hotspot@48.png b/src/desktop/icons/hotspot@48.png new file mode 100644 index 0000000000000000000000000000000000000000..553968343c7c51a3ebdde79b0d74184b06a70f48 GIT binary patch literal 2337 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 Hu0mjf83=No literal 0 HcmV?d00001 diff --git a/src/desktop/hotspot.png b/src/desktop/icons/hotspot@512.png similarity index 100% rename from src/desktop/hotspot.png rename to src/desktop/icons/hotspot@512.png diff --git a/src/desktop/icons/hotspot@64.png b/src/desktop/icons/hotspot@64.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce6968d5cafc92637b7e1948e6310e460a25469 GIT binary patch literal 6216 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 mb=%7 Date: Sat, 20 Feb 2021 08:23:41 +0530 Subject: [PATCH 5/9] Add about dialog --- .gitignore | 3 +- src/ui/about_ui.c | 55 ++++++++++++++++++++++ src/ui/about_ui.h | 11 +++++ src/ui/glade/about.glade | 79 ++++++++++++++++++++++++++++++++ src/ui/glade/wifih.gresource.xml | 5 ++ src/ui/glade/wifih.ui | 38 ++++++++------- src/ui/ui.c | 9 ++++ 7 files changed, 179 insertions(+), 21 deletions(-) create mode 100644 src/ui/about_ui.c create mode 100644 src/ui/about_ui.h create mode 100644 src/ui/glade/about.glade diff --git a/.gitignore b/.gitignore index f9e7ad0..e5cfa56 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ build .vscode src/cmake-build-debug src/ui/resources.c -wifih.ui~ \ No newline at end of file +wifih.ui~ +about.glade~ \ No newline at end of file diff --git a/src/ui/about_ui.c b/src/ui/about_ui.c new file mode 100644 index 0000000..3ff7cb7 --- /dev/null +++ b/src/ui/about_ui.c @@ -0,0 +1,55 @@ +// +// Created by lakinduakash on 13/04/19. +// +/* +Copyright (c) 2021, lakinduaksh + All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + */ + + + +#include +#include "about_ui.h" + +static GtkBuilder *builder; +static GError *error = NULL; + +void show_info(GtkWidget *widget, gpointer root) { + + builder = gtk_builder_new(); + //Load ui description from built resource - need to generate compiled source with glib-compile-resource + gtk_builder_add_from_resource(builder,"/org/gtk/wihotspot/about.glade",&error); + + root = gtk_builder_get_object(builder, "about_dialog"); + + GtkAboutDialog* dialog= GTK_ABOUT_DIALOG(root); + + gtk_dialog_run(GTK_DIALOG(dialog)); + + gtk_widget_destroy(GTK_WIDGET( dialog)); + + g_signal_connect (dialog, "destroy", G_CALLBACK(gtk_main_quit), NULL); + +} \ No newline at end of file diff --git a/src/ui/about_ui.h b/src/ui/about_ui.h new file mode 100644 index 0000000..8729628 --- /dev/null +++ b/src/ui/about_ui.h @@ -0,0 +1,11 @@ + +#ifndef WIHOTSPOT_UI_ABOUT +#define WIHOTSPOT_UI_ABOUT + + +#include + + +void show_info(GtkWidget *widget, gpointer window); + +#endif \ No newline at end of file diff --git a/src/ui/glade/about.glade b/src/ui/glade/about.glade new file mode 100644 index 0000000..58ab420 --- /dev/null +++ b/src/ui/glade/about.glade @@ -0,0 +1,79 @@ + + + + + + False + center-on-parent + True + dialog + center + Linux Wifi Hotspot + 3.6.8 + (c) lakinduakash 2021 + For more info visit +https://github.com/lakinduakash/linux-wifi-hotspot + https://github.com/lakinduakash/linux-wifi-hotspot + Star on Github + Copyright (c) 2020, lakinduaksh +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Lakindu Akash +Oblique +Open source community + Freepik from www.flaticon.com + wihotspot + custom + + + + + + False + vertical + 2 + + + False + end + + + + + + + + + False + False + 0 + + + + + + + + + diff --git a/src/ui/glade/wifih.gresource.xml b/src/ui/glade/wifih.gresource.xml index 0d1bd5d..98722f9 100644 --- a/src/ui/glade/wifih.gresource.xml +++ b/src/ui/glade/wifih.gresource.xml @@ -3,6 +3,11 @@ wifih.ui + + + about.glade + + style.css diff --git a/src/ui/glade/wifih.ui b/src/ui/glade/wifih.ui index 138cf7e..3d893bd 100644 --- a/src/ui/glade/wifih.ui +++ b/src/ui/glade/wifih.ui @@ -523,33 +523,16 @@ False end - - Help? + + About True True - False True - https://github.com/lakinduakash/linux-wifi-hotspot False True - 10 - 0 - - - - - Stop - True - True - True - end - - - False - True - 10 + 48 1 @@ -569,6 +552,21 @@ 2 + + + Stop + True + True + True + end + + + False + True + 10 + 3 + + False diff --git a/src/ui/ui.c b/src/ui/ui.c index 909393f..4bab3cc 100644 --- a/src/ui/ui.c +++ b/src/ui/ui.c @@ -39,6 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ui.h" #include "read_config.h" #include "util.h" +#include "about_ui.h" #define BUFSIZE 512 #define AP_ENABLED "AP-ENABLED" @@ -55,6 +56,7 @@ GtkBuilder *builder; GObject *window; GtkButton *button_create_hp; GtkButton *button_stop_hp; +GtkButton *button_about; GtkEntry *entry_ssd; GtkEntry *entry_pass; @@ -146,6 +148,11 @@ static void on_stop_hp_clicked(GtkWidget *widget, gpointer data) { } +static void on_about_open_click(GtkWidget *widget, gpointer data){ + + show_info(widget,data); +} + static void loadStyles(){ provider = gtk_css_provider_new(); @@ -352,6 +359,7 @@ int initUi(int argc, char *argv[]){ button_create_hp = (GtkButton *) gtk_builder_get_object(builder, "button_create_hp"); button_stop_hp = (GtkButton *) gtk_builder_get_object(builder, "button_stop_hp"); + button_about = (GtkButton *) gtk_builder_get_object(builder, "button_about"); entry_ssd = (GtkEntry *) gtk_builder_get_object(builder, "entry_ssid"); entry_pass = (GtkEntry *) gtk_builder_get_object(builder, "entry_pass"); @@ -394,6 +402,7 @@ int initUi(int argc, char *argv[]){ g_signal_connect (button_create_hp, "clicked", G_CALLBACK(on_create_hp_clicked), NULL); g_signal_connect (button_stop_hp, "clicked", G_CALLBACK(on_stop_hp_clicked), NULL); + g_signal_connect (button_about, "clicked", G_CALLBACK(on_about_open_click), NULL); g_signal_connect (entry_mac, "changed", G_CALLBACK(entry_mac_warn), NULL); g_signal_connect (entry_ssd, "changed", G_CALLBACK(entry_ssid_warn), NULL); From 064ed3084d29aac0f3476377579fe48525a8e324 Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 20 Feb 2021 08:25:39 +0530 Subject: [PATCH 6/9] Update version about ui --- src/ui/glade/about.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/glade/about.glade b/src/ui/glade/about.glade index 58ab420..223aa40 100644 --- a/src/ui/glade/about.glade +++ b/src/ui/glade/about.glade @@ -9,7 +9,7 @@ dialog center Linux Wifi Hotspot - 3.6.8 + 3.7.0 (c) lakinduakash 2021 For more info visit https://github.com/lakinduakash/linux-wifi-hotspot From dffbcc95e8520916a6a09f353a10a155e9549895 Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 20 Feb 2021 08:27:57 +0530 Subject: [PATCH 7/9] Update nakefile --- src/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 2e88c25..c33e98c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -52,7 +52,6 @@ install: $(ODIR)/wihotspot-gui cd scripts && $(MAKE) install uninstall: - rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/wihotspot.xpm rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/wihotspot.png rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/wihotspot.png rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps/wihotspot.png From 59aa14a274251bea5ed03df83057d5b0ceb35088 Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 20 Feb 2021 08:55:28 +0530 Subject: [PATCH 8/9] Update blank.yml --- .github/workflows/blank.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index 7042bd2..72862fe 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -11,6 +11,6 @@ jobs: - uses: actions/checkout@v1 - name: Build binaries run: | - sudo apt install -y libgtk-3-dev build-essential cmake gcc g++ pkg-config make hostapd + sudo apt install -y libgtk-3-dev build-essential cmake gcc g++ pkg-config make make sudo make install From 64b60baf95343df0482675b1aa803995c77f17c3 Mon Sep 17 00:00:00 2001 From: Lakindu Akash Date: Sat, 20 Feb 2021 08:56:05 +0530 Subject: [PATCH 9/9] Update codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f46ce6e..841cbe5 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: - name: Install dependencies run: | - sudo apt install -y libgtk-3-dev build-essential cmake gcc g++ pkg-config make hostapd + sudo apt install -y libgtk-3-dev build-essential cmake gcc g++ pkg-config make # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL