Posts Tagged 'abiword'


The title of this post, AbiWordBigChecklist, also happens to be the title of a Tomboy note which has been permanently opened on my desktop. It’s essentially a todo of all the bugs and features I know about in my GSOC project, and I’ve been whittling it down steadilyish over the summer. As of right now, I’m leaving for school on the 10th, so I need to complete as much of it as possible before then; that’s about 1.5 weeks.  >_<

Bold items are urgent, italic items don’t affect usability as much and are considered less so.

  • Pretty blue selection not shown after first row/Backspace does not erase letters after the first row
  • Cursor messed up on up & down arrow keys
    • ::getPageYOffset ::_findPositionCoord ?
    • The cursor is almost literally just moving up and down without regard for horizontal pages.
  • Scrollbar fix for fit to page width zoom. Unneeded if auto-tile is the only mode usable, ala Microsoft Word.
  • Normal page view needs a little work; page separator line not getting erased properly
  • RTL
    • Earlier pages in same row not redrawn properly. (Though they work fine when opening an existing doc or when forcibly refreshed by moving another window over AbiWord when not using Compiz.) Related to redraw issues above?
      • I’m handling RTL right now by just having pages start at the left and then moved a space to the right when the end is reached and a new page is started. This allows minimal code changes from LTR mode, but I don’t think AbiWord redraws older pages to start with. Also, this happens on the first row, meaning it’s probably not related to the above urgent. Crap. I need to write stream-of-consciousness more often.
      • I initially tried drawing the page at the right side of the screen, but it was kinda flickery and felt sluggish and hackish when the window was resized. I’m running out of time to make this, I may have to revert back to this and submit some patches after summer of code ends.
    • Make RTL use document preference (easy fix?)
    • Bottom of page shadow cut off when col > 0
  • Top ruler (figure out how left ruler is moving and mimic that. once this is located, easy fix?)
  • GUI for using this feature (I have several ideas for how to implant it, the simplest just being a View menu entry for “Multiple page view.” Still working out how menus work.)

So, yeah. I’ma be spazzing out over this until I leave. Packing for school is pretty straightforward, anyway. 🙂


Summer of Code II: Code Harder

Hey look, I’m on Planet AbiSource. If you’re the type of person or poorly programed bot who clicks every link they see, you now have a slightly higher chance of endless recursion. Huzzah.

It’s been slow going recently; there were thunderstorms all last week. In between frantically unplugging every electronic device in the house and being bored listening to thunder and watching the lights flicker, I spent a lot of time using GDB looking for the source of a mysterious drawing glitch which turned out to be the margin of the first column drawing over all the other pages. Whoops. My debug-fu is still somewhat weak.

Here is le current running changelog for the past week or so, which is accompanied by rather meager source edits. (I hate it when that happens.)

  • Smooth scrolling is disabled with multiple pages due to jerkiness.
    • It also fixes an auto-page-tiling bug, which I didn’t actually know existed until I was seconds away from tweaking the line of code which corrected it. Convenient!
  • Multiple horizontal pages should only show in VIEW_PRINT
  • Margins now draw correctly, not over other pages. (I’m an idiot; took way, way too long to figure that out)
  • Made FL_DocLayout::getHeight() slightly easier to read; the output is identical.
  • Page height fixed. Again. No, seriously, it works this time. I think.

Stuff I need to fix:

  • Scrolling is really messed up when in single page mode; it’s all jerky and slow. I suppose I brought this upon myself by running all the multipage algorithms with “1” as the number of horizontal pages, but I didn’t expect this huge of a slowdown. It popped up in my last SVN submission, so I should probably backtrack and see if there’s yet another obvious thing I missed.
  • Scrolling is funky. Stuff just isn’t being drawn consistanly when you scroll up or down. Figuring this out is a rather high priority right now.
  • The cursor jumps up a page when you use the up arrow key. IIRC what my mentor said, this is apparently being caused by a preexisting bug. The easy fix is to just duplicate the functionality of a particular function I’m calling. I don’t much like this solution, but it’ll work for now.
  • No text is drawn on the 3rd+ rows. It’s like this in all AbiWord builds, so while I’d like to fix it, I’m not going to sweat it too much if I don’t locate the cause before things end.
  • The pretty blue selection rectangle is not being shown on second+ row of pages, and on random letters on the first row.
  • Auto page tiling doesn’t update until _draw(…). This can be an issue as when the zoom is changed, the tiling doesn’t update.
  • Now that the page is approaching being drawn properly, the top ruler is starting to look tempting. I was overjoyed to discover that the left ruler requires no modification at all; I leave rulers turned off pretty much all the time. I wonder how much code is
  • Left to right tiling. I haven’t actually explicitly coded anything which sets this up (following the popular “get basic functionality first” philosophy), but it’s been in the back of my mind while I’ve been coding. I don’t anticipate having a really hard time with this
  • After that, interface stuff to actually use this feature. Then it’s over? Wow.

In conclusion, I have now drifted into Honolulu, lost all productivity, and should seriously consider sleeping. James out.

In which I draw a line on some screenshots

Nothing visible happened today. Oh, did did figure out why the text was “jumping” when one tries to edit after the initial draw. Lookit! The window on the right is my dev build, window on the left is 2.6.2. The selected text is whats initially drawn to the screen all pretty. The text underneath it, overlapping somewhat, is what is drawn when you edit.

Note my dev build lacks the upper gray area outside the page, and note the line I drew to compare the text height. Exactly the same! “All” I need to do to fix it is to find whatever it is I ripped out that draws the upper gray area.

I’m mostly writting this to myself so I remember where I am tomorrow. I suppose I could jot it on the slowly growing stack of scratch paper next to my laptop, but I’m making the (likely pompus) assumption that it might be interesting to someone. Or am I being even more egotistical by assuming that about my assumption? I’d never survive as a diplomat.

Edit: Oh, also, just in case you were wondering, in C++ when you run into a form like (a || b && c), the && is always evaluated first, even if it’s reversed like (a && b || c). Dispite what my handy refrence says. Look, just put parentheses to indicate order of operations with expressions like that. It gets rid of warnings and makes it slightly easier on the next person to go through your code. I saw a Repulsive expression of Unusual Size earlier today that I don’t even want to think about working on without a truth table, or linear algebra, or whatever. Good thing it’s not related to any of my code. ^_^

Well, technically it’s not Wednesday anymore…

…But I did eventually get that text fixed. Tada!

Err… Not quite sure why exactly the outline from page five is being drawn off the bottom of the screen down there. And the whole thing is still corrupted when you actually click on it. When you start editing, text is suddenly being drawn about a line lower than initially pictured; I’m probably returning a value one-off someplace. Yay


So, this is what my Google Summer of Code MultiPage project looks like so far. Not (absolutely horribly) bad, eh? Well, as of roughly thirty seconds ago, it was a complete mess. Then I looked back and realized that I was passing the row number, not the page number to my function that calculated the width of previous pages in a row. Easy fix, looks much better. God is good!

You’ll note that pages five and six are being drawn too high (covering pages two and three). What you can’t see is how the blinking cursor line is flipping insane and un-synced from reality, how the pretty white page filling and drawing messes up when you type stuff, and how the whole thing locks up whenever you scroll. All in good time!

Anyway, I’m starting feel a bit more comfortable hacking on this particular chunk of AbiWord, despite lots of stupid mistakes. I think I’ve worked on it about two and a half weeks on this point? Grrr. I’m going too slow. My goal for the next coding session is to sort out the overlapping text stuff (should be easy, even by my standards 😛 ) and get this polished enough for a new SVN submission. The one I should have made a while ago. Yay.

RSS Status

  • An error has occurred; the feed is probably down. Try again later.

Creative Commons License
This stuff is licensed under a Creative Commons License.