summaryrefslogtreecommitdiff
path: root/src/gtk
AgeCommit message (Collapse)AuthorFilesLines
2009-10-11Don't re-cache the digested changelog after we parse it, that would be silly.Daniel Burrows1-1/+4
2009-10-11Preprocess the entries in the changelog job queue to eliminate all ↵Daniel Burrows1-77/+99
references to the apt cache. This doesn't totally fix the problem with the program crashing if it's exited while changelogs are downloading, but it makes it a lot easier to fix. The reason is that I can now leave jobs in the queues while the cache is closed, and resume processing when it's reopened: when cache structures were potentially hanging around, that wasn't an option.
2009-10-11Split the code to generate the sidebar of information about a package into a ↵Daniel Burrows4-355/+450
separate file, so it can be reused elsewhere.
2009-10-11Store the output of parsechangelog in the file cache and use it to bypass ↵Daniel Burrows1-36/+386
parsing when displaying the upgrade changelog list. It turns out that the reason aptitude took so long to display the changelogs in my upgrade set is that extracting changelogs from the cache and parsing them takes a long time. Now aptitude can also cache the parsed version of the changelog, bypassing those steps entirely, although currently only the GTK+ interface does so. (the other interfaces don't really need this at the moment anyway)
2009-10-10Make sure to trampoline the get_changelogs continuation to the main thread!Daniel Burrows1-1/+12
The code it invokes has to run in the main thread for safety reasons. Without this we get random crashes.
2009-10-10Push the setup phase of the changelog download into a background thread.Daniel Burrows3-15/+27
The setup phase is somewhat I/O intensive; this avoids blocking the UI while it's going on. Also, this converts the ui_download_manager and ui_download_thread classes to using boost::shared_ptr to store the download manager; that should make its memory management a lot simpler.
2009-10-07Don't crash if the user asks for the file list of a package that's not ↵Daniel Burrows1-4/+6
installed.
2009-10-07Use a single thread for all changelog parsing, to avoid spawning a huge ↵Daniel Burrows1-20/+128
number of threads and parse jobs when there are lots of available upgrades.
2009-10-06Make the "hold" command in the GTK+ interface hold instead of deleting. ↵Daniel Burrows1-1/+1
(Closes: #549897)
2009-09-12Merge in the backout patch.Daniel Burrows5-30/+39
2009-09-12Backed out changeset f406b5f036a6: revert from using dpkg-parsechangelog to ↵Daniel Burrows1-1/+4
using libparse-debianchangelog-perl. As noted by Sven Joachim, dpkg-parsechangelog is in the "dpkg-dev" package, not a package users usually have installed. That package is quite a bit larger than libparse-debianchangelog-perl, and dpkg-parsechangelog runs about four times slower than parsechangelog, so I think it's better to use the "nonstandard" changelog parser here.
2009-09-04Instead of using the default entity_state_info constructor to create a blank ↵Daniel Burrows4-11/+10
information object, create an explicitly named value and hide the default constructor. Thanks to Miroslav Kure for the initial patch.
2009-09-04When translating the description of a package's state, don't try to ↵Daniel Burrows4-5/+15
translate the empty string.
2009-09-04Mark more menu items as translatable in the Glade file (thanks to Miroslave ↵Daniel Burrows1-14/+14
Kure for pointing this out).
2009-08-22Switch from libparse-debianchangelog-perl to dpkg-parsechangelog.Daniel Burrows1-4/+1
Over a year and a half ago, the options I needed from libparse-debianchangelog-perl were finally added to dpkg-parsechangelog. Being able to parse changelogs without asking the user to install optional software is great!
2009-07-10Eliminating the use of hash tables to save memory: backed out changeset ↵Daniel Burrows1-2/+2
c8aec0d44f84
2009-07-07Sort hashed sets of choices when displaying them, so log files are more ↵Daniel Burrows1-2/+2
comparable across runs. Not every set of choices is sorted yet; there might be a few more of these to write.
2009-07-06Use pointers to package cache structures to store resolver objects, rather ↵Daniel Burrows1-1/+2
than iterators. This cuts the runtime memory use down by 20-30%. The problem was that a *huge* number of these objects are allocated, and iterators store members that either aren't needed, or are redundant with other members of the containing resolver object. The dep-cache pointers could, perhaps, be dropped, if I forced the routines that want one to request a "universe" pointer instead. On the one hand, that's just about everything now; on the other hand, that would chop many of these structures down to a single pointer! Worth a thought, anyway.
2009-05-06Change "Show actions explanations" to "Group by dependency".Daniel Burrows1-1/+1
I think this is a bit clearer and more descriptive.
2009-05-06Changes made by loading and saving with glade 3.6.Daniel Burrows1-281/+219
2009-04-30Reformulate a label.Obey Arthur Liu1-1/+1
It's not really an explanation of the solution but rather of an individual action. Bonus: it's shorter.
2009-04-30Reorganize the Resolver tab layout.Obey Arthur Liu1-175/+197
The examined solution is an element of the list of existing solution, so should be on the right of it. Solution view mode now horizontal to save a little vertical space. The 'next solution' and 'apply' are now right below the examined solution, much more logical and save mouse movements when moving between choices and 'next'.
2009-04-30Use the new entry progress object to display progress bars associated with ↵Daniel Burrows7-18/+45
rebuilding package lists after a search. This actually always uses the entry as a progress bar; I decided that was probably less confusing than sometimes using the entry, and using the global progress bar when the list was rebuilt for some other reason (e.g., cache reload). Also, it lets you easily see which lists are being rebuilt in that case (as opposed to a situation where all the lists fight over the global progress bar).
2009-04-30Redesign the GTK+ entry progress object so that it can be used safely if the ↵Daniel Burrows2-7/+10
entry is destroyed. This involves two things: referring to the entry indirectly via a slot, so that progress calls after it's destroyed are ignored, and accepting the entry as a reference, so that sigc::ref can be used to bind up weak references when creating a callback to create the progress object.
2009-04-30Create a progress bar that displays progress in a GTK+ entry using the new ↵Daniel Burrows2-7/+59
set_progress() function in 2.16+.
2009-04-30Store the builder's progress handler as a generic reference-counted progress ↵Daniel Burrows1-3/+3
object. This paves the way for displaying the progress more flexibly.
2009-04-29Fix a missing escape_text() around a dependency string (oops).Daniel Burrows1-1/+3
2009-04-29Fix some dumb stuff with the dep_text change that somehow got by me.Daniel Burrows1-16/+17
I swear I made some of these changes in the last commit; I halfway suspect that "hg record" glitched.
2009-04-29Clean the code up a bit by making dep_text return a std::string, not a ↵Daniel Burrows2-13/+12
std::wstring. This way we don't have to do several useless conversions to and from UTF-8.
2009-04-29Include short descriptions in the resolver tab, just like in the package list.Daniel Burrows1-9/+53
I feel like this makes things a little cluttered, but the short descriptions are also very useful.
2009-04-29Set up connections to the resolver manager whenever a new manager is ↵Daniel Burrows1-0/+1
attached to a resolver tab. This was causing icons and colors of items in a solution to fail to update when the state of the items was changed (since the callbacks that trigger this were connected to the global resolver, not the one specific to the tab).
2009-04-29Make setup_resolver_connections() always discard any old connections that exist.Daniel Burrows1-0/+4
2009-04-29Log when the resolver tab gets a new manager and when it connects its ↵Daniel Burrows1-1/+11
signals to its manager.
2009-04-29Fix a dumb mistake I made in info.cc.Daniel Burrows1-2/+2
2009-04-29Be more paranoid about NULL resolvers.Daniel Burrows1-0/+3
2009-04-27Don't crash when displaying a solution that cancels the installation of a ↵Daniel Burrows1-7/+14
package. (Closes: #525898)
2009-04-27Be paranoid about escaping more text we get back from the translators.Daniel Burrows1-2/+2
2009-04-26Use the typesafe property system to manipulate the tab attached to each ↵Daniel Burrows1-9/+10
widget, rather than casting. Hopefully this will reduce the temptation to do horribly wrong things with memory. :-)
2009-04-26Get the "tab" property from a widget in order to extract the tab, rather ↵Daniel Burrows1-14/+23
than casting the widget to a tab and then crashing.
2009-04-26Add logging for tab lifetimes.Daniel Burrows1-4/+58
This would have helped with tracking down two recent tab-close-related bugs. In fact, I found the second one while instrumenting the code with logging statements.
2009-04-26Defensively trampoline tab closes through the main thread to avoid ↵Daniel Burrows1-1/+5
surprising situations where tabs with active method calls get closed. This will avoid situations like the one we had with the resolver tab, hopefully.
2009-04-26When rejecting / accepting a collection of iterators, make a copy of the ↵Daniel Burrows1-3/+42
selection list and work on that. This fixes the warnings that were getting spewed about how we were modifying the list during iteration.
2009-04-26Don't access freed memory after applying a solution.Daniel Burrows1-4/+9
2009-04-20Merge with head.Daniel Burrows1-1/+1
2009-04-20Change the behavior of the resolver tab to be more correct.Daniel Burrows1-29/+41
Before, the resolver would be automatically started sometimes even though the user hadn't pushed the "find next solution" button. This is now fixed: solutions won't be computed until the user is ready for them (that's important so that their rejections/approvals are reflected in any solution that gets generated).
2009-04-20Fix two ambiguous implicit casts that cause FTBFS on amd64.Obey Arthur Liu1-1/+1
2009-04-19Don't always display brief descriptions of unresolved recommendations in ↵Daniel Burrows1-1/+1
boldface.
2009-04-19Be more paranoid about cache closes in the resolver tab.Daniel Burrows2-1/+25
2009-04-19Use analyze_action() to generate more accurate and more complete tooltips ↵Daniel Burrows1-25/+90
for action preference icons.
2009-04-19Consolidate code to render markup for resolver choices, and make the way ↵Daniel Burrows2-177/+169
markup is used more consistent. I'm not sure the current markup is what we want, but at least it's the same everywhere and there are now fewer places to change if I decide to rip it out.