From: Anthony Liguori <aliguori@us.ibm.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: Luiz Capitulino <lcapitulino@redhat.com>,
qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 3/3] gtk: add devices menu to allow changing removable block devices
Date: Thu, 02 May 2013 10:47:36 -0500 [thread overview]
Message-ID: <87a9odv0x3.fsf@codemonkey.ws> (raw)
In-Reply-To: <20130502140622.GC30664@dhcp-200-207.str.redhat.com>
Kevin Wolf <kwolf@redhat.com> writes:
> Am 02.05.2013 um 15:41 hat Anthony Liguori geschrieben:
>> Kevin Wolf <kwolf@redhat.com> writes:
>>
>> > Am 26.04.2013 um 21:43 hat Anthony Liguori geschrieben:
>> >> +static void gd_block_device_menu_update(BlockDeviceMenu *bdm, BlockInfo *info)
>> >> +{
>> >> + bool value;
>> >> + const char *label = _("<No media>");
>> >> +
>> >> + value = info->has_inserted && !info->locked;
>> >
>> > Shouldn't the actual value of info->inserted play a role as well?
>>
>> inserted contains information about the inserted disk but doesn't
>> contain a boolean to indicate that the device is inserted.
>>
>> My understanding is that the existance of the inserted structure is what
>> indicates that the device is inserted.
>
> Sorry, my bad, I should have looked up the schema. I was indeed assuming
> that it's a boolean.
>
>> >> +static void gd_enum_disk(const char *path, const char *proptype, void *opaque)
>> >> +{
>> >> + GtkDisplayState *s = opaque;
>> >> + Object *obj;
>> >> + char *block_id;
>> >> +
>> >> + obj = object_resolve_path(path, NULL);
>> >> + g_assert(obj != NULL);
>> >> +
>> >> + block_id = object_property_get_str(obj, proptype, NULL);
>> >> + if (strcmp(block_id, "") != 0) {
>> >> + BlockDeviceMenu *bdm;
>> >> + DiskType disk_type;
>> >> + char *type;
>> >> + char *desc = NULL;
>> >> +
>> >> + type = object_property_get_str(obj, "type", NULL);
>> >> +
>> >> + if (strcmp(type, "ide-cd") == 0 || strcmp(type, "ide-hd") == 0) {
>> >> + desc = object_property_get_str(obj, "drive-id", NULL);
>> >> + } else {
>> >> + desc = g_strdup(type);
>> >> + }
>> >
>> > Ugh. Comparing the device name to an incomplete set of strings here and
>> > then figuring out for each what the specific way for this device is to
>> > create a nice string sounds like a bad idea.
>> >
>> > Why can't all devices just expose a property with a human-readable
>> > string? We'll need it for more than just the disk change menus.
>>
>> I thought about this, there are a few concerns. The first is that you
>> might lose consistency across devices. The second is i18n.
>
> What's the kind of consistency that you lose? I guess I could see the
> point (even if not agree) if it was about creating the string here vs.
> in each device, as the centralised strings would be more likely to use
> the same pattern, but you already have this part in the IDE device.
>
> The i18n point I don't buy. Avoiding i18n by choosing cryptic device
> names that can't be translated isn't a good strategy. But if you do have
> translations, it doesn't matter whether you have them in the GUI or in
> the device itself, except that the latter could be used outside the
> GTK frontend, too.
>
>> I would like to show USB device separately from IDE devices (even if
>> it's a USB CDROM). I want the menu to look something like this:
>>
>> QEMU DVD-ROM QM003 ->
>> Floppy Disk ->
>> ---------------------
>> USB Devices ->
>> USB Tablet ->
>> -----------------------------------
>> Description of USB Host Device 1 ->
>> Description of USB Host Device 2 ->
>> Description of USB Host Device 3 ->
>>
>> Such that you can also do USB host device pass through via the menus.
>>
>> From an i18n point of view, I would expect 'Floppy Disk' to be
>> translated. I wouldn't expect 'QEMU DVD-ROM QM003' to be translated
>> though since this is how the device is described within the guest.
>
> Note that there can be two floppy drives. Currently both will show up as
> "isa-fdc".
This is a bug. My intention was to use block_id as the description, not
type.
Regards,
Anthony Liguori
prev parent reply other threads:[~2013-05-02 15:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-26 19:43 [Qemu-devel] [PATCH 0/3] gtk: add Devices menu Anthony Liguori
2013-04-26 19:43 ` [Qemu-devel] [PATCH 1/3] ide: add drive-id property Anthony Liguori
2013-05-02 10:05 ` Andreas Färber
2013-05-02 12:59 ` Anthony Liguori
2013-04-26 19:43 ` [Qemu-devel] [PATCH 2/3] monitor: add notifier list for monitor events Anthony Liguori
2013-04-26 19:43 ` [Qemu-devel] [PATCH 3/3] gtk: add devices menu to allow changing removable block devices Anthony Liguori
2013-05-02 8:49 ` Kevin Wolf
2013-05-02 13:41 ` Anthony Liguori
2013-05-02 13:53 ` Luiz Capitulino
2013-05-02 14:06 ` Kevin Wolf
2013-05-02 15:29 ` Markus Armbruster
2013-05-02 15:40 ` Anthony Liguori
2013-05-03 12:31 ` [Qemu-devel] [libvirt] " Daniel P. Berrange
2013-05-03 13:52 ` Anthony Liguori
2013-05-03 13:57 ` Daniel P. Berrange
2013-05-02 15:47 ` Anthony Liguori [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a9odv0x3.fsf@codemonkey.ws \
--to=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.