Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Some UI refactoring/tidy up

<< < (2/13) > >>

dmoore:

--- Quote from: oBFusCATed on August 11, 2012, 11:18:58 am ---Yes, but it is annoying that if you have accidentally selected some text and you start a search it is in this unexpected mode.
What about making it the non-automatically selected option and the user is explicitly required to switch to this mode?

--- End quote ---

I personally prefer the behavior that treats a multiline selection as the scope by default, but I can see how others might not. Rather than change default behavior for everyone, how about a check box in the editor settings to enable the ability to change default behavior. (I do realize settings are already pretty polluted)


--- Quote ---I can will add 7 to the list:

7). See if it is possible to make the project properties and build options modeless or editors, so the user can edit multiple settings at once.
This will be pretty useful in multi project workspaces.

--- End quote ---

Sounds good to me. I will investigate that when I'm done with 5/6.

dmoore:

--- Quote from: MortenMacFly on August 11, 2012, 08:28:38 am ---
--- Quote from: dmoore on August 11, 2012, 05:07:31 am ---2. Add regular expression option: "." searches across newlines or within

--- End quote ---
We have that already?!

--- End quote ---

I don't  think so. Currently regex won't match a multiline expression. Sometimes that is useful, other times not. I put a partial patch here, but need to change the dialogs: http://forums.codeblocks.org/index.php/topic,16680.msg113282.html#msg113282


--- Quote ---Good - also an option to search int he files of the target is something I'd like to see... ;-)

--- End quote ---

agree.


--- Quote ---
--- Quote from: dmoore on August 11, 2012, 05:07:31 am ---4. Load XRC for each configuration panel on demand

--- End quote ---
Be careful here: We have a resource loader that kind off does such things already, but its not used. Something  I had in mind to investigate why that is...

--- End quote ---

What I am actually doing is deferring instantiation of the whole panel (which also defers the XRC load)


--- Quote ---
--- Quote from: dmoore on August 11, 2012, 05:07:31 am ---5. Explore making the settings dialog a modeless editor tab

--- End quote ---
Again: Be careful: We disable some function s if the settings dialog is opened for good reasons. also, avoid race conditions, like changing the (project's) compiler options while compiling in the background. Modeless dialogs require to handle this carefully. As we have an event based system this is not so easy! Other than That: Fine.

--- End quote ---

Will be careful. The plan is that changed options won't be accepted until you hit apply. (And there will be an option cancel/reset the changes). It will take a little work to make sure the apply button is disabled if there are critical things happening.


--- Quote ---
--- Quote from: dmoore on August 11, 2012, 05:07:31 am ---6. Explore replacing the settings dialog listbook with a single scrollable page where panels are folded away and unfold on click revealing their content

--- End quote ---
This sounds like a very major change and I don't know how it affects plugins which provide panels as their foreign config dialogs. There was a very nice wxWidgets class though - I recall where you were able to shrink/unshrink parts of the window. But I didn't find it anymore... wxTreeSomewhat... wxScrolledSomewhat...?!

--- End quote ---

This coupled with modal dialogs is a pretty big change. I am hoping that changes for plugin writers will be very minimal (I think I can get it down to a simple change to how the plugin returns GetConfigurationPanel, GetProjectConfigurationPanel etc). This may not work well at all, hence "explore".

Btw, qtCreator does most of their settings modally in the main window (though still using notebooks). I also like the qtCreator start page.

dmoore:
Attached is a patch that is a first stab at 4 -- uses a lot of templating to get things done, which isn't ideal.

This speeds up opening up editor and environment settings a bit on slow systems, but there is more to do in terms of the parts of the config that aren't supplied by plugins. The idea would be to break up the XRC into chunks that can be instantiated in pieces. I didn't mess with Project dialogs, they seem to open quickly enough even on slow systems. Most things still work fine. The dialogs will occasionally resize as you click on configs with big panels that haven't been opened yet, which looks a bit weird and could be remedied with size hints. BrowseTracker's config panel is screwed up for some reason. Shouldn't be difficult to fix.

In the end I'm not sure the performance is worth the pain, but I do have a good handle on how the config system works now, which will help implementing the other items on the list.

I do get an assertion on exit: 

--- Code: ---(codeblocks:9081): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkRadioMenuItem'

(codeblocks:9081): Gtk-CRITICAL **: IA__gtk_radio_menu_item_get_group: assertion `GTK_IS_RADIO_MENU_ITEM (radio_menu_item)' failed

(codeblocks:9081): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkRadioMenuItem'

(codeblocks:9081): Gtk-CRITICAL **: IA__gtk_radio_menu_item_get_group: assertion `GTK_IS_RADIO_MENU_ITEM (radio_menu_item)' failed
Aborted (core dumped)

--- End code ---

Don't have time to check whether my changes caused this.

The big challenge will be #5 on my list. If settings change outside of the config (e.g. list of mimetypehandlers is modified when you double click on new file types in the project tree), the config will need to be notified if it is opened.

I plan to take a break from coding for a week or so, so won't be very active here.

[attachment deleted by admin]

Jenna:

--- Quote from: dmoore on August 13, 2012, 09:10:06 am ---I do get an assertion on exit:  

--- Code: ---(codeblocks:9081): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkRadioMenuItem'

(codeblocks:9081): Gtk-CRITICAL **: IA__gtk_radio_menu_item_get_group: assertion `GTK_IS_RADIO_MENU_ITEM (radio_menu_item)' failed

(codeblocks:9081): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkRadioMenuItem'

(codeblocks:9081): Gtk-CRITICAL **: IA__gtk_radio_menu_item_get_group: assertion `GTK_IS_RADIO_MENU_ITEM (radio_menu_item)' failed
Aborted (core dumped)

--- End code ---

--- End quote ---

The core-dump is not related to this as far as I know, and it seems it has gone with the xm-compiler branch, so it might be related to compiler-plugin.
In most cases a bt shows an error while deleting a wxString and/or wxArrayString.

The GLIB and GTK stuff is related to a wxWidgets or gtk issue when removing menu-entries. It comes from debugger-menu.
There is a bug-report by Eran, because of a similar issue on wx-dev mailinglist.

MortenMacFly:

--- Quote from: jens on August 13, 2012, 09:47:45 am ---The core-dump is not related to this as far as I know, and it seems it has gone with the xm-compiler branch, so it might be related to compiler-plugin.

--- End quote ---
I've cleaned-up the resource file sin the compiler plugin. Maybe we can merge that part to trunk a little earlier, too... I seems wxSmith does strange things sometimes in combination with editing XRC files, but I did not iinvestigate any further.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version