lanoxx / tilda

A Gtk based drop down terminal for Linux and Unix
GNU General Public License v2.0
1.28k stars 161 forks source link

Searchbar: Refactor into own widget class #235

Closed lanoxx closed 4 years ago

lanoxx commented 8 years ago

Hey @pik,

a few month ago I spend some time to refactor the search-bar into its own widget. After that I didn't have enough time to properly test and review it so its still sitting in its wip/gobject branch. I think the refactoring better separates the search bar code from the tilda_window, what do you think. If you have some time, maybe can take a look at the code and tell me what you think of it.

pik commented 8 years ago

I can definitely take a look - but I haven't played w/ GObjects for I think a ~year and even then only with a few small extensions, so I hope your expectations aren't too high :o

lanoxx commented 8 years ago

GObjects aren't actually that difficult, let me know if your run into trouble, maybe I can give you a hint.

pik commented 8 years ago

Btw do you have a sample JHBuild config you are using for building Tilda, could I copy/paste that from you?

lanoxx commented 8 years ago

Yes I have, I will post something when I am back at my computer.

lanoxx commented 8 years ago

Ok, here is something. You need two things:

  1. Create a moduleset.modules file where you configure the tilda location, so jhbuild knows where to look for it, I usually put them into ~/.config/jhbuild/
  2. Creeate a .jhbuildrc file in `.config/jhbuildrc

moduleset.modules:

<?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*-->
<!DOCTYPE moduleset SYSTEM "moduleset.dtd">
<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
<moduleset>
     <repository type="git" name="github.com"
        href="git://github.com/" />

    <autotools id="tilda">
        <branch module="lanoxx/tilda.git"  repo="github.com" />
    </autotools>
</moduleset>

.jhbuildrc:

# what module set should be used, searches in `jhbuild/modulesets` by default
moduleset = [
    # 'gnome-apps-3.18', # uncomment if you want to build gnome, maybe bump to 3.20
    '/home/${USER}/.config/jhbuild/moduleset.modules' #replace ${USER} with your username
]

# configure a branch such as wip/gobject
branches['tilda'] = (None, 'wip/gobject')

# Set a folder where jhbuild checks out the sources
checkoutroot = '~/Documents/Code/jh-gnome-checkout/'

# I usually build in /opt, adjust if necessary:
prefix = '/opt/gnome-build`

# set maintainer flags for tilda build:
module_autogenargs['tilda']='--enable-maintainer-flags'

# speed up jhbuild a little by not pulling module files from the internet all the time
use_local_modulesets = True 

With that in place it should be as easy as running jhbuild buildone tilda Hope that helps, if not then write me again.

lanoxx commented 8 years ago

Also take a look at the reference: https://developer.gnome.org/jhbuild/3.15/jhbuild.html#config-reference

lanoxx commented 8 years ago

I guess I could probably put tilda into the official gnome-world.modules file. Then the moduleset.modules file would not be necessary.

pik commented 8 years ago

well idk.. After 2 hours with jhbuild I think I'm giving up and going back to manually setting up config and prefix paths. It doesn't reconfigure directories by default - so trying to build something like <repo checkoutdir="../../tilda" /> (where the target is local directory which has been configured before) produces path errors during install.

It's always trying to write stuff into /usr/share/ (I have no idea why)

File "/usr/share/applications/jconsole.desktop" lacks MimeType key
File "/usr/share/applications/xpad.desktop" lacks MimeType key
File "/usr/share/applications/xfce4-run.desktop" lacks MimeType key
Could not create cache file in "/usr/share/applications": Permission denied

And finally this is just wrong ( I still can't understand how it works): Clearly the correct config.h from ~/.checkout/gnome/vte is linked because that's the only place I can produce 0.42.5.

/* Version number of package */
#define VERSION "0.42.5"

screenshot from 2016-04-19 23-29-31

Somehow search still works ...

screenshot from 2016-04-19 23-28-56 screenshot from 2016-04-19 23-29-14

At any-rate testing your wip/gobject branch both of these function calls are always returning False https://github.com/lanoxx/tilda/blob/wip/gobject/src%2Ftilda_window.c#L227 which seems to be keeping the error label from disappearing on wrap-around. I'll take a second stab at it tomorrow.

lanoxx commented 8 years ago

@pik Can you post your current .jhbuildrc and moduleset.modules on githubs gist?

I am not sure what you are attempting with <repo checkoutdir="../../tilda" />, I think there is not repo element in the config, maybe a copy paste error? You should put checkoutdir on the element like this (no need to use a relative path):

<autotools id="tilda">
    <branch module="lanoxx/tilda.git"  repo="github.com" checkoutdir="tilda" />
</autotools>

By default jhbuild builds in the source folder if you do not configure anything else.

lanoxx commented 8 years ago

Also maybe post the summary information after configure is done.

lanoxx commented 8 years ago

And btw. right after the checkout phase when jhbuild starts the configure phase it will print how autogen.sh is invoked, for me its something like this:

*** Checking out tilda *** [1/1]
git clone git://github.com/lanoxx/tilda.git
Cloning into 'tilda'...

...

*** Configuring tilda *** [1/1]
./autogen.sh --prefix /opt/gnome-build --disable-Werror  --disable-static --disable-gtk-doc 

I am not sure why it included the three --disabled-... flags but they just produce a warning and have no other effect, so I just ignore them.

lanoxx commented 8 years ago

If you need it to reconfigure or run autogen again, try running something like:

-a, --autogen

Always run autogen.sh before building modules.

--distclean

For git modules, run git clean -dfx before building modules. For other modules, run make distclean before building modules.

This option will delete any uncommited changes.

pik commented 8 years ago

Hello Sebastian - thanks for the response. I was able to resolve the issue and submitted a quick one-line patch upstream https://bugzilla.gnome.org/show_bug.cgi?id=765328.

re: JHBuild

It seems that PKG_CONFIG_PATH was being setup correctly but LD_LIBRARY_PATH was not being modified which was causing the issues. Still not sure why JHBuld doesn't do this for me..

my config: https://gist.github.com/pik/3bcbd7670736db21bb85f5447c154417 moduleset docs: https://developer.gnome.org/jhbuild/stable/moduleset-syntax.html.en

lanoxx commented 8 years ago

Did you build jhbuild from source or did you use the distribution supplied one?

Also you can run application with jhbuild run tilda then jhbuild will take case to setup environement variables for you, I guess it should also correctly setup LD_LIBRARY_PATH, alternatively you can start a shell with jhbuild shell and then start the program from inside there.

lanoxx commented 7 years ago

@pik If I am correct then you tested my changes and the only issues you had where due to some bug in libvte, which is unreleased to my code. In summary my patch works and can be merged to master. Do you agree?

lanoxx commented 4 years ago

The search bar rewrite as GObject has long been merged into master (c416e0ac74b90330bbeb2f6eb4eebdf18451fa98, 2f9827f2700396ed268109b89c4b678ca5ad53f9, 3a35ec473f923d28ea1d0975494621b9f5119311, 5254d3cca981e1a6d78fb89762f7fb3d34b766ce). Closing.