~ubuntu-branches/ubuntu/oneiric/cairo-dock-plug-ins/oneiric-updates

« back to all changes in this revision

Viewing changes to Folders/src/applet-notifications.c

  • Committer: Kees Cook
  • Date: 2011-08-11 23:17:39 UTC
  • mfrom: (20.1.1 cairo-dock-plug-ins)
  • Revision ID: kees@outflux.net-20110811231739-cteedan51tmdg77v
Tags: 2.4.0~0beta2-0ubuntu1
releasing version 2.4.0~0beta2-0ubuntu1

Show diffs side-by-side

added added

removed removed

Lines of Context:
414
414
                CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Create a new folder"), GTK_STOCK_NEW, _cd_folders_new_folder, CD_APPLET_MY_MENU, myApplet);
415
415
        }
416
416
        
417
 
        GtkWidget *pSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("Sort by"), CD_APPLET_MY_MENU, GTK_STOCK_SORT_DESCENDING);
418
 
        pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By name"), _cd_folders_sort_by_name, pSubMenu, myApplet);
419
 
        pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By date"), _cd_folders_sort_by_date, pSubMenu, myApplet);
420
 
        pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By size"), _cd_folders_sort_by_size, pSubMenu, myApplet);
421
 
        pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By type"), _cd_folders_sort_by_type, pSubMenu, myApplet);
 
417
        if (myConfig.bShowFiles)
 
418
        {
 
419
                GtkWidget *pSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("Sort by"), CD_APPLET_MY_MENU, GTK_STOCK_SORT_DESCENDING);
 
420
                pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By name"), _cd_folders_sort_by_name, pSubMenu, myApplet);
 
421
                pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By date"), _cd_folders_sort_by_date, pSubMenu, myApplet);
 
422
                pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By size"), _cd_folders_sort_by_size, pSubMenu, myApplet);
 
423
                pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By type"), _cd_folders_sort_by_type, pSubMenu, myApplet);
 
424
        }
422
425
        
423
426
        if (CD_APPLET_CLICKED_ICON != NULL && CD_APPLET_CLICKED_ICON != myIcon)
424
427
                CD_APPLET_LEAVE (CAIRO_DOCK_INTERCEPT_NOTIFICATION);
425
428
CD_APPLET_ON_BUILD_MENU_END
426
429
 
427
430
 
 
431
static void _on_answer_import (int iClickedButton, GtkWidget *pInteractiveWidget, const gchar *cReceivedData, CairoDialog *pDialog)
 
432
{
 
433
        cd_debug ("%s (%d)", __func__, iClickedButton);
 
434
        gboolean bImportFiles = (iClickedButton == 0 || iClickedButton == -1);  // ok or Enter.
 
435
        
 
436
        CairoDockModule *pModule = cairo_dock_find_module_from_name ("Folders");
 
437
        g_return_if_fail (pModule != NULL);
 
438
 
 
439
        gchar *cConfFilePath = cairo_dock_add_module_conf_file (pModule);  // we want to update the conf file before we instanciate the applet, so don't use high-level functions.
 
440
        cairo_dock_update_conf_file (cConfFilePath,
 
441
                G_TYPE_STRING, "Configuration", "dir path", cReceivedData,
 
442
                G_TYPE_BOOLEAN, "Configuration", "show files", bImportFiles,
 
443
                G_TYPE_INVALID);
 
444
 
 
445
        CairoDockModuleInstance *pNewInstance = cairo_dock_instanciate_module (pModule, cConfFilePath);  // prend le 'cConfFilePath'.
 
446
        if (pNewInstance != NULL && pNewInstance->pDock)
 
447
        {
 
448
                cairo_dock_update_dock_size (pNewInstance->pDock);
 
449
        }
 
450
 
 
451
        if (pNewInstance != NULL)
 
452
                cairo_dock_show_temporary_dialog_with_icon (D_("The folder has been imported."),
 
453
                        pNewInstance->pIcon, pNewInstance->pContainer,
 
454
                        5000,
 
455
                        MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE);  // not "same icon" because the icon may not be loaded yet (eg. stack or emblem icon).
 
456
 
 
457
        if (pModule->pInstancesList && pModule->pInstancesList->next == NULL)  // module nouvellement active.
 
458
        {
 
459
                cairo_dock_write_active_modules ();
 
460
        }
 
461
}
428
462
gboolean cd_folders_on_drop_data (gpointer data, const gchar *cReceivedData, Icon *icon, double fOrder, CairoContainer *pContainer)
429
463
{
430
464
        //g_print ("Folders received '%s'\n", cReceivedData);
431
465
        
432
 
        if (fOrder == CAIRO_DOCK_LAST_ORDER)  // lachage sur une icone.
 
466
        if (icon != NULL || fOrder == CAIRO_DOCK_LAST_ORDER)  // drop on an icon or outside of icons.
433
467
                return CAIRO_DOCK_LET_PASS_NOTIFICATION;
434
468
        
435
469
        gchar *cPath = NULL;
441
475
        if (g_file_test (cPath, G_FILE_TEST_IS_DIR))  // it's a folder, let's add a new instance of the applet that will handle it.
442
476
        {
443
477
                //g_print (" ajout d'un repertoire...\n");
444
 
                CairoDockModule *pModule = cairo_dock_find_module_from_name ("Folders");
445
 
                g_return_val_if_fail (pModule != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
446
 
                
447
 
                gchar *cConfFilePath = cairo_dock_add_module_conf_file (pModule);  // we want to update the conf file before we instanciate the applet, so don't use high-level functions.
448
 
                cairo_dock_update_conf_file (cConfFilePath,
449
 
                        G_TYPE_STRING, "Configuration", "dir path", cReceivedData,
450
 
                        G_TYPE_INVALID);
451
 
                
452
 
                CairoDockModuleInstance *pNewInstance = cairo_dock_instanciate_module (pModule, cConfFilePath);  // prend le 'cConfFilePath'.
453
 
                if (pNewInstance != NULL && pNewInstance->pDock)
454
 
                {
455
 
                        cairo_dock_update_dock_size (pNewInstance->pDock);
456
 
                }
457
 
                
458
 
                if (pNewInstance != NULL)
459
 
                        cairo_dock_show_temporary_dialog_with_icon (D_("The folder has been imported."),
460
 
                                pNewInstance->pIcon, pNewInstance->pContainer,
461
 
                                5000,
462
 
                                MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE);  // not "same icon" because the icon may not be loaded yet (eg. stack or emblem icon).
463
 
                
464
 
                if (pModule->pInstancesList && pModule->pInstancesList->next == NULL)  // module nouvellement active.
465
 
                {
466
 
                        cairo_dock_write_active_modules ();
467
 
                }
 
478
                if (icon == NULL)
 
479
                {
 
480
                        if (CAIRO_DOCK_IS_DOCK (pContainer))
 
481
                                icon = cairo_dock_get_dialogless_icon_full (CAIRO_DOCK (pContainer));
 
482
                        else
 
483
                                icon = cairo_dock_get_dialogless_icon ();
 
484
                }
 
485
                cairo_dock_show_dialog_full (D_("Do you want to import the content of the folder too?"),
 
486
                        icon, pContainer,
 
487
                        0,
 
488
                        MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE,
 
489
                        NULL,
 
490
                        (CairoDockActionOnAnswerFunc) _on_answer_import,
 
491
                        g_strdup (cReceivedData),
 
492
                        (GFreeFunc)g_free);
468
493
                
469
494
                return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
470
495
        }