Skip to content

Commit

Permalink
add token validity countdown
Browse files Browse the repository at this point in the history
  • Loading branch information
paolostivanin committed Jul 29, 2017
1 parent 74debff commit 582273d
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.idea/
cmake-build-debug/
build/
TODO

# Object files
*.o
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ link_directories(${GTK3_LIBRARY_DIRS})

add_definitions(${GTK3_CFLAGS_OTHER})

set(SOURCE_FILES src/treeview.c src/main.c src/app.c src/message-dialog.c src/kf-misc.c src/get-file-size.c src/add-data-dialog.c src/common.c)
set(SOURCE_FILES src/treeview.c src/main.c src/app.c src/message-dialog.c src/kf-misc.c src/get-file-size.c src/add-data-dialog.c src/common.c src/timer.c)

add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} ${GTK3_LIBRARIES} -lgcrypt -lcotp)
13 changes: 13 additions & 0 deletions src/timer.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include <gtk/gtk.h>

gboolean
label_update (gpointer data)
{
GtkWidget *label = (GtkWidget *)data;
gint sec_expired = 59 - g_date_time_get_second (g_date_time_new_now_local ());
gchar *label_text = g_strdup_printf ("Token validity: %ds", (sec_expired < 30) ? sec_expired : sec_expired-30);
gtk_label_set_label (GTK_LABEL (label), label_text);
g_free (label_text);

return TRUE;
}
3 changes: 3 additions & 0 deletions src/timer.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#pragma once

gboolean label_update (gpointer data);
20 changes: 18 additions & 2 deletions src/treeview.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include <gtk/gtk.h>
#include "otpclient.h"
#include "treeview.h"
#include "timer.h"

static gchar **get_account_names (const gchar *dec_kf);

Expand All @@ -22,6 +22,10 @@ create_treeview (GtkWidget *main_win, UpdateData *kf_update_data)
GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
gtk_container_add (GTK_CONTAINER (main_win), vbox);

GtkWidget *timer_label = gtk_label_new (NULL);
gtk_box_pack_start (GTK_BOX (vbox), timer_label, FALSE, FALSE, 5);
g_timeout_add_seconds (1, label_update, timer_label);

GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
Expand Down Expand Up @@ -82,8 +86,20 @@ fixed_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
GtkTreeModel *model = (GtkTreeModel *)data;
GtkTreeIter iter;
GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
gboolean fixed;

gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, COLUMN_BOOLEAN, &fixed, -1);

/* do something with the value */
if (fixed) {
//TODO tick removed, clear TOTP
} else {
//TODO tick added, set TOTP
}
fixed ^= 1;

// set TOTP/HOTP if toggle is active, otherwise remove the tick and hide otp
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_BOOLEAN, fixed, -1);

gtk_tree_path_free (path);
}
Expand Down

0 comments on commit 582273d

Please sign in to comment.