mirror of
https://github.com/arsenetar/dupeguru.git
synced 2024-10-31 22:05:58 +00:00
Removed duplication among help files of the different editions.
--HG-- rename : help_se/en/credits.md => help_base/en/credits.md rename : help_se/en/directories.md => help_base/en/directories.md rename : help_se/en/power_marker.md => help_base/en/power_marker.md rename : help_se/en/quick_start.md => help_base/en/quick_start.md rename : help_se/en/results.md => help_base/en/results.md rename : help_se/skeleton/hardcoded.css => help_base/skeleton/hardcoded.css rename : help_se/skeleton/images/hs_title.png => help_base/skeleton/images/hs_title.png
This commit is contained in:
parent
8bea978715
commit
94104f4e03
31
build.py
31
build.py
@ -19,11 +19,7 @@ from distutils.extension import Extension
|
|||||||
from hscommon import helpgen
|
from hscommon import helpgen
|
||||||
from hscommon.build import add_to_pythonpath, print_and_do, build_all_qt_ui, copy_packages
|
from hscommon.build import add_to_pythonpath, print_and_do, build_all_qt_ui, copy_packages
|
||||||
|
|
||||||
def build_cocoa(edition, dev, help_destpath):
|
def build_cocoa(edition, dev):
|
||||||
if not dev:
|
|
||||||
print("Building help index")
|
|
||||||
os.system('open -a /Developer/Applications/Utilities/Help\\ Indexer.app {0}'.format(help_destpath))
|
|
||||||
|
|
||||||
print("Building dg_cocoa.plugin")
|
print("Building dg_cocoa.plugin")
|
||||||
if op.exists('build'):
|
if op.exists('build'):
|
||||||
shutil.rmtree('build')
|
shutil.rmtree('build')
|
||||||
@ -83,6 +79,20 @@ def build_qt(edition, dev):
|
|||||||
run_contents = tmpl.replace('{{edition}}', edition)
|
run_contents = tmpl.replace('{{edition}}', edition)
|
||||||
open('run.py', 'wt').write(run_contents)
|
open('run.py', 'wt').write(run_contents)
|
||||||
|
|
||||||
|
def build_help(edition, ui, dev):
|
||||||
|
print("Generating Help")
|
||||||
|
windows = sys.platform == 'win32'
|
||||||
|
profile = 'win_en' if windows else 'osx_en'
|
||||||
|
help_dir = 'help_{0}'.format(edition)
|
||||||
|
dest_dir = 'dupeguru_{0}_help'.format(edition) if edition != 'se' else 'dupeguru_help'
|
||||||
|
help_basepath = op.abspath(help_dir)
|
||||||
|
help_destpath = op.abspath(op.join(help_dir, dest_dir))
|
||||||
|
helpgen.gen(help_basepath, help_destpath, profile=profile)
|
||||||
|
|
||||||
|
if (ui == 'cocoa') and (not dev):
|
||||||
|
print("Building help index")
|
||||||
|
os.system('open -a /Developer/Applications/Utilities/Help\\ Indexer.app {0}'.format(help_destpath))
|
||||||
|
|
||||||
def build_pe_modules(ui):
|
def build_pe_modules(ui):
|
||||||
def move(src, dst):
|
def move(src, dst):
|
||||||
if not op.exists(src):
|
if not op.exists(src):
|
||||||
@ -128,19 +138,12 @@ def main():
|
|||||||
if dev:
|
if dev:
|
||||||
print("Building in Dev mode")
|
print("Building in Dev mode")
|
||||||
add_to_pythonpath('.')
|
add_to_pythonpath('.')
|
||||||
print("Generating Help")
|
build_help(edition, ui, dev)
|
||||||
windows = sys.platform == 'win32'
|
|
||||||
profile = 'win_en' if windows else 'osx_en'
|
|
||||||
help_dir = 'help_{0}'.format(edition)
|
|
||||||
dest_dir = 'dupeguru_{0}_help'.format(edition) if edition != 'se' else 'dupeguru_help'
|
|
||||||
help_basepath = op.abspath(help_dir)
|
|
||||||
help_destpath = op.abspath(op.join(help_dir, dest_dir))
|
|
||||||
helpgen.gen(help_basepath, help_destpath, profile=profile)
|
|
||||||
print("Building dupeGuru")
|
print("Building dupeGuru")
|
||||||
if edition == 'pe':
|
if edition == 'pe':
|
||||||
build_pe_modules(ui)
|
build_pe_modules(ui)
|
||||||
if ui == 'cocoa':
|
if ui == 'cocoa':
|
||||||
build_cocoa(edition, dev, help_destpath)
|
build_cocoa(edition, dev)
|
||||||
elif ui == 'qt':
|
elif ui == 'qt':
|
||||||
build_qt(edition, dev)
|
build_qt(edition, dev)
|
||||||
|
|
||||||
|
12
help_base/en/quick_start.md
Normal file
12
help_base/en/quick_start.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
To get you quickly started with dupeGuru, let's just make a standard scan using default preferences.
|
||||||
|
|
||||||
|
* Click on **Directories**.
|
||||||
|
* Click on **Add**.
|
||||||
|
* Choose a directory you want to scan for duplicates.
|
||||||
|
* Click on **Start Scanning**.
|
||||||
|
* Wait until the scan process is over.
|
||||||
|
* Look at every duplicate (The files that are indented) and verify that it is indeed a duplicate to the group's reference (The file above the duplicate that is not indented and have a disabled mark box).
|
||||||
|
* If a file is a false duplicate, select it and click on **Actions-->Remove Selected from Results**.
|
||||||
|
* Once you are sure that there is no false duplicate in your results, click on **Edit-->Mark All**, and then **Actions-->Send Marked to Recycle bin**.
|
||||||
|
|
||||||
|
That is only a basic scan. There are a lot of tweaking you can do to get different results and several methods of examining and modifying your results. To know about them, just read the rest of this help file.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@ -1,6 +1,7 @@
|
|||||||
base:
|
base:
|
||||||
pages: en/pages.yaml
|
pages: en/pages.yaml
|
||||||
skeleton: skeleton
|
basepages: ../help_base/en
|
||||||
|
skeleton: ../help_base/skeleton
|
||||||
changelog: CHANGELOG
|
changelog: CHANGELOG
|
||||||
tixurl: "https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}"
|
tixurl: "https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}"
|
||||||
firstpage_meta: "<meta name=\"AppleTitle\" content=\"dupeGuru ME Help\"></meta>"
|
firstpage_meta: "<meta name=\"AppleTitle\" content=\"dupeGuru ME Help\"></meta>"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
base:
|
base:
|
||||||
pages: en/pages.yaml
|
pages: en/pages.yaml
|
||||||
skeleton: skeleton
|
basepages: ../help_base/en
|
||||||
|
skeleton: ../help_base/skeleton
|
||||||
changelog: CHANGELOG
|
changelog: CHANGELOG
|
||||||
tixurl: "https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}"
|
tixurl: "https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}"
|
||||||
firstpage_meta: "<meta name=\"AppleTitle\" content=\"dupeGuru Help\"></meta>"
|
firstpage_meta: "<meta name=\"AppleTitle\" content=\"dupeGuru Help\"></meta>"
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
Below is the list of people who contributed, directly or indirectly to dupeGuru.
|
|
||||||
|
|
||||||
**Virgil Dupras, Developer**<br/>
|
|
||||||
<http://www.hardcoded.net>
|
|
||||||
|
|
||||||
**Jérôme Cantin, Icon designer**<br/>
|
|
||||||
Icons in dupeGuru are from him
|
|
||||||
|
|
||||||
**Python, Programming language**<br/>
|
|
||||||
The bestest of the bests<br/>
|
|
||||||
<http://www.python.org>
|
|
||||||
|
|
||||||
**PyObjC, Python-to-Cocoa bridge**<br/>
|
|
||||||
Used for the Mac OS X version<br/>
|
|
||||||
<http://pyobjc.sourceforge.net>
|
|
||||||
|
|
||||||
**PyQt, Python-to-Qt bridge**<br/>
|
|
||||||
Used for the Windows version<br/>
|
|
||||||
<http://www.riverbankcomputing.co.uk>
|
|
||||||
|
|
||||||
**Sparkle, Auto-update library**<br/>
|
|
||||||
Used for the Mac OS X version<br/>
|
|
||||||
<http://andymatuschak.org/pages/sparkle>
|
|
||||||
|
|
||||||
**Python Imaging Library, Picture analyzer**<br/>
|
|
||||||
Used for the Windows version<br/>
|
|
||||||
<http://www.pythonware.com/products/pil/>
|
|
||||||
|
|
||||||
**You, dupeGuru user**<br/>
|
|
||||||
You rock.
|
|
@ -1,18 +0,0 @@
|
|||||||
There is a panel in dupeGuru called **Directories**. You can open it by clicking on the **Directories** button. This directory contains the list of the directories that will be scanned when you click on **Start Scanning**.
|
|
||||||
|
|
||||||
This panel is quite straightforward to use. If you want to add a directory, click on **Add**. If you added directories before, a popup menu with a list of recent directories you added will pop. You can click on one of them to add it directly to your list. If you click on the first item of the popup menu, **Add New Directory...**, you will be prompted for a directory to add. If you never added a directory, no menu will pop and you will directly be prompted for a new directory to add.
|
|
||||||
|
|
||||||
To remove a directory, select the directory to remove and click on **Remove**. If a subdirectory is selected when you click remove, the selected directory will be set to **excluded** state (see below) instead of being removed.
|
|
||||||
|
|
||||||
Directory states
|
|
||||||
-----
|
|
||||||
|
|
||||||
Every directory can be in one of these 3 states:
|
|
||||||
|
|
||||||
* **Normal:** Duplicates found in these directories can be deleted.
|
|
||||||
* **Reference:** Duplicates found in this directory **cannot** be deleted. Files in reference directories will be in a blue color in the results.
|
|
||||||
* **Excluded:** Files in this directory will not be included in the scan.
|
|
||||||
|
|
||||||
The default state of a directory is, of course, **Normal**. You can use **Reference** state for a directory if you want to be sure that you won't delete any file from it.
|
|
||||||
|
|
||||||
When you set the state of a directory, all subdirectories of this directory automatically inherit this state unless you explicitly set a subdirectory's state.
|
|
@ -1,27 +0,0 @@
|
|||||||
You will probably not use the Power Marker feature very often, but if you get into a situation where you need it, you will be pretty happy that this feature exists.
|
|
||||||
|
|
||||||
What is it?
|
|
||||||
-----
|
|
||||||
|
|
||||||
When the Power Marker mode is enabled, the duplicates are shown without their respective reference file. You can select, mark and sort this list, just like in normal mode.
|
|
||||||
|
|
||||||
So, what is it for?
|
|
||||||
-----
|
|
||||||
|
|
||||||
The dupeGuru results, when in normal mode, are sorted according to duplicate groups' **reference file**. This means that if you want, for example, to mark all duplicates with the "exe" extension, you cannot just sort the results by "Kind" to have all exe duplicates together because a group can be composed of more than one kind of files. That is where Power Marker comes into play. To mark all your "exe" duplicates, you just have to:
|
|
||||||
|
|
||||||
* Enable the Power marker mode.
|
|
||||||
* Add the "Kind" column with the "Columns" menu.
|
|
||||||
* Click on that "Kind" column to sort the list by kind.
|
|
||||||
* Locate the first duplicate with a "exe" kind.
|
|
||||||
* Select it.
|
|
||||||
* Scroll down the list to locate the last duplicate with a "exe" kind.
|
|
||||||
* Hold Shift and click on it.
|
|
||||||
* Press Space to mark all selected duplicates.
|
|
||||||
|
|
||||||
Power Marker and delta values
|
|
||||||
-----
|
|
||||||
|
|
||||||
The Power Marker unveil its true power when you use it with the **Delta Values** switch turned on. When you turn it on, relative values will be displayed instead of absolute ones. So if, for example, you want to remove from your results all duplicates that are more than 300 KB away from their reference, you could sort the Power Marker by Size, select all duplicates under -300 in the Size column, delete them, and then do the same for duplicates over 300 at the bottom of the list.
|
|
||||||
|
|
||||||
You could also use it to change the reference priority of your duplicate list. When you make a fresh scan, if there are no reference directories, the reference file of every group is the biggest file. If you want to change that, for example, to the latest modification time, you can sort the Power Marker by modification time in **descending** order, select all duplicates with a modification time delta value higher than 0 and click on **Make Selected Reference**. The reason why you must make the sort order descending is because if 2 files among the same duplicate group are selected when you click on **Make Selected Reference**, only the first of the list will be made reference, the other will be ignored. And since you want the last modified file to be reference, having the sort order descending assures you that the first item of the list will be the last modified.
|
|
@ -1,69 +0,0 @@
|
|||||||
When dupeGuru is finished scanning for duplicates, it will show its results in the form of duplicate group list.
|
|
||||||
|
|
||||||
About duplicate groups
|
|
||||||
-----
|
|
||||||
|
|
||||||
A duplicate group is a group of files that all match together. Every group has a **reference file** and one or more **duplicate files**. The reference file is the first file of the group. Its mark box is disabled. Below it, and indented, are the duplicate files.
|
|
||||||
|
|
||||||
You can mark duplicate files, but you can never mark the reference file of a group. This is a security measure to prevent dupeGuru from deleting not only duplicate files, but their reference. You sure don't want that, do you?
|
|
||||||
|
|
||||||
What determines which files are reference and which files are duplicates is first their directory state. A files from a reference directory will always be reference in a duplicate group. If all files are from a normal directory, the size determine which file will be the reference of a duplicate group. dupeGuru assumes that you always want to keep the biggest file, so the biggest files will take the reference position.
|
|
||||||
|
|
||||||
You can change the reference file of a group manually. To do so, select the duplicate file you want to promote to reference, and click on **Actions-->Make Selected Reference**.
|
|
||||||
|
|
||||||
Reviewing results
|
|
||||||
-----
|
|
||||||
|
|
||||||
Although you can just click on **Edit-->Mark All** and then **Actions-->Send Marked to Recycle bin** to quickly delete all duplicate files in your results, it is always recommended to review all duplicates before deleting them.
|
|
||||||
|
|
||||||
To help you reviewing the results, you can bring up the **Details panel**. This panel shows all the details of the currently selected file as well as its reference's details. This is very handy to quickly determine if a duplicate really is a duplicate. You can also double-click on a file to open it with its associated application.
|
|
||||||
|
|
||||||
If you have more false duplicates than true duplicates (If your filter hardness is very low), the best way to proceed would be to review duplicates, mark true duplicates and then click on **Actions-->Send Marked to Recycle bin**. If you have more true duplicates than false duplicates, you can instead mark all files that are false duplicates, and use **Actions-->Remove Marked from Results**.
|
|
||||||
|
|
||||||
Marking and Selecting
|
|
||||||
-----
|
|
||||||
|
|
||||||
A **marked** duplicate is a duplicate with the little box next to it having a check-mark. A **selected** duplicate is a duplicate being highlighted. The multiple selection actions can be performed in dupeGuru in the standard way (Shift/Command/Control click). You can toggle all selected duplicates' mark state by pressing **space**.
|
|
||||||
|
|
||||||
Delta Values
|
|
||||||
-----
|
|
||||||
|
|
||||||
If you turn this switch on, some columns will display the value relative to the duplicate's reference instead of the absolute values. These delta values will also be displayed in a different color so you can spot them easily. For example, if a duplicate is 1.2 MB and its reference is 1.4 MB, the Size column will display -0.2 MB. This option is a killer feature when combined with the [Power Marker](power_marker.htm).
|
|
||||||
|
|
||||||
Filtering
|
|
||||||
-----
|
|
||||||
|
|
||||||
dupeGuru supports post-scan filtering. With it, you can narrow down your results so you can perform actions on a subset of it. For example, you could easily mark all duplicates with their filename containing "copy" from your results using the filter.
|
|
||||||
|
|
||||||
**Windows:** To use the filtering feature, click on Actions --> Apply Filter, write down the filter you want to apply and click OK. To go back to unfiltered results, click on Actions --> Cancel Filter.
|
|
||||||
|
|
||||||
**Mac OS X:** To use the filtering feature, type your filter in the "Filter" search field in the toolbar. To go back to unfiltered result, blank out the field, or click on the "X".
|
|
||||||
|
|
||||||
In simple mode (the default mode), whatever you type as the filter is the string used to perform the actual filtering, with the exception of one wildcard: **\***. Thus, if you type "[*]" as your filter, it will match anything with [] brackets in it, whatever is in between those brackets.
|
|
||||||
|
|
||||||
For more advanced filtering, you can turn "Use regular expressions when filtering" on. The filtering feature will then use **regular expressions**. A regular expression is a language for matching text. Explaining them is beyond the scope of this document. A good place to start learning it is <http://www.regular-expressions.info>.
|
|
||||||
|
|
||||||
Matches are case insensitive in both simple and regexp mode.
|
|
||||||
|
|
||||||
For the filter to match, your regular expression don't have to match the whole filename, it just have to contain a string matching the expression.
|
|
||||||
|
|
||||||
You might notice that not all duplicates in the filtered results will match your filter. That is because as soon as one single duplicate in a group matches the filter, the whole group stays in the results so you can have a better view of the duplicate's context. However, non-matching duplicates are in "reference mode". Therefore, you can perform actions like Mark All and be sure to only mark filtered duplicates.
|
|
||||||
|
|
||||||
Action Menu
|
|
||||||
-----
|
|
||||||
|
|
||||||
* **Start Duplicate Scan:** Starts a new duplicate scan.
|
|
||||||
* **Clear Ignore List:** Remove all ignored matches you added. You have to start a new scan for the newly cleared ignore list to be effective.
|
|
||||||
* **Export Results to XHTML:** Take the current results, and create an XHTML file out of it. The columns that are visible when you click on this button will be the columns present in the XHTML file. The file will automatically be opened in your default browser.
|
|
||||||
* **Send Marked to Trash:** Send all marked duplicates to trash, obviously.
|
|
||||||
* **Delete Marked and Replace with Hardlinks:** Sends all marked duplicates to trash, but after having done that, the deleted files are replaced by a [hard link](http://en.wikipedia.org/wiki/Hard_link) to the reference file. (Only for OS X and Linux)
|
|
||||||
* **Move Marked to...:** Prompt you for a destination, and then move all marked files to that destination. Source file's path might be re-created in destination, depending on the "Copy and Move" preference.
|
|
||||||
* **Copy Marked to...:** Prompt you for a destination, and then copy all marked files to that destination. Source file's path might be re-created in destination, depending on the "Copy and Move" preference.
|
|
||||||
* **Remove Marked from Results:** Remove all marked duplicates from results. The actual files will not be touched and will stay where they are.
|
|
||||||
* **Remove Selected from Results:** Remove all selected duplicates from results. Note that all selected reference files will be ignored, only duplicates can be removed with this action.
|
|
||||||
* **Make Selected Reference:** Promote all selected duplicates to reference. If a duplicate is a part of a group having a reference file coming from a reference directory (in blue color), no action will be taken for this duplicate. If more than one duplicate among the same group are selected, only the first of each group will be promoted.
|
|
||||||
* **Add Selected to Ignore List:** This first removes all selected duplicates from results, and then add the match of that duplicate and the current reference in the ignore list. This match will not come up again in further scan. The duplicate itself might come back, but it will be matched with another reference file. You can clear the ignore list with the Clear Ignore List command.
|
|
||||||
* **Open Selected with Default Application:** Open the file with the application associated with selected file's type.
|
|
||||||
* **Reveal Selected in Finder:** Open the folder containing selected file.
|
|
||||||
* **Invoke Custom Command:** Invokes the external application you've set up in your preferences using the current selection as arguments in the invocation.
|
|
||||||
* **Rename Selected:** Prompts you for a new name, and then rename the selected file.
|
|
@ -1,407 +0,0 @@
|
|||||||
/*****************************************************
|
|
||||||
General settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
BODY
|
|
||||||
{
|
|
||||||
background-color:white;
|
|
||||||
}
|
|
||||||
|
|
||||||
BODY,A,P,UL,TABLE,TR,TD
|
|
||||||
{
|
|
||||||
font-family: "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
|
|
||||||
font-size:10pt;
|
|
||||||
color: #336699;/*darker than 5588bb for the sake of the eyes*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
"A" settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
A
|
|
||||||
{
|
|
||||||
color: #ae322b;
|
|
||||||
text-decoration:underline;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.glossaryword {color:#A0A0A0;}
|
|
||||||
|
|
||||||
A.noline
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Menu and mainframe settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
.maincontainer
|
|
||||||
{
|
|
||||||
display:block;
|
|
||||||
margin-left:7%;
|
|
||||||
margin-right:7%;
|
|
||||||
padding-left:5px;
|
|
||||||
padding-right:0px;
|
|
||||||
border-color:#CCCCCC;
|
|
||||||
border-style:solid;
|
|
||||||
border-width:2px;
|
|
||||||
border-right-width:0px;
|
|
||||||
border-bottom-width:0px;
|
|
||||||
border-top-color:#ae322b;
|
|
||||||
vertical-align:top;
|
|
||||||
}
|
|
||||||
|
|
||||||
TD.menuframe
|
|
||||||
{
|
|
||||||
width:30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu
|
|
||||||
{
|
|
||||||
margin:4px 4px 4px 4px;
|
|
||||||
margin-top: 16pt;
|
|
||||||
border-color:gray;
|
|
||||||
border-width:1px;
|
|
||||||
border-style:dotted;
|
|
||||||
padding-top:10pt;
|
|
||||||
padding-bottom:10pt;
|
|
||||||
padding-right:6pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submenu
|
|
||||||
{
|
|
||||||
list-style-type: none;
|
|
||||||
margin-left:26pt;
|
|
||||||
margin-top:0pt;
|
|
||||||
margin-bottom:0pt;
|
|
||||||
padding-left:0pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.menuitem,A.menuitem_selected
|
|
||||||
{
|
|
||||||
font-size:14pt;
|
|
||||||
font-weight:normal;
|
|
||||||
padding-left:10pt;
|
|
||||||
color:#5588bb;
|
|
||||||
margin-right:2pt;
|
|
||||||
margin-left:4pt;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.menuitem_selected
|
|
||||||
{
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.submenuitem
|
|
||||||
{
|
|
||||||
font-weight:normal;
|
|
||||||
color:#5588bb;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.titleline
|
|
||||||
{
|
|
||||||
border-width:3px;
|
|
||||||
border-style:solid;
|
|
||||||
border-left-width:0px;
|
|
||||||
border-right-width:0px;
|
|
||||||
border-top-width:0px;
|
|
||||||
border-color:#CCCCCC;
|
|
||||||
margin-left:28pt;
|
|
||||||
margin-right:2pt;
|
|
||||||
line-height:1px;
|
|
||||||
padding-top:0px;
|
|
||||||
margin-top:0px;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.titledescrip
|
|
||||||
{
|
|
||||||
text-align:left;
|
|
||||||
display:block;
|
|
||||||
margin-left:26pt;
|
|
||||||
color:#ae322b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainlogo
|
|
||||||
{
|
|
||||||
display:block;
|
|
||||||
margin-left:8%;
|
|
||||||
margin-top:4pt;
|
|
||||||
margin-bottom:4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
IMG settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
IMG
|
|
||||||
{
|
|
||||||
border-style:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.smallbutton
|
|
||||||
{
|
|
||||||
margin-right: 20px;
|
|
||||||
float:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.floating
|
|
||||||
{
|
|
||||||
float:left;
|
|
||||||
margin-right: 4pt;
|
|
||||||
margin-bottom: 4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.lefticon
|
|
||||||
{
|
|
||||||
vertical-align: middle;
|
|
||||||
padding-right: 2pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.righticon
|
|
||||||
{
|
|
||||||
vertical-align: middle;
|
|
||||||
padding-left: 2pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
TABLE settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
TABLE
|
|
||||||
{
|
|
||||||
border-style:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.box
|
|
||||||
{
|
|
||||||
width: 90%;
|
|
||||||
margin-left:5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.centered
|
|
||||||
{
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.hardcoded
|
|
||||||
{
|
|
||||||
background-color: #225588;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
TR { background-color: transparent; }
|
|
||||||
|
|
||||||
TABLE.hardcoded TR { background-color: white }
|
|
||||||
|
|
||||||
TABLE.hardcoded TR.header
|
|
||||||
{
|
|
||||||
font-weight: bold;
|
|
||||||
color: black;
|
|
||||||
background-color: #C8D6E5;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.hardcoded TR.header TD {color:black;}
|
|
||||||
|
|
||||||
TABLE.hardcoded TD { padding-left: 2pt; }
|
|
||||||
|
|
||||||
TD.minimelem {
|
|
||||||
padding-right:0px;
|
|
||||||
padding-left:0px;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
TD.rightelem
|
|
||||||
{
|
|
||||||
text-align:right;
|
|
||||||
/*padding-left:0pt;*/
|
|
||||||
padding-right: 2pt;
|
|
||||||
width: 17%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
P settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
p,.sub{text-align:justify;}
|
|
||||||
.centered{text-align:center;}
|
|
||||||
.sub
|
|
||||||
{
|
|
||||||
padding-left: 16pt;
|
|
||||||
padding-right:16pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Note, .ContactInfo
|
|
||||||
{
|
|
||||||
border-color: #ae322b;
|
|
||||||
border-width: 1pt;
|
|
||||||
border-style: dashed;
|
|
||||||
text-align:justify;
|
|
||||||
padding: 2pt 2pt 2pt 2pt;
|
|
||||||
margin-bottom:4pt;
|
|
||||||
margin-top:8pt;
|
|
||||||
list-style-position:inside;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ContactInfo
|
|
||||||
{
|
|
||||||
width:60%;
|
|
||||||
margin-left:5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.NewsItem
|
|
||||||
{
|
|
||||||
border-color:#ae322b;
|
|
||||||
border-style: solid;
|
|
||||||
border-right:none;
|
|
||||||
border-top:none;
|
|
||||||
border-left:none;
|
|
||||||
border-bottom-width:1px;
|
|
||||||
text-align:justify;
|
|
||||||
padding-left:4pt;
|
|
||||||
padding-right:4pt;
|
|
||||||
padding-bottom:8pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Lists settings
|
|
||||||
*****************************************************/
|
|
||||||
UL.plain
|
|
||||||
{
|
|
||||||
list-style-type: none;
|
|
||||||
padding-left:0px;
|
|
||||||
margin-left:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
LI.plain
|
|
||||||
{
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
LI.section
|
|
||||||
{
|
|
||||||
padding-top: 6pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
UL.longtext LI
|
|
||||||
{
|
|
||||||
border-color: #ae322b;
|
|
||||||
border-width:0px;
|
|
||||||
border-top-width:1px;
|
|
||||||
border-style:solid;
|
|
||||||
margin-top:12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
with UL.longtext LI, there can be anything between
|
|
||||||
the UL and the LI, and it will still make the
|
|
||||||
lontext thing, I must break it with this hack
|
|
||||||
*/
|
|
||||||
UL.longtext UL LI
|
|
||||||
{
|
|
||||||
border-style:none;
|
|
||||||
margin-top:2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Titles settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
H1,H2,H3
|
|
||||||
{
|
|
||||||
font-family:"Courier New",monospace;
|
|
||||||
color:#5588bb;
|
|
||||||
}
|
|
||||||
|
|
||||||
H1
|
|
||||||
{
|
|
||||||
font-size:18pt;
|
|
||||||
color: #ae322b;
|
|
||||||
border-color: #70A0CF;
|
|
||||||
border-width: 1pt;
|
|
||||||
border-style: solid;
|
|
||||||
margin-top: 16pt;
|
|
||||||
margin-left: 5%;
|
|
||||||
margin-right: 5%;
|
|
||||||
padding-top: 2pt;
|
|
||||||
padding-bottom:2pt;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
H2
|
|
||||||
{
|
|
||||||
border-color: #ae322b;
|
|
||||||
border-bottom-width: 2px;
|
|
||||||
border-top-width: 0pt;
|
|
||||||
border-left-width: 2px;
|
|
||||||
border-right-width: 0pt;
|
|
||||||
border-bottom-color: #cccccc;
|
|
||||||
border-style: solid;
|
|
||||||
margin-top: 16pt;
|
|
||||||
margin-left: 0pt;
|
|
||||||
margin-right: 0pt;
|
|
||||||
padding-bottom:3pt;
|
|
||||||
padding-left:5pt;
|
|
||||||
text-align: left;
|
|
||||||
font-size:16pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
H3
|
|
||||||
{
|
|
||||||
display:block;
|
|
||||||
color:#ae322b;
|
|
||||||
border-color: #70A0CF;
|
|
||||||
border-bottom-width: 2px;
|
|
||||||
border-top-width: 0pt;
|
|
||||||
border-left-width: 0pt;
|
|
||||||
border-right-width: 0pt;
|
|
||||||
border-style: dashed;
|
|
||||||
margin-top: 12pt;
|
|
||||||
margin-left: 0pt;
|
|
||||||
margin-bottom: 4pt;
|
|
||||||
width:auto;
|
|
||||||
padding-bottom:3pt;
|
|
||||||
padding-right:2pt;
|
|
||||||
padding-left:2pt;
|
|
||||||
text-align: left;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Misc. classes
|
|
||||||
*****************************************************/
|
|
||||||
.longtext:first-letter {font-size: 150%}
|
|
||||||
|
|
||||||
.price, .loweredprice, .specialprice {font-weight:bold;}
|
|
||||||
|
|
||||||
.loweredprice {text-decoration:line-through}
|
|
||||||
|
|
||||||
.specialprice {color:red}
|
|
||||||
|
|
||||||
form
|
|
||||||
{
|
|
||||||
margin:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.program_summary
|
|
||||||
{
|
|
||||||
float:right;
|
|
||||||
margin: 32pt;
|
|
||||||
margin-top:0pt;
|
|
||||||
margin-bottom:0pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.screenshot
|
|
||||||
{
|
|
||||||
float:left;
|
|
||||||
margin: 8pt;
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB |
@ -1,6 +1,7 @@
|
|||||||
base:
|
base:
|
||||||
pages: en/pages.yaml
|
pages: en/pages.yaml
|
||||||
skeleton: skeleton
|
basepages: ../help_base/en
|
||||||
|
skeleton: ../help_base/skeleton
|
||||||
changelog: CHANGELOG
|
changelog: CHANGELOG
|
||||||
tixurl: "https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}"
|
tixurl: "https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}"
|
||||||
firstpage_meta: "<meta name=\"AppleTitle\" content=\"dupeGuru Help\"></meta>"
|
firstpage_meta: "<meta name=\"AppleTitle\" content=\"dupeGuru Help\"></meta>"
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
Below is the list of people who contributed, directly or indirectly to dupeGuru.
|
|
||||||
|
|
||||||
**Virgil Dupras, Developer**<br/>
|
|
||||||
<http://www.hardcoded.net>
|
|
||||||
|
|
||||||
**Jérôme Cantin, Icon designer**<br/>
|
|
||||||
Icons in dupeGuru are from him
|
|
||||||
|
|
||||||
**Python, Programming language**<br/>
|
|
||||||
The bestest of the bests<br/>
|
|
||||||
<http://www.python.org>
|
|
||||||
|
|
||||||
**PyObjC, Python-to-Cocoa bridge**<br/>
|
|
||||||
Used for the Mac OS X version<br/>
|
|
||||||
<http://pyobjc.sourceforge.net>
|
|
||||||
|
|
||||||
**PyQt, Python-to-Qt bridge**<br/>
|
|
||||||
Used for the Windows version<br/>
|
|
||||||
<http://www.riverbankcomputing.co.uk>
|
|
||||||
|
|
||||||
**Sparkle, Auto-update library**<br/>
|
|
||||||
Used for the Mac OS X version<br/>
|
|
||||||
<http://andymatuschak.org/pages/sparkle>
|
|
||||||
|
|
||||||
**You, dupeGuru user**<br/>
|
|
||||||
You rock.
|
|
@ -1,18 +0,0 @@
|
|||||||
There is a panel in dupeGuru called **Directories**. You can open it by clicking on the **Directories** button. This directory contains the list of the directories that will be scanned when you click on **Start Scanning**.
|
|
||||||
|
|
||||||
This panel is quite straightforward to use. If you want to add a directory, click on **Add**. If you added directories before, a popup menu with a list of recent directories you added will pop. You can click on one of them to add it directly to your list. If you click on the first item of the popup menu, **Add New Directory...**, you will be prompted for a directory to add. If you never added a directory, no menu will pop and you will directly be prompted for a new directory to add.
|
|
||||||
|
|
||||||
To remove a directory, select the directory to remove and click on **Remove**. If a subdirectory is selected when you click remove, the selected directory will be set to **excluded** state (see below) instead of being removed.
|
|
||||||
|
|
||||||
Directory states
|
|
||||||
-----
|
|
||||||
|
|
||||||
Every directory can be in one of these 3 states:
|
|
||||||
|
|
||||||
* **Normal:** Duplicates found in these directories can be deleted.
|
|
||||||
* **Reference:** Duplicates found in this directory **cannot** be deleted. Files in reference directories will be in a blue color in the results.
|
|
||||||
* **Excluded:** Files in this directory will not be included in the scan.
|
|
||||||
|
|
||||||
The default state of a directory is, of course, **Normal**. You can use **Reference** state for a directory if you want to be sure that you won't delete any file from it.
|
|
||||||
|
|
||||||
When you set the state of a directory, all subdirectories of this directory automatically inherit this state unless you explicitly set a subdirectory's state.
|
|
@ -1,27 +0,0 @@
|
|||||||
You will probably not use the Power Marker feature very often, but if you get into a situation where you need it, you will be pretty happy that this feature exists.
|
|
||||||
|
|
||||||
What is it?
|
|
||||||
-----
|
|
||||||
|
|
||||||
When the Power Marker mode is enabled, the duplicates are shown without their respective reference file. You can select, mark and sort this list, just like in normal mode.
|
|
||||||
|
|
||||||
So, what is it for?
|
|
||||||
-----
|
|
||||||
|
|
||||||
The dupeGuru results, when in normal mode, are sorted according to duplicate groups' **reference file**. This means that if you want, for example, to mark all duplicates with the "exe" extension, you cannot just sort the results by "Kind" to have all exe duplicates together because a group can be composed of more than one kind of files. That is where Power Marker comes into play. To mark all your "exe" duplicates, you just have to:
|
|
||||||
|
|
||||||
* Enable the Power marker mode.
|
|
||||||
* Add the "Kind" column with the "Columns" menu.
|
|
||||||
* Click on that "Kind" column to sort the list by kind.
|
|
||||||
* Locate the first duplicate with a "exe" kind.
|
|
||||||
* Select it.
|
|
||||||
* Scroll down the list to locate the last duplicate with a "exe" kind.
|
|
||||||
* Hold Shift and click on it.
|
|
||||||
* Press Space to mark all selected duplicates.
|
|
||||||
|
|
||||||
Power Marker and delta values
|
|
||||||
-----
|
|
||||||
|
|
||||||
The Power Marker unveil its true power when you use it with the **Delta Values** switch turned on. When you turn it on, relative values will be displayed instead of absolute ones. So if, for example, you want to remove from your results all duplicates that are more than 300 KB away from their reference, you could sort the Power Marker by Size, select all duplicates under -300 in the Size column, delete them, and then do the same for duplicates over 300 at the bottom of the list.
|
|
||||||
|
|
||||||
You could also use it to change the reference priority of your duplicate list. When you make a fresh scan, if there are no reference directories, the reference file of every group is the biggest file. If you want to change that, for example, to the latest modification time, you can sort the Power Marker by modification time in **descending** order, select all duplicates with a modification time delta value higher than 0 and click on **Make Selected Reference**. The reason why you must make the sort order descending is because if 2 files among the same duplicate group are selected when you click on **Make Selected Reference**, only the first of the list will be made reference, the other will be ignored. And since you want the last modified file to be reference, having the sort order descending assures you that the first item of the list will be the last modified.
|
|
@ -1,69 +0,0 @@
|
|||||||
When dupeGuru is finished scanning for duplicates, it will show its results in the form of duplicate group list.
|
|
||||||
|
|
||||||
About duplicate groups
|
|
||||||
-----
|
|
||||||
|
|
||||||
A duplicate group is a group of files that all match together. Every group has a **reference file** and one or more **duplicate files**. The reference file is the first file of the group. Its mark box is disabled. Below it, and indented, are the duplicate files.
|
|
||||||
|
|
||||||
You can mark duplicate files, but you can never mark the reference file of a group. This is a security measure to prevent dupeGuru from deleting not only duplicate files, but their reference. You sure don't want that, do you?
|
|
||||||
|
|
||||||
What determines which files are reference and which files are duplicates is first their directory state. A files from a reference directory will always be reference in a duplicate group. If all files are from a normal directory, the size determine which file will be the reference of a duplicate group. dupeGuru assumes that you always want to keep the biggest file, so the biggest files will take the reference position.
|
|
||||||
|
|
||||||
You can change the reference file of a group manually. To do so, select the duplicate file you want to promote to reference, and click on **Actions-->Make Selected Reference**.
|
|
||||||
|
|
||||||
Reviewing results
|
|
||||||
-----
|
|
||||||
|
|
||||||
Although you can just click on **Edit-->Mark All** and then **Actions-->Send Marked to Recycle bin** to quickly delete all duplicate files in your results, it is always recommended to review all duplicates before deleting them.
|
|
||||||
|
|
||||||
To help you reviewing the results, you can bring up the **Details panel**. This panel shows all the details of the currently selected file as well as its reference's details. This is very handy to quickly determine if a duplicate really is a duplicate. You can also double-click on a file to open it with its associated application.
|
|
||||||
|
|
||||||
If you have more false duplicates than true duplicates (If your filter hardness is very low), the best way to proceed would be to review duplicates, mark true duplicates and then click on **Actions-->Send Marked to Recycle bin**. If you have more true duplicates than false duplicates, you can instead mark all files that are false duplicates, and use **Actions-->Remove Marked from Results**.
|
|
||||||
|
|
||||||
Marking and Selecting
|
|
||||||
-----
|
|
||||||
|
|
||||||
A **marked** duplicate is a duplicate with the little box next to it having a check-mark. A **selected** duplicate is a duplicate being highlighted. The multiple selection actions can be performed in dupeGuru in the standard way (Shift/Command/Control click). You can toggle all selected duplicates' mark state by pressing **space**.
|
|
||||||
|
|
||||||
Delta Values
|
|
||||||
-----
|
|
||||||
|
|
||||||
If you turn this switch on, some columns will display the value relative to the duplicate's reference instead of the absolute values. These delta values will also be displayed in a different color so you can spot them easily. For example, if a duplicate is 1.2 MB and its reference is 1.4 MB, the Size column will display -0.2 MB. This option is a killer feature when combined with the [Power Marker](power_marker.htm).
|
|
||||||
|
|
||||||
Filtering
|
|
||||||
-----
|
|
||||||
|
|
||||||
dupeGuru supports post-scan filtering. With it, you can narrow down your results so you can perform actions on a subset of it. For example, you could easily mark all duplicates with their filename containing "copy" from your results using the filter.
|
|
||||||
|
|
||||||
**Windows:** To use the filtering feature, click on Actions --> Apply Filter, write down the filter you want to apply and click OK. To go back to unfiltered results, click on Actions --> Cancel Filter.
|
|
||||||
|
|
||||||
**Mac OS X:** To use the filtering feature, type your filter in the "Filter" search field in the toolbar. To go back to unfiltered result, blank out the field, or click on the "X".
|
|
||||||
|
|
||||||
In simple mode (the default mode), whatever you type as the filter is the string used to perform the actual filtering, with the exception of one wildcard: **\***. Thus, if you type "[*]" as your filter, it will match anything with [] brackets in it, whatever is in between those brackets.
|
|
||||||
|
|
||||||
For more advanced filtering, you can turn "Use regular expressions when filtering" on. The filtering feature will then use **regular expressions**. A regular expression is a language for matching text. Explaining them is beyond the scope of this document. A good place to start learning it is <http://www.regular-expressions.info>.
|
|
||||||
|
|
||||||
Matches are case insensitive in both simple and regexp mode.
|
|
||||||
|
|
||||||
For the filter to match, your regular expression don't have to match the whole filename, it just have to contain a string matching the expression.
|
|
||||||
|
|
||||||
You might notice that not all duplicates in the filtered results will match your filter. That is because as soon as one single duplicate in a group matches the filter, the whole group stays in the results so you can have a better view of the duplicate's context. However, non-matching duplicates are in "reference mode". Therefore, you can perform actions like Mark All and be sure to only mark filtered duplicates.
|
|
||||||
|
|
||||||
Action Menu
|
|
||||||
-----
|
|
||||||
|
|
||||||
* **Start Duplicate Scan:** Starts a new duplicate scan.
|
|
||||||
* **Clear Ignore List:** Remove all ignored matches you added. You have to start a new scan for the newly cleared ignore list to be effective.
|
|
||||||
* **Export Results to XHTML:** Take the current results, and create an XHTML file out of it. The columns that are visible when you click on this button will be the columns present in the XHTML file. The file will automatically be opened in your default browser.
|
|
||||||
* **Send Marked to Trash:** Send all marked duplicates to trash, obviously.
|
|
||||||
* **Delete Marked and Replace with Hardlinks:** Sends all marked duplicates to trash, but after having done that, the deleted files are replaced by a [hard link](http://en.wikipedia.org/wiki/Hard_link) to the reference file. (Only for OS X and Linux)
|
|
||||||
* **Move Marked to...:** Prompt you for a destination, and then move all marked files to that destination. Source file's path might be re-created in destination, depending on the "Copy and Move" preference.
|
|
||||||
* **Copy Marked to...:** Prompt you for a destination, and then copy all marked files to that destination. Source file's path might be re-created in destination, depending on the "Copy and Move" preference.
|
|
||||||
* **Remove Marked from Results:** Remove all marked duplicates from results. The actual files will not be touched and will stay where they are.
|
|
||||||
* **Remove Selected from Results:** Remove all selected duplicates from results. Note that all selected reference files will be ignored, only duplicates can be removed with this action.
|
|
||||||
* **Make Selected Reference:** Promote all selected duplicates to reference. If a duplicate is a part of a group having a reference file coming from a reference directory (in blue color), no action will be taken for this duplicate. If more than one duplicate among the same group are selected, only the first of each group will be promoted.
|
|
||||||
* **Add Selected to Ignore List:** This first removes all selected duplicates from results, and then add the match of that duplicate and the current reference in the ignore list. This match will not come up again in further scan. The duplicate itself might come back, but it will be matched with another reference file. You can clear the ignore list with the Clear Ignore List command.
|
|
||||||
* **Open Selected with Default Application:** Open the file with the application associated with selected file's type.
|
|
||||||
* **Reveal Selected in Finder:** Open the folder containing selected file.
|
|
||||||
* **Invoke Custom Command:** Invokes the external application you've set up in your preferences using the current selection as arguments in the invocation.
|
|
||||||
* **Rename Selected:** Prompts you for a new name, and then rename the selected file.
|
|
@ -1,407 +0,0 @@
|
|||||||
/*****************************************************
|
|
||||||
General settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
BODY
|
|
||||||
{
|
|
||||||
background-color:white;
|
|
||||||
}
|
|
||||||
|
|
||||||
BODY,A,P,UL,TABLE,TR,TD
|
|
||||||
{
|
|
||||||
font-family: "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
|
|
||||||
font-size:10pt;
|
|
||||||
color: #336699;/*darker than 5588bb for the sake of the eyes*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
"A" settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
A
|
|
||||||
{
|
|
||||||
color: #ae322b;
|
|
||||||
text-decoration:underline;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.glossaryword {color:#A0A0A0;}
|
|
||||||
|
|
||||||
A.noline
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Menu and mainframe settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
.maincontainer
|
|
||||||
{
|
|
||||||
display:block;
|
|
||||||
margin-left:7%;
|
|
||||||
margin-right:7%;
|
|
||||||
padding-left:5px;
|
|
||||||
padding-right:0px;
|
|
||||||
border-color:#CCCCCC;
|
|
||||||
border-style:solid;
|
|
||||||
border-width:2px;
|
|
||||||
border-right-width:0px;
|
|
||||||
border-bottom-width:0px;
|
|
||||||
border-top-color:#ae322b;
|
|
||||||
vertical-align:top;
|
|
||||||
}
|
|
||||||
|
|
||||||
TD.menuframe
|
|
||||||
{
|
|
||||||
width:30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu
|
|
||||||
{
|
|
||||||
margin:4px 4px 4px 4px;
|
|
||||||
margin-top: 16pt;
|
|
||||||
border-color:gray;
|
|
||||||
border-width:1px;
|
|
||||||
border-style:dotted;
|
|
||||||
padding-top:10pt;
|
|
||||||
padding-bottom:10pt;
|
|
||||||
padding-right:6pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submenu
|
|
||||||
{
|
|
||||||
list-style-type: none;
|
|
||||||
margin-left:26pt;
|
|
||||||
margin-top:0pt;
|
|
||||||
margin-bottom:0pt;
|
|
||||||
padding-left:0pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.menuitem,A.menuitem_selected
|
|
||||||
{
|
|
||||||
font-size:14pt;
|
|
||||||
font-weight:normal;
|
|
||||||
padding-left:10pt;
|
|
||||||
color:#5588bb;
|
|
||||||
margin-right:2pt;
|
|
||||||
margin-left:4pt;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.menuitem_selected
|
|
||||||
{
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
A.submenuitem
|
|
||||||
{
|
|
||||||
font-weight:normal;
|
|
||||||
color:#5588bb;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.titleline
|
|
||||||
{
|
|
||||||
border-width:3px;
|
|
||||||
border-style:solid;
|
|
||||||
border-left-width:0px;
|
|
||||||
border-right-width:0px;
|
|
||||||
border-top-width:0px;
|
|
||||||
border-color:#CCCCCC;
|
|
||||||
margin-left:28pt;
|
|
||||||
margin-right:2pt;
|
|
||||||
line-height:1px;
|
|
||||||
padding-top:0px;
|
|
||||||
margin-top:0px;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.titledescrip
|
|
||||||
{
|
|
||||||
text-align:left;
|
|
||||||
display:block;
|
|
||||||
margin-left:26pt;
|
|
||||||
color:#ae322b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainlogo
|
|
||||||
{
|
|
||||||
display:block;
|
|
||||||
margin-left:8%;
|
|
||||||
margin-top:4pt;
|
|
||||||
margin-bottom:4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
IMG settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
IMG
|
|
||||||
{
|
|
||||||
border-style:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.smallbutton
|
|
||||||
{
|
|
||||||
margin-right: 20px;
|
|
||||||
float:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.floating
|
|
||||||
{
|
|
||||||
float:left;
|
|
||||||
margin-right: 4pt;
|
|
||||||
margin-bottom: 4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.lefticon
|
|
||||||
{
|
|
||||||
vertical-align: middle;
|
|
||||||
padding-right: 2pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMG.righticon
|
|
||||||
{
|
|
||||||
vertical-align: middle;
|
|
||||||
padding-left: 2pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
TABLE settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
TABLE
|
|
||||||
{
|
|
||||||
border-style:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.box
|
|
||||||
{
|
|
||||||
width: 90%;
|
|
||||||
margin-left:5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.centered
|
|
||||||
{
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.hardcoded
|
|
||||||
{
|
|
||||||
background-color: #225588;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
TR { background-color: transparent; }
|
|
||||||
|
|
||||||
TABLE.hardcoded TR { background-color: white }
|
|
||||||
|
|
||||||
TABLE.hardcoded TR.header
|
|
||||||
{
|
|
||||||
font-weight: bold;
|
|
||||||
color: black;
|
|
||||||
background-color: #C8D6E5;
|
|
||||||
}
|
|
||||||
|
|
||||||
TABLE.hardcoded TR.header TD {color:black;}
|
|
||||||
|
|
||||||
TABLE.hardcoded TD { padding-left: 2pt; }
|
|
||||||
|
|
||||||
TD.minimelem {
|
|
||||||
padding-right:0px;
|
|
||||||
padding-left:0px;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
TD.rightelem
|
|
||||||
{
|
|
||||||
text-align:right;
|
|
||||||
/*padding-left:0pt;*/
|
|
||||||
padding-right: 2pt;
|
|
||||||
width: 17%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
P settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
p,.sub{text-align:justify;}
|
|
||||||
.centered{text-align:center;}
|
|
||||||
.sub
|
|
||||||
{
|
|
||||||
padding-left: 16pt;
|
|
||||||
padding-right:16pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Note, .ContactInfo
|
|
||||||
{
|
|
||||||
border-color: #ae322b;
|
|
||||||
border-width: 1pt;
|
|
||||||
border-style: dashed;
|
|
||||||
text-align:justify;
|
|
||||||
padding: 2pt 2pt 2pt 2pt;
|
|
||||||
margin-bottom:4pt;
|
|
||||||
margin-top:8pt;
|
|
||||||
list-style-position:inside;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ContactInfo
|
|
||||||
{
|
|
||||||
width:60%;
|
|
||||||
margin-left:5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.NewsItem
|
|
||||||
{
|
|
||||||
border-color:#ae322b;
|
|
||||||
border-style: solid;
|
|
||||||
border-right:none;
|
|
||||||
border-top:none;
|
|
||||||
border-left:none;
|
|
||||||
border-bottom-width:1px;
|
|
||||||
text-align:justify;
|
|
||||||
padding-left:4pt;
|
|
||||||
padding-right:4pt;
|
|
||||||
padding-bottom:8pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Lists settings
|
|
||||||
*****************************************************/
|
|
||||||
UL.plain
|
|
||||||
{
|
|
||||||
list-style-type: none;
|
|
||||||
padding-left:0px;
|
|
||||||
margin-left:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
LI.plain
|
|
||||||
{
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
LI.section
|
|
||||||
{
|
|
||||||
padding-top: 6pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
UL.longtext LI
|
|
||||||
{
|
|
||||||
border-color: #ae322b;
|
|
||||||
border-width:0px;
|
|
||||||
border-top-width:1px;
|
|
||||||
border-style:solid;
|
|
||||||
margin-top:12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
with UL.longtext LI, there can be anything between
|
|
||||||
the UL and the LI, and it will still make the
|
|
||||||
lontext thing, I must break it with this hack
|
|
||||||
*/
|
|
||||||
UL.longtext UL LI
|
|
||||||
{
|
|
||||||
border-style:none;
|
|
||||||
margin-top:2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Titles settings
|
|
||||||
*****************************************************/
|
|
||||||
|
|
||||||
H1,H2,H3
|
|
||||||
{
|
|
||||||
font-family:"Courier New",monospace;
|
|
||||||
color:#5588bb;
|
|
||||||
}
|
|
||||||
|
|
||||||
H1
|
|
||||||
{
|
|
||||||
font-size:18pt;
|
|
||||||
color: #ae322b;
|
|
||||||
border-color: #70A0CF;
|
|
||||||
border-width: 1pt;
|
|
||||||
border-style: solid;
|
|
||||||
margin-top: 16pt;
|
|
||||||
margin-left: 5%;
|
|
||||||
margin-right: 5%;
|
|
||||||
padding-top: 2pt;
|
|
||||||
padding-bottom:2pt;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
H2
|
|
||||||
{
|
|
||||||
border-color: #ae322b;
|
|
||||||
border-bottom-width: 2px;
|
|
||||||
border-top-width: 0pt;
|
|
||||||
border-left-width: 2px;
|
|
||||||
border-right-width: 0pt;
|
|
||||||
border-bottom-color: #cccccc;
|
|
||||||
border-style: solid;
|
|
||||||
margin-top: 16pt;
|
|
||||||
margin-left: 0pt;
|
|
||||||
margin-right: 0pt;
|
|
||||||
padding-bottom:3pt;
|
|
||||||
padding-left:5pt;
|
|
||||||
text-align: left;
|
|
||||||
font-size:16pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
H3
|
|
||||||
{
|
|
||||||
display:block;
|
|
||||||
color:#ae322b;
|
|
||||||
border-color: #70A0CF;
|
|
||||||
border-bottom-width: 2px;
|
|
||||||
border-top-width: 0pt;
|
|
||||||
border-left-width: 0pt;
|
|
||||||
border-right-width: 0pt;
|
|
||||||
border-style: dashed;
|
|
||||||
margin-top: 12pt;
|
|
||||||
margin-left: 0pt;
|
|
||||||
margin-bottom: 4pt;
|
|
||||||
width:auto;
|
|
||||||
padding-bottom:3pt;
|
|
||||||
padding-right:2pt;
|
|
||||||
padding-left:2pt;
|
|
||||||
text-align: left;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************
|
|
||||||
Misc. classes
|
|
||||||
*****************************************************/
|
|
||||||
.longtext:first-letter {font-size: 150%}
|
|
||||||
|
|
||||||
.price, .loweredprice, .specialprice {font-weight:bold;}
|
|
||||||
|
|
||||||
.loweredprice {text-decoration:line-through}
|
|
||||||
|
|
||||||
.specialprice {color:red}
|
|
||||||
|
|
||||||
form
|
|
||||||
{
|
|
||||||
margin:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.program_summary
|
|
||||||
{
|
|
||||||
float:right;
|
|
||||||
margin: 32pt;
|
|
||||||
margin-top:0pt;
|
|
||||||
margin-bottom:0pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.screenshot
|
|
||||||
{
|
|
||||||
float:left;
|
|
||||||
margin: 8pt;
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB |
Loading…
Reference in New Issue
Block a user