~mcintire-evan/unity/add-format-option

« back to all changes in this revision

Viewing changes to launcher/VolumeLauncherIcon.cpp

  • Committer: Evan McIntire
  • Date: 2016-01-07 06:00:22 UTC
  • Revision ID: mcintire.evan@gmail.com-20160107060022-qil8m84bjre3jt14
Begin adding format option to quicklists

Show diffs side-by-side

added added

removed removed

Lines of Context:
168
168
    MenuItemsVector result;
169
169
 
170
170
    AppendOpenItem(result);
 
171
    AppendFormatItem(result);
171
172
    AppendSeparatorItem(result);
172
173
    AppendNameItem(result);
173
174
    AppendSeparatorItem(result);
241
242
 
242
243
    menu.push_back(menu_item);
243
244
  }
 
245
  
 
246
  void AppendFormatItem(MenuItemsVector& menu)
 
247
  {
 
248
    glib::Object<DbusmenuMenuitem> menu_item(dbusmenu_menuitem_new());
 
249
 
 
250
    dbusmenu_menuitem_property_set(menu_item, DBUSMENU_MENUITEM_PROP_LABEL, _("Format"));
 
251
    dbusmenu_menuitem_property_set_bool(menu_item, DBUSMENU_MENUITEM_PROP_ENABLED, true);
 
252
    dbusmenu_menuitem_property_set_bool(menu_item, DBUSMENU_MENUITEM_PROP_VISIBLE, true);
 
253
 
 
254
    gsignals_.Add(new ItemSignal(menu_item, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, [this] (DbusmenuMenuitem*, unsigned timestamp) {
 
255
      OpenFormatPrompt();
 
256
    }));
 
257
 
 
258
    menu.push_back(menu_item);
 
259
  }
 
260
  
 
261
  void OpenFormatPrompt()
 
262
  {
 
263
    //TODO: Clean vars up at the end of the function
 
264
    GAppInfo *appInfo;
 
265
    gchar *cmdline;
 
266
    
 
267
    //This line is how it is done in nautilus, but we don't have access to the GVolume directly in this code
 
268
    //device_identifier = g_volume_get_identifier (volume, G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
 
269
    
 
270
    //Fails with error "Invalid byte sequence in conversion input", and I don't even think it's the correct identifier
 
271
    auto const& identifier = volume_->GetIdentifier();
 
272
    
 
273
    cmdline = g_strconcat ("gnome-disks ",
 
274
                           "--block-device ", identifier, " ",
 
275
                           "--format-device ",
 
276
                           NULL);
 
277
 
 
278
    appInfo = g_app_info_create_from_commandline (cmdline, NULL, G_APP_INFO_CREATE_NONE, NULL);
 
279
    g_app_info_launch (appInfo, NULL, NULL, NULL);
 
280
  }
244
281
 
245
282
  void AppendEjectItem(MenuItemsVector& menu)
246
283
  {