Mantis Issue Tracking for Scribus
· Hosting provided by Anduin.net / Øverby Consulting ·

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002382ScribusInternalpublic2005-08-03 18:082014-07-09 17:46
Reporterringerc 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusacknowledgedResolutionopen 
Platformx86 LinuxOSFedora CoreOS Version3
Product Version1.3.1cvs 
Target VersionFixed in Version 
Summary0002382: Metabug: Code quality, structure, readability
DescriptionThere are some issues with code quality, readability and structure in Scribus. These are commonly recognisd on -dev, and I'm posting this bug as a general tracker for code quality related bugs.

I think some of these issues are major problems for getting more contribution to Scribus, especially casual bug fixes and feature offers. 0002376 is an example.

THIS IS NOT A "SCRIBUS IS CRAP" COMMENT. I'm discussing limitations and problems, but that does not detract from the functionality and the cool stuff that works well.

Here's a 10,00 foot overview of random issues:

Broad categories of issue:
  - Structure:
      = Deep nesting
      = huge classes and files
      = Strong assumptions about order of execution that can make changes difficult. Results in heavy cross dependencies.
      = direct member access all over the code; reliance on "changedBlah()" style calls rather than accessors emitting signals. This means that all code that modifies "blah" needs to know who to tell when it changed "blah" and when. Results in heavy cross dependencies.
      = Sometimes very linear/procedural where event-driven/OO would be much better. Makes it hard to re-use code, introduces tight cross-dependencies.
      = *LOTS* of mixing of GUI code with "core" code. Better separation would help quite a bit for some things. See mpalette.cpp for example.
  - Quality. Error checking/handling/reporting. Assertions and sanity checks. Testing, especially automated testing. Test suites on critical facilities like PDF export.
  - Readability. Few comments, structure issues already mentioned.
  - UI and usability tweaks and touch-ups needed in many areas. Please DO NOT link those bugs here; file a separate metabug or just search the 'usability' and 'user interface' categories.
Additional InformationSee the whole list of metabugs: http://wiki.scribus.net/index.php/Metabugs [^]
TagsNo tags attached.
Patch
Attached Files

- Relationships
related to 0002215closedjghali Audit and fix text encoding handling 
related to 0002260acknowledged Metabug: Long-running code that blocks the UI 
related to 0002251acknowledged Metabug: Vanishing or silently disabled UI 
related to 0002161acknowledged Re-examine copy/paste and drag & drop 
related to 0001678closedfschmid Picture Management dialog needs a rewrite 
parent of 0001470closedcbradney Comments on all classes and members in header files 
parent of 0001653confirmed Convert all PageItem direct member access to use getters and setters 
parent of 0001900assignedcbradney Convert PDFOptions, PDF dialog, and related to use enums not magic numbers 
parent of 0001899assignedcbradney Clean up pdfopts.cpp / tabpdfopts.cpp 
parent of 0002383confirmed ScribusView is too big to be comprehended by mortal minds 
parent of 0002384closedavox PageItem::DrawObj does lots of non-drawing tasks, gets very convoluted 
has duplicate 0002376closedringerc Source code requests 
related to 0002438acknowledged Metabug: Cases of extreme memory use 
Not all the children of this issue are yet resolved or closed.

-  Notes
(0005874)
ringerc (administrator)
2005-08-03 18:25

Discussion is probably better carried out on -dev, then this bug updated. Otherwise the history will just get excessive.

- Issue History
Date Modified Username Field Change
2005-08-03 18:08 ringerc New Issue
2005-08-03 18:10 ringerc Status new => confirmed
2005-08-03 18:20 ringerc Description Updated
2005-08-03 18:21 ringerc Relationship added has duplicate 0002376
2005-08-03 18:25 ringerc Note Added: 0005874
2005-08-03 18:26 ringerc Relationship added parent of 0001470
2005-08-03 18:26 ringerc Relationship added related to 0001653
2005-08-03 18:27 ringerc Relationship replaced parent of 0001653
2005-08-03 18:27 ringerc Relationship added related to 0002215
2005-08-03 18:27 ringerc Relationship added related to 0002260
2005-08-03 18:27 ringerc Relationship added related to 0002251
2005-08-03 18:28 ringerc Relationship added related to 0001900
2005-08-03 18:29 ringerc Relationship replaced parent of 0001900
2005-08-03 18:29 ringerc Relationship added parent of 0001899
2005-08-03 18:29 ringerc Relationship added related to 0002161
2005-08-03 18:31 ringerc Relationship added related to 0001678
2005-08-03 18:33 ringerc Relationship added related to 0002383
2005-08-03 18:38 ringerc Relationship added related to 0002384
2005-08-03 18:39 ringerc Description Updated
2005-08-03 18:40 ringerc Relationship added parent of 0002231
2005-08-03 18:40 ringerc Relationship replaced parent of 0002383
2005-08-03 18:41 ringerc Relationship replaced parent of 0002384
2005-08-03 18:42 ringerc Relationship added parent of 0002225
2005-08-14 17:23 ringerc Relationship added related to 0002438
2006-07-03 00:12 mhanski Additional Information Updated
2014-07-09 17:46 Kunda Status confirmed => acknowledged



Copyright © 2000 - 2014 MantisBT Team
Powered by Mantis Bugtracker