* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "main.h"
#include "view-dir-list.h"
+#include <unistd.h>
+
+#include <cstdlib>
+#include <cstring>
+
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib-object.h>
+
#include "filedata.h"
+#include "layout.h"
+#include "options.h"
+#include "typedefs.h"
#include "ui-fileops.h"
#include "ui-tree-edit.h"
#include "view-dir.h"
-#define VDLIST(_vd_) ((ViewDirInfoList *)(_vd_->info))
+struct ViewDirInfoList
+{
+ GList *list;
+};
+
+#define VDLIST(_vd_) ((ViewDirInfoList *)((_vd_)->info))
/*
if (!path)
{
if (row) *row = -1;
- return NULL;
+ return nullptr;
}
n = 0;
work = VDLIST(vd)->list;
while (work)
{
- FileData *fd = work->data;
+ auto fd = static_cast<FileData *>(work->data);
if (strcmp(fd->path, path) == 0)
{
if (row) *row = n;
}
if (row) *row = -1;
- return NULL;
+ return nullptr;
}
/*
store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
tpath = gtk_tree_model_get_path(store, &iter);
- gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(vd->view), tpath, NULL, TRUE, y_align, 0.0);
- gtk_tree_view_set_cursor(GTK_TREE_VIEW(vd->view), tpath, NULL, FALSE);
+ gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(vd->view), tpath, nullptr, TRUE, y_align, 0.0);
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(vd->view), tpath, nullptr, FALSE);
gtk_tree_path_free(tpath);
if (!gtk_widget_has_focus(vd->view)) gtk_widget_grab_focus(vd->view);
{
FileData *fd;
- fd = g_list_nth_data(VDLIST(vd)->list, row);
+ fd = static_cast<FileData *>(g_list_nth_data(VDLIST(vd)->list, row));
if (fd) return fd->path;
- return NULL;
+ return nullptr;
}
static gboolean vdlist_populate(ViewDir *vd, gboolean clear)
FileData *fd;
SortType sort_type = SORT_NAME;
gboolean sort_ascend = TRUE;
- gchar *link = NULL;
+ gboolean sort_case = TRUE;
+ gchar *link = nullptr;
if (vd->layout)
{
sort_type = vd->layout->options.dir_view_list_sort.method;
sort_ascend = vd->layout->options.dir_view_list_sort.ascend;
+ sort_case = vd->layout->options.dir_view_list_sort.case_sensitive;
}
old_list = VDLIST(vd)->list;
- ret = filelist_read(vd->dir_fd, NULL, &VDLIST(vd)->list);
- VDLIST(vd)->list = filelist_sort(VDLIST(vd)->list, sort_type, sort_ascend);
+ ret = filelist_read(vd->dir_fd, nullptr, &VDLIST(vd)->list);
+ VDLIST(vd)->list = filelist_sort(VDLIST(vd)->list, sort_type, sort_ascend, sort_case);
/* add . and .. */
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)));
if (clear) gtk_list_store_clear(store);
- valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(store), &iter, NULL);
+ valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(store), &iter, nullptr);
work = VDLIST(vd)->list;
while (work)
const gchar *date = "";
gboolean done = FALSE;
- fd = work->data;
+ fd = static_cast<FileData *>(work->data);
if (access_file(fd->path, R_OK | X_OK) && fd->name)
{
{
pixbuf = vd->pf->parent;
}
+ else if (!access_file(fd->path, W_OK) )
+ {
+ pixbuf = vd->pf->read_only;
+ }
else
{
pixbuf = vd->pf->close;
while (!done)
{
- FileData *old_fd = NULL;
+ FileData *old_fd = nullptr;
if (valid)
{
if (islink(fd->path))
{
- link = realpath(fd->path, NULL);
+ link = realpath(fd->path, nullptr);
}
else
{
- link = NULL;
+ link = nullptr;
}
if (match < 0)
}
- vd->click_fd = NULL;
- vd->drop_fd = NULL;
+ vd->click_fd = nullptr;
+ vd->drop_fd = nullptr;
filelist_free(old_list);
g_free(link);
gboolean vdlist_set_fd(ViewDir *vd, FileData *dir_fd)
{
gboolean ret;
- gchar *old_path = NULL; /* Used to store directory for walking up */
+ gchar *old_path = nullptr; /* Used to store directory for walking up */
if (!dir_fd) return FALSE;
if (vd->dir_fd == dir_fd) return TRUE;
ret = vdlist_populate(vd, TRUE);
/* scroll to make last path visible */
- FileData *found = NULL;
+ FileData *found = nullptr;
GList *work;
work = VDLIST(vd)->list;
while (work && !found)
{
- FileData *fd = work->data;
+ auto fd = static_cast<FileData *>(work->data);
if (!old_path || strcmp(old_path, fd->name) == 0) found = fd;
work = work->next;
}
gboolean vdlist_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
- ViewDir *vd = data;
+ auto vd = static_cast<ViewDir *>(data);
GtkTreePath *tpath;
if (event->keyval != GDK_KEY_Menu) return FALSE;
- gtk_tree_view_get_cursor(GTK_TREE_VIEW(vd->view), &tpath, NULL);
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(vd->view), &tpath, nullptr);
if (tpath)
{
GtkTreeModel *store;
}
else
{
- vd->click_fd = NULL;
+ vd->click_fd = nullptr;
}
vd_color_set(vd, vd->click_fd, TRUE);
vd->popup = vd_pop_menu(vd, vd->click_fd);
- gtk_menu_popup_at_pointer(GTK_MENU(vd->popup), NULL);
+ gtk_menu_popup_at_pointer(GTK_MENU(vd->popup), nullptr);
return TRUE;
}
gboolean vdlist_press_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data)
{
- ViewDir *vd = data;
+ auto vd = static_cast<ViewDir *>(data);
GtkTreePath *tpath;
GtkTreeIter iter;
- FileData *fd = NULL;
+ FileData *fd = nullptr;
if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget), bevent->x, bevent->y,
- &tpath, NULL, NULL, NULL))
+ &tpath, nullptr, nullptr, nullptr))
{
GtkTreeModel *store;
store = gtk_tree_view_get_model(GTK_TREE_VIEW(widget));
gtk_tree_model_get_iter(store, &iter, tpath);
gtk_tree_model_get(store, &iter, DIR_COLUMN_POINTER, &fd, -1);
- gtk_tree_view_set_cursor(GTK_TREE_VIEW(widget), tpath, NULL, FALSE);
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(widget), tpath, nullptr, FALSE);
gtk_tree_path_free(tpath);
}
if (bevent->button == MOUSE_BUTTON_RIGHT)
{
vd->popup = vd_pop_menu(vd, vd->click_fd);
- gtk_menu_popup_at_pointer(GTK_MENU(vd->popup), NULL);
+ gtk_menu_popup_at_pointer(GTK_MENU(vd->popup), nullptr);
return TRUE;
}
return options->view_dir_list_single_click_enter;
}
-void vdlist_destroy_cb(GtkWidget *UNUSED(widget), gpointer data)
+void vdlist_destroy_cb(GtkWidget *, gpointer data)
{
- ViewDir *vd = data;
+ auto vd = static_cast<ViewDir *>(data);
vd_dnd_drop_scroll_cancel(vd);
widget_auto_scroll_stop(vd->view);
filelist_free(VDLIST(vd)->list);
}
-ViewDir *vdlist_new(ViewDir *vd, FileData *UNUSED(dir_fd))
+ViewDir *vdlist_new(ViewDir *vd, FileData *)
{
GtkListStore *store;
GtkTreeSelection *selection;
renderer = gtk_cell_renderer_pixbuf_new();
gtk_tree_view_column_pack_start(column, renderer, FALSE);
gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", DIR_COLUMN_ICON);
- gtk_tree_view_column_set_cell_data_func(column, renderer, vd_color_cb, vd, NULL);
+ gtk_tree_view_column_set_cell_data_func(column, renderer, vd_color_cb, vd, nullptr);
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_column_pack_start(column, renderer, TRUE);
gtk_tree_view_column_add_attribute(column, renderer, "text", DIR_COLUMN_NAME);
- gtk_tree_view_column_set_cell_data_func(column, renderer, vd_color_cb, vd, NULL);
+ gtk_tree_view_column_set_cell_data_func(column, renderer, vd_color_cb, vd, nullptr);
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_column_pack_start(column, renderer, TRUE);
gtk_tree_view_column_add_attribute(column, renderer, "text", DIR_COLUMN_DATE);
- gtk_tree_view_column_set_cell_data_func(column, renderer, vd_color_cb, vd, NULL);
+ gtk_tree_view_column_set_cell_data_func(column, renderer, vd_color_cb, vd, nullptr);
gtk_tree_view_append_column(GTK_TREE_VIEW(vd->view), column);