""" novelWriter – Constants ======================= Constants and maps for translating flags and enums to text File History: Created: 2019-04-28 [0.0.1] This file is a part of novelWriter Copyright 2018–2021, Veronica Berglyd Olsen 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 3 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, see . """ from PyQt5.QtCore import QCoreApplication, QT_TRANSLATE_NOOP from nw.enum import nwItemClass, nwItemLayout, nwItemType, nwOutline def trConst(tString): """Wrapper function for locally translating constants. """ return QCoreApplication.translate("Constant", tString) class nwConst(): # Date and Time Formats FMT_TSTAMP = "%Y-%m-%d %H:%M:%S" # Default format FMT_FSTAMP = "%Y-%m-%d %H.%M.%S" # FileName safe format FMT_DSTAMP = "%Y-%m-%d" # Date only format # Various Hard Limits MAX_DEPTH = 30 # Maximum folder depth of a project MAX_DOCSIZE = 5000000 # Maxium size of a single document MAX_BUILDSIZE = 10000000 # Maxium size of a project build # Spell Check Providers SP_INTERNAL = "internal" SP_ENCHANT = "enchant" # END Class nwConst class nwLists(): """Lists used for grouping various other constants. """ # Regular user-accessible item types REG_TYPES = {nwItemType.ROOT, nwItemType.FOLDER, nwItemType.FILE} # Item classes where the full list of novel layouts are allowed CLS_NOVEL = {nwItemClass.NOVEL, nwItemClass.ARCHIVE} # Item classes which do not require items to have same class FREE_CLASS = {nwItemClass.ARCHIVE, nwItemClass.TRASH} # END Class nwLists class nwRegEx(): FMT_EI = r"(?