# Desktop Util

## Overview

Desktop Util contains much more then utility fuctions and data structures. To make the browsing of the code more convenient the code has been split into components that match the subfolders in the module.

## Components

ADT
Algorithms
AutoUpdate
FileChooser
File Utils
Handlers
Image Utils
Mail
Mempool
Network Utils
OpFile
Search
Sessions
String
Thumbnails
TreeModel

## Coding standards

Desktop Util has traditionally been a dumping ground for code that people didn't know where to put. This resulted in an unmangable heap of files with no connection to oneanother. This is now not acceptable. All the files have been delegated to subfiles, some of which are almost submodules - see search, handlers and sessions. Please use an exsisting folder when appropriate or make a new one that fits your purposes. A component link should then be added here.

Basic guidelines:

- All new code needs to be documented. The minimum level of documentation for new code is
  - Short introduction in header files (what the code does and how the classes should be used)
  - Documentation of all functions/methods and non obvious member variables
- When working with existing code: If you invested some time in figuring out how code works, please document it.
- Limit the amount of ifdef _MYPLATFORM_. Ifdefs make code error prone and unreadable, try not always to go for the easy hack.
- Keep Quick Out Of Memomory safe
- Keep Quick quick: spend some time on optimization. Speed is the number 1 reason for users to use Opera

Last updated May 18, 2007