From 5d09eb149c55816d841a3ee158a2d90af170961e Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Sat, 11 Dec 2010 22:55:48 +0000 Subject: [PATCH] added a special thread for making thumbnails (thumb.h thumb.cpp) git-svn-id: svn://ttmath.org/publicrep/winix/trunk@700 e52654a7-88a9-db11-a3e9-0013d4bc506e --- Makefile | 4 +- core/Makefile.dep | 49 ++++---- core/Makefile.o.dep | 2 +- core/app.cpp | 13 +- core/app.h | 1 - core/basethread.cpp | 18 ++- core/basethread.h | 7 ++ core/config.cpp | 4 +- core/config.h | 18 ++- core/item.cpp | 2 + core/item.h | 18 +-- core/misc.cpp | 1 + core/system.cpp | 4 + core/system.h | 4 + core/thumb.cpp | 228 ++++++++++++++++++++++++++++++++++++ core/thumb.h | 90 ++++++++++++++ db/db.cpp | 41 ++++++- db/db.h | 3 +- db/dbbase.cpp | 5 + db/dbbase.h | 1 + db/dbitemcolumns.cpp | 2 + db/dbitemcolumns.h | 3 +- db/dbitemquery.h | 2 +- functions/Makefile.dep | 135 ++++++++++++--------- functions/download.cpp | 2 +- functions/upload.cpp | 19 +-- html/fun_cat.html | 1 + html/fun_ls.html | 2 +- locale/en | 2 +- locale/pl | 2 +- main/Makefile.dep | 28 ++--- main/main.cpp | 2 - notify/Makefile.dep | 9 +- plugins/stats/Makefile.dep | 53 +++++---- plugins/ticket/Makefile.dep | 94 ++++++++------- templates/Makefile.dep | 114 +++++++++--------- templates/item.cpp | 6 + templates/templates.cpp | 5 +- templates/templates.h | 1 + 39 files changed, 706 insertions(+), 289 deletions(-) create mode 100755 core/thumb.cpp create mode 100755 core/thumb.h diff --git a/Makefile b/Makefile index 4d00c4b..33e8562 100755 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ CXX = g++ endif ifndef CXXFLAGS -CXXFLAGS = -fPIC -Wall -O2 -I/usr/local/include -I/home/tomek/roboczy/winix -I/home/tomek/roboczy/ezc/src -L/usr/local/lib -I/usr/local/include/ImageMagick -DEZC_USE_WINIX_LOGGER +CXXFLAGS = -fPIC -Wall -pedantic -O2 -I/usr/local/include -I/home/tomek/roboczy/winix -I/home/tomek/roboczy/ezc/src -L/usr/local/lib -DEZC_USE_WINIX_LOGGER endif @@ -28,7 +28,7 @@ winix: FORCE @cd plugins/stats ; $(MAKE) -e @cd plugins/ticket ; $(MAKE) -e @cd ../ezc/src ; $(MAKE) -e - $(CXX) -shared -o winix.so $(CXXFLAGS) core/*.o db/*.o functions/*.o templates/*.o notify/*.o ../ezc/src/ezc.a -lfcgi -lpq -lz -lpthread -lfetch `MagickWand-config --ldflags --libs` + $(CXX) -shared -o winix.so $(CXXFLAGS) core/*.o db/*.o functions/*.o templates/*.o notify/*.o ../ezc/src/ezc.a -lfcgi -lpq -lz -lpthread -lfetch @cd main ; $(MAKE) -e # use the full path with winix.so $(CXX) -o winix $(CXXFLAGS) main/*.o /home/tomek/roboczy/winix/winix.so diff --git a/core/Makefile.dep b/core/Makefile.dep index 8dc8527..59fa4a1 100755 --- a/core/Makefile.dep +++ b/core/Makefile.dep @@ -17,10 +17,10 @@ app.o: ../../ezc/src/stringconv.h ../templates/htmltextstream.h app.o: ../notify/notifythread.h ../core/basethread.h synchro.h app.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h app.o: ugcontainer.h lastcontainer.h mounts.h mount.h mountparser.h users.h -app.o: groups.h group.h loadavg.h sessionmanager.h sessioncontainer.h -app.o: basethread.h ../functions/functions.h ../functions/functionbase.h -app.o: ../core/request.h ../core/system.h ../core/synchro.h -app.o: ../functions/functionparser.h ../functions/adduser.h +app.o: groups.h group.h loadavg.h thumb.h basethread.h sessionmanager.h +app.o: sessioncontainer.h ../functions/functions.h +app.o: ../functions/functionbase.h ../core/request.h ../core/system.h +app.o: ../core/synchro.h ../functions/functionparser.h ../functions/adduser.h app.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h app.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h app.o: ../functions/createthread.h ../functions/default.h @@ -59,7 +59,7 @@ config.o: ../templates/htmltextstream.h ../notify/notifythread.h config.o: ../core/basethread.h synchro.h ../notify/templatesnotify.h config.o: ../core/config.h ../core/users.h ugcontainer.h lastcontainer.h config.o: mounts.h mount.h mountparser.h users.h groups.h group.h loadavg.h -config.o: sessionmanager.h sessioncontainer.h basethread.h +config.o: thumb.h basethread.h sessionmanager.h sessioncontainer.h config.o: ../functions/functions.h ../functions/functionbase.h config.o: ../core/request.h ../core/system.h ../core/synchro.h config.o: ../functions/functionparser.h ../functions/adduser.h @@ -157,12 +157,13 @@ mounts.o: ../templates/htmltextstream.h ../notify/notifythread.h mounts.o: ../core/basethread.h synchro.h ../notify/templatesnotify.h mounts.o: ../core/config.h ../core/users.h ugcontainer.h lastcontainer.h mounts.o: mountparser.h plugin.h pluginmsg.h system.h users.h groups.h -mounts.o: group.h loadavg.h sessionmanager.h sessioncontainer.h basethread.h -mounts.o: ../functions/functions.h ../functions/functionbase.h -mounts.o: ../core/request.h ../core/system.h ../core/synchro.h -mounts.o: ../functions/functionparser.h ../functions/adduser.h -mounts.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h -mounts.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h +mounts.o: group.h loadavg.h thumb.h basethread.h sessionmanager.h +mounts.o: sessioncontainer.h ../functions/functions.h +mounts.o: ../functions/functionbase.h ../core/request.h ../core/system.h +mounts.o: ../core/synchro.h ../functions/functionparser.h +mounts.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h +mounts.o: ../functions/privchanger.h ../functions/chown.h +mounts.o: ../functions/ckeditor.h ../functions/cp.h mounts.o: ../functions/createthread.h ../functions/default.h mounts.o: ../functions/download.h ../functions/emacs.h ../functions/last.h mounts.o: ../functions/login.h ../functions/logout.h ../functions/ls.h @@ -194,7 +195,7 @@ plugin.o: ../templates/htmltextstream.h ../notify/notifythread.h plugin.o: ../core/basethread.h synchro.h ../notify/templatesnotify.h plugin.o: ../core/config.h ../core/users.h ugcontainer.h lastcontainer.h plugin.o: mounts.h mount.h mountparser.h users.h groups.h group.h loadavg.h -plugin.o: sessionmanager.h sessioncontainer.h basethread.h +plugin.o: thumb.h basethread.h sessionmanager.h sessioncontainer.h plugin.o: ../functions/functions.h ../functions/functionbase.h plugin.o: ../core/request.h ../core/system.h ../core/synchro.h plugin.o: ../functions/functionparser.h ../functions/adduser.h @@ -231,8 +232,8 @@ plugindata.o: ../../ezc/src/stringconv.h ../templates/htmltextstream.h plugindata.o: ../notify/notifythread.h ../core/basethread.h synchro.h plugindata.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h plugindata.o: ugcontainer.h lastcontainer.h mounts.h mount.h mountparser.h -plugindata.o: users.h groups.h group.h loadavg.h sessionmanager.h -plugindata.o: sessioncontainer.h basethread.h ../functions/functions.h +plugindata.o: users.h groups.h group.h loadavg.h thumb.h basethread.h +plugindata.o: sessionmanager.h sessioncontainer.h ../functions/functions.h plugindata.o: ../functions/functionbase.h ../core/request.h ../core/system.h plugindata.o: ../core/synchro.h ../functions/functionparser.h plugindata.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h @@ -277,7 +278,7 @@ request.o: ../templates/htmltextstream.h ../notify/notifythread.h request.o: ../core/basethread.h synchro.h ../notify/templatesnotify.h request.o: ../core/config.h ../core/users.h ugcontainer.h lastcontainer.h request.o: mounts.h mount.h mountparser.h users.h groups.h group.h loadavg.h -request.o: sessionmanager.h sessioncontainer.h basethread.h +request.o: thumb.h basethread.h sessionmanager.h sessioncontainer.h request.o: ../functions/functions.h ../functions/functionbase.h request.o: ../core/request.h ../core/system.h ../core/synchro.h request.o: ../functions/functionparser.h ../functions/adduser.h @@ -324,7 +325,7 @@ sessionmanager.o: ../templates/htmltextstream.h ../notify/notifythread.h sessionmanager.o: ../core/basethread.h synchro.h ../notify/templatesnotify.h sessionmanager.o: ../core/config.h ../core/users.h ugcontainer.h mounts.h sessionmanager.o: mount.h mountparser.h users.h groups.h group.h loadavg.h -sessionmanager.o: sessionparser.h plugin.h pluginmsg.h +sessionmanager.o: thumb.h sessionparser.h plugin.h pluginmsg.h sessionmanager.o: ../functions/functions.h ../functions/functionbase.h sessionmanager.o: ../core/request.h ../core/system.h ../core/synchro.h sessionmanager.o: ../functions/functionparser.h ../functions/adduser.h @@ -370,10 +371,16 @@ system.o: ../../ezc/src/stringconv.h ../templates/htmltextstream.h system.o: ../notify/notifythread.h ../core/basethread.h synchro.h system.o: ../notify/templatesnotify.h ../core/config.h ../core/users.h system.o: ugcontainer.h lastcontainer.h mounts.h mount.h mountparser.h -system.o: users.h groups.h group.h loadavg.h ../templates/templates.h -system.o: ../templates/patterncacher.h ../templates/ckeditorgetparser.h -system.o: ../core/httpsimpleparser.h ../core/log.h -system.o: ../templates/indexpatterns.h ../core/request.h ../core/system.h -system.o: ../core/sessionmanager.h +system.o: users.h groups.h group.h loadavg.h thumb.h basethread.h +system.o: ../templates/templates.h ../templates/patterncacher.h +system.o: ../templates/ckeditorgetparser.h ../core/httpsimpleparser.h +system.o: ../core/log.h ../templates/indexpatterns.h ../core/request.h +system.o: ../core/system.h ../core/sessionmanager.h textstream.o: textstream.h misc.h item.h +thumb.o: thumb.h basethread.h textstream.h ../db/db.h ../db/dbbase.h +thumb.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h misc.h +thumb.o: item.h ../core/error.h log.h ../db/dbitemquery.h ../core/item.h +thumb.o: ../db/dbitemcolumns.h ../core/user.h ../core/group.h +thumb.o: ../core/thread.h ../core/dircontainer.h ../core/ugcontainer.h +thumb.o: ../../ezc/src/utf8.h users.o: users.h diff --git a/core/Makefile.o.dep b/core/Makefile.o.dep index 5193f58..6628b6b 100755 --- a/core/Makefile.o.dep +++ b/core/Makefile.o.dep @@ -1 +1 @@ -o = acceptbaseparser.o app.o basethread.o bbcodeparser.o compress.o config.o confparser.o dircontainer.o dirs.o groups.o htmlfilter.o httpsimpleparser.o item.o lastcontainer.o loadavg.o log.o misc.o mount.o mountparser.o mounts.o plugin.o plugindata.o postmultiparser.o rebus.o request.o session.o sessioncontainer.o sessionmanager.o sessionparser.o synchro.o system.o textstream.o users.o +o = acceptbaseparser.o app.o basethread.o bbcodeparser.o compress.o config.o confparser.o dircontainer.o dirs.o groups.o htmlfilter.o httpsimpleparser.o item.o lastcontainer.o loadavg.o log.o misc.o mount.o mountparser.o mounts.o plugin.o plugindata.o postmultiparser.o rebus.o request.o session.o sessioncontainer.o sessionmanager.o sessionparser.o synchro.o system.o textstream.o thumb.o users.o diff --git a/core/app.cpp b/core/app.cpp index 5083e33..36aec5e 100755 --- a/core/app.cpp +++ b/core/app.cpp @@ -7,7 +7,6 @@ * */ -#include "wand/MagickWand.h" #include #include #include @@ -147,7 +146,6 @@ bool App::Init() session_manager.LoadSessions(); CreateStaticTree(); - MagickWandGenesis(); plugin.Call(WINIX_PLUGIN_INIT); @@ -155,12 +153,6 @@ return true; } -void App::Uninit() -{ - MagickWandTerminus(); -} - - void App::Close() { @@ -984,6 +976,7 @@ void App::WaitForThreads() system.notify.WaitForThread(); session_manager.WaitForGC(); + system.thumb.WaitForThread(); } @@ -1019,6 +1012,7 @@ sigset_t set; Ezc::WideToUTF8(app->config.base_url, app->url_to_fetch_on_exit); app->system.notify.PrepareToStopThread(); app->session_manager.PrepareToStopGC(); + app->system.thumb.WakeUpThread(); app->Unlock(); // this thread will hang on this method @@ -1051,6 +1045,9 @@ sigset_t set; // gc for sessions session_manager.StartGC(); + + // thumbnails + system.thumb.StartThread(); } diff --git a/core/app.h b/core/app.h index 3e9c110..bb94690 100755 --- a/core/app.h +++ b/core/app.h @@ -49,7 +49,6 @@ public: bool InitFCGI(); bool DropPrivileges(); bool Init(); - void Uninit(); void Start(); void Close(); void LogUserGroups(); diff --git a/core/basethread.cpp b/core/basethread.cpp index 033dbf2..be02c30 100755 --- a/core/basethread.cpp +++ b/core/basethread.cpp @@ -17,6 +17,7 @@ BaseThread::BaseThread() : thread_signal(PTHREAD_COND_INITIALIZER) synchro = 0; thread_id = 0; work_mode = 0; + wake_up_was_called = false; } @@ -91,6 +92,8 @@ bool BaseThread::BaseSignalReceived() { bool make_do = false; + wake_up_was_called = false; + try { make_do = SignalReceived(); // your short-time virtual method (objects are locked) @@ -119,13 +122,18 @@ void BaseThread::BaseDo() // use it with Lock and Unlock bool BaseThread::WaitForSignal() { + if( synchro->was_stop_signal || wake_up_was_called ) + return true; + return pthread_cond_wait(&thread_signal, &synchro->mutex) == 0; } + +// you should use this method with: synchro->Lock() and Unlock() void BaseThread::WakeUpThread() { - // you should use it with: synchro->Lock() and Unlock() + wake_up_was_called = true; pthread_cond_signal(&thread_signal); } @@ -168,14 +176,14 @@ bool make_do; { make_do = false; - if( !synchro->was_stop_signal && WaitForSignal() ) // automatically unlock, wait and lock again when signal comes + if( WaitForSignal() ) // automatically unlock, wait and lock again when signal comes if( !synchro->was_stop_signal ) - make_do = BaseSignalReceived(); // your short-time virtual method will be called (objects locked) + make_do = BaseSignalReceived(); // your short-time virtual method will be called (objects locked) - Unlock(); // unlocking from WaitForSignal() + Unlock(); // unlocking from WaitForSignal() if( make_do ) - BaseDo(); // your long-time virtual method will be called (objects *not* locked) + BaseDo(); // your long-time virtual method will be called (objects *not* locked) } } while( !IsExitSignal() ); diff --git a/core/basethread.h b/core/basethread.h index f04a61a..f87c9c7 100755 --- a/core/basethread.h +++ b/core/basethread.h @@ -63,6 +63,10 @@ public: // it's called only if Init() returned true virtual void Uninit() {} + +protected: + + // signal came (work mode = 0 - default) // signal comes when an other thread calls WakeUpThread() method // check specific job and return true to call Do() next @@ -81,12 +85,15 @@ public: virtual void Work() {} + + protected: Synchro * synchro; pthread_t thread_id; // thread id - set by StartThread() pthread_cond_t thread_signal; int work_mode; + bool wake_up_was_called; void SignalLoop(); static void * StartRoutine(void *); diff --git a/core/config.cpp b/core/config.cpp index d1f7160..dd2c1d1 100755 --- a/core/config.cpp +++ b/core/config.cpp @@ -113,9 +113,11 @@ void Config::AssignValues(bool stdout_is_closed) upload_dir = Text(L"upload_dir"); upload_dirs_chmod = Int(L"upload_dirs_chmod", 0750); upload_files_chmod = Int(L"upload_files_chmod", 0640); - create_thumb = Bool(L"create_thumb", false); // !! will be true + create_thumb = Bool(L"create_thumb", true); + thumb_mode = Int(L"thumb_mode", 2); thumb_cx = Size(L"thumb_cx", 150); thumb_cy = Size(L"thumb_cy", 150); + convert_cmd = Text(L"convert_cmd", L"/usr/local/bin/convert"); templates_dir = Text(L"templates_dir"); templates_dir_default = Text(L"templates_dir_default"); diff --git a/core/config.h b/core/config.h index 067ff0c..0e032dc 100755 --- a/core/config.h +++ b/core/config.h @@ -198,9 +198,21 @@ public: int upload_files_chmod; // create a thumbnail from an image - // default: false (!!will be true) + // default: true bool create_thumb; + // the mode of creating a thumbnail + // width means thumb_cx, height means thumb_cy + // 1: Width given, height automagically selected to preserve aspect ratio. + // 2: Height given, width automagically selected to preserve aspect ratio. + // 3: Maximum values of height and width given, aspect ratio preserved. + // 4: Minimum values of width and height given, aspect ratio preserved. + // 5: Width and height emphatically given, original aspect ratio ignored. + // 6: Change as per widthxheight (3) but only if an image dimension exceeds a specified dimension. + // 7: Change dimensions only if both image dimensions are less than specified dimensions. + // default: 2 + int thumb_mode; + // width of thumbnails // default: 150 size_t thumb_cx; @@ -209,6 +221,10 @@ public: // default: 150 size_t thumb_cy; + // the convert program + // default: /usr/local/bin/convert + std::wstring convert_cmd; + // locale: en, pl // default: en std::wstring locale_str; diff --git a/core/item.cpp b/core/item.cpp index 7928159..1db80fb 100755 --- a/core/item.cpp +++ b/core/item.cpp @@ -58,6 +58,8 @@ void Item::Clear() file_fs = -1; file_type = WINIX_ITEM_FILETYPE_NONE; + has_thumb = false; + html_template.clear(); SetDateToNow(); diff --git a/core/item.h b/core/item.h index 424e848..25b915f 100755 --- a/core/item.h +++ b/core/item.h @@ -69,28 +69,12 @@ Type type; long default_item; - - -// external static file authorized by winix -/* -enum Auth -{ - auth_none = 0, // there is not an external file - auth_image = 1, // png, gif, jpg - only types available to render by a web browser - auth_document = 2, // pdf doc xls txt - auth_other = 3 // other file -}; - - -Auth auth; -std::wstring auth_path; // path to a file (if auth!=auth_none) -*/ - // static file (if exists) std::wstring file_path; // relative file path int file_fs; // file system type where the file was saved int file_type; // file type (none, image, doc, etc) +bool has_thumb; std::wstring html_template; diff --git a/core/misc.cpp b/core/misc.cpp index 14505a5..2b12826 100755 --- a/core/misc.cpp +++ b/core/misc.cpp @@ -903,3 +903,4 @@ tm Time(time_t par) return res; } + diff --git a/core/system.cpp b/core/system.cpp index d0e97cd..4d887ac 100755 --- a/core/system.cpp +++ b/core/system.cpp @@ -67,6 +67,10 @@ void System::Init() notify.SetUsers(&users); notify.SetDirs(&dirs); notify.Init(); + + thumb.SetSynchro(synchro); + thumb.SetConvertCmd(config->convert_cmd); + thumb.SetDb(db); } diff --git a/core/system.h b/core/system.h index 1402c4d..8d19d1f 100755 --- a/core/system.h +++ b/core/system.h @@ -21,6 +21,7 @@ #include "rebus.h" #include "loadavg.h" #include "synchro.h" +#include "thumb.h" #include "notify/notify.h" @@ -52,6 +53,9 @@ public: // notifications (by emails) Notify notify; + // thumbnails (special thread) + Thumb thumb; + // the time when the winix starts time_t system_start; diff --git a/core/thumb.cpp b/core/thumb.cpp new file mode 100755 index 0000000..2fcaaaf --- /dev/null +++ b/core/thumb.cpp @@ -0,0 +1,228 @@ +/* + * This file is a part of Winix + * and is not publicly distributed + * + * Copyright (c) 2010, Tomasz Sowa + * All rights reserved. + * + */ + +#include "thumb.h" +#include "utf8.h" +#include "log.h" + + + +void Thumb::SetConvertCmd(const std::wstring & cmd) +{ + convert_cmd = cmd; +} + + +void Thumb::SetDb(Db * pdb) +{ + db = pdb; +} + + +// first thread (objects locked) +void Thumb::CreateThumb(long item_id, const std::wstring & source, const std::wstring & dst, size_t cx, size_t cy, int aspect_mode) +{ + item_temp.item_id = item_id; + item_temp.source = source; + item_temp.dst = dst; + item_temp.cx = cx; + item_temp.cy = cy; + item_temp.aspect_mode = aspect_mode; + + thumb_tab.insert(thumb_tab.end(), item_temp); + WakeUpThread(); +} + + + +// second thread (objects locked) +bool Thumb::SignalReceived() +{ + return !thumb_tab.empty(); +} + + + +// second thread (objects not locked) +void Thumb::Do() +{ +ThumbTab::iterator i; +bool end; + + Lock(); + i = thumb_tab.begin(); + Unlock(); + + do + { + Lock(); + + if( i != thumb_tab.end() ) + { + item_work = *i; + thumb_tab.erase(i++); + end = false; + } + else + { + end = true; + } + + Unlock(); + + if( !end ) + CreateThumbnail(); + + } + while( !end ); +} + + + + + + + +void Thumb::EscapePath(const std::string & path) +{ + command << '"'; + + for(size_t i=0 ; i Change as per widthxheight but only if an image dimension exceeds a specified dimension. +widthxheight< Change dimensions only if both image dimensions exceed specified dimensions. +*/ +void Thumb::SelectAspect() +{ + switch( item_work.aspect_mode ) + { + case WINIX_THUMB_MODE_1: + command << item_work.cx; + break; + + case WINIX_THUMB_MODE_3: + command << item_work.cx << "x" << item_work.cy; + break; + + case WINIX_THUMB_MODE_4: + command << '"' << item_work.cx << "x" << item_work.cy << "^\""; + break; + + case WINIX_THUMB_MODE_5: + command << '"' << item_work.cx << "x" << item_work.cy << "!\""; + break; + + case WINIX_THUMB_MODE_6: + command << '"' << item_work.cx << "x" << item_work.cy << ">\""; + break; + + case WINIX_THUMB_MODE_7: + command << '"' << item_work.cx << "x" << item_work.cy << "<\""; + break; + + case WINIX_THUMB_MODE_2: + default: + command << "x" << item_work.cy; + break; + } +} + + +// second thread (objects are not locked) +void Thumb::CreateThumbnail() +{ + command.Clear(); + + Ezc::WideToUTF8(convert_cmd, tempa); + command << tempa << " -quiet -strip -thumbnail "; + SelectAspect(); + command << " "; + + Ezc::WideToUTF8(item_work.source, tempa); + EscapePath(tempa); + + Ezc::WideToUTF8(item_work.dst, tempa); + EscapePath(tempa); + + if( system(command.CStr()) == 0 ) + { + Lock(); + log << log3 << "Thumb: created a thumbnail: " << tempa << logend; + db->EditHasThumbById(true, item_work.item_id); + Unlock(); + } + else + { + Lock(); + log << log3 << "Thumb: some problems with creating a thumbnail: " << tempa << logend; + Unlock(); + } +} + + + +// second thread (objects are not locked) +// !! there is a problem with GIF files +// Bus error (core dumped) +/* +#include "wand/MagickWand.h" + + // compiler options: + // include: -I/usr/local/include/ImageMagick + // link with: `MagickWand-config --ldflags --libs` + +void Thumb::CreateThumbnail() +{ + Ezc::WideToUTF8(item_work.source, sourcea); + Ezc::WideToUTF8(item_work.dst, dsta); + + MagickWandGenesis(); + + MagickWand * wand = NewMagickWand(); + + if( MagickReadImage(wand, sourcea.c_str()) ) + { + MagickThumbnailImage(wand, item_work.cx, item_work.cy); + + if( MagickWriteImage(wand, dsta.c_str()) ) + { + Lock(); + log << log3 << "Thumb: created a thumbnail: " << dsta << logend; + Unlock(); + } + } + + DestroyMagickWand(wand); + + MagickWandTerminus(); +} +*/ + + diff --git a/core/thumb.h b/core/thumb.h new file mode 100755 index 0000000..6cefcf1 --- /dev/null +++ b/core/thumb.h @@ -0,0 +1,90 @@ +/* + * This file is a part of Winix + * and is not publicly distributed + * + * Copyright (c) 2010, Tomasz Sowa + * All rights reserved. + * + */ + +#ifndef headerfilecmslucorethumb +#define headerfilecmslucorethumb + +#include "basethread.h" +#include +#include +#include "textstream.h" +#include "db/db.h" + + + +// Width given, height automagically selected to preserve aspect ratio. +#define WINIX_THUMB_MODE_1 1 + +// Height given, width automagically selected to preserve aspect ratio. +#define WINIX_THUMB_MODE_2 2 + +// Maximum values of height and width given, aspect ratio preserved. +#define WINIX_THUMB_MODE_3 3 + +// Minimum values of width and height given, aspect ratio preserved. +#define WINIX_THUMB_MODE_4 4 + +// Width and height emphatically given, original aspect ratio ignored. +#define WINIX_THUMB_MODE_5 5 + +// Change as per widthxheight but only if an image dimension exceeds a specified dimension. +#define WINIX_THUMB_MODE_6 6 + +// Change dimensions only if both image dimensions are less than specified dimensions. +#define WINIX_THUMB_MODE_7 7 + + + + +class Thumb : public BaseThread +{ +public: + + void CreateThumb(long item_id, const std::wstring & source, const std::wstring & dst, + size_t cx, size_t cy, int aspect_mode = WINIX_THUMB_MODE_2); + + void SetConvertCmd(const std::wstring & cmd); + void SetDb(Db * pdb); + +private: + + Db * db; + + struct ThumbItem + { + long item_id; + std::wstring source; + std::wstring dst; + size_t cx; + size_t cy; + int aspect_mode; + }; + + // queue of thumbnails to create + typedef std::list ThumbTab; + ThumbTab thumb_tab; + ThumbItem item_temp; + + // this is set before the second thread starts + std::wstring convert_cmd; + + // only for second thread + ThumbItem item_work; + std::string tempa; + TextStream command; + + virtual bool SignalReceived(); + virtual void Do(); + void CreateThumbnail(); + void SelectAspect(); + void EscapePath(const std::string & path); +}; + + +#endif diff --git a/db/db.cpp b/db/db.cpp index b6d7662..e3e0efa 100755 --- a/db/db.cpp +++ b/db/db.cpp @@ -240,7 +240,7 @@ Error Db::AddItemIntoItem(Item & item) query.Clear(); query << R("insert into core.item (user_id, modification_user_id, group_id, privileges, " "date_creation, date_modification, type, parent_id, content_id, file_path, file_fs, file_type, " - "default_item, subject, guest_name, template, url) values (") + "has_thumb, default_item, subject, guest_name, template, url) values (") << item.user_id << item.modification_user_id << item.group_id @@ -253,6 +253,7 @@ Error Db::AddItemIntoItem(Item & item) << item.file_path << item.file_fs << item.file_type + << static_cast(item.has_thumb) << item.default_item << item.subject << item.guest_name @@ -347,7 +348,7 @@ Error Db::EditItemInItem(Item & item, bool with_url) query.Clear(); query << R("update core.item set (user_id, modification_user_id, group_id, privileges, " "date_creation, date_modification, type, default_item, parent_id, subject, " - "guest_name, file_path, file_fs, file_type, template"); + "guest_name, file_path, file_fs, file_type, has_thumb, template"); if( with_url ) query << R(", url"); @@ -367,6 +368,7 @@ Error Db::EditItemInItem(Item & item, bool with_url) << item.file_path << item.file_fs << item.file_type + << static_cast(item.has_thumb) << item.html_template; if( with_url ) @@ -628,7 +630,7 @@ PGresult * Db::GetItemsQuery(const DbItemQuery & iq, bool skip_other_sel) if( iq.sel_url ) query << R(" ,url"); if( iq.sel_type ) query << R(" ,type"); if( iq.sel_default_item ) query << R(" ,default_item"); - if( iq.sel_file ) query << R(" ,file_path, file_fs, file_type"); + if( iq.sel_file ) query << R(" ,file_path, file_fs, file_type, has_thumb"); if( iq.sel_html_template ) query << R(" ,template"); } @@ -1040,7 +1042,7 @@ return result; -Error Db::EditFileById(Item & item, long id) +Error Db::EditFileById(const Item & item, long id) { PGresult * r = 0; Error result = WINIX_ERR_OK; @@ -1048,10 +1050,11 @@ Error Db::EditFileById(Item & item, long id) try { query.Clear(); - query << R("update core.item set (file_path, file_fs, file_type) = (") + query << R("update core.item set (file_path, file_fs, file_type, has_thumb) = (") << item.file_path << item.file_fs << item.file_type + << static_cast(item.has_thumb) << R(") where id=") << id << R(";"); r = AssertQuery(query); @@ -1069,6 +1072,34 @@ return result; +Error Db::EditHasThumbById(bool has_thumb, long id) +{ + PGresult * r = 0; + Error result = WINIX_ERR_OK; + + try + { + query.Clear(); + query << R("update core.item set (has_thumb) = (") + << static_cast(has_thumb) + << R(") where id=") << id << R(";"); + + r = AssertQuery(query); + AssertResult(r, PGRES_COMMAND_OK); + } + catch(const Error & e) + { + result = e; + } + + ClearResult(r); + +return result; +} + + + + Error Db::DelDirById(long id) { Error result = WINIX_ERR_OK; diff --git a/db/db.h b/db/db.h index 15b1244..6d4bae0 100755 --- a/db/db.h +++ b/db/db.h @@ -63,7 +63,8 @@ public: bool GetPriv(Item & item, long id); Error EditPrivById(Item & item, long id); Error EditParentUrlById(Item & item, long id); - Error EditFileById(Item & item, long id); // file_path, file_fs, file_type + Error EditFileById(const Item & item, long id); // file_path, file_fs, file_type + Error EditHasThumbById(bool has_thumb, long id); Error DelDirById(long id); Error EditSubjectById(Item & item, long id); diff --git a/db/dbbase.cpp b/db/dbbase.cpp index 591f371..372af4e 100755 --- a/db/dbbase.cpp +++ b/db/dbbase.cpp @@ -168,6 +168,11 @@ int DbBase::AssertValueInt(PGresult * r, int row, int col) } +bool DbBase::AssertValueBool(PGresult * r, int row, int col) +{ + return strtol( AssertValue(r, row, col), 0, 10 ) != 0; +} + unsigned long DbBase::AssertValueULong(PGresult * r, int row, int col) { diff --git a/db/dbbase.h b/db/dbbase.h index 201849c..e40f759 100755 --- a/db/dbbase.h +++ b/db/dbbase.h @@ -41,6 +41,7 @@ public: static void AssertValueWide(PGresult * r, int row, int col, std::wstring & result); static long AssertValueLong(PGresult * r, int row, int col); static int AssertValueInt(PGresult * r, int row, int col); + static bool AssertValueBool(PGresult * r, int row, int col); static unsigned long AssertValueULong(PGresult * r, int row, int col); static unsigned int AssertValueUInt(PGresult * r, int row, int col); static tm AssertValueTm(PGresult * r, int row, int col); diff --git a/db/dbitemcolumns.cpp b/db/dbitemcolumns.cpp index 7e50ede..f40e733 100755 --- a/db/dbitemcolumns.cpp +++ b/db/dbitemcolumns.cpp @@ -35,6 +35,7 @@ void DbItemColumns::SetColumns(PGresult * r) file_path = PQfnumber(r, "file_path"); file_fs = PQfnumber(r, "file_fs"); file_type = PQfnumber(r, "file_type"); + has_thumb = PQfnumber(r, "has_thumb"); } @@ -61,6 +62,7 @@ void DbItemColumns::SetItem(PGresult * r, long row, Item & item) if( file_path != -1 ) item.file_path = DbBase::AssertValueWide(r, row, file_path); if( file_fs != -1 ) item.file_fs = DbBase::AssertValueInt(r, row, file_fs); if( file_type != -1 ) item.file_type = DbBase::AssertValueInt(r, row, file_type); + if( has_thumb != -1 ) item.has_thumb = DbBase::AssertValueBool(r, row, has_thumb); } diff --git a/db/dbitemcolumns.h b/db/dbitemcolumns.h index 659f70f..36c4d32 100755 --- a/db/dbitemcolumns.h +++ b/db/dbitemcolumns.h @@ -39,7 +39,8 @@ struct DbItemColumns int file_path; int file_fs; int file_type; - + int has_thumb; + void SetColumns(PGresult * r); void SetItem(PGresult * r, long row, Item & item); }; diff --git a/db/dbitemquery.h b/db/dbitemquery.h index 98f8ac1..bbe9c78 100755 --- a/db/dbitemquery.h +++ b/db/dbitemquery.h @@ -30,7 +30,7 @@ struct DbItemQuery bool sel_url; // url bool sel_type; // type (dir, file, none) bool sel_default_item; // default_item - bool sel_file; // file_path, file_fs, file_type + bool sel_file; // file_path, file_fs, file_type, has_thumb bool sel_html_template; // template bool where_id; // diff --git a/functions/Makefile.dep b/functions/Makefile.dep index 3ff2fe4..c919d12 100755 --- a/functions/Makefile.dep +++ b/functions/Makefile.dep @@ -26,7 +26,8 @@ adduser.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h adduser.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h adduser.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h adduser.o: ../core/mountparser.h ../core/users.h ../core/groups.h -adduser.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +adduser.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +adduser.o: ../core/basethread.h ../core/synchro.h cat.o: cat.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h cat.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h cat.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -51,7 +52,8 @@ cat.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h cat.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h cat.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h cat.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -cat.o: ../core/loadavg.h ../core/synchro.h +cat.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +cat.o: ../core/synchro.h chmod.o: chmod.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h chmod.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h chmod.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -77,7 +79,8 @@ chmod.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h chmod.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h chmod.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h chmod.o: ../core/mountparser.h ../core/users.h ../core/groups.h -chmod.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +chmod.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +chmod.o: ../core/basethread.h ../core/synchro.h chown.o: chown.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h chown.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h chown.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -103,7 +106,8 @@ chown.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h chown.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h chown.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h chown.o: ../core/mountparser.h ../core/users.h ../core/groups.h -chown.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +chown.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +chown.o: ../core/basethread.h ../core/synchro.h ckeditor.o: ckeditor.h functionbase.h ../core/item.h ../db/db.h ckeditor.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h ckeditor.o: ../core/textstream.h ../core/misc.h ../core/item.h @@ -132,7 +136,8 @@ ckeditor.o: ../core/basethread.h ../core/synchro.h ckeditor.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h ckeditor.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h ckeditor.o: ../core/mountparser.h ../core/users.h ../core/groups.h -ckeditor.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +ckeditor.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +ckeditor.o: ../core/basethread.h ../core/synchro.h cp.o: cp.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h cp.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h ../core/misc.h cp.o: ../core/item.h ../core/error.h ../core/log.h ../core/textstream.h @@ -157,7 +162,8 @@ cp.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h cp.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h cp.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h cp.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -cp.o: ../core/loadavg.h ../core/synchro.h ../core/misc.h +cp.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +cp.o: ../core/synchro.h ../core/misc.h createthread.o: createthread.h functionbase.h ../core/item.h ../db/db.h createthread.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h createthread.o: ../core/textstream.h ../core/misc.h ../core/item.h @@ -188,7 +194,8 @@ createthread.o: ../notify/templatesnotify.h ../core/users.h createthread.o: ../core/ugcontainer.h ../core/lastcontainer.h createthread.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h createthread.o: ../core/users.h ../core/groups.h ../core/group.h -createthread.o: ../core/loadavg.h ../core/synchro.h +createthread.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +createthread.o: ../core/synchro.h default.o: default.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h default.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h default.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -215,7 +222,8 @@ default.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h default.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h default.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h default.o: ../core/mountparser.h ../core/users.h ../core/groups.h -default.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +default.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +default.o: ../core/basethread.h ../core/synchro.h download.o: download.h functionbase.h ../core/item.h ../db/db.h download.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h download.o: ../core/textstream.h ../core/misc.h ../core/item.h @@ -244,7 +252,8 @@ download.o: ../core/basethread.h ../core/synchro.h download.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h download.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h download.o: ../core/mountparser.h ../core/users.h ../core/groups.h -download.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +download.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +download.o: ../core/basethread.h ../core/synchro.h emacs.o: emacs.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h emacs.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h emacs.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -270,11 +279,12 @@ emacs.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h emacs.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h emacs.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h emacs.o: ../core/mountparser.h ../core/users.h ../core/groups.h -emacs.o: ../core/group.h ../core/loadavg.h ../core/synchro.h -emacs.o: ../templates/templates.h ../templates/patterncacher.h -emacs.o: ../templates/ckeditorgetparser.h ../core/httpsimpleparser.h -emacs.o: ../core/log.h ../templates/indexpatterns.h ../core/sessionmanager.h -emacs.o: ../core/sessioncontainer.h ../core/basethread.h ../core/system.h +emacs.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +emacs.o: ../core/basethread.h ../core/synchro.h ../templates/templates.h +emacs.o: ../templates/patterncacher.h ../templates/ckeditorgetparser.h +emacs.o: ../core/httpsimpleparser.h ../core/log.h +emacs.o: ../templates/indexpatterns.h ../core/sessionmanager.h +emacs.o: ../core/sessioncontainer.h ../core/system.h functionbase.o: functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h functionbase.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h functionbase.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -304,7 +314,8 @@ functionbase.o: ../notify/templatesnotify.h ../core/users.h functionbase.o: ../core/ugcontainer.h ../core/lastcontainer.h functionbase.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h functionbase.o: ../core/users.h ../core/groups.h ../core/group.h -functionbase.o: ../core/loadavg.h ../core/synchro.h +functionbase.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +functionbase.o: ../core/synchro.h functionparser.o: functionparser.h ../core/request.h ../core/requesttypes.h functionparser.o: ../core/session.h ../core/item.h ../core/error.h functionparser.o: ../core/user.h ../core/plugindata.h ../core/rebus.h @@ -335,7 +346,8 @@ functionparser.o: ../core/synchro.h ../notify/templatesnotify.h functionparser.o: ../core/users.h ../core/ugcontainer.h functionparser.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h functionparser.o: ../core/mountparser.h ../core/users.h ../core/groups.h -functionparser.o: ../core/group.h ../core/loadavg.h ../core/log.h +functionparser.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +functionparser.o: ../core/basethread.h ../core/log.h functions.o: functions.h functionbase.h ../core/item.h ../db/db.h functions.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h functions.o: ../core/textstream.h ../core/misc.h ../core/item.h @@ -359,15 +371,15 @@ functions.o: ../notify/templatesnotify.h ../core/users.h functions.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h functions.o: ../core/mount.h ../core/mountparser.h ../core/users.h functions.o: ../core/groups.h ../core/group.h ../core/loadavg.h -functions.o: ../core/synchro.h functionparser.h adduser.h cat.h chmod.h -functions.o: privchanger.h chown.h ckeditor.h cp.h createthread.h default.h -functions.o: download.h emacs.h last.h login.h logout.h ls.h mkdir.h mv.h -functions.o: node.h priv.h reload.h rm.h run.h specialdefault.h stat.h -functions.o: subject.h funthread.h template.h tinymce.h uname.h upload.h -functions.o: uptime.h who.h vim.h ../core/htmlfilter.h ../core/log.h -functions.o: ../core/misc.h ../core/plugin.h ../core/pluginmsg.h -functions.o: ../core/system.h ../core/sessionmanager.h -functions.o: ../core/sessioncontainer.h ../core/basethread.h +functions.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h +functions.o: functionparser.h adduser.h cat.h chmod.h privchanger.h chown.h +functions.o: ckeditor.h cp.h createthread.h default.h download.h emacs.h +functions.o: last.h login.h logout.h ls.h mkdir.h mv.h node.h priv.h reload.h +functions.o: rm.h run.h specialdefault.h stat.h subject.h funthread.h +functions.o: template.h tinymce.h uname.h upload.h uptime.h who.h vim.h +functions.o: ../core/htmlfilter.h ../core/log.h ../core/misc.h +functions.o: ../core/plugin.h ../core/pluginmsg.h ../core/system.h +functions.o: ../core/sessionmanager.h ../core/sessioncontainer.h functions.o: ../functions/functions.h ../templates/templates.h functions.o: ../templates/patterncacher.h ../templates/ckeditorgetparser.h functions.o: ../core/httpsimpleparser.h ../core/log.h @@ -401,7 +413,7 @@ funthread.o: ../notify/templatesnotify.h ../core/users.h funthread.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h funthread.o: ../core/mount.h ../core/mountparser.h ../core/users.h funthread.o: ../core/groups.h ../core/group.h ../core/loadavg.h -funthread.o: ../core/synchro.h +funthread.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h last.o: last.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h last.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h last.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -427,7 +439,8 @@ last.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h last.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h last.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h last.o: ../core/mountparser.h ../core/users.h ../core/groups.h -last.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +last.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +last.o: ../core/basethread.h ../core/synchro.h login.o: login.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h login.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h login.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -453,7 +466,8 @@ login.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h login.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h login.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h login.o: ../core/mountparser.h ../core/users.h ../core/groups.h -login.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +login.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +login.o: ../core/basethread.h ../core/synchro.h logout.o: logout.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h logout.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h logout.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -480,7 +494,7 @@ logout.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h logout.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h logout.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h logout.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -logout.o: ../core/synchro.h +logout.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h ls.o: ls.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h ls.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h ../core/misc.h ls.o: ../core/item.h ../core/error.h ../core/log.h ../core/textstream.h @@ -505,7 +519,8 @@ ls.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h ls.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h ls.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h ls.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -ls.o: ../core/loadavg.h ../core/synchro.h +ls.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +ls.o: ../core/synchro.h mkdir.o: mkdir.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h mkdir.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h mkdir.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -531,7 +546,8 @@ mkdir.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h mkdir.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h mkdir.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h mkdir.o: ../core/mountparser.h ../core/users.h ../core/groups.h -mkdir.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +mkdir.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +mkdir.o: ../core/basethread.h ../core/synchro.h mv.o: mv.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h mv.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h ../core/misc.h mv.o: ../core/item.h ../core/error.h ../core/log.h ../core/textstream.h @@ -556,7 +572,8 @@ mv.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h mv.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h mv.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h mv.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -mv.o: ../core/loadavg.h ../core/synchro.h +mv.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +mv.o: ../core/synchro.h node.o: node.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h node.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h node.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -582,7 +599,8 @@ node.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h node.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h node.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h node.o: ../core/mountparser.h ../core/users.h ../core/groups.h -node.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +node.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +node.o: ../core/basethread.h ../core/synchro.h priv.o: priv.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h priv.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h priv.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -608,7 +626,8 @@ priv.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h priv.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h priv.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h priv.o: ../core/mountparser.h ../core/users.h ../core/groups.h -priv.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +priv.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +priv.o: ../core/basethread.h ../core/synchro.h privchanger.o: privchanger.h ../core/request.h ../core/requesttypes.h privchanger.o: ../core/session.h ../core/item.h ../core/error.h privchanger.o: ../core/user.h ../core/plugindata.h ../core/rebus.h @@ -639,6 +658,7 @@ privchanger.o: ../notify/templatesnotify.h ../core/users.h privchanger.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h privchanger.o: ../core/mount.h ../core/mountparser.h ../core/users.h privchanger.o: ../core/groups.h ../core/group.h ../core/loadavg.h +privchanger.o: ../core/thumb.h ../core/basethread.h reload.o: reload.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h reload.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h reload.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -665,11 +685,11 @@ reload.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h reload.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h reload.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h reload.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -reload.o: ../core/synchro.h ../templates/templates.h -reload.o: ../templates/patterncacher.h ../templates/ckeditorgetparser.h -reload.o: ../core/httpsimpleparser.h ../core/log.h -reload.o: ../templates/indexpatterns.h ../core/sessionmanager.h -reload.o: ../core/sessioncontainer.h ../core/basethread.h ../core/system.h +reload.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h +reload.o: ../templates/templates.h ../templates/patterncacher.h +reload.o: ../templates/ckeditorgetparser.h ../core/httpsimpleparser.h +reload.o: ../core/log.h ../templates/indexpatterns.h ../core/sessionmanager.h +reload.o: ../core/sessioncontainer.h ../core/system.h rm.o: rm.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h rm.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h ../core/misc.h rm.o: ../core/item.h ../core/error.h ../core/log.h ../core/textstream.h @@ -694,9 +714,9 @@ rm.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h rm.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h rm.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h rm.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -rm.o: ../core/loadavg.h ../core/synchro.h ../core/plugin.h -rm.o: ../core/pluginmsg.h ../core/system.h ../core/sessionmanager.h -rm.o: ../core/sessioncontainer.h ../core/basethread.h +rm.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +rm.o: ../core/synchro.h ../core/plugin.h ../core/pluginmsg.h ../core/system.h +rm.o: ../core/sessionmanager.h ../core/sessioncontainer.h rm.o: ../functions/functions.h ../templates/templates.h rm.o: ../templates/patterncacher.h ../templates/ckeditorgetparser.h rm.o: ../core/httpsimpleparser.h ../core/log.h ../templates/indexpatterns.h @@ -725,7 +745,8 @@ run.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h run.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h run.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h run.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -run.o: ../core/loadavg.h ../core/synchro.h +run.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +run.o: ../core/synchro.h specialdefault.o: specialdefault.h functionbase.h ../core/item.h ../db/db.h specialdefault.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h specialdefault.o: ../core/textstream.h ../core/misc.h ../core/item.h @@ -756,7 +777,8 @@ specialdefault.o: ../notify/templatesnotify.h ../core/users.h specialdefault.o: ../core/ugcontainer.h ../core/lastcontainer.h specialdefault.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h specialdefault.o: ../core/users.h ../core/groups.h ../core/group.h -specialdefault.o: ../core/loadavg.h ../core/synchro.h +specialdefault.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +specialdefault.o: ../core/synchro.h stat.o: stat.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h stat.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h stat.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -782,7 +804,8 @@ stat.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h stat.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h stat.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h stat.o: ../core/mountparser.h ../core/users.h ../core/groups.h -stat.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +stat.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +stat.o: ../core/basethread.h ../core/synchro.h subject.o: subject.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h subject.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h subject.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -809,7 +832,7 @@ subject.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h subject.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h subject.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h subject.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -subject.o: ../core/synchro.h +subject.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h template.o: template.h functionbase.h ../core/item.h ../db/db.h template.o: ../db/dbbase.h ../db/dbconn.h ../db/dbtextstream.h template.o: ../core/textstream.h ../core/misc.h ../core/item.h @@ -838,8 +861,8 @@ template.o: ../core/basethread.h ../core/synchro.h template.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h template.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h template.o: ../core/mountparser.h ../core/users.h ../core/groups.h -template.o: ../core/group.h ../core/loadavg.h ../core/synchro.h -template.o: ../core/misc.h +template.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +template.o: ../core/basethread.h ../core/synchro.h ../core/misc.h tinymce.o: tinymce.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h tinymce.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h tinymce.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -866,7 +889,7 @@ tinymce.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h tinymce.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h tinymce.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h tinymce.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -tinymce.o: ../core/synchro.h +tinymce.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h uname.o: uname.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h uname.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h uname.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -892,7 +915,8 @@ uname.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h uname.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h uname.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h uname.o: ../core/mountparser.h ../core/users.h ../core/groups.h -uname.o: ../core/group.h ../core/loadavg.h ../core/synchro.h +uname.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +uname.o: ../core/basethread.h ../core/synchro.h upload.o: upload.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h upload.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h upload.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -919,7 +943,8 @@ upload.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h upload.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h upload.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h upload.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -upload.o: ../core/synchro.h ../core/misc.h ../functions/functions.h +upload.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h +upload.o: ../core/misc.h ../functions/functions.h uptime.o: uptime.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h uptime.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h uptime.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -946,7 +971,7 @@ uptime.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h uptime.o: ../core/users.h ../core/ugcontainer.h ../core/lastcontainer.h uptime.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h uptime.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -uptime.o: ../core/synchro.h +uptime.o: ../core/thumb.h ../core/basethread.h ../core/synchro.h vim.o: vim.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h vim.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h vim.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -971,7 +996,8 @@ vim.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h vim.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h vim.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h vim.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -vim.o: ../core/loadavg.h ../core/synchro.h +vim.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +vim.o: ../core/synchro.h who.o: who.h functionbase.h ../core/item.h ../db/db.h ../db/dbbase.h who.o: ../db/dbconn.h ../db/dbtextstream.h ../core/textstream.h who.o: ../core/misc.h ../core/item.h ../core/error.h ../core/log.h @@ -996,4 +1022,5 @@ who.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h who.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h who.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h who.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -who.o: ../core/loadavg.h ../core/synchro.h +who.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +who.o: ../core/synchro.h diff --git a/functions/download.cpp b/functions/download.cpp index e16d693..953eec3 100755 --- a/functions/download.cpp +++ b/functions/download.cpp @@ -42,7 +42,7 @@ void Download::MakeGet() request->send_as_attachment = request->IsParam(L"attachment"); - if( request->item.file_type == WINIX_ITEM_FILETYPE_IMAGE && config->create_thumb && request->IsParam(L"thumb") ) + if( request->item.has_thumb && request->IsParam(L"thumb") ) system->MakeFilePath(request->item, request->x_sendfile, true); else system->MakeFilePath(request->item, request->x_sendfile); diff --git a/functions/upload.cpp b/functions/upload.cpp index 439b11f..4ed9a26 100755 --- a/functions/upload.cpp +++ b/functions/upload.cpp @@ -7,7 +7,6 @@ * */ -#include "wand/MagickWand.h" #include #include #include @@ -73,23 +72,7 @@ void Upload::CreateThumbnail(const Item & item) !system->MakeFilePath(item, path_thumb, true, true, config->upload_dirs_chmod) ) return; - Ezc::WideToUTF8(path, patha); - Ezc::WideToUTF8(path_thumb, path_thumba); - - MagickWand * wand = NewMagickWand(); - - if( MagickReadImage(wand, patha.c_str()) ) - { - //log <images_thumb_cx, config->images_thumb_cy, CubicFilter, 0.25); - //MagickScaleImage(wand, 100, 100); - MagickThumbnailImage(wand, config->thumb_cx, config->thumb_cy); - - if( MagickWriteImage(wand, path_thumba.c_str()) ) - log << log3 << "Upload: created a thumbnail: " << path_thumba << logend; - } - - DestroyMagickWand(wand); + system->thumb.CreateThumb(item.id, path, path_thumb, config->thumb_cx, config->thumb_cy, config->thumb_mode); } diff --git a/html/fun_cat.html b/html/fun_cat.html index 81efed6..540b211 100755 --- a/html/fun_cat.html +++ b/html/fun_cat.html @@ -2,6 +2,7 @@ [if mount_page_arg_is "info"][include "item_info.html"][end] [if-one item_filetype_is_image] + [if-no item_has_thumb]

{creating_thumb}

[end] [item_subject] [item_print_content] [else] diff --git a/html/fun_ls.html b/html/fun_ls.html index ee8a3d2..e883082 100755 --- a/html/fun_ls.html +++ b/html/fun_ls.html @@ -8,7 +8,7 @@
    [for item_tab] -
  • [item_tab_subject]
  • +
  • [item_tab_subject]
  • [end]
diff --git a/locale/en b/locale/en index 408d9ea..5eb5836 100755 --- a/locale/en +++ b/locale/en @@ -35,7 +35,7 @@ access_denied = Permission denied access_denied_msg = We are sory but you don't have access to the page. download = download - +creating_thumb = Creating a thumbnail in progress... create_thread_header = Create thread form_thread_legend = Thread form diff --git a/locale/pl b/locale/pl index 27c3ef1..7900107 100755 --- a/locale/pl +++ b/locale/pl @@ -34,7 +34,7 @@ access_denied = Brak dostępu access_denied_msg = Przykro nam ale nie masz dostępu do tej części serwisu. download = Ściągnij plik - +creating_thumb = Przygotowywanie miniatury trwa... create_thread_header = Załóż wątek form_thread_legend = Wypełnij wszystkie pozycje formularza diff --git a/main/Makefile.dep b/main/Makefile.dep index 149eb1b..b322329 100755 --- a/main/Makefile.dep +++ b/main/Makefile.dep @@ -21,20 +21,20 @@ main.o: ../core/basethread.h ../core/synchro.h ../notify/templatesnotify.h main.o: ../core/config.h ../core/users.h ../core/ugcontainer.h main.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h main.o: ../core/mountparser.h ../core/users.h ../core/groups.h -main.o: ../core/group.h ../core/loadavg.h ../core/sessionmanager.h -main.o: ../core/sessioncontainer.h ../core/basethread.h -main.o: ../functions/functions.h ../functions/functionbase.h -main.o: ../core/request.h ../core/system.h ../core/synchro.h -main.o: ../functions/functionparser.h ../functions/adduser.h -main.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h -main.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h -main.o: ../functions/createthread.h ../functions/default.h -main.o: ../functions/download.h ../functions/emacs.h ../functions/last.h -main.o: ../functions/login.h ../functions/logout.h ../functions/ls.h -main.o: ../functions/mkdir.h ../functions/mv.h ../functions/node.h -main.o: ../functions/priv.h ../functions/reload.h ../functions/rm.h -main.o: ../functions/run.h ../functions/specialdefault.h ../functions/stat.h -main.o: ../functions/subject.h ../functions/funthread.h +main.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +main.o: ../core/basethread.h ../core/sessionmanager.h +main.o: ../core/sessioncontainer.h ../functions/functions.h +main.o: ../functions/functionbase.h ../core/request.h ../core/system.h +main.o: ../core/synchro.h ../functions/functionparser.h +main.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h +main.o: ../functions/privchanger.h ../functions/chown.h +main.o: ../functions/ckeditor.h ../functions/cp.h ../functions/createthread.h +main.o: ../functions/default.h ../functions/download.h ../functions/emacs.h +main.o: ../functions/last.h ../functions/login.h ../functions/logout.h +main.o: ../functions/ls.h ../functions/mkdir.h ../functions/mv.h +main.o: ../functions/node.h ../functions/priv.h ../functions/reload.h +main.o: ../functions/rm.h ../functions/run.h ../functions/specialdefault.h +main.o: ../functions/stat.h ../functions/subject.h ../functions/funthread.h main.o: ../functions/template.h ../functions/tinymce.h ../functions/uname.h main.o: ../functions/upload.h ../functions/uptime.h ../functions/who.h main.o: ../functions/vim.h ../core/htmlfilter.h ../templates/templates.h diff --git a/main/main.cpp b/main/main.cpp index 1d8b3fd..599a63f 100755 --- a/main/main.cpp +++ b/main/main.cpp @@ -120,8 +120,6 @@ int main(int argv, char ** argc) app.WaitForThreads(); // now all others threads are terminated - app.Uninit(); - log.PutDate(log1); log << "winix stopped" << logend << logsavenow; diff --git a/notify/Makefile.dep b/notify/Makefile.dep index 6970654..355c6a8 100755 --- a/notify/Makefile.dep +++ b/notify/Makefile.dep @@ -25,8 +25,8 @@ notify.o: ../templates/indexpatterns.h ../core/request.h ../core/system.h notify.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h notify.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h notify.o: ../core/users.h ../core/groups.h ../core/group.h ../core/loadavg.h -notify.o: ../core/sessionmanager.h ../core/sessioncontainer.h -notify.o: ../core/basethread.h ../core/system.h ../core/dirs.h +notify.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h +notify.o: ../core/sessioncontainer.h ../core/system.h ../core/dirs.h notify.o: ../core/synchro.h ../core/plugin.h ../core/pluginmsg.h notify.o: ../core/sessionmanager.h ../functions/functions.h notify.o: ../functions/functionbase.h ../functions/functionparser.h @@ -86,7 +86,8 @@ templatesnotify.o: ../core/confparser.h ../core/htmlfilter.h ../core/system.h templatesnotify.o: ../core/dirs.h ../core/dircontainer.h ../notify/notify.h templatesnotify.o: ../core/mounts.h ../core/mount.h ../core/mountparser.h templatesnotify.o: ../core/users.h ../core/groups.h ../core/group.h -templatesnotify.o: ../core/ugcontainer.h ../core/loadavg.h ../core/synchro.h +templatesnotify.o: ../core/ugcontainer.h ../core/loadavg.h ../core/thumb.h +templatesnotify.o: ../core/basethread.h ../core/synchro.h templatesnotify.o: ../functions/functionparser.h ../functions/adduser.h templatesnotify.o: ../functions/cat.h ../functions/chmod.h templatesnotify.o: ../functions/privchanger.h ../functions/chown.h @@ -110,4 +111,4 @@ templatesnotify.o: ../core/httpsimpleparser.h ../core/log.h templatesnotify.o: ../templates/indexpatterns.h ../templates/localefilter.h templatesnotify.o: ../templates/locale.h ../templates/htmltextstream.h templatesnotify.o: ../core/sessionmanager.h ../core/sessioncontainer.h -templatesnotify.o: ../core/lastcontainer.h ../core/basethread.h +templatesnotify.o: ../core/lastcontainer.h diff --git a/plugins/stats/Makefile.dep b/plugins/stats/Makefile.dep index 556b1c9..b5cb1b3 100755 --- a/plugins/stats/Makefile.dep +++ b/plugins/stats/Makefile.dep @@ -27,8 +27,8 @@ init.o: ../../notify/templatesnotify.h ../../core/users.h init.o: ../../core/ugcontainer.h ../../core/lastcontainer.h init.o: ../../core/mounts.h ../../core/mount.h ../../core/mountparser.h init.o: ../../core/users.h ../../core/groups.h ../../core/group.h -init.o: ../../core/loadavg.h ../../core/sessionmanager.h -init.o: ../../core/sessioncontainer.h ../../core/basethread.h +init.o: ../../core/loadavg.h ../../core/thumb.h ../../core/basethread.h +init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h init.o: ../../functions/functions.h ../../functions/functionbase.h init.o: ../../core/system.h ../../core/synchro.h init.o: ../../functions/functionparser.h ../../functions/adduser.h @@ -78,31 +78,32 @@ templates.o: ../../core/ugcontainer.h ../../core/lastcontainer.h templates.o: ../../core/mounts.h ../../core/mount.h ../../core/error.h templates.o: ../../core/mountparser.h ../../core/users.h ../../core/groups.h templates.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h -templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h -templates.o: ../../core/session.h ../../core/basethread.h -templates.o: ../../functions/functions.h ../../functions/functionbase.h -templates.o: ../../core/request.h ../../core/requesttypes.h +templates.o: ../../core/thumb.h ../../core/basethread.h templates.o: ../../core/textstream.h ../../core/misc.h -templates.o: ../../templates/htmltextstream.h ../../core/system.h -templates.o: ../../core/synchro.h ../../functions/functionparser.h -templates.o: ../../functions/adduser.h ../../functions/cat.h -templates.o: ../../functions/chmod.h ../../functions/privchanger.h -templates.o: ../../functions/chown.h ../../functions/ckeditor.h -templates.o: ../../functions/cp.h ../../functions/createthread.h -templates.o: ../../functions/default.h ../../functions/download.h -templates.o: ../../functions/emacs.h ../../functions/last.h -templates.o: ../../functions/login.h ../../functions/logout.h -templates.o: ../../functions/ls.h ../../functions/mkdir.h -templates.o: ../../functions/mv.h ../../functions/node.h -templates.o: ../../functions/priv.h ../../functions/reload.h -templates.o: ../../functions/rm.h ../../functions/run.h -templates.o: ../../functions/specialdefault.h ../../functions/stat.h -templates.o: ../../functions/subject.h ../../functions/funthread.h -templates.o: ../../functions/template.h ../../functions/tinymce.h -templates.o: ../../functions/uname.h ../../functions/upload.h -templates.o: ../../functions/uptime.h ../../functions/who.h -templates.o: ../../functions/vim.h ../../core/htmlfilter.h -templates.o: ../../templates/templates.h ../../templates/patterncacher.h +templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h +templates.o: ../../core/session.h ../../functions/functions.h +templates.o: ../../functions/functionbase.h ../../core/request.h +templates.o: ../../core/requesttypes.h ../../templates/htmltextstream.h +templates.o: ../../core/system.h ../../core/synchro.h +templates.o: ../../functions/functionparser.h ../../functions/adduser.h +templates.o: ../../functions/cat.h ../../functions/chmod.h +templates.o: ../../functions/privchanger.h ../../functions/chown.h +templates.o: ../../functions/ckeditor.h ../../functions/cp.h +templates.o: ../../functions/createthread.h ../../functions/default.h +templates.o: ../../functions/download.h ../../functions/emacs.h +templates.o: ../../functions/last.h ../../functions/login.h +templates.o: ../../functions/logout.h ../../functions/ls.h +templates.o: ../../functions/mkdir.h ../../functions/mv.h +templates.o: ../../functions/node.h ../../functions/priv.h +templates.o: ../../functions/reload.h ../../functions/rm.h +templates.o: ../../functions/run.h ../../functions/specialdefault.h +templates.o: ../../functions/stat.h ../../functions/subject.h +templates.o: ../../functions/funthread.h ../../functions/template.h +templates.o: ../../functions/tinymce.h ../../functions/uname.h +templates.o: ../../functions/upload.h ../../functions/uptime.h +templates.o: ../../functions/who.h ../../functions/vim.h +templates.o: ../../core/htmlfilter.h ../../templates/templates.h +templates.o: ../../templates/patterncacher.h templates.o: ../../templates/ckeditorgetparser.h templates.o: ../../core/httpsimpleparser.h ../../core/log.h templates.o: ../../templates/indexpatterns.h ../../core/sessionmanager.h diff --git a/plugins/ticket/Makefile.dep b/plugins/ticket/Makefile.dep index d6e3299..e92dcd6 100755 --- a/plugins/ticket/Makefile.dep +++ b/plugins/ticket/Makefile.dep @@ -30,6 +30,7 @@ createticket.o: ../../core/ugcontainer.h ../../core/lastcontainer.h createticket.o: ../../core/mounts.h ../../core/mount.h createticket.o: ../../core/mountparser.h ../../core/users.h createticket.o: ../../core/groups.h ../../core/group.h ../../core/loadavg.h +createticket.o: ../../core/thumb.h ../../core/basethread.h createticket.o: ../../core/synchro.h ticketinfo.h ticketparser.h ticketconf.h createticket.o: ../../functions/functions.h ../../functions/functionbase.h createticket.o: ../../functions/functionparser.h ../../functions/adduser.h @@ -76,6 +77,7 @@ editticket.o: ../../core/mount.h ../../core/error.h ../../core/mountparser.h editticket.o: ../../core/config.h ../../core/confparser.h editticket.o: ../../core/htmlfilter.h ../../core/users.h ../../core/groups.h editticket.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h +editticket.o: ../../core/thumb.h ../../core/basethread.h editticket.o: ../../functions/functionbase.h ../../core/request.h editticket.o: ../../core/requesttypes.h ../../core/session.h editticket.o: ../../core/plugindata.h ../../templates/htmltextstream.h @@ -124,6 +126,7 @@ funticket.o: ../../core/mount.h ../../core/error.h ../../core/mountparser.h funticket.o: ../../core/config.h ../../core/confparser.h funticket.o: ../../core/htmlfilter.h ../../core/users.h ../../core/groups.h funticket.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h +funticket.o: ../../core/thumb.h ../../core/basethread.h funticket.o: ../../functions/functionbase.h ../../core/request.h funticket.o: ../../core/requesttypes.h ../../core/session.h funticket.o: ../../core/plugindata.h ../../templates/htmltextstream.h @@ -152,33 +155,33 @@ init.o: ../../core/mounts.h ../../core/mount.h ../../core/error.h init.o: ../../core/mountparser.h ../../core/config.h ../../core/confparser.h init.o: ../../core/htmlfilter.h ../../core/users.h ../../core/groups.h init.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h +init.o: ../../core/thumb.h ../../core/basethread.h init.o: ../../functions/functionbase.h ../../core/request.h init.o: ../../core/requesttypes.h ../../core/session.h init.o: ../../core/plugindata.h ../../templates/htmltextstream.h init.o: ../../core/synchro.h editticket.h createticket.h ../../core/log.h init.o: ../../core/plugin.h ../../core/pluginmsg.h ../../core/system.h init.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h -init.o: ../../core/basethread.h ../../functions/functions.h -init.o: ../../functions/functionbase.h ../../functions/functionparser.h -init.o: ../../functions/adduser.h ../../functions/cat.h -init.o: ../../functions/chmod.h ../../functions/privchanger.h -init.o: ../../functions/chown.h ../../functions/ckeditor.h -init.o: ../../functions/cp.h ../../functions/createthread.h -init.o: ../../functions/default.h ../../functions/download.h -init.o: ../../functions/emacs.h ../../functions/last.h -init.o: ../../functions/login.h ../../functions/logout.h ../../functions/ls.h -init.o: ../../functions/mkdir.h ../../functions/mv.h ../../functions/node.h -init.o: ../../functions/priv.h ../../functions/reload.h ../../functions/rm.h -init.o: ../../functions/run.h ../../functions/specialdefault.h -init.o: ../../functions/stat.h ../../functions/subject.h -init.o: ../../functions/funthread.h ../../functions/template.h -init.o: ../../functions/tinymce.h ../../functions/uname.h -init.o: ../../functions/upload.h ../../functions/uptime.h -init.o: ../../functions/who.h ../../functions/vim.h ../../core/htmlfilter.h -init.o: ../../templates/templates.h ../../templates/patterncacher.h -init.o: ../../templates/ckeditorgetparser.h ../../core/httpsimpleparser.h -init.o: ../../core/log.h ../../templates/indexpatterns.h -init.o: ../../core/sessionmanager.h +init.o: ../../functions/functions.h ../../functions/functionbase.h +init.o: ../../functions/functionparser.h ../../functions/adduser.h +init.o: ../../functions/cat.h ../../functions/chmod.h +init.o: ../../functions/privchanger.h ../../functions/chown.h +init.o: ../../functions/ckeditor.h ../../functions/cp.h +init.o: ../../functions/createthread.h ../../functions/default.h +init.o: ../../functions/download.h ../../functions/emacs.h +init.o: ../../functions/last.h ../../functions/login.h +init.o: ../../functions/logout.h ../../functions/ls.h ../../functions/mkdir.h +init.o: ../../functions/mv.h ../../functions/node.h ../../functions/priv.h +init.o: ../../functions/reload.h ../../functions/rm.h ../../functions/run.h +init.o: ../../functions/specialdefault.h ../../functions/stat.h +init.o: ../../functions/subject.h ../../functions/funthread.h +init.o: ../../functions/template.h ../../functions/tinymce.h +init.o: ../../functions/uname.h ../../functions/upload.h +init.o: ../../functions/uptime.h ../../functions/who.h ../../functions/vim.h +init.o: ../../core/htmlfilter.h ../../templates/templates.h +init.o: ../../templates/patterncacher.h ../../templates/ckeditorgetparser.h +init.o: ../../core/httpsimpleparser.h ../../core/log.h +init.o: ../../templates/indexpatterns.h ../../core/sessionmanager.h tdb.o: tdb.h ticket.h ../../db/dbbase.h ../../db/dbconn.h tdb.o: ../../db/dbtextstream.h ../../core/textstream.h ../../core/misc.h tdb.o: ../../core/item.h ../../core/error.h ../../core/log.h @@ -206,7 +209,8 @@ templates.o: ../../core/lastcontainer.h ../../core/mounts.h templates.o: ../../core/mount.h ../../core/error.h ../../core/mountparser.h templates.o: ../../core/config.h ../../core/confparser.h templates.o: ../../core/htmlfilter.h ../../core/users.h ../../core/groups.h -templates.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h tdb.h +templates.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h +templates.o: ../../core/thumb.h ../../core/basethread.h tdb.h templates.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h templates.o: ../../core/error.h editticket.h ../../functions/functionbase.h templates.o: ../../core/request.h ../../core/requesttypes.h @@ -215,26 +219,26 @@ templates.o: ../../templates/htmltextstream.h ../../core/synchro.h templates.o: createticket.h ../../core/misc.h ../../core/plugin.h templates.o: ../../core/pluginmsg.h ../../core/system.h templates.o: ../../core/sessionmanager.h ../../core/sessioncontainer.h -templates.o: ../../core/basethread.h ../../functions/functions.h -templates.o: ../../functions/functionbase.h ../../functions/functionparser.h -templates.o: ../../functions/adduser.h ../../functions/cat.h -templates.o: ../../functions/chmod.h ../../functions/privchanger.h -templates.o: ../../functions/chown.h ../../functions/ckeditor.h -templates.o: ../../functions/cp.h ../../functions/createthread.h -templates.o: ../../functions/default.h ../../functions/download.h -templates.o: ../../functions/emacs.h ../../functions/last.h -templates.o: ../../functions/login.h ../../functions/logout.h -templates.o: ../../functions/ls.h ../../functions/mkdir.h -templates.o: ../../functions/mv.h ../../functions/node.h -templates.o: ../../functions/priv.h ../../functions/reload.h -templates.o: ../../functions/rm.h ../../functions/run.h -templates.o: ../../functions/specialdefault.h ../../functions/stat.h -templates.o: ../../functions/subject.h ../../functions/funthread.h -templates.o: ../../functions/template.h ../../functions/tinymce.h -templates.o: ../../functions/uname.h ../../functions/upload.h -templates.o: ../../functions/uptime.h ../../functions/who.h -templates.o: ../../functions/vim.h ../../core/htmlfilter.h -templates.o: ../../templates/templates.h ../../templates/patterncacher.h +templates.o: ../../functions/functions.h ../../functions/functionbase.h +templates.o: ../../functions/functionparser.h ../../functions/adduser.h +templates.o: ../../functions/cat.h ../../functions/chmod.h +templates.o: ../../functions/privchanger.h ../../functions/chown.h +templates.o: ../../functions/ckeditor.h ../../functions/cp.h +templates.o: ../../functions/createthread.h ../../functions/default.h +templates.o: ../../functions/download.h ../../functions/emacs.h +templates.o: ../../functions/last.h ../../functions/login.h +templates.o: ../../functions/logout.h ../../functions/ls.h +templates.o: ../../functions/mkdir.h ../../functions/mv.h +templates.o: ../../functions/node.h ../../functions/priv.h +templates.o: ../../functions/reload.h ../../functions/rm.h +templates.o: ../../functions/run.h ../../functions/specialdefault.h +templates.o: ../../functions/stat.h ../../functions/subject.h +templates.o: ../../functions/funthread.h ../../functions/template.h +templates.o: ../../functions/tinymce.h ../../functions/uname.h +templates.o: ../../functions/upload.h ../../functions/uptime.h +templates.o: ../../functions/who.h ../../functions/vim.h +templates.o: ../../core/htmlfilter.h ../../templates/templates.h +templates.o: ../../templates/patterncacher.h templates.o: ../../templates/ckeditorgetparser.h templates.o: ../../core/httpsimpleparser.h ../../core/log.h templates.o: ../../templates/indexpatterns.h ../../core/sessionmanager.h @@ -264,7 +268,7 @@ ticketinfo.o: ../../core/mount.h ../../core/error.h ../../core/mountparser.h ticketinfo.o: ../../core/config.h ../../core/confparser.h ticketinfo.o: ../../core/htmlfilter.h ../../core/users.h ../../core/groups.h ticketinfo.o: ../../core/group.h ../../core/rebus.h ../../core/loadavg.h -ticketinfo.o: tdb.h ../../db/dbbase.h ../../db/dbconn.h -ticketinfo.o: ../../db/dbtextstream.h ../../core/error.h ../../core/log.h -ticketinfo.o: ../../core/misc.h +ticketinfo.o: ../../core/thumb.h ../../core/basethread.h tdb.h +ticketinfo.o: ../../db/dbbase.h ../../db/dbconn.h ../../db/dbtextstream.h +ticketinfo.o: ../../core/error.h ../../core/log.h ../../core/misc.h ticketparser.o: ticketparser.h ticketconf.h ../../core/log.h diff --git a/templates/Makefile.dep b/templates/Makefile.dep index c1de53a..e2e12bb 100755 --- a/templates/Makefile.dep +++ b/templates/Makefile.dep @@ -22,8 +22,9 @@ adduser.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h adduser.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h adduser.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h adduser.o: ../core/mountparser.h ../core/users.h ../core/groups.h -adduser.o: ../core/group.h ../core/loadavg.h ../core/sessionmanager.h -adduser.o: ../core/sessioncontainer.h ../core/basethread.h ../core/system.h +adduser.o: ../core/group.h ../core/loadavg.h ../core/thumb.h +adduser.o: ../core/basethread.h ../core/sessionmanager.h +adduser.o: ../core/sessioncontainer.h ../core/system.h dir.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h dir.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h ../../ezc/src/item.h dir.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -45,10 +46,10 @@ dir.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h dir.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h dir.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h dir.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -dir.o: ../core/loadavg.h ../core/sessionmanager.h ../core/sessioncontainer.h -dir.o: ../core/basethread.h ../core/system.h ../core/misc.h -dir.o: ../functions/functions.h ../functions/functionbase.h ../core/synchro.h -dir.o: ../functions/functionparser.h ../functions/adduser.h +dir.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +dir.o: ../core/sessionmanager.h ../core/sessioncontainer.h ../core/system.h +dir.o: ../core/misc.h ../functions/functions.h ../functions/functionbase.h +dir.o: ../core/synchro.h ../functions/functionparser.h ../functions/adduser.h dir.o: ../functions/cat.h ../functions/chmod.h ../functions/privchanger.h dir.o: ../functions/chown.h ../functions/ckeditor.h ../functions/cp.h dir.o: ../functions/createthread.h ../functions/default.h @@ -82,8 +83,9 @@ doc.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h doc.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h doc.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h doc.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -doc.o: ../core/loadavg.h ../core/sessionmanager.h ../core/sessioncontainer.h -doc.o: ../core/basethread.h ../core/system.h ../core/request.h ../core/misc.h +doc.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +doc.o: ../core/sessionmanager.h ../core/sessioncontainer.h ../core/system.h +doc.o: ../core/request.h ../core/misc.h htmltextstream.o: htmltextstream.h ../core/textstream.h misc.h localefilter.h htmltextstream.o: locale.h ../core/confparser.h ../../ezc/src/ezc.h htmltextstream.o: ../../ezc/src/utf8.h ../../ezc/src/generator.h @@ -119,9 +121,9 @@ item.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h item.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h item.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h item.o: ../core/mount.h ../core/mountparser.h ../core/users.h -item.o: ../core/groups.h ../core/group.h ../core/loadavg.h -item.o: ../core/sessionmanager.h ../core/sessioncontainer.h -item.o: ../core/basethread.h ../core/system.h ../core/misc.h +item.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +item.o: ../core/basethread.h ../core/sessionmanager.h +item.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h item.o: ../core/bbcodeparser.h last.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h last.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h @@ -144,9 +146,9 @@ last.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h last.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h last.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h last.o: ../core/mount.h ../core/mountparser.h ../core/users.h -last.o: ../core/groups.h ../core/group.h ../core/loadavg.h -last.o: ../core/sessionmanager.h ../core/sessioncontainer.h -last.o: ../core/basethread.h ../core/system.h ../core/lastcontainer.h +last.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +last.o: ../core/basethread.h ../core/sessionmanager.h +last.o: ../core/sessioncontainer.h ../core/system.h ../core/lastcontainer.h last.o: ../core/request.h ../core/misc.h locale.o: locale.h ../core/confparser.h ../core/log.h ../core/textstream.h localefilter.o: localefilter.h locale.h ../core/confparser.h @@ -176,8 +178,9 @@ ls.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h ls.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h ls.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h ls.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -ls.o: ../core/loadavg.h ../core/sessionmanager.h ../core/sessioncontainer.h -ls.o: ../core/basethread.h ../core/system.h ../core/request.h +ls.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +ls.o: ../core/sessionmanager.h ../core/sessioncontainer.h ../core/system.h +ls.o: ../core/request.h misc.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h misc.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h misc.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -199,9 +202,9 @@ misc.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h misc.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h misc.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h misc.o: ../core/mount.h ../core/mountparser.h ../core/users.h -misc.o: ../core/groups.h ../core/group.h ../core/loadavg.h -misc.o: ../core/sessionmanager.h ../core/sessioncontainer.h -misc.o: ../core/basethread.h ../core/system.h ../core/misc.h +misc.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +misc.o: ../core/basethread.h ../core/sessionmanager.h +misc.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h mount.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h mount.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h mount.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -223,9 +226,9 @@ mount.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h mount.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h mount.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h mount.o: ../core/mount.h ../core/mountparser.h ../core/users.h -mount.o: ../core/groups.h ../core/group.h ../core/loadavg.h -mount.o: ../core/sessionmanager.h ../core/sessioncontainer.h -mount.o: ../core/basethread.h ../core/system.h ../core/misc.h +mount.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +mount.o: ../core/basethread.h ../core/sessionmanager.h +mount.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h patterncacher.o: patterncacher.h ../core/item.h misc.h localefilter.h patterncacher.o: locale.h ../core/confparser.h ../../ezc/src/ezc.h patterncacher.o: ../../ezc/src/utf8.h ../../ezc/src/generator.h @@ -255,9 +258,9 @@ priv.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h priv.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h priv.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h priv.o: ../core/mount.h ../core/mountparser.h ../core/users.h -priv.o: ../core/groups.h ../core/group.h ../core/loadavg.h -priv.o: ../core/sessionmanager.h ../core/sessioncontainer.h -priv.o: ../core/basethread.h ../core/system.h ../core/misc.h +priv.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +priv.o: ../core/basethread.h ../core/sessionmanager.h +priv.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h priv.o: ../functions/functions.h ../functions/functionbase.h priv.o: ../core/synchro.h ../functions/functionparser.h priv.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h @@ -293,9 +296,9 @@ rebus.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h rebus.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h rebus.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h rebus.o: ../core/mount.h ../core/mountparser.h ../core/users.h -rebus.o: ../core/groups.h ../core/group.h ../core/loadavg.h -rebus.o: ../core/sessionmanager.h ../core/sessioncontainer.h -rebus.o: ../core/basethread.h ../core/system.h +rebus.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +rebus.o: ../core/basethread.h ../core/sessionmanager.h +rebus.o: ../core/sessioncontainer.h ../core/system.h stat.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h stat.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h stat.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -317,9 +320,9 @@ stat.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h stat.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h stat.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h stat.o: ../core/mount.h ../core/mountparser.h ../core/users.h -stat.o: ../core/groups.h ../core/group.h ../core/loadavg.h -stat.o: ../core/sessionmanager.h ../core/sessioncontainer.h -stat.o: ../core/basethread.h ../core/system.h ../core/misc.h +stat.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +stat.o: ../core/basethread.h ../core/sessionmanager.h +stat.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h sys.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h sys.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h ../../ezc/src/item.h sys.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -341,9 +344,9 @@ sys.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h sys.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h sys.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h sys.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -sys.o: ../core/loadavg.h ../core/sessionmanager.h ../core/sessioncontainer.h -sys.o: ../core/basethread.h ../core/system.h ../core/request.h -sys.o: ../core/version.h +sys.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +sys.o: ../core/sessionmanager.h ../core/sessioncontainer.h ../core/system.h +sys.o: ../core/request.h ../core/version.h template.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h template.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h template.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -367,8 +370,8 @@ template.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h template.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h template.o: ../core/mount.h ../core/mountparser.h ../core/users.h template.o: ../core/groups.h ../core/group.h ../core/loadavg.h -template.o: ../core/sessionmanager.h ../core/sessioncontainer.h -template.o: ../core/basethread.h ../core/system.h ../core/misc.h +template.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h +template.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h templates.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h templates.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h templates.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -393,8 +396,8 @@ templates.o: ../notify/templatesnotify.h ../core/users.h templates.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h templates.o: ../core/mount.h ../core/mountparser.h ../core/users.h templates.o: ../core/groups.h ../core/group.h ../core/loadavg.h -templates.o: ../core/sessionmanager.h ../core/sessioncontainer.h -templates.o: ../core/basethread.h ../core/system.h ../core/misc.h +templates.o: ../core/thumb.h ../core/basethread.h ../core/sessionmanager.h +templates.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h templates.o: ../core/plugin.h ../core/pluginmsg.h ../core/sessionmanager.h templates.o: ../functions/functions.h ../functions/functionbase.h templates.o: ../core/synchro.h ../functions/functionparser.h @@ -433,9 +436,9 @@ thread.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h thread.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h thread.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h thread.o: ../core/mount.h ../core/mountparser.h ../core/users.h -thread.o: ../core/groups.h ../core/group.h ../core/loadavg.h -thread.o: ../core/sessionmanager.h ../core/sessioncontainer.h -thread.o: ../core/basethread.h ../core/system.h ../core/misc.h +thread.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +thread.o: ../core/basethread.h ../core/sessionmanager.h +thread.o: ../core/sessioncontainer.h ../core/system.h ../core/misc.h thread.o: ../functions/functions.h ../functions/functionbase.h thread.o: ../core/synchro.h ../functions/functionparser.h thread.o: ../functions/adduser.h ../functions/cat.h ../functions/chmod.h @@ -472,9 +475,9 @@ upload.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h upload.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h upload.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h upload.o: ../core/mount.h ../core/mountparser.h ../core/users.h -upload.o: ../core/groups.h ../core/group.h ../core/loadavg.h -upload.o: ../core/sessionmanager.h ../core/sessioncontainer.h -upload.o: ../core/basethread.h ../core/system.h ../core/request.h +upload.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +upload.o: ../core/basethread.h ../core/sessionmanager.h +upload.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h uptime.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h uptime.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h uptime.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -496,9 +499,9 @@ uptime.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h uptime.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h uptime.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h uptime.o: ../core/mount.h ../core/mountparser.h ../core/users.h -uptime.o: ../core/groups.h ../core/group.h ../core/loadavg.h -uptime.o: ../core/sessionmanager.h ../core/sessioncontainer.h -uptime.o: ../core/basethread.h ../core/system.h +uptime.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +uptime.o: ../core/basethread.h ../core/sessionmanager.h +uptime.o: ../core/sessioncontainer.h ../core/system.h user.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h user.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h user.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -520,9 +523,9 @@ user.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h user.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h user.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h user.o: ../core/mount.h ../core/mountparser.h ../core/users.h -user.o: ../core/groups.h ../core/group.h ../core/loadavg.h -user.o: ../core/sessionmanager.h ../core/sessioncontainer.h -user.o: ../core/basethread.h ../core/system.h ../core/request.h +user.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +user.o: ../core/basethread.h ../core/sessionmanager.h +user.o: ../core/sessioncontainer.h ../core/system.h ../core/request.h user.o: ../core/misc.h who.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h who.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h ../../ezc/src/item.h @@ -545,8 +548,9 @@ who.o: ../notify/notifythread.h ../core/basethread.h ../core/synchro.h who.o: ../notify/templatesnotify.h ../core/users.h ../core/ugcontainer.h who.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h who.o: ../core/mountparser.h ../core/users.h ../core/groups.h ../core/group.h -who.o: ../core/loadavg.h ../core/sessionmanager.h ../core/sessioncontainer.h -who.o: ../core/basethread.h ../core/system.h ../core/misc.h +who.o: ../core/loadavg.h ../core/thumb.h ../core/basethread.h +who.o: ../core/sessionmanager.h ../core/sessioncontainer.h ../core/system.h +who.o: ../core/misc.h winix.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/utf8.h winix.o: ../../ezc/src/generator.h ../../ezc/src/pattern.h winix.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -568,9 +572,9 @@ winix.o: ../templates/misc.h ../notify/notifythread.h ../core/basethread.h winix.o: ../core/synchro.h ../notify/templatesnotify.h ../core/users.h winix.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h winix.o: ../core/mount.h ../core/mountparser.h ../core/users.h -winix.o: ../core/groups.h ../core/group.h ../core/loadavg.h -winix.o: ../core/sessionmanager.h ../core/sessioncontainer.h -winix.o: ../core/basethread.h ../core/system.h ../core/plugin.h +winix.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/thumb.h +winix.o: ../core/basethread.h ../core/sessionmanager.h +winix.o: ../core/sessioncontainer.h ../core/system.h ../core/plugin.h winix.o: ../core/pluginmsg.h ../core/sessionmanager.h winix.o: ../functions/functions.h ../functions/functionbase.h winix.o: ../core/synchro.h ../functions/functionparser.h diff --git a/templates/item.cpp b/templates/item.cpp index d7d51bd..18112a3 100755 --- a/templates/item.cpp +++ b/templates/item.cpp @@ -181,6 +181,12 @@ void item_filetype_is_image(Info & i) } +void item_has_thumb(Info & i) +{ + i.res = request->item.has_thumb; +} + + void item_can_read(Info & i) { i.res = system->HasReadAccess(request->item); diff --git a/templates/templates.cpp b/templates/templates.cpp index 3afc749..e505c9e 100755 --- a/templates/templates.cpp +++ b/templates/templates.cpp @@ -208,8 +208,9 @@ void Templates::CreateFunctions() ezc_functions.Insert("item_url", item_url); ezc_functions.Insert("item_url_is", item_url_is); ezc_functions.Insert("item_link", item_link); - ezc_functions.Insert("item_filetype_is_none", item_filetype_is_none); - ezc_functions.Insert("item_filetype_is_image", item_filetype_is_image); + ezc_functions.Insert("item_filetype_is_none", item_filetype_is_none); + ezc_functions.Insert("item_filetype_is_image", item_filetype_is_image); + ezc_functions.Insert("item_has_thumb", item_has_thumb); ezc_functions.Insert("item_can_read", item_can_read); ezc_functions.Insert("item_can_write", item_can_write); diff --git a/templates/templates.h b/templates/templates.h index 741dcd5..97d6c64 100755 --- a/templates/templates.h +++ b/templates/templates.h @@ -142,6 +142,7 @@ namespace TemplatesFunctions void item_link(Info & i); void item_filetype_is_none(Info & i); void item_filetype_is_image(Info & i); + void item_has_thumb(Info & i); void item_can_read(Info & i); void item_can_write(Info & i); void item_can_remove(Info & i);