Added additional text merge backends.

This commit is contained in:
Jim Evins
2016-05-22 15:40:47 -04:00
parent c7f02f027a
commit 7c945d6ba7
18 changed files with 1055 additions and 3 deletions
+7
View File
@@ -16,6 +16,13 @@ set (merge_sources
None.cpp None.cpp
Text.cpp Text.cpp
TextCsv.cpp TextCsv.cpp
TextCsvKeys.cpp
TextTsv.cpp
TextTsvKeys.cpp
TextColon.cpp
TextColonKeys.cpp
TextSemicolon.cpp
TextSemicolonKeys.cpp
) )
set (merge_qobject_headers set (merge_qobject_headers
+42
View File
@@ -22,6 +22,13 @@
#include "None.h" #include "None.h"
#include "TextCsv.h" #include "TextCsv.h"
#include "TextCsvKeys.h"
#include "TextTsv.h"
#include "TextTsvKeys.h"
#include "TextColon.h"
#include "TextColonKeys.h"
#include "TextSemicolon.h"
#include "TextSemicolonKeys.h"
namespace merge namespace merge
@@ -48,6 +55,41 @@ namespace merge
tr("Text: Comma Separated Values (CSV)"), tr("Text: Comma Separated Values (CSV)"),
FILE, FILE,
&TextCsv::create ); &TextCsv::create );
registerBackend( TextCsvKeys::id(),
tr("Text: Comma Separated Values (CSV), keys on line 1"),
FILE,
&TextCsvKeys::create );
registerBackend( TextTsv::id(),
tr("Text: Tab Separated Values (TSV)"),
FILE,
&TextTsv::create );
registerBackend( TextTsvKeys::id(),
tr("Text: Tab Separated Values (TSV), keys on line 1"),
FILE,
&TextTsvKeys::create );
registerBackend( TextColon::id(),
tr("Text: Colon Separated Values"),
FILE,
&TextColon::create );
registerBackend( TextColonKeys::id(),
tr("Text: Colon Separated Values, keys on line 1"),
FILE,
&TextColonKeys::create );
registerBackend( TextSemicolon::id(),
tr("Text: Semicolon Separated Values"),
FILE,
&TextSemicolon::create );
registerBackend( TextSemicolonKeys::id(),
tr("Text: Semicolon Separated Values, keys on line 1"),
FILE,
&TextSemicolonKeys::create );
} }
+80
View File
@@ -0,0 +1,80 @@
/* Merge/TextColon.cpp
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TextColon.h"
namespace merge
{
static const QString ID = "Text/Colon";
///
/// Constructor
///
TextColon::TextColon() : Text(':',false)
{
mId = ID;
}
///
/// Constructor
///
TextColon::TextColon( const TextColon* merge ) : Text( merge )
{
}
///
/// Destructor
///
TextColon::~TextColon()
{
}
///
/// Clone
///
TextColon* TextColon::clone() const
{
return new TextColon( this );
}
///
/// Get ID
///
QString TextColon::id()
{
return ID;
}
///
/// Create
///
Merge* TextColon::create()
{
return new TextColon();
}
}
+63
View File
@@ -0,0 +1,63 @@
/* Merge/TextColon.h
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef merge_TextColon_h
#define merge_TextColon_h
#include "Text.h"
namespace merge
{
///
/// TextColon Merge Backend
///
struct TextColon : public Text
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
private:
TextColon();
TextColon( const TextColon* merge );
virtual ~TextColon();
/////////////////////////////////
// Object duplication
/////////////////////////////////
public:
TextColon* clone() const;
/////////////////////////////////
// Static methods
/////////////////////////////////
public:
static QString id();
static Merge* create();
};
}
#endif // merge_TextColon_h
+80
View File
@@ -0,0 +1,80 @@
/* Merge/TextColonKeys.cpp
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TextColonKeys.h"
namespace merge
{
static const QString ID = "Text/Colon/Line1Keys";
///
/// Constructor
///
TextColonKeys::TextColonKeys() : Text(':',true)
{
mId = ID;
}
///
/// Constructor
///
TextColonKeys::TextColonKeys( const TextColonKeys* merge ) : Text( merge )
{
}
///
/// Destructor
///
TextColonKeys::~TextColonKeys()
{
}
///
/// Clone
///
TextColonKeys* TextColonKeys::clone() const
{
return new TextColonKeys( this );
}
///
/// Get ID
///
QString TextColonKeys::id()
{
return ID;
}
///
/// Create
///
Merge* TextColonKeys::create()
{
return new TextColonKeys();
}
}
+63
View File
@@ -0,0 +1,63 @@
/* Merge/TextColonKeys.h
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef merge_TextColonKeys_h
#define merge_TextColonKeys_h
#include "Text.h"
namespace merge
{
///
/// TextColonKeys Merge Backend
///
struct TextColonKeys : public Text
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
private:
TextColonKeys();
TextColonKeys( const TextColonKeys* merge );
virtual ~TextColonKeys();
/////////////////////////////////
// Object duplication
/////////////////////////////////
public:
TextColonKeys* clone() const;
/////////////////////////////////
// Static methods
/////////////////////////////////
public:
static QString id();
static Merge* create();
};
}
#endif // merge_TextColonKeys_h
+4 -2
View File
@@ -23,13 +23,15 @@
namespace merge namespace merge
{ {
static const QString ID = "Text/Comma";
/// ///
/// Constructor /// Constructor
/// ///
TextCsv::TextCsv() : Text(',',false) TextCsv::TextCsv() : Text(',',false)
{ {
mId = "Text/Comma"; mId = ID;
} }
@@ -63,7 +65,7 @@ namespace merge
/// ///
QString TextCsv::id() QString TextCsv::id()
{ {
return "Text/Comma"; return ID;
} }
+1 -1
View File
@@ -46,7 +46,6 @@ namespace merge
// Object duplication // Object duplication
///////////////////////////////// /////////////////////////////////
public: public:
static QString id();
TextCsv* clone() const; TextCsv* clone() const;
@@ -54,6 +53,7 @@ namespace merge
// Static methods // Static methods
///////////////////////////////// /////////////////////////////////
public: public:
static QString id();
static Merge* create(); static Merge* create();
}; };
+80
View File
@@ -0,0 +1,80 @@
/* Merge/TextCsvKeys.cpp
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TextCsvKeys.h"
namespace merge
{
static const QString ID = "Text/Comma/Line1Keys";
///
/// Constructor
///
TextCsvKeys::TextCsvKeys() : Text(',',true)
{
mId = ID;
}
///
/// Constructor
///
TextCsvKeys::TextCsvKeys( const TextCsvKeys* merge ) : Text( merge )
{
}
///
/// Destructor
///
TextCsvKeys::~TextCsvKeys()
{
}
///
/// Clone
///
TextCsvKeys* TextCsvKeys::clone() const
{
return new TextCsvKeys( this );
}
///
/// Get ID
///
QString TextCsvKeys::id()
{
return ID;
}
///
/// Create
///
Merge* TextCsvKeys::create()
{
return new TextCsvKeys();
}
}
+63
View File
@@ -0,0 +1,63 @@
/* Merge/TextCsvKeys.h
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef merge_TextCsvKeys_h
#define merge_TextCsvKeys_h
#include "Text.h"
namespace merge
{
///
/// TextCsvKeys Merge Backend
///
struct TextCsvKeys : public Text
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
private:
TextCsvKeys();
TextCsvKeys( const TextCsvKeys* merge );
virtual ~TextCsvKeys();
/////////////////////////////////
// Object duplication
/////////////////////////////////
public:
TextCsvKeys* clone() const;
/////////////////////////////////
// Static methods
/////////////////////////////////
public:
static QString id();
static Merge* create();
};
}
#endif // merge_TextCsvKeys_h
+80
View File
@@ -0,0 +1,80 @@
/* Merge/TextSemicolon.cpp
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TextSemicolon.h"
namespace merge
{
static const QString ID = "Text/Semicolon";
///
/// Constructor
///
TextSemicolon::TextSemicolon() : Text(';',false)
{
mId = ID;
}
///
/// Constructor
///
TextSemicolon::TextSemicolon( const TextSemicolon* merge ) : Text( merge )
{
}
///
/// Destructor
///
TextSemicolon::~TextSemicolon()
{
}
///
/// Clone
///
TextSemicolon* TextSemicolon::clone() const
{
return new TextSemicolon( this );
}
///
/// Get ID
///
QString TextSemicolon::id()
{
return ID;
}
///
/// Create
///
Merge* TextSemicolon::create()
{
return new TextSemicolon();
}
}
+63
View File
@@ -0,0 +1,63 @@
/* Merge/TextSemicolon.h
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef merge_TextSemicolon_h
#define merge_TextSemicolon_h
#include "Text.h"
namespace merge
{
///
/// TextSemicolon Merge Backend
///
struct TextSemicolon : public Text
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
private:
TextSemicolon();
TextSemicolon( const TextSemicolon* merge );
virtual ~TextSemicolon();
/////////////////////////////////
// Object duplication
/////////////////////////////////
public:
TextSemicolon* clone() const;
/////////////////////////////////
// Static methods
/////////////////////////////////
public:
static QString id();
static Merge* create();
};
}
#endif // merge_TextSemicolon_h
+80
View File
@@ -0,0 +1,80 @@
/* Merge/TextSemicolonKeys.cpp
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TextSemicolonKeys.h"
namespace merge
{
static const QString ID = "Text/Colon";
///
/// Constructor
///
TextSemicolonKeys::TextSemicolonKeys() : Text(';',true)
{
mId = ID;
}
///
/// Constructor
///
TextSemicolonKeys::TextSemicolonKeys( const TextSemicolonKeys* merge ) : Text( merge )
{
}
///
/// Destructor
///
TextSemicolonKeys::~TextSemicolonKeys()
{
}
///
/// Clone
///
TextSemicolonKeys* TextSemicolonKeys::clone() const
{
return new TextSemicolonKeys( this );
}
///
/// Get ID
///
QString TextSemicolonKeys::id()
{
return ID;
}
///
/// Create
///
Merge* TextSemicolonKeys::create()
{
return new TextSemicolonKeys();
}
}
+63
View File
@@ -0,0 +1,63 @@
/* Merge/TextSemicolonKeys.h
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef merge_TextSemicolonKeys_h
#define merge_TextSemicolonKeys_h
#include "Text.h"
namespace merge
{
///
/// TextSemicolonKeys Merge Backend
///
struct TextSemicolonKeys : public Text
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
private:
TextSemicolonKeys();
TextSemicolonKeys( const TextSemicolonKeys* merge );
virtual ~TextSemicolonKeys();
/////////////////////////////////
// Object duplication
/////////////////////////////////
public:
TextSemicolonKeys* clone() const;
/////////////////////////////////
// Static methods
/////////////////////////////////
public:
static QString id();
static Merge* create();
};
}
#endif // merge_TextSemicolonKeys_h
+80
View File
@@ -0,0 +1,80 @@
/* Merge/TextTsv.cpp
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TextTsv.h"
namespace merge
{
static const QString ID = "Text/Tab";
///
/// Constructor
///
TextTsv::TextTsv() : Text('\t',false)
{
mId = ID;
}
///
/// Constructor
///
TextTsv::TextTsv( const TextTsv* merge ) : Text( merge )
{
}
///
/// Destructor
///
TextTsv::~TextTsv()
{
}
///
/// Clone
///
TextTsv* TextTsv::clone() const
{
return new TextTsv( this );
}
///
/// Get ID
///
QString TextTsv::id()
{
return ID;
}
///
/// Create
///
Merge* TextTsv::create()
{
return new TextTsv();
}
}
+63
View File
@@ -0,0 +1,63 @@
/* Merge/TextTsv.h
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef merge_TextTsv_h
#define merge_TextTsv_h
#include "Text.h"
namespace merge
{
///
/// TextTsv Merge Backend
///
struct TextTsv : public Text
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
private:
TextTsv();
TextTsv( const TextTsv* merge );
virtual ~TextTsv();
/////////////////////////////////
// Object duplication
/////////////////////////////////
public:
TextTsv* clone() const;
/////////////////////////////////
// Static methods
/////////////////////////////////
public:
static QString id();
static Merge* create();
};
}
#endif // merge_TextTsv_h
+80
View File
@@ -0,0 +1,80 @@
/* Merge/TextTsvKeys.cpp
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TextTsvKeys.h"
namespace merge
{
static const QString ID = "Text/Tab/Line1Keys";
///
/// Constructor
///
TextTsvKeys::TextTsvKeys() : Text('\t',true)
{
mId = ID;
}
///
/// Constructor
///
TextTsvKeys::TextTsvKeys( const TextTsvKeys* merge ) : Text( merge )
{
}
///
/// Destructor
///
TextTsvKeys::~TextTsvKeys()
{
}
///
/// Clone
///
TextTsvKeys* TextTsvKeys::clone() const
{
return new TextTsvKeys( this );
}
///
/// Get ID
///
QString TextTsvKeys::id()
{
return ID;
}
///
/// Create
///
Merge* TextTsvKeys::create()
{
return new TextTsvKeys();
}
}
+63
View File
@@ -0,0 +1,63 @@
/* Merge/TextTsvKeys.h
*
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
*
* This file is part of gLabels-qt.
*
* gLabels-qt 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 3 of the License, or
* (at your option) any later version.
*
* gLabels-qt 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 gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef merge_TextTsvKeys_h
#define merge_TextTsvKeys_h
#include "Text.h"
namespace merge
{
///
/// TextTsvKeys Merge Backend
///
struct TextTsvKeys : public Text
{
/////////////////////////////////
// Life Cycle
/////////////////////////////////
private:
TextTsvKeys();
TextTsvKeys( const TextTsvKeys* merge );
virtual ~TextTsvKeys();
/////////////////////////////////
// Object duplication
/////////////////////////////////
public:
TextTsvKeys* clone() const;
/////////////////////////////////
// Static methods
/////////////////////////////////
public:
static QString id();
static Merge* create();
};
}
#endif // merge_TextTsvKeys_h