Commit 76b0ada9 authored by Andreas Rönnquist's avatar Andreas Rönnquist

Imported Upstream version 0.6.06

Sciteproj is licensed under the GPL3 license.
See GPL3.txt
* Update makefile to nicely use obj folder again
* Make build use INSTALL_PREFIX flag to simplify packaging
* Move libraries to after objects in linker call, allowing to build
with --as-needed
* Whitespace fixes
* More makefile fixes to support both prefix and DESTDIR
* Fixes to the makefile, fixing the depends, fixed flags order
* Update build flags to include standard system build flags
* install sciteproj icon to correct place
* Use g_get_user_config_dir to get where to put the config file, if it
doesn't exist, copy the configfile from ~/.sciteproj
* Make code GTK3 compatible
* Remove Cmake stuff and use a basic Makefile instead
* Update makefile to use GTK3 by default (add GTK2=1 to make command to use
GTK2 during compilation)
* Added icons for lua and java files
* Fix minor warning (-Wformat-security)
* Removed a debug printf
* Fixed warnings caused by new version of gcc
* Added missing clicked_node.h to project file
* Removed making a busy cursor in the search code, one was already
created in the graphics codes
* Fixed homepage in the about dialog
* Some minor code cleanups
* Fix minus-sign in the man page
* Fix a cppcheck warning (writing to non-initialized char pointer)
* Man-page updates
* Added a search dialog
* Fixed problems with the prefs system
* Documentation updates
* Added a "Recently opened files" box
* Updated in-source commenting
* Updated documentation
* Split up the GUI code into several files
* Redesigned the About-dialog
* Removed the TODO file - it kept getting invalid
* Made the rename functionality rename in the treeview, instead of using
another dialog
* Implemented Treeview quick search
* Updated desktop comment wording
* Mem leaks fixed
* Code cleanups
* Split the clipboard stuff to files of their own
* Fixed a problem with the --generate option
* Fixed slash problems
* Spelling fixes
* Fixed double slash in generated project files
* Minor updates to documentation
* Rephrased warnings
* Debug updates
* Better checks for return values of changedirs
* Fixed exit codes
* Fixed cppcheck reports
* Many minor fixes (unused variables removed and stuff like that)
* Added and implemented --generate option
* Fixed minor memory leaks
* Added menu item to copy filename+full path to clipboard
* man-page updates
* Documentation updates
* Remove mms-bitfields build option
* Fixed stuff that was deprecated in newer GTK
* Update version in man-page
* Even more fixes to build system
* Fixes to build system
* Fixed includes and libraries
* Added /usr/include/gdk-pixbuf-2.0 to CFLAGS
* Completely removed search dialog
* Documentation updates
* Split INSTALL from the README file
* Cleaned up statusbar code
* Documentation fixes
* Updated .desktop file
* Check for Scite in more places
* Tweaked CMakeLists.txt to avoid GTK-related debuild build warnings
* Updated homepage in the about-dialog
* Added man page
* Removed unnecessary Apache license
* Removed GTK modules (they are included in Cmake in debian post lenny)
* Fixed the SciteProj xml project file referencing removed stuff
* Fixed copyright details
* Remove homepage from source control
* Cleaned up gui.c
* Put GPL in header files too
* Desktop file fixes
* Windows version
* Removed Scite connection checkbox
* Removed everything that isn't portable
* Removed C++ stuff - code is purely C now
* Made delete button work to remove items too.
* Moved rename code to a source file of its own
* Fixed order of added files
* Streamlined CMakeLists
* Made homepage XHTML Transitional
* Removed gfileutils_local files (Upping the GLib requirement)
* Show SciTE status in SciteProj statusbar
* Updates to statusbar infotext
* Search dialog
* Better checks for SciTE existance
* Added file_to_load option to config file
* More memory leaks fixed
* minor bugs
* went from GTK's command line options to own code (easier to translate?)
* moved show_version to about.c
* Fixed image and desktop file
* Added more places to check for SciTE
* Made it possible to use customized SciTE executable filename
* Documentation updates
* Made it check for Scite in SciTE_HOME too
* Several memory leaks fixed
* More comments in source
* Documentation updates
* Updates to the add file error dialog
* Compilation warnings fixed
* Fixed cmake stuff
* No cmake check for c++
* Fixed memory leaks
* Made icons compiled into the executable instead of external PNG's
* Minor bugs fixed
* Documentation updates
* Made error reporting when adding files better
* Switched to g_option_context
* Added commandline setting for customizable graphics folder
* Added menu item for opening the options file
* Fixed location of files that are added through main menu add item
* Debug information in about dialog
* Documentation updates
* Made it possible to delete via keyboard
* Removed ChangeLog from homepage
* Added allow_duplicates option
* Fixed graphics search folders
* Removed unused variables
* Made the file selector remember last folder it added from
* Added abort_add_on_duplicate preference
* Added folder sorting functionality
* Minor changes
* Added dirty_on_folder_change preference
* Added Expand All Groups and Collapse All Groups menu items
* Fixed about dialog scrollbar policy and usage dialog scrollbar policy
* Added checkbox showing if there is an active connection to SciTE
* Added Save As menu item
* Added some system information to about dialog
* Added ChangeLog
* Made the program save info about folder open/closed status to the
project XML file.
* Fixed folder icon bugs
* Group properties dialog
* Fixed order of files in the XML project file
* Debug mode warnings removed
* File properties dialog
* Fixed project file sorting
* Fixed errorhandling in preferences bug
* Removed calls to unfinished code
* Changed scrollbar policy
* Began on folder-structure to XML converter
* New About-dialog
* Made it possible to open several items in one go using the rightclick
* Various string code fixes
* Homepage updates
* Initial release
This diff is collapsed.
To build, first check that you have the packages required. The ones required
to build are:
or if you are still using GTK version 2:
Then the build process is simple - to build the program, just type
or on GTK2, you need to pass
make GTK2=1
which will in the end create an executable in the bin folder. If you want to
build an executable with debug symbols enable, run
make DEBUG=1
To install the program run
make install
with super user priviliges, on a system using root:
su -c "make install"
or on a system using sudo, run
sudo make install
This will install the program in the system. This installs a desktop file too,
so now you should have an icon in the development part of your X menu.
This will default to /usr/local, installing the executable to /usr/local/bin.
This can be changed using PREFIX variable:
make install PREFIX=/usr
ifdef DEBUG
STD_CFLAGS=-c -Wall -g3 -ggdb -D_DEBUG
OBJECTS=$(OBJ)/about.o $(OBJ)/addfiles.o $(OBJ)/clipboard.o $(OBJ)/drag_drop.o\
$(OBJ)/file_utils.o $(OBJ)/filelist.o $(OBJ)/folder_to_xml.o $(OBJ)/graphics.o\
$(OBJ)/gui.o $(OBJ)/main.o $(OBJ)/prefs.o $(OBJ)/properties_dialog.o \
$(OBJ)/recent_files.o $(OBJ)/remove.o $(OBJ)/rename.o $(OBJ)/scite_utils.o\
$(OBJ)/search.o $(OBJ)/statusbar.o $(OBJ)/string_utils.o\
$(OBJ)/tree_manipulation.o $(OBJ)/xml_processing.o
GRAPHICS_INCLUDES=$(GRPH)/dir-close.xpm \
$(GRPH)/dir-open.xpm \
$(GRPH)/text-x-cpp.xpm \
$(GRPH)/text-x-h.xpm \
$(GRPH)/text-x-txt.xpm \
$(GRPH)/text-x-java.xpm \
$(GRPH)/text-x-lua.xpm \
ifndef prefix
ifdef GTK2
LIB_CFLAGS=`pkg-config --cflags $(PKG_GTK)`
STD_LDFLAGS= `pkg-config --libs $(PKG_GTK)`
ifdef CHECK_GTK3
all: $(BIN)/sciteproj
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(LOCAL_CFLAGS) -c $< -o $@
$(BIN)/sciteproj: $(OBJECTS)
rm -rf $(OBJECTS) $(PROG) Makefile.dep
install -d $(DESTDIR)$(prefix)/bin
install -m 755 $(PROG) $(DESTDIR)$(prefix)/bin
install -d $(DESTDIR)$(prefix)/share/pixmaps
install -m 644 graphics/sciteproj.xpm $(DESTDIR)$(prefix)/share/pixmaps
rm -f $(DESTDIR)$(prefix)/$(PROG)
rm -f $(DESTDIR)$(prefix)/share/pixmaps/sciteproj.xpm
$(CC) -MM $(SRC)/*.c | sed -e "s/\([A-Za-z+-0._&+-]*:\)/\$(OBJ)\/\1/g" > Makefile.dep
-include Makefile.dep
SciteProj is a Project Manager for usage with the SciTE text editor.
It is based on ScitePM by Roy Wood. It is a "director" of SciTE, using
it's director interface to communicate between SciteProj and SciTE. See
for more information. SciteProj saves the project file to disk in XML format.
SciteProj will load a configuration from the file .sciteproj in the directory
specified by $XDG_CONFIG_HOME each program start. This is most likely
and if no such file exists one will be created. See the following links:
If you have used a previous version of SciteProj, you probably still have your
config in ~/.sciteproj - SciteProj will copy the old config to the new position,
and when you have tested so that everything works as before you can simply
delete the ~/.sciteproj file.
The options availible in the file are:
* The window geometry
You can enter wanted window geometry/positioning, which will be applied to
the program upon next program start. The variable are xpos, ypos, width and
Also, the following options exist:
* give_scite_focus
If this is set to TRUE, the SciTE window will recieve focus when you open
a file from SciteProj. (Defaults to FALSE)
* dirty_on_folder_change
Should the project be marked as "dirty" when expanding or collapsing a
folder? (Defaults to FALSE)
* allow_duplicates
Specifies wether the user shall be able to add a file that has a name that
is the same as a file already included in the project? (Defaults to TRUE)
* identify_sciteproj_xml
Specifies wether SciteProj shall try to identify the XML as saved by
SciteProj? (Defaults to TRUE)
The search dialogs size and position can also be customzed via the
configuration file. See the variables
* search_xpos, search_ypos, search_width and search_height
In the configuration file you can set the search_file_alert_warning variable
if you would like SciteProj to warn if the search tries to search files in
the project that isn't availible on disk.
For the search dialog, you also have the variables "search_match_case"
and "search_match_whole_words", which can be used to set the default
behaviour in the search dialog.
There is also the variable "search_give_scite_focus", which determines if
double-clicking a result in the search dialog result list should bring the
SciTE window to front. If this isn't selected SciTE won't be brought to front,
which also comes with the side-effect that the line that is selected isn't
highlighted, which makes it really easy to miss. Because of this it is
recommended to make the SciTE window focus when you double click search
results through this option.
You can open this configuration file by opening the Edit menu and select Edit
Options in that menu. This will open ($HOME)/.sciteproj as if it was part of
your project and edit it in SciTE.
SciteProj will give you a warning if it isn't able to find the SciTE
executable on SciteProj start. As default SciTE will be searched for in
/usr/bin, /bin, and /usr/local/bin, under the names scite and SciTE. If it
isn't found there you will get a warning upon running. You can also use the
--scite flag when running to locate SciTE, for example
sciteproj --scite=/bin/scite
will look for the scite executable in the /bin/ folder. SciTE will also be
searched for in the path pointed to by the environment variable SciTE_HOME.
You will need to save a project before adding to it - this is because SciteProj
saves the XML containing relative paths, relative to the postition your project
file is located in.
SciteProj is able to generate a project file through the --generate option -
using a command line like
sciteproj --generate test.xml 7
will create a SciteProj project file named test.xml, containing all the folders
and files in the current dir, and 7 folder underneath in the directory
structure. If the depth is left out, SciteProj will default to a maximum depth
of 4 folders.
By pressing Ctrl+R or choosing "View Recently Opened Files" in the "View" menu,
you split up the project window in two parts, and the new part contain a list
of the most recently opened files in the project. The files in this list are
sorted so the ones you opened latest is at the top of the list (or bottom -
its configurable).
/* XPM */
static char * dir_close_xpm[] = {
"16 12 81 1",
" c None",
". c #000000",
"+ c #79A0D4",
"@ c #92B8E3",
"# c #7599D1",
"$ c #8CB3DF",
"% c #8AB0DF",
"& c #9BBEE6",
"* c #93B7E4",
"= c #8BB1DF",
"- c #789ED7",
"; c #E6F2FA",
"> c #E2EFF9",
", c #E0EEF9",
"' c #DFEDF8",
") c #DAE9F6",
"! c #CBDFF4",
"~ c #C7DDF3",
"{ c #C0D8F1",
"] c #AFCCED",
"^ c #DCECF8",
"/ c #D1E6F5",
"( c #CBE2F4",
"_ c #CBE1F4",
": c #C9DFF3",
"< c #BFD8F0",
"[ c #B2D0ED",
"} c #ACCAED",
"| c #A0C3E9",
"1 c #8AAEDF",
"2 c #DAEAF6",
"3 c #C1DAF0",
"4 c #BFD9F0",
"5 c #BCD7F0",
"6 c #B5D1ED",
"7 c #ABCAEC",
"8 c #A2C4EA",
"9 c #9DBEE8",
"0 c #8CB0E0",
"a c #7397D3",
"b c #D8E9F6",
"c c #CAE0F3",
"d c #BBD6EF",
"e c #B0CFED",
"f c #A8C8EB",
"g c #9FC0E8",
"h c #95B9E6",
"i c #81A6DC",
"j c #6788CC",
"k c #D8EAF6",
"l c #98BBE6",
"m c #8CB0E2",
"n c #799DD8",
"o c #6484C4",
"p c #C5DCF1",
"q c #B8D4EE",
"r c #AECDEC",
"s c #A6C8EA",
"t c #9BBDE8",
"u c #80A3DD",
"v c #7095D2",
"w c #5E7DBE",
"x c #D1E5F5",
"y c #A0C2E7",
"z c #97BAE6",
"A c #91B4E3",
"B c #8AAEE1",
"C c #83A5DE",
"D c #6F92D1",
"E c #6384C7",
"F c #5874B3",
"G c #C0D9F1",
"H c #94B7E3",
"I c #7DA0DA",
"J c #7B9ED8",
"K c #7B9FD9",
"L c #779BD8",
"M c #7398D5",
"N c #6E8ED0",
"O c #6585C7",
"P c #536BA3",
" .... ",
" .+@@#. ",
" .$%&*=-...... ",
" .;>,',',)!~{].",
" .^/(_(_:<[}|1.",
" .2_344567890a.",
" .bc45def8ghij.",
" .kc<def8glmno.",
" .bpqrs|thmuvw.",
" .x6yz*ABCnDEF.",
" ............ "};
/* XPM */
static char * dir_open_xpm[] = {
"16 12 64 1",
" c None",
". c #000000",
"+ c #7EA4D8",
"@ c #93B7E5",
"# c #97BAE6",
"$ c #779CD5",
"% c #83A9DE",
"& c #8EB5E4",
"* c #8DB4E3",
"= c #7FA4DC",
"- c #7297D4",
"; c #9BBCE8",
"> c #87AEE2",
", c #8CB1E4",
"' c #8BAFE2",
") c #7FA3DE",
"! c #8DB2E3",
"~ c #7DA1DD",
"{ c #7598D9",
"] c #789DDA",
"^ c #80A4DF",
"/ c #4F679E",
"( c #5874B3",
"_ c #6485CA",
": c #DFEDF7",
"< c #DBECF7",
"[ c #D5E8F6",
"} c #D4E7F5",
"| c #D2E7F5",
"1 c #CBE0F3",
"2 c #A0C3E4",
"3 c #485D8C",
"4 c #546DA8",
"5 c #BFD9EE",
"6 c #C0D9EF",
"7 c #C2DBF1",
"8 c #BED9F1",
"9 c #BDD9F0",
"0 c #B7D3EE",
"a c #8CB3DC",
"b c #465883",
"c c #4C6293",
"d c #B4D2EE",
"e c #B3D1ED",
"f c #AECDEB",
"g c #93B9E0",
"h c #6185BD",
"i c #475B8A",
"j c #AFCFED",
"k c #AFCEEC",
"l c #A0C4E7",
"m c #8EB7DD",
"n c #455684",
"o c #A6C8EA",
"p c #A5C7E9",
"q c #A3C6E9",
"r c #85ABDA",
"s c #5C7CB6",
"t c #98BCE5",
"u c #97BCE6",
"v c #93B9E4",
"w c #8CB4E0",
"x c #8BB2DF",
"y c #759ED5",
" .... ",
" .+@#$. ",
" .$%&*=-...... ",
" .;>,>')!~{{]^.",
" .........../(_.",
" .5ddeeeeefgh.i.",
" .5jjkkkkkflm.n.",
" .dopppppqlrs..",
" .tuvvvvvvwxy..",
" ............ "};
/* XPM */
static char * sciteproj_xpm[] = {
"48 48 213 2",
" c None",
". c #120607",
"+ c #140608",
"@ c #110506",
"# c #270D0F",
"$ c #0B0304",
"% c #160709",
"& c #19080A",
"* c #1C090B",
"= c #2C0E11",
"- c #150708",
"; c #45171B",
"> c #2A0E10",
", c #100506",
"' c #3D1418",
") c #3C1417",
"! c #331114",
"~ c #371216",
"{ c #290D10",
"] c #1F0A0C",
"^ c #230B0E",
"/ c #180809",
"( c #531B21",
"_ c #73353B",
": c #050102",
"< c #8A5056",
"[ c #080203",
"} c #5D1F25",
"| c #351115",
"1 c #2D0F12",
"2 c #1A080A",
"3 c #301013",
"4 c #060202",
"5 c #1E0A0C",
"6 c #571D22",
"7 c #0C0405",
"8 c #7C3F45",
"9 c #1D090B",
"0 c #6B2C32",
"a c #040101",
"b c #B3898D",
"c c #200A0C",
"d c #8E565C",
"e c #4D191F",
"f c #0F0506",
"g c #49181D",
"h c #130607",
"i c #1B090A",
"j c #030101",
"k c #4C191E",
"l c #110507",
"m c #76383E",
"n c #321014",
"o c #84494F",
"p c #90585D",
"q c #67272D",
"r c #020000",
"s c #83474D",
"t c #692930",
"u c #581D23",
"v c #070203",
"w c #3A1317",
"x c #7B3E44",
"y c #3E1418",
"z c #2E0F12",
"A c #4B191D",
"B c #070202",
"C c #A37176",
"D c #501A20",
"E c #8B5257",
"F c #874D53",