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.
354 lines
9.7 KiB
354 lines
9.7 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 KAction;
|
|
class KComboBox;
|
|
class KJanusWidget;
|
|
class KMyHistoryCombo;
|
|
class KMyListBox;
|
|
class KMyListView;
|
|
class KMenuBar;
|
|
class KPopupMenu;
|
|
class KPushButton;
|
|
class KToggleAction;
|
|
class KURL;
|
|
class KURLRequester;
|
|
class KIntNumInput;
|
|
class MyHelpCombo;
|
|
class MyLabel;
|
|
class Plugin;
|
|
class PluginLoader;
|
|
class QButtonGroup;
|
|
class QCheckBox;
|
|
class QGroupBox;
|
|
class QFileInfo;
|
|
class QFrame;
|
|
class QHBoxLayout;
|
|
class QLabel;
|
|
class QLineEdit;
|
|
class QListView;
|
|
class QPushButton;
|
|
class QRect;
|
|
class QWidgetStack;
|
|
class QRadioButton;
|
|
class QVBoxLayout;
|
|
class QVGroupBox;
|
|
class QWidget;
|
|
|
|
#include <kguiitem.h>
|
|
KPushButton* createButton( KGuiItem item, QWidget* parent );
|
|
|
|
class KRenameImpl : public QObject, public KRenameDCOP {
|
|
Q_OBJECT
|
|
|
|
friend class ProfileManager;
|
|
friend class ProfileDlg;
|
|
friend class tabs;
|
|
|
|
public:
|
|
KRenameImpl( QWidget* p, KMenuBar* m, QPushButton* 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( QWidget* p, KMenuBar* m, QPushButton* finish, QRect r );
|
|
static QWidget* launch( QRect rect, const KURL::List & list, KRenameImpl* impl = 0, bool loadprofile = true );
|
|
|
|
/** DCOP functions we have to implement
|
|
*/
|
|
void addFileOrDir( const QString & name );
|
|
const QString fileNameTemplate() const;
|
|
inline int counterStart() const;
|
|
|
|
void setExtensionTemplate( const QString & t );
|
|
const QString extensionTemplate() const;
|
|
|
|
void setUseExtension( bool b );
|
|
bool useExtension() const;
|
|
|
|
QStringList tokens() const;
|
|
|
|
QString parseString( const QString & token, const QString & string );
|
|
void addDir( const QString & name, const QString & filter, bool recursive, bool hidden, bool dirnames );
|
|
|
|
const QString 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 QString & t );
|
|
void setCounterStart( int index );
|
|
|
|
signals:
|
|
void pageDone( QWidget* page, const QString & 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();
|
|
QString 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( QFileInfo* fi, QString* base, QString* 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( QWidget* p, QVBoxLayout* layout, QString title );
|
|
|
|
QValueList<manualchanges> changes;
|
|
void refreshColumnMode();
|
|
void parseWizardMode();
|
|
void getHelpDialogString( QLineEdit* edit );
|
|
|
|
protected:
|
|
QWidget* parent;
|
|
KMenuBar* menuBar;
|
|
KPopupMenu* mnuSort;
|
|
KAction* loadPlugins;
|
|
|
|
QPushButton* finishButton;
|
|
|
|
PluginLoader* plugin;
|
|
|
|
QWidgetStack* fileTab;
|
|
|
|
QWidget* page_1;
|
|
QWidget* page_2;
|
|
KJanusWidget* page_3;
|
|
QWidget* 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;
|
|
|
|
QLabel* description;
|
|
QLabel* description2;
|
|
QLabel* description3;
|
|
QLabel* description4;
|
|
|
|
QLabel* labelTemplate;
|
|
QLabel* labelHelp;
|
|
QLabel* labelCount;
|
|
QLabel* labelPoint;
|
|
|
|
KMyListBox* fileList;
|
|
KMyListView* preview;
|
|
QButtonGroup* groupOptions;
|
|
|
|
QRadioButton* optionCopy;
|
|
QRadioButton* optionMove;
|
|
QRadioButton* optionRename;
|
|
QRadioButton* optionLink;
|
|
|
|
QGroupBox* groupExtension;
|
|
QVGroupBox* groupUndo;
|
|
|
|
KMyHistoryCombo* dirname;
|
|
KURLRequester* urlrequester;
|
|
KURLRequester* undorequester;
|
|
KMyHistoryCombo* filename;
|
|
KMyHistoryCombo* extemplate;
|
|
|
|
QCheckBox* checkName;
|
|
QCheckBox* checkExtension;
|
|
QCheckBox* checkOverwrite;
|
|
QCheckBox* checkPreview;
|
|
QCheckBox* checkUndoScript;
|
|
|
|
KComboBox* comboExtension;
|
|
|
|
MyHelpCombo* comboHelp;
|
|
HelpDialog* helpDialog;
|
|
HelpDialogData* helpDialogData;
|
|
|
|
BatchRenamer* b;
|
|
QValueList<int> skip;
|
|
QValueList<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:
|
|
// ===========
|
|
|
|
QHBoxLayout* pageLayout;
|
|
QVBoxLayout* pageLayout_2;
|
|
QVBoxLayout* pageLayout_3;
|
|
QVBoxLayout* pageLayout_4;
|
|
|
|
QHBoxLayout* tabLayout_0;
|
|
QHBoxLayout* tabLayout_1;
|
|
QHBoxLayout* tabLayout_2;
|
|
QVBoxLayout* tabLayout_3;
|
|
QVBoxLayout* groupAdvancedExtensionLayout;
|
|
QVBoxLayout* groupOptionsLayout;
|
|
QHBoxLayout* groupDirLayout;
|
|
QVBoxLayout* groupNumberLayout;
|
|
QHBoxLayout* groupExtensionLayout;
|
|
|
|
// page1
|
|
QHBoxLayout* Layout2;
|
|
QVBoxLayout* Layout3;
|
|
QHBoxLayout* Layout4;
|
|
QVBoxLayout* Layout5;
|
|
|
|
// page4
|
|
QVBoxLayout* Layout10;
|
|
QHBoxLayout* Layout15;
|
|
QVBoxLayout* Layout16;
|
|
QHBoxLayout* Layout22;
|
|
QVBoxLayout* Layout23;
|
|
|
|
// tab
|
|
QHBoxLayout* Layout100;
|
|
QHBoxLayout* Layout101;
|
|
};
|
|
|
|
|
|
int KRenameImpl::counterStart() const
|
|
{
|
|
return m_index;
|
|
}
|
|
|
|
bool KRenameImpl::hasCommandlineProfile() const
|
|
{
|
|
return m_hasCommandlineProfile;
|
|
}
|
|
|
|
#endif
|