summaryrefslogtreecommitdiff
path: root/plugins/Folders/folderItem.cpp
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-07-19 07:47:08 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-07-19 07:47:08 +0000
commita63798c1b60eeb77352323ad4545630cdc5458f2 (patch)
treee4503c80295e80e2bb7f2fce430c8f83e0fd9714 /plugins/Folders/folderItem.cpp
parentb63b1e9d1c0e5d1edf1c5ae6d932b03184d6aef3 (diff)
Folders: changed folder structure
git-svn-id: http://svn.miranda-ng.org/main/trunk@1032 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Folders/folderItem.cpp')
-rw-r--r--plugins/Folders/folderItem.cpp250
1 files changed, 0 insertions, 250 deletions
diff --git a/plugins/Folders/folderItem.cpp b/plugins/Folders/folderItem.cpp
deleted file mode 100644
index cf58e5feac..0000000000
--- a/plugins/Folders/folderItem.cpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
-Custom profile folders plugin for Miranda IM
-
-Copyright © 2005 Cristian Libotean
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "folderItem.h"
-#include "commonheaders.h"
-#include "services.h"
-
-CFolderItem::CFolderItem(const char *sectionName, const char *name, const char *format, const DWORD flags)
-{
- strncpy(szSection, sectionName, sizeof(szSection));
- szFormat = NULL;
- szOldFormat = NULL;
- szFormatW = NULL;
- szOldFormatW = NULL;
- strncpy(szName, name, sizeof(szName));
- this->flags = flags;
- GetDataFromDatabase(format);
- FolderCreateDirectory();
-}
-
-void MyFree(void *data)
-{
- if (data)
- {
- free(data);
- }
-}
-
-CFolderItem::~CFolderItem()
-{
-// WriteDataToDatabase();
- if (IsUnicode())
- {
- MyFree(szFormatW);
- MyFree(szOldFormatW);
- }
- else{
- MyFree(szFormat);
- MyFree(szOldFormat);
- }
-}
-
-const char *CFolderItem::GetSection() const
-{
- return szSection;
-}
-
-const char *CFolderItem::GetName() const
-{
- return szName;
-}
-
-const char *CFolderItem::GetFormat() const
-{
- return szFormat;
-}
-
-const wchar_t *CFolderItem::GetFormatW() const
-{
- return szFormatW;
-}
-
-void CFolderItem::SetFormat(const char *newFormat)
-{
- MyFree(szOldFormat);
- szOldFormat = szFormat;
- szFormat = _strdup((strlen(newFormat) > 0) ? newFormat : MIRANDA_PATH);
-}
-
-void CFolderItem::SetFormatW(const wchar_t *newFormat)
-{
- MyFree(szOldFormatW);
- szOldFormatW = szFormatW;
- szFormatW = _wcsdup((wcslen(newFormat) > 0) ? newFormat : MIRANDA_PATHW);
-}
-
-int CFolderItem::IsUnicode() const
-{
- return (flags & FF_UNICODE);
-}
-
-int CFolderItem::IsEqual(const CFolderItem *other)
-{
- return (IsEqual(other->GetSection(), other->GetName()));
-}
-
-int CFolderItem::IsEqual(const char *section, const char *name)
-{
- return ((strcmp(szName, name) == 0) && (strcmp(szSection, section) == 0));
-}
-
-int CFolderItem::IsEqualTranslated(const char *trSection, const char *trName)
-{
- return ((strcmp(Translate(szName), trName) == 0) && (strcmp(Translate(szSection), trSection) == 0));
-}
-
-int CFolderItem::operator ==(const CFolderItem *other)
-{
- return IsEqual(other);
-}
-
-void CFolderItem::Expand(char *buffer, int size)
-{
- if (IsUnicode())
- {
- ExpandPathW((wchar_t *) buffer, szFormatW, size);
- }
- else{
- ExpandPath(buffer, szFormat, size);
- }
-}
-
-void CFolderItem::Save()
-{
- int res = FolderDeleteOldDirectory(FALSE);
- //FolderCreateDirectory(!res);
- FolderCreateDirectory(FALSE);
- WriteDataToDatabase();
-}
-
-int CFolderItem::FolderCreateDirectory(int showFolder)
-{
- int res = FOLDER_SUCCESS;
- if (IsUnicode())
- {
- wchar_t buffer[MAX_FOLDER_SIZE];
- if (szFormatW)
- {
- ExpandPathW(buffer, szFormatW, MAX_FOLDER_SIZE);
- CreateDirectories(buffer);
- if (showFolder)
- {
- ShellExecuteW(NULL, L"explore", buffer, NULL, NULL, SW_SHOW);
- }
- res = (DirectoryExists(buffer)) ? FOLDER_SUCCESS : FOLDER_FAILURE;
- }
- }
- else{
- char buffer[MAX_FOLDER_SIZE];
- if (szFormat)
- {
- ExpandPath(buffer, szFormat, MAX_FOLDER_SIZE);
- CreateDirectories(buffer);
- if (showFolder)
- {
- ShellExecuteA(NULL, "explore", buffer, NULL, NULL, SW_SHOW);
- }
- res = (DirectoryExists(buffer)) ? FOLDER_SUCCESS : FOLDER_FAILURE;
- }
- }
- return res;
-}
-
-int CFolderItem::FolderDeleteOldDirectory(int showFolder)
-{
- int res = FOLDER_SUCCESS;
- if (IsUnicode())
- {
- wchar_t buffer[MAX_FOLDER_SIZE];
- if (szOldFormatW)
- {
- if (wcscmp(szFormatW, szOldFormatW) == 0) //format wasn't changed
- {
- return res;
- }
- ExpandPathW(buffer, szOldFormatW, MAX_FOLDER_SIZE);
- RemoveDirectories(buffer);
- res = (DirectoryExists(buffer)) ? FOLDER_FAILURE : FOLDER_SUCCESS;
- if ((res == FOLDER_FAILURE) && (showFolder))
- {
- ShellExecuteW(NULL, L"explore", buffer, NULL, NULL, SW_SHOW);
- }
- }
- }
- else{
- char buffer[MAX_FOLDER_SIZE];
- if (szOldFormat)
- {
- if (strcmp(szFormat, szOldFormat) == 0) //format wasn't changed
- {
- return res;
- }
- ExpandPath(buffer, szOldFormat, MAX_FOLDER_SIZE);
- RemoveDirectories(buffer);
- res = (DirectoryExists(buffer)) ? FOLDER_FAILURE : FOLDER_SUCCESS;
- if ((res == FOLDER_FAILURE) && (showFolder))
- {
- ShellExecuteA(NULL, "explore", buffer, NULL, NULL, SW_SHOW);
- }
- }
- }
- return res;
-}
-
-void CFolderItem::GetDataFromDatabase(const char *szNotFound)
-{
- char name[256];
- strcpy(name, szSection);
- strcat(name, szName);
-
- if (IsUnicode())
- {
- wchar_t buffer[MAX_FOLDER_SIZE];
- GetStringFromDatabase(name, (const wchar_t *) szNotFound, buffer, MAX_FOLDER_SIZE);
- SetFormatW(buffer);
- }
- else{
- char buffer[MAX_FOLDER_SIZE];
- GetStringFromDatabase(name, szNotFound, buffer, MAX_FOLDER_SIZE);
- SetFormat(buffer);
- }
-}
-
-void CFolderItem::WriteDataToDatabase()
-{
- char name[256];
- strcpy(name, szSection);
- strcat(name, szName);
-
- if (IsUnicode())
- {
- if (szFormatW)
- {
- WriteStringToDatabase(name, szFormatW);
- }
- }
- else{
- if (szFormat)
- {
- WriteStringToDatabase(name, szFormat);
- }
- }
-} \ No newline at end of file