changed: plugin messages:

WINIX_FILE_REMOVED and WINIX_DIR_PREPARE_TO_REMOVE
         now as a parameter we have a pointer to the Item struct
changed: export plugin now exports all files from a directory
         (in the future there'll be an option how the plugin should behave)



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@772 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2011-09-30 01:33:42 +00:00
parent 9dae2de2fa
commit c7b6ca67a2
13 changed files with 172 additions and 85 deletions

View File

@@ -12,7 +12,7 @@
#include "core/plugin.h"
#include "exportthread.h"
#include "exportinfo.h"
#include "db.h"
#include "edb.h"
@@ -28,7 +28,7 @@ namespace Export
const wchar_t plugin_name[] = L"export";
int mount_par_export_conf = -1;
ExportThread export_thread;
Db db;
EDb edb;
ExportInfo export_info;
@@ -64,12 +64,15 @@ void SendDir(PluginInfo & info)
const Item * dir = reinterpret_cast<Item*>(info.p1);
if( dir )
{
export_info.SendDir(*dir);
export_info.SendAllFilesFromDir(dir->id);
}
}
void SendFile(PluginInfo & info)
void SendFileAdded(PluginInfo & info)
{
const Item * item = reinterpret_cast<Item*>(info.p1);
@@ -84,27 +87,52 @@ void SendFile(PluginInfo & info)
{
export_info.SendFile(*item);
export_info.SendDir(item->parent_id);
if( item->file_type == WINIX_ITEM_FILETYPE_NONE )
export_info.SendAllFilesFromDir(item->parent_id);
}
}
}
void SendFileChanged(PluginInfo & info)
{
const Item * item = reinterpret_cast<Item*>(info.p1);
if( item )
{
export_info.SendFile(*item);
export_info.SendDir(item->parent_id);
if( item->file_type == WINIX_ITEM_FILETYPE_NONE )
export_info.SendAllFilesFromDir(item->parent_id);
}
}
void SendFileCopied(PluginInfo & info)
{
const Item * item = reinterpret_cast<Item*>(info.p1);
if( item )
{
export_info.SendFile(*item);
if( item->file_type != WINIX_ITEM_FILETYPE_NONE )
export_info.SendFile(*item, true);
export_info.SendDir(item->parent_id);
if( item->file_type == WINIX_ITEM_FILETYPE_NONE )
{
export_info.SendAllFilesFromDir(item->parent_id);
}
else
{
export_info.SendFile(*item);
export_info.SendFile(*item, true);
}
}
}
void SendFileResized(PluginInfo & info)
{
const Item * item = reinterpret_cast<Item*>(info.p1);
@@ -129,6 +157,18 @@ void SendFileThumb(PluginInfo & info)
}
void SendFilePrepareMove(PluginInfo & info)
{
const Item * item = reinterpret_cast<Item*>(info.p1);
if( item )
{
if( item->file_type == WINIX_ITEM_FILETYPE_NONE )
export_info.SendAllFilesFromDir(item->parent_id);
}
}
void FileRemoved(PluginInfo & info)
{
const Item * item = reinterpret_cast<Item*>(info.p1);
@@ -136,6 +176,9 @@ void FileRemoved(PluginInfo & info)
if( item )
{
export_info.SendDir(item->parent_id);
if( item->file_type == WINIX_ITEM_FILETYPE_NONE )
export_info.SendAllFilesFromDir(item->parent_id);
}
}
@@ -164,12 +207,13 @@ void Init(PluginInfo & info)
{
using namespace Export;
db.SetConn(info.db->GetConn());
db.LogQueries(info.config->log_db_query);
db.SetDirs(&info.system->dirs);
edb.SetConn(info.db->GetConn());
edb.LogQueries(info.config->log_db_query);
edb.SetDirs(&info.system->dirs);
export_info.SetSystem(info.system);
export_info.SetConfig(info.config);
export_info.SetDb(&db);
export_info.SetEDb(&edb);
export_info.SetDb(info.db);
export_info.SetExportThread(&export_thread);
@@ -178,15 +222,17 @@ using namespace Export;
// plugin.Assign(WINIX_FSTAB_CHANGED, FstabChanged);
plugin.Assign(WINIX_FILE_ADDED, SendFile);
plugin.Assign(WINIX_FILE_CHANGED, SendFileResized);
plugin.Assign(WINIX_FILE_ADDED, SendFileAdded);
plugin.Assign(WINIX_FILE_CHANGED, SendFileChanged);
plugin.Assign(WINIX_CREATED_THUMB, SendFileThumb);
plugin.Assign(WINIX_IMAGE_RESIZED, SendFileResized);
plugin.Assign(WINIX_FILE_PREPARE_TO_MOVE, SendFilePrepareMove);
plugin.Assign(WINIX_FILE_MOVED, SendFileCopied);
plugin.Assign(WINIX_FILE_COPIED, SendFileCopied);
plugin.Assign(WINIX_DIR_CONTENT_SORTED, SendDir);
plugin.Assign(5000, FileRemoved);
plugin.Assign(WINIX_FILE_REMOVED, FileRemoved);
plugin.Assign(WINIX_PROCESS_REQUEST, ProcessRequest);