Index: src/cheese-window.c
===================================================================
--- src/cheese-window.c	(Revision 703)
+++ src/cheese-window.c	(Arbeitskopie)
@@ -383,8 +383,8 @@
   char *filename;
   GFile *file;
   GList *files_list = NULL;
-  GDir *dir;
-  char *path;
+  GDir *v_dir, *p_dir;
+  char *v_path, *p_path;
   const char *name;
 
   prompt = g_strdup_printf (_("Really move all photos and videos to the trash?"));
@@ -406,14 +406,14 @@
   if (response !=  GTK_RESPONSE_OK)
     return;
 
-  path = cheese_fileutil_get_media_path ();
-  dir = g_dir_open (path, 0, NULL);
-  while ((name = g_dir_read_name (dir)) != NULL)
+  //delete all videos
+  v_path = cheese_fileutil_get_video_path ();
+  v_dir = g_dir_open (v_path, 0, NULL);
+  while ((name = g_dir_read_name (v_dir)) != NULL)
   {
-    if (g_str_has_suffix (name, PHOTO_NAME_SUFFIX) || 
-        g_str_has_suffix (name, VIDEO_NAME_SUFFIX))
+    if (g_str_has_suffix (name, VIDEO_NAME_SUFFIX))
     {
-      filename = g_strjoin (G_DIR_SEPARATOR_S, path, name, NULL);
+      filename = g_strjoin (G_DIR_SEPARATOR_S, v_path, name, NULL);
       file = g_file_new_for_path (filename);
 
       files_list = g_list_append (files_list, file);
@@ -422,7 +422,25 @@
   }
   cheese_window_cmd_move_file_to_trash (cheese_window, files_list);
   g_list_free (files_list);
-  g_dir_close(dir);
+  g_dir_close (v_dir);
+  
+  //delete all videos
+  p_path = cheese_fileutil_get_photo_path ();
+  p_dir = g_dir_open (p_path, 0, NULL);
+  while ((name = g_dir_read_name (p_dir)) != NULL)
+  {
+    if (g_str_has_suffix (name, PHOTO_NAME_SUFFIX))
+    {
+      filename = g_strjoin (G_DIR_SEPARATOR_S, p_path, name, NULL);
+      file = g_file_new_for_path (filename);
+
+      files_list = g_list_append (files_list, file);
+      g_free (filename);
+    }
+  }
+  cheese_window_cmd_move_file_to_trash (cheese_window, files_list);
+  g_list_free (files_list);
+  g_dir_close (p_dir);
 }
 
 static void
@@ -440,7 +458,7 @@
     return;
 
   file = g_file_new_for_path (filename);
-  g_free(filename);
+  g_free (filename);
 
   files_list = g_list_append (files_list, file);
   cheese_window_cmd_move_file_to_trash (cheese_window, files_list);
@@ -506,7 +524,7 @@
       }
       g_free (*data);
     }
-    g_free(filename);
+    g_free (filename);
     g_object_unref (pixbuf);
   }
 }
@@ -574,9 +592,9 @@
                                 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
                                 GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, 
                                 _("Unable to open help file for Cheese"));
-    gtk_dialog_run(GTK_DIALOG(d));
-    gtk_widget_destroy(d);
-    g_error_free(error);
+    gtk_dialog_run (GTK_DIALOG (d));
+    gtk_widget_destroy (d);
+    g_error_free (error);
   }
 }
 
Index: src/cheese-fileutil.c
===================================================================
--- src/cheese-fileutil.c	(Revision 703)
+++ src/cheese-fileutil.c	(Arbeitskopie)
@@ -29,30 +29,55 @@
 #include "cheese-fileutil.h"
 
 char *
-cheese_fileutil_get_path ()
+cheese_fileutil_get_photo_path ()
 {
   char *path;
+  
 #ifdef HILDON
-  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_home_dir(), "Mydocs", ".images", NULL);
+  // TODO change HILDON to xdg as well?
+  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_home_dir (), "Mydocs", "images", NULL);
 #else
-  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_home_dir(), ".gnome2", "cheese", NULL);
+  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_user_special_dir (G_USER_DIRECTORY_PICTURES), "Webcam", NULL);
 #endif
+
   return path;
+
 }
 
 char *
-cheese_fileutil_get_media_path ()
+cheese_fileutil_get_video_path ()
 {
   char *path;
-  char *cheese_path;
+  
+#ifdef HILDON
+  // TODO change HILDON to xdg as well?
+  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_home_dir (), "Mydocs", "videos", NULL);
+#else
+  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS), "Webcam", NULL);
+#endif
 
-  cheese_path = cheese_fileutil_get_path ();
-  path = g_strjoin (G_DIR_SEPARATOR_S, cheese_path, "media", NULL);
-  g_free (cheese_path);
+  return path;
 
+}
+
+char *
+cheese_fileutil_get_log_path ()
+{
+  char *path;
+  
+#ifdef HILDON
+  // TODO change HILDON to xdg as well?
+  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_home_dir (), "Mydocs", "cheese-log", NULL);
+#else
+  //path = g_strjoin (G_DIR_SEPARATOR_S, g_get_user_cache_dir(), NULL);
+  path = g_strjoin (G_DIR_SEPARATOR_S, g_get_home_dir (), ".gnome2", "cheese", NULL);
+#endif
+
   return path;
+
 }
 
+
 char *
 cheese_fileutil_get_new_media_filename (CheeseMediaMode mode)
 {
@@ -68,9 +93,12 @@
   ptr = localtime (&tm);
   strftime (date, 20, "%F-%H%M%S", ptr);
 
-  path = cheese_fileutil_get_media_path ();
-
   if (mode == CHEESE_MEDIA_MODE_PHOTO)
+    path = cheese_fileutil_get_photo_path ();
+  else
+    path = cheese_fileutil_get_video_path ();
+    
+  if (mode == CHEESE_MEDIA_MODE_PHOTO)
     filename = g_strdup_printf ("%s%s%s%s", path, G_DIR_SEPARATOR_S, date, PHOTO_NAME_SUFFIX);
   else
     filename = g_strdup_printf ("%s%s%s%s", path, G_DIR_SEPARATOR_S, date, VIDEO_NAME_SUFFIX);
Index: src/cheese-fileutil.h
===================================================================
--- src/cheese-fileutil.h	(Revision 703)
+++ src/cheese-fileutil.h	(Arbeitskopie)
@@ -30,8 +30,9 @@
   CHEESE_MEDIA_MODE_VIDEO
 } CheeseMediaMode;
 
-char *cheese_fileutil_get_path(void);
-char *cheese_fileutil_get_media_path (void);
+char *cheese_fileutil_get_photo_path (void);
+char *cheese_fileutil_get_video_path (void);
+char *cheese_fileutil_get_log_path (void);
 char *cheese_fileutil_get_new_media_filename (CheeseMediaMode mode);
 
 #endif /* __CHEESE_FILE_UTIL_H__ */
Index: src/cheese.c
===================================================================
--- src/cheese.c	(Revision 703)
+++ src/cheese.c	(Arbeitskopie)
@@ -46,7 +46,7 @@
 
   if (fp == NULL)
   {
-    path = cheese_fileutil_get_path ();
+    path = cheese_fileutil_get_log_path ();
     dir = g_dir_open (path, 0, NULL);
     if (!dir)
       return;
Index: src/cheese-thumb-view.c
===================================================================
--- src/cheese-thumb-view.c	(Revision 703)
+++ src/cheese-thumb-view.c	(Arbeitskopie)
@@ -42,7 +42,8 @@
 typedef struct
 {
   GtkListStore *store;
-  GFileMonitor *file_monitor;
+  GFileMonitor *photo_file_monitor;
+  GFileMonitor *video_file_monitor;
 } CheeseThumbViewPrivate;
 
 enum
@@ -104,6 +105,7 @@
       return;
     }
     gnome_thumbnail_factory_save_thumbnail (factory, pixbuf, uri, mtime.tv_sec);
+    
   }
   else
   {
@@ -296,33 +298,52 @@
 cheese_thumb_view_fill (CheeseThumbView *thumb_view)
 {
   CheeseThumbViewPrivate* priv = CHEESE_THUMB_VIEW_GET_PRIVATE (thumb_view);
-  GDir *dir;
-  char *path;
+  GDir *v_dir, *p_dir;
+  char *v_path, *p_path;
   const char *name;
   char *filename;
   GFile *file;
 
   gtk_list_store_clear (priv->store);
 
-  path = cheese_fileutil_get_media_path ();
-  dir = g_dir_open (path, 0, NULL);
-  if (!dir)
+  v_path = cheese_fileutil_get_video_path ();
+  p_path = cheese_fileutil_get_photo_path ();
+  
+  v_dir = g_dir_open (v_path, 0, NULL);
+  p_dir = g_dir_open (p_path, 0, NULL);
+  
+  if (!v_dir && !p_dir)
     return;
 
-  while ((name = g_dir_read_name (dir)))
+  //read videos from the vid directory
+  while (name = g_dir_read_name (v_dir))
   {
-    if (!(g_str_has_suffix (name, PHOTO_NAME_SUFFIX) || g_str_has_suffix (name, VIDEO_NAME_SUFFIX)))
+    if (!(g_str_has_suffix (name, VIDEO_NAME_SUFFIX)))
       continue;
+    
+    filename = g_build_filename (v_path, name, NULL);
+    file = g_file_new_for_path (filename);
+    cheese_thumb_view_append_item (thumb_view, file);
+    g_free (filename);
+    g_object_unref (file);
+  }
+  g_free (v_path);
+  g_dir_close (v_dir);
+  
+  //read photos from the photo directory
+  while (name = g_dir_read_name (p_dir))
+  {
+    if (!(g_str_has_suffix (name, PHOTO_NAME_SUFFIX)))
+      continue;
 
-    filename = g_build_filename (path, name, NULL);
+    filename = g_build_filename (p_path, name, NULL);
     file = g_file_new_for_path (filename);
     cheese_thumb_view_append_item (thumb_view, file);
     g_free (filename);
     g_object_unref (file);
   }
-
-  g_free (path);
-  g_dir_close (dir);
+  g_free (p_path);
+  g_dir_close (p_dir);
 }
 
 static void
@@ -334,7 +355,8 @@
   CheeseThumbViewPrivate *priv = CHEESE_THUMB_VIEW_GET_PRIVATE (thumb_view);  
 
   g_object_unref (priv->store);
-  g_file_monitor_cancel (priv->file_monitor);
+  g_file_monitor_cancel (priv->photo_file_monitor);
+  g_file_monitor_cancel (priv->video_file_monitor);
 
   G_OBJECT_CLASS (cheese_thumb_view_parent_class)->finalize (object);
 }
@@ -353,7 +375,8 @@
 cheese_thumb_view_init (CheeseThumbView *thumb_view)
 {
   CheeseThumbViewPrivate* priv = CHEESE_THUMB_VIEW_GET_PRIVATE (thumb_view);
-  char *path = NULL;
+  char *v_path = NULL, *p_path = NULL;
+  
   GFile *file;  
   const int THUMB_VIEW_HEIGHT = 120;
 
@@ -365,16 +388,25 @@
 
   gtk_widget_set_size_request (GTK_WIDGET (thumb_view), -1, THUMB_VIEW_HEIGHT);
 
-  path = cheese_fileutil_get_media_path ();
+  v_path = cheese_fileutil_get_video_path ();
+  p_path = cheese_fileutil_get_photo_path ();
+  
+  g_mkdir_with_parents (v_path, 0775);
+  g_mkdir_with_parents (p_path, 0775);
 
-  g_mkdir_with_parents (path, 0775);
+  //connect signal to video path
+  file = g_file_new_for_path (v_path);
+  priv->video_file_monitor = g_file_monitor_directory (file, 0, NULL, NULL);
+  g_signal_connect (priv->video_file_monitor, "changed", G_CALLBACK (cheese_thumb_view_monitor_cb), thumb_view);
+  
+  //connect signal to photo path
+  file = g_file_new_for_path (p_path);
+  priv->photo_file_monitor = g_file_monitor_directory (file, 0, NULL, NULL);
+  g_signal_connect (priv->photo_file_monitor, "changed", G_CALLBACK (cheese_thumb_view_monitor_cb), thumb_view);
 
-  file = g_file_new_for_path (path);
-  priv->file_monitor = g_file_monitor_directory (file, 0, NULL, NULL);
-  g_signal_connect (priv->file_monitor, "changed", G_CALLBACK (cheese_thumb_view_monitor_cb), thumb_view);
+  g_free (v_path);
+  g_free (p_path);
 
-  g_free (path);
-
   gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (thumb_view), 0);
 #ifdef HILDON
   gtk_icon_view_set_columns (GTK_ICON_VIEW (thumb_view), -1);
@@ -388,7 +420,7 @@
   g_signal_connect (G_OBJECT (thumb_view), "drag-data-get",
                     G_CALLBACK (cheese_thumb_view_on_drag_data_get_cb), NULL);
 
-  gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(priv->store),
+  gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE (priv->store),
                                        THUMBNAIL_URL_COLUMN, GTK_SORT_ASCENDING);
 
   cheese_thumb_view_fill (thumb_view);
