Compare commits
11 Commits
0a6beb710c
...
2d8d86781c
Author | SHA1 | Date | |
---|---|---|---|
2d8d86781c | |||
73868c81b0 | |||
cfd4531dde | |||
128a205b29 | |||
faa06072f3 | |||
2c4f0c273a | |||
6c462332be | |||
844813709b | |||
b8e7169608 | |||
39fe7891de | |||
cc6bfe82a1 |
@ -7,11 +7,12 @@ find_package(PkgConfig REQUIRED)
|
|||||||
pkg_check_modules(GLIB2 REQUIRED glib-2.0)
|
pkg_check_modules(GLIB2 REQUIRED glib-2.0)
|
||||||
pkg_check_modules(GOBJECT2 REQUIRED gobject-2.0)
|
pkg_check_modules(GOBJECT2 REQUIRED gobject-2.0)
|
||||||
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||||
|
pkg_check_modules(WEBKIT REQUIRED webkit2gtk-4.0)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS} ${GOBJECT2_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS} )
|
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS} ${GOBJECT2_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS} ${WEBKIT_INCLUDE_DIRS})
|
||||||
LINK_DIRECTORIES (${GLIB2_LIBRARY_DIRS} ${GOBJECT2_LIBRARY_DIRS} ${GTK3_LIBRARY_DIRS})
|
LINK_DIRECTORIES (${GLIB2_LIBRARY_DIRS} ${GOBJECT2_LIBRARY_DIRS} ${GTK3_LIBRARY_DIRS} ${WEBKIT_LIBRARY_DIRS})
|
||||||
add_definitions(${GLIB2_CFLAGS_OTHER} ${GOBJECT2_CFLAGS_OTHER} ${GTK3_CFLAGS_OTHER})
|
add_definitions(${GLIB2_CFLAGS_OTHER} ${GOBJECT2_CFLAGS_OTHER} ${GTK3_CFLAGS_OTHER} ${WEBKIT_CFLAGS_OTHER})
|
||||||
|
|
||||||
aux_source_directory(./src SRC_LIST)
|
aux_source_directory(./src SRC_LIST)
|
||||||
add_executable(${PROJECT_NAME} ${SRC_LIST})
|
add_executable(${PROJECT_NAME} ${SRC_LIST})
|
||||||
target_link_libraries(${PROJECT_NAME} ${GTK3_LIBRARIES} ${PC_LIBSOUP_LIBRARIES})
|
target_link_libraries(${PROJECT_NAME} ${GTK3_LIBRARIES} ${WEBKIT_LIBRARIES})
|
||||||
|
@ -78,7 +78,6 @@
|
|||||||
<property name="width_request">720</property>
|
<property name="width_request">720</property>
|
||||||
<property name="height_request">405</property>
|
<property name="height_request">405</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<signal name="destroy" handler="gtk_main_quit" swapped="no"/>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkPaned" id="mainPane">
|
<object class="GtkPaned" id="mainPane">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -357,22 +356,32 @@
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow">
|
<object class="GtkStack" id="stackRenderMode">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="shadow_type">in</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTextView" id="entryText">
|
<object class="GtkScrolledWindow" id="entryTextScrollArea">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="editable">False</property>
|
<property name="shadow_type">in</property>
|
||||||
<property name="wrap_mode">word-char</property>
|
<child>
|
||||||
<property name="left_margin">4</property>
|
<object class="GtkTextView" id="entryText">
|
||||||
<property name="right_margin">4</property>
|
<property name="visible">True</property>
|
||||||
<property name="top_margin">4</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="bottom_margin">4</property>
|
<property name="editable">False</property>
|
||||||
<property name="buffer">entryTextBuffer</property>
|
<property name="wrap_mode">word-char</property>
|
||||||
|
<property name="left_margin">4</property>
|
||||||
|
<property name="right_margin">4</property>
|
||||||
|
<property name="top_margin">4</property>
|
||||||
|
<property name="bottom_margin">4</property>
|
||||||
|
<property name="buffer">entryTextBuffer</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="name">page0</property>
|
||||||
|
<property name="title" translatable="yes">page0</property>
|
||||||
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
60
src/main.c
60
src/main.c
@ -5,26 +5,72 @@
|
|||||||
#include "mdiary.h"
|
#include "mdiary.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
static void quit_cb(GSimpleAction *action, GVariant *parameter, gpointer user_data)
|
||||||
{
|
{
|
||||||
struct mainWindow *mainWindow;
|
struct mainWindow *mainWindow = *((struct mainWindow **) user_data);
|
||||||
|
|
||||||
|
gtk_window_close(GTK_WINDOW(mainWindow->mainWindow));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void settings_cb(GSimpleAction *action, GVariant *parameter, gpointer user_data)
|
||||||
|
{
|
||||||
|
struct mainWindow *mainWindow = *((struct mainWindow **) user_data);
|
||||||
|
|
||||||
|
g_print("nTODO\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
const GActionEntry app_actions[] = {
|
||||||
|
{ "quit", quit_cb },
|
||||||
|
{ "settings", settings_cb }
|
||||||
|
};
|
||||||
|
|
||||||
|
static void activate(GApplication *app, gpointer user_data)
|
||||||
|
{
|
||||||
|
struct mainWindow *mainWindow = *((struct mainWindow **) user_data);
|
||||||
struct mdiary_settings *settings;
|
struct mdiary_settings *settings;
|
||||||
gchar *settings_path;
|
gchar *settings_path;
|
||||||
|
|
||||||
gtk_init(&argc, &argv);
|
|
||||||
|
|
||||||
mainWindow = mainWindow_new();
|
mainWindow = mainWindow_new();
|
||||||
|
gtk_application_add_window(GTK_APPLICATION(app), GTK_WINDOW(mainWindow->mainWindow));
|
||||||
|
|
||||||
settings_path = g_strdup_printf("%s/.mdiary.conf", g_get_home_dir());
|
settings_path = g_strdup_printf("%s/.mdiary.conf", g_get_home_dir());
|
||||||
settings = mdiary_settings_new(mainWindow);
|
settings = mdiary_settings_new(mainWindow);
|
||||||
mdiary_load_settings(settings_path, settings);
|
mdiary_load_settings(settings_path, settings);
|
||||||
|
|
||||||
gtk_widget_show(mainWindow->mainWindow);
|
gtk_widget_show(mainWindow->mainWindow);
|
||||||
gtk_main();
|
|
||||||
|
|
||||||
mdiary_save_settings(settings_path, settings);
|
mdiary_save_settings(settings_path, settings);
|
||||||
mdiary_settings_free(settings);
|
mdiary_settings_free(settings);
|
||||||
g_free(settings_path);
|
g_free(settings_path);
|
||||||
|
}
|
||||||
return 0;
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct mainWindow *mainWindow;
|
||||||
|
GtkApplication *app;
|
||||||
|
GMenu *app_menu;
|
||||||
|
GMenu *p1;
|
||||||
|
GMenu *p2;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
app = gtk_application_new("net.notsyncing.mdiary", G_APPLICATION_FLAGS_NONE);
|
||||||
|
g_application_register(G_APPLICATION(app), NULL, NULL);
|
||||||
|
g_signal_connect(app, "activate", G_CALLBACK(activate), &mainWindow);
|
||||||
|
|
||||||
|
app_menu = g_menu_new();
|
||||||
|
p1 = g_menu_new();
|
||||||
|
p2 = g_menu_new();
|
||||||
|
g_menu_append(p1, "Settings", "app.settings");
|
||||||
|
g_menu_append(p2, "Quit", "app.quit");
|
||||||
|
g_menu_append_section(app_menu, NULL, G_MENU_MODEL(p1));
|
||||||
|
g_menu_append_section(app_menu, NULL, G_MENU_MODEL(p2));
|
||||||
|
gtk_application_set_app_menu(app, G_MENU_MODEL(app_menu));
|
||||||
|
g_action_map_add_action_entries(G_ACTION_MAP(app), app_actions, G_N_ELEMENTS(app_actions), &mainWindow);
|
||||||
|
gtk_application_set_app_menu(GTK_APPLICATION(app), G_MENU_MODEL(app_menu));
|
||||||
|
g_object_unref(p1);
|
||||||
|
g_object_unref(p2);
|
||||||
|
g_object_unref(app_menu);
|
||||||
|
|
||||||
|
status = g_application_run(G_APPLICATION(app), argc, argv);
|
||||||
|
g_object_unref(app);
|
||||||
}
|
}
|
||||||
|
@ -240,6 +240,7 @@ static void mainWindow_configure_treeView(struct mainWindow *mainWindow)
|
|||||||
G_TYPE_POINTER,
|
G_TYPE_POINTER,
|
||||||
G_TYPE_POINTER,
|
G_TYPE_POINTER,
|
||||||
G_TYPE_STRING,
|
G_TYPE_STRING,
|
||||||
|
G_TYPE_STRING,
|
||||||
G_TYPE_STRING);
|
G_TYPE_STRING);
|
||||||
mainWindow->entryListFiltered = GTK_TREE_MODEL_FILTER(gtk_tree_model_filter_new(
|
mainWindow->entryListFiltered = GTK_TREE_MODEL_FILTER(gtk_tree_model_filter_new(
|
||||||
GTK_TREE_MODEL(mainWindow->entryListStore),
|
GTK_TREE_MODEL(mainWindow->entryListStore),
|
||||||
@ -424,6 +425,33 @@ static void mainWindow_init_to_default(struct mainWindow *mainWindow)
|
|||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mainWindow->checkSearchText), 0);
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mainWindow->checkSearchText), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief mainWindow_webkit_set_enabled sets the active text renderer.
|
||||||
|
* @param mainWindow the mainWindow
|
||||||
|
* @param state
|
||||||
|
*/
|
||||||
|
void mainWindow_webkit_set_enabled(struct mainWindow *mainWindow, gboolean state)
|
||||||
|
{
|
||||||
|
if (state) {
|
||||||
|
if (!mainWindow->webkitView) {
|
||||||
|
mainWindow->webkitView = webkit_web_view_new();
|
||||||
|
webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(mainWindow->webkitView), "", "");
|
||||||
|
gtk_widget_show(mainWindow->webkitView);
|
||||||
|
|
||||||
|
mainWindow->webkitScrollArea = gtk_scrolled_window_new(NULL, NULL);
|
||||||
|
gtk_container_add(GTK_CONTAINER(mainWindow->webkitScrollArea), mainWindow->webkitView);
|
||||||
|
gtk_stack_add_titled(GTK_STACK(mainWindow->stackRenderMode), mainWindow->webkitScrollArea,
|
||||||
|
"webkit", "webkit");
|
||||||
|
gtk_widget_show(mainWindow->webkitScrollArea);
|
||||||
|
}
|
||||||
|
gtk_stack_set_visible_child(GTK_STACK(mainWindow->stackRenderMode),
|
||||||
|
mainWindow->webkitScrollArea);
|
||||||
|
} else {
|
||||||
|
gtk_stack_set_visible_child(GTK_STACK(mainWindow->stackRenderMode),
|
||||||
|
mainWindow->entryTextScrollArea);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief mainWindow_new creates a new mainWindow.
|
* @brief mainWindow_new creates a new mainWindow.
|
||||||
* @return Returns struct mainWindow *
|
* @return Returns struct mainWindow *
|
||||||
@ -442,6 +470,7 @@ struct mainWindow *mainWindow_new()
|
|||||||
mainWindow->dateStart = GTK_WIDGET(gtk_builder_get_object(builder, "dateStart"));
|
mainWindow->dateStart = GTK_WIDGET(gtk_builder_get_object(builder, "dateStart"));
|
||||||
mainWindow->dateEnd = GTK_WIDGET(gtk_builder_get_object(builder, "dateEnd"));
|
mainWindow->dateEnd = GTK_WIDGET(gtk_builder_get_object(builder, "dateEnd"));
|
||||||
mainWindow->entryText = GTK_WIDGET(gtk_builder_get_object(builder, "entryText"));
|
mainWindow->entryText = GTK_WIDGET(gtk_builder_get_object(builder, "entryText"));
|
||||||
|
mainWindow->entryTextScrollArea = GTK_WIDGET(gtk_builder_get_object(builder, "entryTextScrollArea"));
|
||||||
mainWindow->popoverDate = GTK_WIDGET(gtk_builder_get_object(builder, "popoverDate"));
|
mainWindow->popoverDate = GTK_WIDGET(gtk_builder_get_object(builder, "popoverDate"));
|
||||||
mainWindow->calendarRange = GTK_WIDGET(gtk_builder_get_object(builder, "calendarRange"));
|
mainWindow->calendarRange = GTK_WIDGET(gtk_builder_get_object(builder, "calendarRange"));
|
||||||
mainWindow->checkSearchTitle = GTK_WIDGET(gtk_builder_get_object(builder, "checkSearchTitle"));
|
mainWindow->checkSearchTitle = GTK_WIDGET(gtk_builder_get_object(builder, "checkSearchTitle"));
|
||||||
@ -453,6 +482,7 @@ struct mainWindow *mainWindow_new()
|
|||||||
mainWindow->headerBar = GTK_WIDGET(gtk_builder_get_object(builder, "headerBar"));
|
mainWindow->headerBar = GTK_WIDGET(gtk_builder_get_object(builder, "headerBar"));
|
||||||
mainWindow->labelDateToDate = GTK_WIDGET(gtk_builder_get_object(builder, "label_date_to_date"));
|
mainWindow->labelDateToDate = GTK_WIDGET(gtk_builder_get_object(builder, "label_date_to_date"));
|
||||||
mainWindow->buttonDecrypt = GTK_WIDGET(gtk_builder_get_object(builder, "buttonDecrypt"));
|
mainWindow->buttonDecrypt = GTK_WIDGET(gtk_builder_get_object(builder, "buttonDecrypt"));
|
||||||
|
mainWindow->stackRenderMode = GTK_WIDGET(gtk_builder_get_object(builder, "stackRenderMode"));
|
||||||
mainWindow->entryListView = GTK_TREE_VIEW(gtk_builder_get_object(builder, "entryListView"));
|
mainWindow->entryListView = GTK_TREE_VIEW(gtk_builder_get_object(builder, "entryListView"));
|
||||||
mainWindow->entryListSelection = GTK_TREE_SELECTION(gtk_builder_get_object(builder, "entryListSelection"));
|
mainWindow->entryListSelection = GTK_TREE_SELECTION(gtk_builder_get_object(builder, "entryListSelection"));
|
||||||
mainWindow->textBuffer = GTK_TEXT_BUFFER(gtk_builder_get_object(builder, "entryTextBuffer"));
|
mainWindow->textBuffer = GTK_TEXT_BUFFER(gtk_builder_get_object(builder, "entryTextBuffer"));
|
||||||
@ -476,6 +506,8 @@ struct mainWindow *mainWindow_new()
|
|||||||
g_object_unref(G_OBJECT(builder));
|
g_object_unref(G_OBJECT(builder));
|
||||||
|
|
||||||
mainWindow_configure_treeView(mainWindow);
|
mainWindow_configure_treeView(mainWindow);
|
||||||
|
mainWindow->webkitView = NULL;
|
||||||
|
mainWindow->webkitScrollArea = NULL;
|
||||||
mainWindow_connect_signals(mainWindow);
|
mainWindow_connect_signals(mainWindow);
|
||||||
mainWindow_configure_workspaceTreeView(mainWindow);
|
mainWindow_configure_workspaceTreeView(mainWindow);
|
||||||
mainWindow_init_to_default(mainWindow);
|
mainWindow_init_to_default(mainWindow);
|
||||||
@ -483,6 +515,8 @@ struct mainWindow *mainWindow_new()
|
|||||||
mainWindow_configure_entry_completion(mainWindow);
|
mainWindow_configure_entry_completion(mainWindow);
|
||||||
mainWindow_set_meta_information(mainWindow, 0, 0, TRUE);
|
mainWindow_set_meta_information(mainWindow, 0, 0, TRUE);
|
||||||
|
|
||||||
|
mainWindow_webkit_set_enabled(mainWindow, TRUE);
|
||||||
|
|
||||||
return mainWindow;
|
return mainWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -559,6 +593,57 @@ void mainWindow_calendarSelected(GtkWidget *widget, gpointer user_data)
|
|||||||
g_free(text);
|
g_free(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mainWindow_set_text(struct mainWindow *mainWindow, gchar *text, gchar *file_url)
|
||||||
|
{
|
||||||
|
gchar *tempfile_path = "/tmp/mdiary.tmp.md";
|
||||||
|
gchar *cmd = NULL;
|
||||||
|
gchar *cmd_stdout = NULL;
|
||||||
|
gchar *cmd_stderr = NULL;
|
||||||
|
gint exit_status = 0;
|
||||||
|
gchar *base_url = NULL;
|
||||||
|
GFileOutputStream *stream;
|
||||||
|
GFile *file;
|
||||||
|
|
||||||
|
if (mainWindow->webkitView &&
|
||||||
|
gtk_stack_get_visible_child(GTK_STACK(mainWindow->stackRenderMode)) == mainWindow->webkitScrollArea) {
|
||||||
|
if (text[0] != '\0') {
|
||||||
|
base_url = g_strdup_printf("file://%s", file_url);
|
||||||
|
file = g_file_new_for_path(tempfile_path);
|
||||||
|
stream = g_file_replace(
|
||||||
|
file, NULL, FALSE,
|
||||||
|
G_FILE_CREATE_NONE,
|
||||||
|
NULL, NULL);
|
||||||
|
g_output_stream_write(G_OUTPUT_STREAM(stream), text, strlen(text), NULL, NULL);
|
||||||
|
g_output_stream_flush(G_OUTPUT_STREAM(stream), NULL, NULL);
|
||||||
|
|
||||||
|
cmd = g_strdup_printf("markdown %s", tempfile_path);
|
||||||
|
if (g_spawn_command_line_sync(cmd, &cmd_stdout, &cmd_stderr, &exit_status, NULL) &&
|
||||||
|
exit_status == 0) {
|
||||||
|
webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(mainWindow->webkitView),
|
||||||
|
cmd_stdout, base_url);
|
||||||
|
} else {
|
||||||
|
g_warning("Could not render markdown for file. Showing plain text instead.\n");
|
||||||
|
webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(mainWindow->webkitView),
|
||||||
|
text, "");
|
||||||
|
}
|
||||||
|
g_free(base_url);
|
||||||
|
} else {
|
||||||
|
webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(mainWindow->webkitView),
|
||||||
|
text, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
g_output_stream_close(G_OUTPUT_STREAM(stream), NULL, NULL);
|
||||||
|
g_file_delete(file, NULL, NULL);
|
||||||
|
g_object_unref(stream);
|
||||||
|
g_object_unref(file);
|
||||||
|
g_free(cmd);
|
||||||
|
g_free(cmd_stdout);
|
||||||
|
g_free(cmd_stderr);
|
||||||
|
} else {
|
||||||
|
gtk_text_buffer_set_text(mainWindow->textBuffer, text, strlen(text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief mainWindow_entrySelected is the callback when the user selects a diary entry.
|
* @brief mainWindow_entrySelected is the callback when the user selects a diary entry.
|
||||||
* @param widget N/A
|
* @param widget N/A
|
||||||
@ -570,6 +655,7 @@ void mainWindow_entrySelected(GtkWidget *widget, gpointer user_data)
|
|||||||
GtkTreeSelection *selection;
|
GtkTreeSelection *selection;
|
||||||
GtkTreeModel *model;
|
GtkTreeModel *model;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
gchar *file_url;
|
||||||
gchar *text;
|
gchar *text;
|
||||||
gchar *title;
|
gchar *title;
|
||||||
gchar *summary;
|
gchar *summary;
|
||||||
@ -578,18 +664,21 @@ void mainWindow_entrySelected(GtkWidget *widget, gpointer user_data)
|
|||||||
selection = gtk_tree_view_get_selection(mainWindow->entryListView);
|
selection = gtk_tree_view_get_selection(mainWindow->entryListView);
|
||||||
if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
||||||
gtk_tree_model_get(model, &iter, COL_TEXT, &text, -1);
|
gtk_tree_model_get(model, &iter, COL_TEXT, &text, -1);
|
||||||
gtk_text_buffer_set_text(mainWindow->textBuffer, text, strlen(text));
|
gtk_tree_model_get(model, &iter, COL_URL, &file_url, -1);
|
||||||
|
mainWindow_set_text(mainWindow, text, file_url);
|
||||||
g_free(text);
|
g_free(text);
|
||||||
|
g_free(file_url);
|
||||||
|
|
||||||
gtk_tree_model_get(model, &iter, COL_SUMMARY, &summary, -1);
|
gtk_tree_model_get(model, &iter, COL_SUMMARY, &summary, -1);
|
||||||
gtk_tree_model_get(model, &iter, COL_TITLE, &title, -1);
|
gtk_tree_model_get(model, &iter, COL_TITLE, &title, -1);
|
||||||
temp = g_strdup_printf("<b>%s</b>: %s", title, summary);
|
temp = g_strdup_printf("<b>%s</b>: %s", title, summary);
|
||||||
gtk_label_set_markup(GTK_LABEL(mainWindow->labelSummary), temp);
|
gtk_label_set_markup(GTK_LABEL(mainWindow->labelSummary), temp);
|
||||||
|
|
||||||
g_free(title);
|
g_free(title);
|
||||||
g_free(summary);
|
g_free(summary);
|
||||||
g_free(temp);
|
g_free(temp);
|
||||||
} else {
|
} else {
|
||||||
gtk_text_buffer_set_text(mainWindow->textBuffer, "", 0);
|
mainWindow_set_text(mainWindow, "", "");
|
||||||
gtk_label_set_text(GTK_LABEL(mainWindow->labelSummary), "Please select an entry in the list above.");
|
gtk_label_set_text(GTK_LABEL(mainWindow->labelSummary), "Please select an entry in the list above.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
#include <webkit2/webkit2.h>
|
||||||
#include "mdiary.h"
|
#include "mdiary.h"
|
||||||
|
|
||||||
#define FILE_LIST_MAX_LEN 5
|
#define FILE_LIST_MAX_LEN 5
|
||||||
@ -21,6 +22,7 @@ struct mainWindow {
|
|||||||
GtkWidget *dateStart;
|
GtkWidget *dateStart;
|
||||||
GtkWidget *dateEnd;
|
GtkWidget *dateEnd;
|
||||||
GtkWidget *entryText;
|
GtkWidget *entryText;
|
||||||
|
GtkWidget *entryTextScrollArea;
|
||||||
GtkWidget *popoverDate;
|
GtkWidget *popoverDate;
|
||||||
GtkWidget *calendarRange;
|
GtkWidget *calendarRange;
|
||||||
GtkWidget *checkSearchTitle;
|
GtkWidget *checkSearchTitle;
|
||||||
@ -32,6 +34,9 @@ struct mainWindow {
|
|||||||
GtkWidget *headerBar;
|
GtkWidget *headerBar;
|
||||||
GtkWidget *labelDateToDate;
|
GtkWidget *labelDateToDate;
|
||||||
GtkWidget *buttonDecrypt;
|
GtkWidget *buttonDecrypt;
|
||||||
|
GtkWidget *webkitView;
|
||||||
|
GtkWidget *webkitScrollArea;
|
||||||
|
GtkWidget *stackRenderMode;
|
||||||
GtkTreeView *entryListView;
|
GtkTreeView *entryListView;
|
||||||
GtkTreeSelection *entryListSelection;
|
GtkTreeSelection *entryListSelection;
|
||||||
GtkTextBuffer *textBuffer;
|
GtkTextBuffer *textBuffer;
|
||||||
@ -85,5 +90,6 @@ void mainWindow_dateIconPress(GtkWidget *widget, gint icon_pos, gint event, gpoi
|
|||||||
void mainWindow_add_recent_workspace(struct mainWindow *mainWindow, gchar *path, gboolean append);
|
void mainWindow_add_recent_workspace(struct mainWindow *mainWindow, gchar *path, gboolean append);
|
||||||
void mainWindow_switch_workspace(struct mainWindow *mainWindow, gchar *path, gboolean gpg_enabled);
|
void mainWindow_switch_workspace(struct mainWindow *mainWindow, gchar *path, gboolean gpg_enabled);
|
||||||
void mainWindow_decrypt_gpg_clicked(GtkWidget *widget, gpointer user_data);
|
void mainWindow_decrypt_gpg_clicked(GtkWidget *widget, gpointer user_data);
|
||||||
|
void mainWindow_webkit_set_enabled(struct mainWindow *mainWindow, gboolean state);
|
||||||
|
|
||||||
#endif /* MAINWINDOW_H */
|
#endif /* MAINWINDOW_H */
|
||||||
|
@ -346,7 +346,8 @@ static void mdiary_add_file_to_store(struct mdiary_scanner *mdiary_scanner,
|
|||||||
datetime,
|
datetime,
|
||||||
tagList,
|
tagList,
|
||||||
summary,
|
summary,
|
||||||
text->str);
|
text->str,
|
||||||
|
filename);
|
||||||
|
|
||||||
if (g_date_time_to_unix(datetime) > mdiary_scanner->time_latest)
|
if (g_date_time_to_unix(datetime) > mdiary_scanner->time_latest)
|
||||||
mdiary_scanner->time_latest = g_date_time_to_unix(datetime);
|
mdiary_scanner->time_latest = g_date_time_to_unix(datetime);
|
||||||
@ -542,7 +543,8 @@ void mdiary_add_entry_to_store(GtkListStore *entryListStore,
|
|||||||
GDateTime *datetime,
|
GDateTime *datetime,
|
||||||
GList *tags,
|
GList *tags,
|
||||||
gchar *summary,
|
gchar *summary,
|
||||||
gchar *text)
|
gchar *text,
|
||||||
|
gchar *file_url)
|
||||||
{
|
{
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
GDateTime *datetime_copy;
|
GDateTime *datetime_copy;
|
||||||
@ -567,6 +569,7 @@ void mdiary_add_entry_to_store(GtkListStore *entryListStore,
|
|||||||
COL_TAGLIST, taglist_copy, /* TODO: Verify that the duplication worked! */
|
COL_TAGLIST, taglist_copy, /* TODO: Verify that the duplication worked! */
|
||||||
COL_SUMMARY, summary, /* Automatically strdupd */
|
COL_SUMMARY, summary, /* Automatically strdupd */
|
||||||
COL_TEXT, text, /* Automatically strdupd */
|
COL_TEXT, text, /* Automatically strdupd */
|
||||||
|
COL_URL, file_url, /* Automatically strdupd */
|
||||||
-1);
|
-1);
|
||||||
g_free(date_text);
|
g_free(date_text);
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ enum {
|
|||||||
COL_TAGLIST, /* GList<gchar *> of the tags */
|
COL_TAGLIST, /* GList<gchar *> of the tags */
|
||||||
COL_SUMMARY, /* Summary of the entry */
|
COL_SUMMARY, /* Summary of the entry */
|
||||||
COL_TEXT, /* Raw text from the file */
|
COL_TEXT, /* Raw text from the file */
|
||||||
|
COL_URL, /* Path to the file */
|
||||||
COL_COUNT
|
COL_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -36,7 +37,8 @@ void mdiary_add_entry_to_store(GtkListStore *entryListStore,
|
|||||||
GDateTime *datetime,
|
GDateTime *datetime,
|
||||||
GList *tags,
|
GList *tags,
|
||||||
gchar *summary,
|
gchar *summary,
|
||||||
gchar *text);
|
gchar *text,
|
||||||
|
gchar *file_url);
|
||||||
GDateTime *mdiary_get_date_from_string_ext(gchar *string, gchar *prefix, gchar *suffix);
|
GDateTime *mdiary_get_date_from_string_ext(gchar *string, gchar *prefix, gchar *suffix);
|
||||||
GDateTime *mdiary_get_date_from_string(gchar *string);
|
GDateTime *mdiary_get_date_from_string(gchar *string);
|
||||||
void mdiary_reset_store(GtkListStore *entryListStore, GtkListStore *autoCompletion);
|
void mdiary_reset_store(GtkListStore *entryListStore, GtkListStore *autoCompletion);
|
||||||
|
Loading…
Reference in New Issue
Block a user