You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
krename/krename/krenameimpl.h

355 line
9.8 KiB

/***************************************************************************
krenameimpl.h - description
-------------------
begin : Die Mai 20 2003
copyright : (C) 2003 by Dominik Seichter
email : domseichter@web.de
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/
#ifndef KRENAMEIMPL_H
#define KRENAMEIMPL_H
// Own includes
#include "batchrenamer.h"
#include "krenamedcop.h"
class HelpDialog;
class HelpDialogData;
class TDEAction;
class KComboBox;
class KJanusWidget;
class KMyHistoryCombo;
class KMyListBox;
class KMyListView;
class KMenuBar;
class TDEPopupMenu;
class KPushButton;
class TDEToggleAction;
class KURL;
class KURLRequester;
class KIntNumInput;
class MyHelpCombo;
class MyLabel;
class Plugin;
class PluginLoader;
class TQButtonGroup;
class TQCheckBox;
class TQGroupBox;
class TQFileInfo;
class TQFrame;
class TQHBoxLayout;
class TQLabel;
class TQLineEdit;
class TQListView;
class TQPushButton;
class TQRect;
class TQWidgetStack;
class TQRadioButton;
class TQVBoxLayout;
class TQVGroupBox;
class TQWidget;
#include <kguiitem.h>
KPushButton* createButton( KGuiItem item, TQWidget* parent );
class KRenameImpl : public TQObject, public KRenameDCOP {
TQ_OBJECT
friend class ProfileManager;
friend class ProfileDlg;
friend class tabs;
public:
KRenameImpl( TQWidget* p, KMenuBar* m, TQPushButton* finish );
~KRenameImpl();
void setWizardMode( bool mode );
/*
* public because both get called from KRenameImpl::launch()
*/
void updatePre();
void addFileOrDir( const KURL & name );
void setup( bool wizardmode );
void changeParent( TQWidget* p, KMenuBar* m, TQPushButton* finish, TQRect r );
static TQWidget* launch( TQRect rect, const KURL::List & list, KRenameImpl* impl = 0, bool loadprofile = true );
/** DCOP functions we have to implement
*/
void addFileOrDir( const TQString & name );
const TQString fileNameTemplate() const;
inline int counterStart() const;
void setExtensionTemplate( const TQString & t );
const TQString extensionTemplate() const;
void setUseExtension( bool b );
bool useExtension() const;
TQStringList tokens() const;
TQString parseString( const TQString & token, const TQString & string );
void addDir( const TQString & name, const TQString & filter, bool recursive, bool hidden, bool dirnames );
const TQString title( int index ) const;
/** @returns true if the user has specified a profile on the commandline
* other wise false is returned
*/
inline bool hasCommandlineProfile() const;
public slots:
void setFileNameTemplate( const TQString & t );
void setCounterStart( int index );
signals:
void pageDone( TQWidget* page, const TQString & title );
void showPage( int page );
void enableFinish( bool b );
private slots:
void about();
void addFile();
bool checkErrors();
void clearList();
void enableControls();
void toggleImagePreview();
void moveUp();
void moveDown();
void help();
void removeFile();
void removeFile( int index );
void preferences();
void replace();
void saveConfig();
void start();
void updateCount();
void undo();
void changeUndoScriptName();
void pluginHelpChanged();
void getCoordinates();
void changeNumbers();
void updateDots();
void updatePreview();
void showTokenHelp();
void toggleName();
void changed();
void loadFilePlugins();
void reloadFilePluginData();
void manageProfiles();
TQString easyOptions( KComboBox* combo, KMyHistoryCombo* custom );
void slotEasy1();
void slotEasy2();
void slotEasy3();
void slotEasy4();
/** Update the preview only if the passed
* plugin is enabled for use.
*/
void updatePluginPreview( Plugin* p );
private:
static int numRealTimePreview;
/** Change the GUI mode according to the current setting of m_wizard
*/
void changeGUIMode();
/** Returns COPY if optionCopy is checked, RENAME if optionRename is checked
* ...
*/
int currentRenameMode();
void loadConfig();
void fillStructures( BatchRenamer* b, bool preview );
bool setupBatchRenamer( BatchRenamer* b, bool preview );
void splitFilename( TQFileInfo* fi, TQString* base, TQString* extension );
void setupActions();
void setupPage1();
void setupPage2();
void setupPage3();
void setupPage4();
void setupTab1();
void setupFileTab1();
void setupFileTab2();
void setupPages();
void updateHist();
void parseCommandline();
void addTitle( TQWidget* p, TQVBoxLayout* layout, TQString title );
TQValueList<manualchanges> changes;
void refreshColumnMode();
void parseWizardMode();
void getHelpDialogString( TQLineEdit* edit );
protected:
TQWidget* parent;
KMenuBar* menuBar;
TDEPopupMenu* mnuSort;
TDEAction* loadPlugins;
TQPushButton* finishButton;
PluginLoader* plugin;
TQWidgetStack* fileTab;
TQWidget* page_1;
TQWidget* page_2;
KJanusWidget* page_3;
TQWidget* page_4;
bool m_wizard;
bool m_loadplugins;
bool m_switching;
bool m_autosize;
int m_hist;
int m_index;
int m_step;
bool m_reset;
bool m_hasCommandlineProfile;
KPushButton* buttonUp;
KPushButton* buttonDown;
KPushButton* buttonUp2;
KPushButton* buttonDown2;
KPushButton* buttonAdd;
KPushButton* buttonRemove;
KPushButton* buttonRemoveAll;
KPushButton* buttonReplace;
KPushButton* buttonEasyReplace;
KPushButton* buttonHelp;
KPushButton* buttonMove;
KPushButton* buttonCoord;
KPushButton* buttonNumber;
KPushButton* buttonEasy1;
KPushButton* buttonEasy2;
KPushButton* buttonEasy3;
KPushButton* buttonEasy4;
KComboBox* comboSort;
TQLabel* description;
TQLabel* description2;
TQLabel* description3;
TQLabel* description4;
TQLabel* labelTemplate;
TQLabel* labelHelp;
TQLabel* labelCount;
TQLabel* labelPoint;
KMyListBox* fileList;
KMyListView* preview;
TQButtonGroup* groupOptions;
TQRadioButton* optionCopy;
TQRadioButton* optionMove;
TQRadioButton* optionRename;
TQRadioButton* optionLink;
TQGroupBox* groupExtension;
TQVGroupBox* groupUndo;
KMyHistoryCombo* dirname;
KURLRequester* urlrequester;
KURLRequester* undorequester;
KMyHistoryCombo* filename;
KMyHistoryCombo* extemplate;
TQCheckBox* checkName;
TQCheckBox* checkExtension;
TQCheckBox* checkOverwrite;
TQCheckBox* checkPreview;
TQCheckBox* checkUndoScript;
KComboBox* comboExtension;
MyHelpCombo* comboHelp;
HelpDialog* helpDialog;
HelpDialogData* helpDialogData;
BatchRenamer* b;
TQValueList<int> skip;
TQValueList<replacestrings> rep;
// ==========
// Easy mode:
// ==========
KComboBox* comboKRenamePrefix;
KComboBox* comboKRenameSuffix;
KComboBox* comboKRenameFilename;
KComboBox* comboKRenameExtension;
KMyHistoryCombo* comboPrefix;
KMyHistoryCombo* comboSuffix;
KMyHistoryCombo* comboCustom;
KMyHistoryCombo* comboCustomExtension;
KIntNumInput* spinStart;
KIntNumInput* spinNull;
// ===========
// Layout:
// ===========
TQHBoxLayout* pageLayout;
TQVBoxLayout* pageLayout_2;
TQVBoxLayout* pageLayout_3;
TQVBoxLayout* pageLayout_4;
TQHBoxLayout* tabLayout_0;
TQHBoxLayout* tabLayout_1;
TQHBoxLayout* tabLayout_2;
TQVBoxLayout* tabLayout_3;
TQVBoxLayout* groupAdvancedExtensionLayout;
TQVBoxLayout* groupOptionsLayout;
TQHBoxLayout* groupDirLayout;
TQVBoxLayout* groupNumberLayout;
TQHBoxLayout* groupExtensionLayout;
// page1
TQHBoxLayout* Layout2;
TQVBoxLayout* Layout3;
TQHBoxLayout* Layout4;
TQVBoxLayout* Layout5;
// page4
TQVBoxLayout* Layout10;
TQHBoxLayout* Layout15;
TQVBoxLayout* Layout16;
TQHBoxLayout* Layout22;
TQVBoxLayout* Layout23;
// tab
TQHBoxLayout* Layout100;
TQHBoxLayout* Layout101;
};
int KRenameImpl::counterStart() const
{
return m_index;
}
bool KRenameImpl::hasCommandlineProfile() const
{
return m_hasCommandlineProfile;
}
#endif