addicondlg.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "addicondlg.h"
00013
00014 #include <qcombobox.h>
00015 #include <qlabel.h>
00016 #include <qlineedit.h>
00017 #include <kdebug.h>
00018 #include <klocale.h>
00019 #include <kprocess.h>
00020 #include <kstandarddirs.h>
00021 #include <kicontheme.h>
00022 #include <kdeversion.h>
00023
00024 #include "autolistviewitems.h"
00025
00026 #include "autoprojectpart.h"
00027 #include "autoprojectwidget.h"
00028
00029
00030 const char *type_map[] = {
00031 "app", "action", "device", "filesys", "mime"
00032 };
00033
00034
00035 const char *size_map[] = {
00036 "hi16", "hi22", "hi32", "hi48", "hi64", "hi128"
00037 };
00038
00039
00040 AddIconDialog::AddIconDialog(AutoProjectPart *part, AutoProjectWidget *widget,
00041 SubprojectItem *spitem, TargetItem *titem,
00042 QWidget *parent, const char *name)
00043 : AddIconDialogBase(parent, name, true)
00044 {
00045 type_combo->insertItem(i18n("Application"));
00046 type_combo->insertItem(i18n("Action"));
00047 type_combo->insertItem(i18n("Device"));
00048 type_combo->insertItem(i18n("File System"));
00049 type_combo->insertItem(i18n("MIME Type"));
00050
00051 size_combo->insertItem("16");
00052 size_combo->insertItem("22");
00053 size_combo->insertItem("32");
00054 size_combo->insertItem("48");
00055 size_combo->insertItem("64");
00056 size_combo->insertItem("128");
00057
00058 somethingChanged();
00059
00060 setIcon ( SmallIcon ( "iconadd_kdevelop" ) );
00061
00062 m_part = part;
00063 m_widget = widget;
00064 m_subProject = spitem;
00065 m_target = titem;
00066 }
00067
00068
00069 AddIconDialog::~AddIconDialog()
00070 {}
00071
00072
00073 void AddIconDialog::somethingChanged()
00074 {
00075 QString size = size_map[size_combo->currentItem()];
00076 QString type = type_map[type_combo->currentItem()];
00077 QString name = name_edit->text();
00078
00079 filename_edit->setText(size + "-" + type + "-" + name + ".png");
00080 }
00081
00082
00083 void AddIconDialog::accept()
00084 {
00085 QString name = filename_edit->text();
00086
00087 QString destdir = m_subProject->subdir;
00088 QString destpath = destdir + "/" + name;
00089
00090 QString size = size_combo->currentText();
00091 #if KDE_VERSION < 310
00092 QString unknown = "unknown";
00093 #else
00094 QString unknown = KIconTheme::defaultThemeName()+ "/" + size + "x" + size + "/mimetypes/unknown.png";
00095 #endif
00096 QString templateFileName = locate("icon", unknown);
00097 kdDebug(9020) << "Unknown: " << unknown << ", template: " << templateFileName << endl;
00098
00099 if (!templateFileName.isEmpty()) {
00100 KProcess proc;
00101 proc << "cp";
00102 proc << templateFileName;
00103 proc << destpath;
00104 proc.start(KProcess::DontCare);
00105 }
00106
00107 FileItem *fitem = m_widget->createFileItem(name, m_subProject);
00108 m_target->sources.append(fitem);
00109 m_target->insertItem(fitem);
00110
00111 m_part->startMakeCommand(destdir, QString::fromLatin1("force-reedit"));
00112
00113 m_widget->emitAddedFile(destpath);
00114
00115 QDialog::accept();
00116 }
00117
00118 #include "addicondlg.moc"
This file is part of the documentation for KDevelop Version 3.1.2.