~cairo-dock-team/ubuntu/quantal/cairo-dock-plug-ins/3.0.2

« back to all changes in this revision

Viewing changes to stack/src/applet-load-icons.c

Tags: upstream-2.2.0~0beta4
ImportĀ upstreamĀ versionĀ 2.2.0~0beta4

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
        
31
31
        cd_debug ("%s (%s)", __func__, cCompar);
32
32
        int i=0;
33
 
        gchar *tmp=NULL;
 
33
        gchar *tmp;
34
34
        while (cString[i] != NULL) {
35
 
                g_print ("   %s\n", cString[i]);
36
35
                tmp = g_strstr_len (cCompar, -1, cString[i]);
37
36
                if (tmp != NULL)
38
37
                        return TRUE; //We found what we want
58
57
        {
59
58
                if (strncmp (cContent, "http://", 7) == 0 || strncmp (cContent, "https://", 8) == 0)
60
59
                {
61
 
                        pIcon = g_new0 (Icon, 1);
62
 
                        pIcon->cCommand = cContent;
 
60
                        pIcon = cairo_dock_create_dummy_launcher (NULL,
 
61
                                g_strdup (myConfig.cUrlIcon),
 
62
                                cContent,
 
63
                                NULL,
 
64
                                0);
63
65
                        pIcon->iVolumeID = 1;
64
 
                        pIcon->cFileName = g_strdup (myConfig.cUrlIcon);
65
66
                }
66
67
                else
67
68
                {
69
70
                        gboolean bIsDirectory;
70
71
                        int iVolumeID;
71
72
                        double fOrder;
72
 
                        cairo_dock_fm_get_file_info (cContent, &cCanonicName, &cRealURI, &cIconName, &bIsDirectory, &iVolumeID, &fOrder, mySystem.iFileSortType);
 
73
                        cairo_dock_fm_get_file_info (cContent, &cCanonicName, &cRealURI, &cIconName, &bIsDirectory, &iVolumeID, &fOrder, CAIRO_DOCK_FM_SORT_BY_NAME);
73
74
                        cd_debug ("un fichier -> %s , %s", cCanonicName, cIconName);
74
75
                        g_free (cRealURI);
75
76
                        
81
82
                                return NULL;
82
83
                        }
83
84
                        
84
 
                        pIcon = g_new0 (Icon, 1);
85
 
                        pIcon->cCommand = cContent;
 
85
                        pIcon = cairo_dock_create_dummy_launcher (NULL,
 
86
                                cIconName,
 
87
                                cContent,
 
88
                                NULL,
 
89
                                0);
86
90
                        pIcon->iVolumeID = 1;  // on l'utilisera comme un flag.
87
 
                        if (pIcon->cName == NULL)
88
 
                                pIcon->cName = cCanonicName;
89
 
                        else
90
 
                                g_free (cCanonicName);
91
 
                        
92
 
                        pIcon->cFileName = cIconName;
 
91
                        g_free (cCanonicName);
93
92
                }
94
93
        }
95
94
        else
96
95
        {
97
 
                pIcon = g_new0 (Icon, 1);
98
 
                pIcon->cCommand = cContent;
99
 
                pIcon->cFileName = g_strdup (myConfig.cTextIcon);
 
96
                pIcon = cairo_dock_create_dummy_launcher (NULL,
 
97
                                g_strdup (myConfig.cTextIcon),
 
98
                                cContent,
 
99
                                NULL,
 
100
                                0);
100
101
        }
101
102
        
102
103
        pIcon->cName = g_key_file_get_string (pKeyFile, "Desktop Entry", "Name", &erreur);
134
135
Icon *cd_stack_build_one_icon_from_file (CairoDockModuleInstance *myApplet, gchar *cDesktopFilePath)
135
136
{
136
137
        GKeyFile *pKeyFile = cairo_dock_open_key_file (cDesktopFilePath);
137
 
        g_return_val_if_fail (pKeyFile != NULL, NULL)   ;
 
138
        g_return_val_if_fail (pKeyFile != NULL, NULL);
138
139
        
139
140
        Icon *pIcon = cd_stack_build_one_icon (myApplet, pKeyFile);
140
141
        
141
142
        g_key_file_free (pKeyFile);
142
143
        return pIcon;
143
144
}
144
 
GList *cd_stack_insert_icon_in_list (CairoDockModuleInstance *myApplet, GList *pIconsList, Icon *pIcon)
145
 
{
146
 
        g_return_val_if_fail (pIcon != NULL, pIconsList);
147
 
        switch (myConfig.iSortType)
148
 
        {
149
 
                case CD_STACK_SORT_BY_DATE :
150
 
                case CD_STACK_SORT_MANUALLY :
151
 
                        pIconsList = g_list_insert_sorted (pIconsList, pIcon, (GCompareFunc) cairo_dock_compare_icons_order);
152
 
                break;
153
 
                case CD_STACK_SORT_BY_NAME :
154
 
                        pIconsList = g_list_insert_sorted (pIconsList, pIcon, (GCompareFunc) cairo_dock_compare_icons_name);
155
 
                break;
156
 
                case CD_STACK_SORT_BY_TYPE :
157
 
                default :
158
 
                        pIconsList = g_list_insert_sorted (pIconsList, pIcon, (GCompareFunc) cairo_dock_compare_icons_extension);
159
 
                break;
160
 
        }
161
 
        return pIconsList;
162
 
}
 
145
 
163
146
GList *cd_stack_build_icons_list (CairoDockModuleInstance *myApplet, gchar *cStackDir)
164
147
{
 
148
        // on parcourt tous les fichiers du repertoire.
165
149
        GDir *dir = g_dir_open (cStackDir, 0, NULL);
166
150
        g_return_val_if_fail (dir != NULL, NULL);
167
151
        
169
153
        Icon *pIcon;
170
154
        GString *sDesktopFilePath = g_string_new ("");
171
155
        const gchar *cFileName;
172
 
        do
 
156
        while ((cFileName = g_dir_read_name (dir)) != NULL)
173
157
        {
174
 
                cFileName = g_dir_read_name (dir);
175
 
                if (cFileName == NULL)
176
 
                        break ;
177
 
                
178
158
                g_string_printf (sDesktopFilePath, "%s/%s", cStackDir, cFileName);
179
159
                
180
160
                pIcon = cd_stack_build_one_icon_from_file (myApplet, sDesktopFilePath->str);
182
162
                {
183
163
                        pIcon->cDesktopFileName = g_strdup (cFileName);
184
164
                        
185
 
                        pIconsList = cd_stack_insert_icon_in_list (myApplet, pIconsList, pIcon);
 
165
                        pIconsList = g_list_prepend (pIconsList, pIcon);
186
166
                }
187
 
        } while (1);
 
167
        }
188
168
        
189
169
        g_string_free (sDesktopFilePath, TRUE);
190
170
        g_dir_close (dir);
 
171
        
 
172
        // on classe la liste.
 
173
        if (myConfig.iSortType == CD_STACK_SORT_BY_NAME)
 
174
        {
 
175
                pIconsList = g_list_sort (pIconsList, (GCompareFunc) cairo_dock_compare_icons_name);
 
176
                int i = 0;
 
177
                GList *ic;
 
178
                for (ic = pIconsList; ic != NULL; ic = ic->next)
 
179
                {
 
180
                        pIcon = ic->data;
 
181
                        pIcon->fOrder = i ++;
 
182
                }
 
183
        }
 
184
        else if (myConfig.iSortType == CD_STACK_SORT_BY_TYPE)
 
185
        {
 
186
                pIconsList = g_list_sort (pIconsList, (GCompareFunc) cairo_dock_compare_icons_extension);  /// a defaut d'avoir les types mime...
 
187
                int i = 0;
 
188
                GList *ic;
 
189
                for (ic = pIconsList; ic != NULL; ic = ic->next)
 
190
                {
 
191
                        pIcon = ic->data;
 
192
                        pIcon->fOrder = i ++;
 
193
                }
 
194
        }
 
195
        else
 
196
        {
 
197
                pIconsList = g_list_sort (pIconsList, (GCompareFunc) cairo_dock_compare_icons_order);
 
198
        }
 
199
        
191
200
        return pIconsList;
192
201
}
193
202